Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Jan 2026 21:48:22 +0000
From:      Matthias Andree <mandree@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 099bd713e09e - main - textproc/libxml2*: update to 2.15.1, split -core
Message-ID:  <6977e126.34120.3ff16167@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by mandree:

URL: https://cgit.FreeBSD.org/ports/commit/?id=099bd713e09ebdd02d73fde770c50706f980404f

commit 099bd713e09ebdd02d73fde770c50706f980404f
Author:     Matthias Andree <mandree@FreeBSD.org>
AuthorDate: 2026-01-02 15:10:37 +0000
Commit:     Matthias Andree <mandree@FreeBSD.org>
CommitDate: 2026-01-26 21:47:50 +0000

    textproc/libxml2*: update to 2.15.1, split -core
    
    libxml2 now requires xsltproc from libxslt to build,
    yet libxslt depends on libxml2,
    so we need to break a dependency cycle.
    documentation needed to be split out to a separate port.
    
    libxml2 has therefore been split into two ports,
    * libxml2 builds the documentation (unless disabled),
    * library and executables in libxml2-core.
    
    Pull in one contributor patch suggested by the former libxml2 maintainer
    to address one downstream security issue in recent libxslt versions.
    
    This should address arrowd@'s hint that installing libxml2 should
    provide a full-featured package.
    
    While here, deprecate libxml2-python according to upstream plans, we
    have very few users in the ports tree, and expire end of 2026Q1.
    
    PR:             291316
---
 Mk/Uses/gnome.mk                          |   6 +-
 UPDATING                                  |  12 +++
 textproc/Makefile                         |   1 +
 textproc/libxml2-core/Makefile            |  67 +++++++++++++++
 textproc/libxml2-core/distinfo            |   3 +
 textproc/libxml2-core/files/patch-xpath.c | 130 ++++++++++++++++++++++++++++++
 textproc/libxml2-core/pkg-descr           |   4 +
 textproc/libxml2-core/pkg-plist           |  55 +++++++++++++
 textproc/libxml2-python/Makefile          |  39 ++++++---
 textproc/libxml2/Makefile                 |  92 +++++++++------------
 textproc/libxml2/distinfo                 |   3 -
 textproc/libxml2/pkg-descr                |   5 +-
 textproc/libxml2/pkg-plist                | 117 +--------------------------
 13 files changed, 348 insertions(+), 186 deletions(-)

diff --git a/Mk/Uses/gnome.mk b/Mk/Uses/gnome.mk
index 59d070c747f8..f162916c47e1 100644
--- a/Mk/Uses/gnome.mk
+++ b/Mk/Uses/gnome.mk
@@ -204,9 +204,9 @@ libidl_USE_GNOME_IMPL=	glib20
 libglade2_LIB_DEPENDS=	libglade-2.0.so:devel/libglade2
 libglade2_USE_GNOME_IMPL=libxml2 gtk20
 
-libxml2_BUILD_DEPENDS=	xml2-config:textproc/libxml2
-libxml2_LIB_DEPENDS=	libxml2.so:textproc/libxml2
-libxml2_RUN_DEPENDS=	xml2-config:textproc/libxml2
+libxml2_BUILD_DEPENDS=	xml2-config:textproc/libxml2-core
+libxml2_LIB_DEPENDS=	libxml2.so:textproc/libxml2-core
+libxml2_RUN_DEPENDS=	libxml2>=0:textproc/libxml2
 
 libxslt_BUILD_DEPENDS=	xsltproc:textproc/libxslt
 libxslt_LIB_DEPENDS=	libxslt.so:textproc/libxslt
diff --git a/UPDATING b/UPDATING
index 5436434bf7a8..bbc032854c7d 100644
--- a/UPDATING
+++ b/UPDATING
@@ -5,6 +5,18 @@ they are unavoidable.
 You should get into the habit of checking this file for changes each time
 you update your ports collection, before attempting any port upgrades.
 
+20260126:
+  AFFECTS: users of textproc/libxml2
+  AUTHOR: mandree@FreeBSD.org
+
+  The libxml2 port has been split in two, to avoid a new circular dependency
+  through libxslt when building the documentation.  The libxml2-core port
+  now contains the library and libxml2 the documentation.
+  This should be mostly automatically handled by the framework;
+  if installing libxml2-core now causes trouble in ports,
+  build libxml2-core, then pkg delete -f libxml2, then install
+  libxml2-core, and then proceed with your updates.
+
 20260125:
   AFFECTS: users of dns/ddclient
   AUTHOR: mjl@luckie.org.nz
diff --git a/textproc/Makefile b/textproc/Makefile
index aa0076e919f3..71d589134798 100644
--- a/textproc/Makefile
+++ b/textproc/Makefile
@@ -431,6 +431,7 @@
     SUBDIR += libxml++26
     SUBDIR += libxml++30
     SUBDIR += libxml2
+    SUBDIR += libxml2-core
     SUBDIR += libxml2-python
     SUBDIR += libxmlb
     SUBDIR += libxmlbird
diff --git a/textproc/libxml2-core/Makefile b/textproc/libxml2-core/Makefile
new file mode 100644
index 000000000000..fa92ce1c6945
--- /dev/null
+++ b/textproc/libxml2-core/Makefile
@@ -0,0 +1,67 @@
+PORTNAME?=	libxml2
+DISTVERSION=	2.15.1
+CATEGORIES?=	textproc gnome
+MASTER_SITES=	GNOME
+PKGNAMESUFFIX?=	-core
+DISTNAME=	libxml2-${DISTVERSION}
+DIST_SUBDIR=	gnome
+
+MAINTAINER=	desktop@FreeBSD.org
+COMMENT?=	XML parser library for GNOME
+WWW=		http://xmlsoft.org/
+
+LICENSE=	MIT
+
+# Upstream recommends autotools on Unix-like systems
+USES+=			cpe gmake iconv libtool localbase pathfix pkgconfig \
+			tar:xz
+CPE_VENDOR=		xmlsoft
+USE_LDCONFIG=		yes
+GNU_CONFIGURE=		yes
+# Don't build with Python support unless requested
+CONFIGURE_ARGS+=	--sysconfdir=${PREFIX}/share/
+
+PATCH_STRIP=		-p1
+
+INSTALL_TARGET=	install-strip
+TEST_TARGET=	check
+
+OPTIONS_DEFINE=		DOCS ICU PYTHON READLINE STATIC THREAD_ALLOC
+OPTIONS_GROUP=		LEGACY
+OPTIONS_GROUP_LEGACY=	HTTP ZLIB
+OPTIONS_DEFAULT=	HTTP READLINE STATIC ZLIB
+OPTIONS_SUB=		yes
+# note: no DOCS - built by ../libxml2 instead, to
+# avoid a circular dependency. libxml2 2.15.0 requires
+# xsltproc (provided by libxslt, which depends on libxml2)
+OPTIONS_EXCLUDE?=	DOCS PYTHON
+
+HTTP_DESC=		HTTP support
+LEGACY_DESC=		Enable legacy API compatibility
+READLINE_DESC=		History for xmllint
+THREAD_ALLOC_DESC=	Per-thread memory (DEVELOPERS ONLY!)
+
+DOCS_BUILD_DEPENDS=		doxygen:devel/doxygen
+DOCS_CONFIGURE_WITH=		docs
+HTTP_CONFIGURE_WITH=		http
+ICU_LIB_DEPENDS=		libicuuc.so:devel/icu
+ICU_CONFIGURE_WITH=		icu
+PYTHON_CONFIGURE_WITH=		python=${PYTHON_CMD}
+PYTHON_BUILD_DEPENDS=		doxygen:devel/doxygen
+READLINE_LIB_DEPENDS=		libreadline.so:devel/readline
+READLINE_CONFIGURE_WITH=	history readline
+STATIC_CONFIGURE_ENABLE=	static
+THREAD_ALLOC_CONFIGURE_WITH=	thread-alloc
+ZLIB_CONFIGURE_WITH=		zlib
+
+.include <bsd.port.options.mk>
+
+.if empty(PORT_OPTIONS:MDOCS)
+CONFIGURE_ARGS+=	--without-docs
+.endif
+
+.if empty(PORT_OPTIONS:MPYTHON)
+CONFIGURE_ARGS+=	--without-python
+.endif
+
+.include <bsd.port.mk>
diff --git a/textproc/libxml2-core/distinfo b/textproc/libxml2-core/distinfo
new file mode 100644
index 000000000000..95248fd9047b
--- /dev/null
+++ b/textproc/libxml2-core/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1767355197
+SHA256 (gnome/libxml2-2.15.1.tar.xz) = c008bac08fd5c7b4a87f7b8a71f283fa581d80d80ff8d2efd3b26224c39bc54c
+SIZE (gnome/libxml2-2.15.1.tar.xz) = 2004588
diff --git a/textproc/libxml2-core/files/patch-xpath.c b/textproc/libxml2-core/files/patch-xpath.c
new file mode 100644
index 000000000000..fbc161d8d1d2
--- /dev/null
+++ b/textproc/libxml2-core/files/patch-xpath.c
@@ -0,0 +1,130 @@
+From 0e50b31902cdb1eb242eb361c123e9e033b2af87 Mon Sep 17 00:00:00 2001
+From: Daniel Garcia Moreno <daniel.garcia@suse.com>
+Date: Wed, 8 Oct 2025 09:18:51 +0200
+Subject: [PATCH] Ignore next/prev of documents when traversing XPath
+
+See https://gitlab.gnome.org/GNOME/libxml2/-/issues/996
+---
+ xpath.c | 66 ++++++++++++++++++++++++++++++++++++++++++---------------
+ 1 file changed, 49 insertions(+), 17 deletions(-)
+
+diff --git a/xpath.c b/xpath.c
+index b8e197cc9..442ce02f8 100644
+--- a/xpath.c
++++ b/xpath.c
+@@ -6558,12 +6558,18 @@ xmlNode *
+ xmlXPathNextFollowingSibling(xmlXPathParserContext *ctxt, xmlNode *cur) {
+     if ((ctxt == NULL) || (ctxt->context == NULL)) return(NULL);
+     if ((ctxt->context->node->type == XML_ATTRIBUTE_NODE) ||
+-	(ctxt->context->node->type == XML_NAMESPACE_DECL))
+-	return(NULL);
++        (ctxt->context->node->type == XML_NAMESPACE_DECL))
++        return(NULL);
++
+     if (cur == (xmlNodePtr) ctxt->context->doc)
+         return(NULL);
++
+     if (cur == NULL)
+-        return(ctxt->context->node->next);
++        cur = ctxt->context->node;
++
++    if (cur->type == XML_DOCUMENT_NODE)
++        return(NULL);
++
+     return(cur->next);
+ }
+ 
+@@ -6581,17 +6587,23 @@ xmlNode *
+ xmlXPathNextPrecedingSibling(xmlXPathParserContext *ctxt, xmlNode *cur) {
+     if ((ctxt == NULL) || (ctxt->context == NULL)) return(NULL);
+     if ((ctxt->context->node->type == XML_ATTRIBUTE_NODE) ||
+-	(ctxt->context->node->type == XML_NAMESPACE_DECL))
+-	return(NULL);
++        (ctxt->context->node->type == XML_NAMESPACE_DECL))
++        return(NULL);
++
+     if (cur == (xmlNodePtr) ctxt->context->doc)
+         return(NULL);
+-    if (cur == NULL)
+-        return(ctxt->context->node->prev);
+-    if ((cur->prev != NULL) && (cur->prev->type == XML_DTD_NODE)) {
+-	cur = cur->prev;
+-	if (cur == NULL)
+-	    return(ctxt->context->node->prev);
++
++    if (cur == NULL) {
++        cur = ctxt->context->node;
++    } else if ((cur->prev != NULL) && (cur->prev->type == XML_DTD_NODE)) {
++        cur = cur->prev;
++        if (cur == NULL)
++            cur = ctxt->context->node;
+     }
++
++    if (cur->type == XML_DOCUMENT_NODE)
++        return(NULL);
++
+     return(cur->prev);
+ }
+ 
+@@ -6626,14 +6638,27 @@ xmlXPathNextFollowing(xmlXPathParserContext *ctxt, xmlNode *cur) {
+             cur = (xmlNodePtr) ns->next;
+         }
+     }
+-    if (cur == NULL) return(NULL) ; /* ERROR */
+-    if (cur->next != NULL) return(cur->next) ;
++
++    /* ERROR */
++    if (cur == NULL)
++        return(NULL);
++
++    if (cur->type == XML_DOCUMENT_NODE)
++        return(NULL);
++
++    if (cur->next != NULL)
++        return(cur->next);
++
+     do {
+         cur = cur->parent;
+-        if (cur == NULL) break;
+-        if (cur == (xmlNodePtr) ctxt->context->doc) return(NULL);
+-        if (cur->next != NULL) return(cur->next);
++        if (cur == NULL)
++            break;
++        if (cur == (xmlNodePtr) ctxt->context->doc)
++            return(NULL);
++        if (cur->next != NULL && cur->type != XML_DOCUMENT_NODE)
++            return(cur->next);
+     } while (cur != NULL);
++
+     return(cur);
+ }
+ 
+@@ -6746,10 +6771,13 @@ xmlXPathNextPrecedingInternal(xmlXPathParserContextPtr ctxt,
+         }
+         ctxt->ancestor = cur->parent;
+     }
+-    if (cur->type == XML_NAMESPACE_DECL)
++
++    if (cur->type == XML_NAMESPACE_DECL || cur->type == XML_DOCUMENT_NODE)
+         return(NULL);
++
+     if ((cur->prev != NULL) && (cur->prev->type == XML_DTD_NODE))
+ 	cur = cur->prev;
++
+     while (cur->prev == NULL) {
+         cur = cur->parent;
+         if (cur == NULL)
+@@ -6760,6 +6788,10 @@ xmlXPathNextPrecedingInternal(xmlXPathParserContextPtr ctxt,
+             return (cur);
+         ctxt->ancestor = cur->parent;
+     }
++
++    if (cur->type == XML_DOCUMENT_NODE)
++        return(NULL);
++
+     cur = cur->prev;
+     while (cur->last != NULL)
+         cur = cur->last;
+-- 
+GitLab
+
diff --git a/textproc/libxml2-core/pkg-descr b/textproc/libxml2-core/pkg-descr
new file mode 100644
index 000000000000..1c027bb7aa2c
--- /dev/null
+++ b/textproc/libxml2-core/pkg-descr
@@ -0,0 +1,4 @@
+Libxml2 is the XML C parser and toolkit developed for the Gnome project (but
+usable outside of the Gnome platform).  XML itself is a metalanguage to design
+markup languages, i.e. text language where semantic and structure are added to
+the content using extra "markup" information enclosed between angle brackets.
diff --git a/textproc/libxml2-core/pkg-plist b/textproc/libxml2-core/pkg-plist
new file mode 100644
index 000000000000..4cc3400bdb51
--- /dev/null
+++ b/textproc/libxml2-core/pkg-plist
@@ -0,0 +1,55 @@
+bin/xml2-config
+bin/xmlcatalog
+bin/xmllint
+include/libxml2/libxml/HTMLparser.h
+include/libxml2/libxml/HTMLtree.h
+include/libxml2/libxml/SAX.h
+include/libxml2/libxml/SAX2.h
+include/libxml2/libxml/c14n.h
+include/libxml2/libxml/catalog.h
+include/libxml2/libxml/chvalid.h
+include/libxml2/libxml/debugXML.h
+include/libxml2/libxml/dict.h
+include/libxml2/libxml/encoding.h
+include/libxml2/libxml/entities.h
+include/libxml2/libxml/globals.h
+include/libxml2/libxml/hash.h
+include/libxml2/libxml/list.h
+include/libxml2/libxml/nanoftp.h
+include/libxml2/libxml/nanohttp.h
+include/libxml2/libxml/parser.h
+include/libxml2/libxml/parserInternals.h
+include/libxml2/libxml/pattern.h
+include/libxml2/libxml/relaxng.h
+include/libxml2/libxml/schemasInternals.h
+include/libxml2/libxml/schematron.h
+include/libxml2/libxml/threads.h
+include/libxml2/libxml/tree.h
+include/libxml2/libxml/uri.h
+include/libxml2/libxml/valid.h
+include/libxml2/libxml/xinclude.h
+include/libxml2/libxml/xlink.h
+include/libxml2/libxml/xmlIO.h
+include/libxml2/libxml/xmlautomata.h
+include/libxml2/libxml/xmlerror.h
+include/libxml2/libxml/xmlexports.h
+include/libxml2/libxml/xmlmemory.h
+include/libxml2/libxml/xmlmodule.h
+include/libxml2/libxml/xmlreader.h
+include/libxml2/libxml/xmlregexp.h
+include/libxml2/libxml/xmlsave.h
+include/libxml2/libxml/xmlschemas.h
+include/libxml2/libxml/xmlschemastypes.h
+include/libxml2/libxml/xmlstring.h
+include/libxml2/libxml/xmlunicode.h
+include/libxml2/libxml/xmlversion.h
+include/libxml2/libxml/xmlwriter.h
+include/libxml2/libxml/xpath.h
+include/libxml2/libxml/xpathInternals.h
+include/libxml2/libxml/xpointer.h
+lib/cmake/libxml2/libxml2-config.cmake
+%%STATIC%%lib/libxml2.a
+lib/libxml2.so
+lib/libxml2.so.16
+lib/libxml2.so.16.1.1
+libdata/pkgconfig/libxml-2.0.pc
diff --git a/textproc/libxml2-python/Makefile b/textproc/libxml2-python/Makefile
index 9a6133ac7414..822014e32f08 100644
--- a/textproc/libxml2-python/Makefile
+++ b/textproc/libxml2-python/Makefile
@@ -2,31 +2,50 @@ PORTNAME=	libxml2-python
 PORTREVISION=	0
 CATEGORIES=	textproc gnome python
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+PKGNAMESUFFIX=	# blank, to override the one in the master port
 
 COMMENT=	Python interface for XML parser library for GNOME
-MASTERDIR=	${.CURDIR}/../libxml2
 
+DEPRECATED=	Using these bindings is discouraged by upstream, see https://gitlab.gnome.org/GNOME/libxml2/-/issues/891 and https://gitlab.gnome.org/GNOME/libxml2/-/issues/924
+EXPIRATION_DATE=2026-03-31
+
+# doxygen already listed in libxml2-core/Makefile
 BUILD_DEPENDS+=	${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR}
+RUN_DEPENDS=	libxml2=${PORTVERSION}:textproc/libxml2 # docs
 
-USES+=		gettext-runtime gnome python shebangfix
-USE_GNOME=	libxml2
+USES+=		gnome localbase python shebangfix
+USE_GNOME=	libxml2 # pulls in libxml2-core
 USE_PYTHON=	autoplist distutils # generator.py not found in PEP-517 environment
 SHEBANG_GLOB=	*.py*
 
-OPTIONS_EXCLUDE=	${OPTIONS_DEFINE} ${OPTIONS_GROUP_LEGACY}
+# work around Makefile not reliably defining doxygen --without-docs but --with-python
+MAKE_ARGS+=	DOXYGEN=${LOCALBASE}/bin/doxygen
 
-# Tell master port we're a slave port
-LIBXML2_SLAVE=	python
-# Grab pkg-descr from slave port
-DESCR=		${.CURDIR}/pkg-descr
+# CPPFLAGS addition required so that this port can build with an older libxml2 installed
+CPPFLAGS+=	-I${WRKSRC}/include
+
+DOCSDIR=	${PREFIX}/share/doc/libxml2-python
+EXAMPLESDIR=	${PREFIX}/share/examples/libxml2-python
+MASTERDIR=	${.CURDIR}/../libxml2-core
 
 BUILD_WRKSRC=	${WRKSRC}/python
 INSTALL_WRKSRC=	${BUILD_WRKSRC}
+TEST_WRKSRC=	${BUILD_WRKSRC}
+
+# Grab pkg-descr from slave port
+DESCR=		${.CURDIR}/pkg-descr
 
 # Don't append pkg-plist from master port
 PLIST=
 
-DOCSDIR=	${PREFIX}/share/doc/libxml2-python
-EXAMPLESDIR=	${PREFIX}/share/examples/libxml2-python
+OPTIONS_EXCLUDE=	${OPTIONS_DEFINE:NPYTHON} ${OPTIONS_GROUP_LEGACY}
+OPTIONS_SLAVE=		PYTHON
+
+pre-build:
+	( cd ${WRKSRC}     && ${DO_MAKE_BUILD} libxml2.la && \
+	  cd ${WRKSRC}/doc && ${DO_MAKE_BUILD} )
+
+post-install:
+	${STRIP_CMD} ${STAGEDIR}${PYTHON_LIBDIR}/site-packages/libxml2mod${PYTHON_SOABI}.so
 
 .include "${MASTERDIR}/Makefile"
diff --git a/textproc/libxml2/Makefile b/textproc/libxml2/Makefile
index 7273d2fce028..dda5d8e6cdca 100644
--- a/textproc/libxml2/Makefile
+++ b/textproc/libxml2/Makefile
@@ -1,67 +1,55 @@
-PORTNAME?=	libxml2
-DISTVERSION=	2.14.6
-CATEGORIES?=	textproc gnome
-MASTER_SITES=	GNOME
-DISTNAME=	libxml2-${DISTVERSION}
-DIST_SUBDIR=	gnome
+PORTNAME=	libxml2
+PORTREVISION=	0
+CATEGORIES=	textproc gnome python
+PKGNAMESUFFIX=
 
-MAINTAINER=	desktop@FreeBSD.org
-COMMENT?=	XML parser library for GNOME
-WWW=		http://xmlsoft.org/
+COMMENT=	Documentation package for XML parser library for GNOME
 
-LICENSE=	MIT
+BUILD_DEPENDS=	docbook-xsl>=0:textproc/docbook-xsl \
+		libxml2-core=${PORTVERSION}:textproc/libxml2-core \
+		xsltproc:textproc/libxslt
+# not an actual dependency but required to keep the many
+# other ports that declare a depends on textproc/libxml2 building
+LIB_DEPENDS=	libxml2.so:textproc/libxml2-core
 
-# Upstream recommends autotools on Unix-like systems
-USES+=		cpe gmake iconv libtool localbase pathfix pkgconfig tar:xz
-CPE_VENDOR=	xmlsoft
-USE_LDCONFIG=	yes
-GNU_CONFIGURE=	yes
-# Don't build with Python support unless requested
-CONFIGURE_ARGS+=	--sysconfdir=${PREFIX}/share/ \
-			--with-lzma=/usr \
-			--${LIBXML2_SLAVE:Dwith:Uwithout}-python${LIBXML2_SLAVE:D=${PYTHON_CMD}:U}
+USES=		shebangfix
 
-INSTALL_TARGET=	install-strip
-TEST_TARGET=	check
+DOCSDIR=	${PREFIX}/share/doc/libxml2-docs
+EXAMPLESDIR=	${PREFIX}/share/examples/libxml2-docs
+FILESDIR=	${.CURDIR}/files
+MASTERDIR=	${.CURDIR}/../libxml2-core
 
-OPTIONS_DEFINE=	DOCS ICU READLINE STATIC THREAD_ALLOC
-OPTIONS_GROUP=	LEGACY
-OPTIONS_GROUP_LEGACY=	HTTP LZMA ZLIB
-OPTIONS_DEFAULT=	HTTP LZMA READLINE STATIC ZLIB
-OPTIONS_SUB=		yes
+NO_ARCH=	yes
 
-HTTP_DESC=		HTTP support
-LEGACY_DESC=		Enable legacy API compatibility
-READLINE_DESC=		History for xmllint
-THREAD_ALLOC_DESC=	Per-thread memory (DEVELOPERS ONLY!)
+BUILD_WRKSRC=	${WRKSRC}/doc
+INSTALL_WRKSRC=	${BUILD_WRKSRC}
+TEST_WRKSRC=	${BUILD_WRKSRC}
 
-HTTP_CONFIGURE_WITH=		http
-ICU_LIB_DEPENDS=		libicuuc.so:devel/icu
-ICU_CONFIGURE_WITH=		icu
-LZMA_CONFIGURE_WITH=		lzma
-READLINE_LIB_DEPENDS=		libreadline.so:devel/readline
-READLINE_CONFIGURE_WITH=	history \
-				readline
-STATIC_CONFIGURE_ENABLE=	static
-THREAD_ALLOC_CONFIGURE_WITH=	thread-alloc
-ZLIB_CONFIGURE_WITH=		zlib
+DESCR=		${.CURDIR}/pkg-descr
+PLIST=		${.CURDIR}/pkg-plist
+PORTDOCS=	*
 
-post-patch:
-	@${REINPLACE_CMD} -e \
-		's|/etc/xml/catalog|${LOCALBASE}/share/xml/catalog|g; \
-		 s|/etc/sgml/catalog|${LOCALBASE}/share/sgml/catalog|g' \
-		${WRKSRC}/doc/xmllint.1
+OPTIONS_EXCLUDE=	${OPTIONS_DEFINE:NDOCS} ${OPTIONS_GROUP_LEGACY}
+OPTIONS_SLAVE=		DOCS
+
+pre-everything::
+	@if ${PKG_INFO} -e ${PORTNAME} && \
+	    test "<" = $$(${PKG_VERSION} -t $$(${PKG_QUERY} %v $$(${PKG_INFO} -q -O ${PORTNAME})) 2.15) ; then \
+	        ${ECHO_CMD} "=== libxml2 < 2.15 detected, you must deinstall first ===" ; \
+		${ECHO_CMD} "=== because you cannot install libxml2-core otherwise ===" ; \
+		${ECHO_CMD} "=== In case of more trouble, try make clean-depends.  ===" ; \
+		exit 1; \
+	fi
 
 post-install:
-.if !defined(LIBXML2_SLAVE)
 # Documentation should be in DOCSDIR
-	@${MV} ${STAGEDIR}${PREFIX}/share/gtk-doc/html/libxml2 \
+	${MKDIR} ${STAGEDIR}${DOCSDIR}/devhelp
+	${MV} ${STAGEDIR}${PREFIX}/share/doc/libxml2/html/ \
 		${STAGEDIR}${DOCSDIR}/devhelp
-	@${RM} -r ${STAGEDIR}${PREFIX}/share/gtk-doc
+	${RM} -rv ${STAGEDIR}${PREFIX}/share/gtk-doc
+	${MV} ${STAGEDIR}${PREFIX}/share/doc/libxml2 \
+		${STAGEDIR}${DOCSDIR}
 # Install remaining documentation that's not connected to autotools
 	${INSTALL_MAN} ${WRKSRC}/doc/*.html ${STAGEDIR}${DOCSDIR}
-.else
-	${STRIP_CMD} ${STAGEDIR}${PYTHON_LIBDIR}/site-packages/libxml2mod${PYTHON_SOABI}.so
-.endif
 
-.include <bsd.port.mk>
+.include "${MASTERDIR}/Makefile"
diff --git a/textproc/libxml2/distinfo b/textproc/libxml2/distinfo
deleted file mode 100644
index 59444a4c3340..000000000000
--- a/textproc/libxml2/distinfo
+++ /dev/null
@@ -1,3 +0,0 @@
-TIMESTAMP = 1759693474
-SHA256 (gnome/libxml2-2.14.6.tar.xz) = 7ce458a0affeb83f0b55f1f4f9e0e55735dbfc1a9de124ee86fb4a66b597203a
-SIZE (gnome/libxml2-2.14.6.tar.xz) = 2327580
diff --git a/textproc/libxml2/pkg-descr b/textproc/libxml2/pkg-descr
index 1c027bb7aa2c..fe83bd8e42d7 100644
--- a/textproc/libxml2/pkg-descr
+++ b/textproc/libxml2/pkg-descr
@@ -1,4 +1 @@
-Libxml2 is the XML C parser and toolkit developed for the Gnome project (but
-usable outside of the Gnome platform).  XML itself is a metalanguage to design
-markup languages, i.e. text language where semantic and structure are added to
-the content using extra "markup" information enclosed between angle brackets.
+Documentation package for XML parser library for GNOME
diff --git a/textproc/libxml2/pkg-plist b/textproc/libxml2/pkg-plist
index 81916b7a2cf3..8b50b6b9a3f8 100644
--- a/textproc/libxml2/pkg-plist
+++ b/textproc/libxml2/pkg-plist
@@ -1,114 +1,3 @@
-bin/xml2-config
-bin/xmlcatalog
-bin/xmllint
-include/libxml2/libxml/HTMLparser.h
-include/libxml2/libxml/HTMLtree.h
-include/libxml2/libxml/SAX.h
-include/libxml2/libxml/SAX2.h
-include/libxml2/libxml/c14n.h
-include/libxml2/libxml/catalog.h
-include/libxml2/libxml/chvalid.h
-include/libxml2/libxml/debugXML.h
-include/libxml2/libxml/dict.h
-include/libxml2/libxml/encoding.h
-include/libxml2/libxml/entities.h
-include/libxml2/libxml/globals.h
-include/libxml2/libxml/hash.h
-include/libxml2/libxml/list.h
-include/libxml2/libxml/nanoftp.h
-include/libxml2/libxml/nanohttp.h
-include/libxml2/libxml/parser.h
-include/libxml2/libxml/parserInternals.h
-include/libxml2/libxml/pattern.h
-include/libxml2/libxml/relaxng.h
-include/libxml2/libxml/schemasInternals.h
-include/libxml2/libxml/schematron.h
-include/libxml2/libxml/threads.h
-include/libxml2/libxml/tree.h
-include/libxml2/libxml/uri.h
-include/libxml2/libxml/valid.h
-include/libxml2/libxml/xinclude.h
-include/libxml2/libxml/xlink.h
-include/libxml2/libxml/xmlIO.h
-include/libxml2/libxml/xmlautomata.h
-include/libxml2/libxml/xmlerror.h
-include/libxml2/libxml/xmlexports.h
-include/libxml2/libxml/xmlmemory.h
-include/libxml2/libxml/xmlmodule.h
-include/libxml2/libxml/xmlreader.h
-include/libxml2/libxml/xmlregexp.h
-include/libxml2/libxml/xmlsave.h
-include/libxml2/libxml/xmlschemas.h
-include/libxml2/libxml/xmlschemastypes.h
-include/libxml2/libxml/xmlstring.h
-include/libxml2/libxml/xmlunicode.h
-include/libxml2/libxml/xmlversion.h
-include/libxml2/libxml/xmlwriter.h
-include/libxml2/libxml/xpath.h
-include/libxml2/libxml/xpathInternals.h
-include/libxml2/libxml/xpointer.h
-lib/cmake/libxml2/libxml2-config.cmake
-%%STATIC%%lib/libxml2.a
-lib/libxml2.so
-lib/libxml2.so.16
-lib/libxml2.so.16.0.6
-libdata/pkgconfig/libxml-2.0.pc
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/general.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/home.png
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/index.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/left.png
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-HTMLparser.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-HTMLtree.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-SAX.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-SAX2.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-c14n.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-catalog.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-chvalid.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-debugXML.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-dict.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-encoding.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-entities.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-globals.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-hash.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-list.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-nanoftp.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-nanohttp.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-parser.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-parserInternals.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-pattern.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-relaxng.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-schemasInternals.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-schematron.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-threads.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-tree.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-uri.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-valid.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xinclude.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xlink.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xmlIO.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xmlautomata.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xmlerror.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xmlexports.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xmlmemory.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xmlmodule.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xmlreader.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xmlregexp.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xmlsave.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xmlschemas.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xmlschemastypes.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xmlstring.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xmlunicode.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xmlversion.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xmlwriter.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xpath.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xpathInternals.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-xpointer.html
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2.devhelp2
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/right.png
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/style.css
-%%PORTDOCS%%%%DOCSDIR%%/devhelp/up.png
-%%PORTDOCS%%%%DOCSDIR%%/xmlcatalog.html
-%%PORTDOCS%%%%DOCSDIR%%/xmllint.html
-share/man/man1/xml2-config.1.gz
-share/man/man1/xmlcatalog.1.gz
-share/man/man1/xmllint.1.gz
+%%PORTDOCS%%share/man/man1/xml2-config.1.gz
+%%PORTDOCS%%share/man/man1/xmlcatalog.1.gz
+%%PORTDOCS%%share/man/man1/xmllint.1.gz


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6977e126.34120.3ff16167>