git: a13ec21cd733 - main - textproc/libxml2: Update to 2.9.13 and migrate to CMake

From: Daniel Engberg <diizzy_at_FreeBSD.org>
Date: Fri, 25 Mar 2022 17:15:02 UTC
The branch main has been updated by diizzy:

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

commit a13ec21cd733f67a9fc0dc00ab45268bdc236246
Author:     Daniel Engberg <diizzy@FreeBSD.org>
AuthorDate: 2022-03-25 16:51:30 +0000
Commit:     Daniel Engberg <diizzy@FreeBSD.org>
CommitDate: 2022-03-25 17:14:39 +0000

    textproc/libxml2: Update to 2.9.13 and migrate to CMake
    
    Depend on ICU and (lib)readline to follow other distros
    
    Changelog: https://gitlab.gnome.org/GNOME/libxml2/-/tags/v2.9.13
    
    I'd like to thank both tcberner and mandree for reviewing,
    suggesting improvements and helping out in general. I'd also like
    thank antoine for doing exp-runs.
    
    PR:             262288
    Reviewed by:    tcberner, mandree
    Approved by:    desktop (tcberner)
    Differential Revision:  https://reviews.freebsd.org/D34338
    Exp-run by:     antoine
---
 textproc/libxml2/Makefile                          |  83 +++---
 textproc/libxml2/distinfo                          |   6 +-
 textproc/libxml2/files/LICENSE.TRIO                |  12 -
 textproc/libxml2/files/extra-patch-docs            |  11 +
 textproc/libxml2/files/patch-CMakeLists.txt        |  29 ++
 textproc/libxml2/files/patch-Makefile.in           |  47 ----
 textproc/libxml2/files/patch-config.h.in           |  11 -
 textproc/libxml2/files/patch-configure             |  11 -
 ...git-01-85b1792e37b131e7a51af98a37f92472e8de5f3f | 211 ---------------
 ...git-01-b66ce0bba83febe2f4d119097a0391f5d886c3b4 |  86 ++++++
 ...git-02-13ad8736d294536da4cbcd70a96b0a2fbf47070c |  46 ----
 ...git-03-3e1aad4fe584747fd7d17cc7b2863a78e2d21a77 |  31 ---
 ...git-04-92d9ab4c28842a09ca2b76d3ff2f933e01b6cd6f |  43 ---
 .../files/patch-libxml-2.0-uninstalled.pc.in       |   9 -
 textproc/libxml2/files/patch-libxml-2.0.pc.in      |  10 +-
 textproc/libxml2/files/patch-python_Makefile.in    |  20 --
 .../libxml2/files/patch-python_tests_Makefile.in   |  11 -
 textproc/libxml2/files/patch-xml2Conf.sh.in        |  15 --
 textproc/libxml2/pkg-plist                         | 296 ++++++++++++++++++++-
 textproc/py-libxml2/Makefile                       |  42 +--
 20 files changed, 482 insertions(+), 548 deletions(-)

diff --git a/textproc/libxml2/Makefile b/textproc/libxml2/Makefile
index 98b4e29344f4..4c35a6fa4eb7 100644
--- a/textproc/libxml2/Makefile
+++ b/textproc/libxml2/Makefile
@@ -1,81 +1,60 @@
 # Created by: Yukihiro Nakai <Nakai@technologist.com>
 
 PORTNAME=	libxml2
-DISTVERSION=	2.9.12
+DISTVERSION=	2.9.13
 PORTREVISION?=	0
 CATEGORIES?=	textproc gnome
-MASTER_SITES=	http://xmlsoft.org/sources/
+MASTER_SITES=	GNOME/sources/${PORTNAME}/${DISTVERSION:R}/
 DIST_SUBDIR=	gnome2
 
-MAINTAINER?=	desktop@FreeBSD.org
+MAINTAINER=	desktop@FreeBSD.org
 COMMENT?=	XML parser library for GNOME
 
-LICENSE=	MIT TRIO
-LICENSE_COMB=	multi
-LICENSE_NAME_TRIO=	Trio License
-LICENSE_FILE_MIT=	${WRKSRC}/COPYING
-LICENSE_FILE_TRIO=	${FILESDIR}/LICENSE.TRIO
-LICENSE_PERMS_TRIO=	dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
+LICENSE=	MIT
+
+USES+=		cmake cpe iconv localbase:ldflags pkgconfig tar:xz
 
-USES+=		compiler cpe iconv libtool pathfix pkgconfig shebangfix
-GNU_CONFIGURE=	yes
 CPE_VENDOR=	xmlsoft
-SHEBANG_FILES=	*.py */*.py */*/*.py
 USE_LDCONFIG=	yes
 
-INSTALL_TARGET=	install-strip
-TEST_TARGET=	check
-
-CONFIGURE_ARGS?=--with-iconv=${ICONV_PREFIX} \
-		--with-html-dir=${PREFIX}/share/doc \
-		--with-html-subdir=${PORTNAME} \
-		--without-icu \
-		--with-lzma=/usr \
-		--without-python
-
 PLIST_SUB+=	LIBVERSION=${DISTVERSION}
 
-.if !defined(MASTERDIR)
+# Don't build with Python support unless requested
+CMAKE_${LIBXML2_SLAVE:DON:UOFF}=LIBXML2_WITH_PYTHON
 
-OPTIONS_DEFINE=		MEM_DEBUG SCHEMA THREAD_ALLOC THREADS VALIDATION \
-			XMLLINT_HIST
-OPTIONS_DEFAULT=	SCHEMA VALIDATION THREADS
+OPTIONS_DEFINE=		DOCS ICU MEM_DEBUG READLINE TEST THREAD_ALLOC
+OPTIONS_DEFAULT=	ICU READLINE
+OPTIONS_SUB=		yes
 
 MEM_DEBUG_DESC=		Memory debugging (DEVELOPERS ONLY!)
-SCHEMA_DESC=		XML schema support
 THREAD_ALLOC_DESC=	Per-thread memory (DEVELOPERS ONLY!)
-VALIDATION_DESC=	Validation support
-XMLLINT_HIST_DESC=	History for xmllint
-
-MEM_DEBUG_CONFIGURE_WITH=	mem-debug
-SCHEMA_CONFIGURE_WITH=		schemas
-THREAD_ALLOC_CONFIGURE_WITH=	thread-alloc
-THREADS_CONFIGURE_WITH=		threads
-VALIDATION_CONFIGURE_OFF=	--without-valid
-XMLLINT_HIST_CONFIGURE_WITH=	history
-
-.endif # !defined(MASTERDIR)
-
-.if !defined(MASTERDIR)
-post-install:
-	@${RM} -r ${STAGEDIR}${PREFIX}/share/gtk-doc
-.endif
-
-.include <bsd.port.pre.mk>
+READLINE_DESC=		History for xmllint
+
+DOCS_EXTRA_PATCHES_OFF=	${PATCHDIR}/extra-patch-docs
+ICU_LIB_DEPENDS=	libicudata.so:devel/icu
+ICU_CMAKE_BOOL=		LIBXML2_WITH_ICU
+MEM_DEBUG_CAKE_BOOL=	LIBXML2_WITH_MEM_DEBUG
+READLINE_LIB_DEPENDS=	libreadline.so:devel/readline
+READLINE_CMAKE_OFF=	-DHAVE_LIBHISTORY=false -DHAVE_LIBREADLINE=false
+THREAD_ALLOC_CMAKE_BOOL=LIBXML2_WITH_THREAD_ALLOC
+TEST_CMAKE_BOOL=	LIBXML2_WITH_TESTS
+TEST_TEST_TARGET=	test
 
 post-patch:
-.for d in . doc doc/devhelp doc/examples
-	@${REINPLACE_CMD} -e '/^install-data-am:/ s|install-data-local||' \
-		${WRKSRC}/${d}/Makefile.in
-.endfor
 .for f in catalog.c xmlcatalog.c xmllint.c doc/xmllint.1
 	@${REINPLACE_CMD} -e \
 		's|/etc/xml/catalog|${LOCALBASE}/share/xml/catalog|g; \
 		 s|/etc/sgml/catalog|${LOCALBASE}/share/sgml/catalog|g' \
 		${WRKSRC}/${f}
 .endfor
-.if ${CHOSEN_COMPILER_TYPE} == gcc
-	@${REINPLACE_CMD} -e 's/ -Wno-array-bounds//' ${WRKSRC}/configure
+
+.if !defined(LIBXML2_SLAVE)
+post-install:
+	${RM} ${STAGEDIR}${DOCSDIR}/xmlcatalog.1
+	${RM} ${STAGEDIR}${DOCSDIR}/xmllint.1.bak
+	${RM} ${STAGEDIR}${DOCSDIR}/xmllint.1
+	${RLN} ${STAGEDIR}${PREFIX}/lib/libxml2.so.${DISTVERSION} ${STAGEDIR}${PREFIX}/lib/libxml2.so.2
+	${INSTALL_DATA} ${WRKSRC}/libxml.m4 ${STAGEDIR}${PREFIX}/share/aclocal/libxml.m4
 .endif
 
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/textproc/libxml2/distinfo b/textproc/libxml2/distinfo
index 8f7c73e85f0f..110a410ff9e7 100644
--- a/textproc/libxml2/distinfo
+++ b/textproc/libxml2/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1622963062
-SHA256 (gnome2/libxml2-2.9.12.tar.gz) = c8d6681e38c56f172892c85ddc0852e1fd4b53b4209e7f4ebf17f7e2eae71d92
-SIZE (gnome2/libxml2-2.9.12.tar.gz) = 5681632
+TIMESTAMP = 1645459375
+SHA256 (gnome2/libxml2-2.9.13.tar.xz) = 276130602d12fe484ecc03447ee5e759d0465558fbc9d6bd144e3745306ebf0e
+SIZE (gnome2/libxml2-2.9.13.tar.xz) = 3243336
diff --git a/textproc/libxml2/files/LICENSE.TRIO b/textproc/libxml2/files/LICENSE.TRIO
deleted file mode 100644
index 0b8fd55609dd..000000000000
--- a/textproc/libxml2/files/LICENSE.TRIO
+++ /dev/null
@@ -1,12 +0,0 @@
-(Following sentences are from trio.c of libxml2-2.9.4.tar.gz.)
-
-Copyright (C) 1998 Bjorn Reese and Daniel Stenberg.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
-CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
diff --git a/textproc/libxml2/files/extra-patch-docs b/textproc/libxml2/files/extra-patch-docs
new file mode 100644
index 000000000000..c571d9b8184e
--- /dev/null
+++ b/textproc/libxml2/files/extra-patch-docs
@@ -0,0 +1,11 @@
+--- CMakeLists.txt.orig	2022-02-22 00:19:24 UTC
++++ CMakeLists.txt
+@@ -650,7 +650,7 @@ endif()
+ install(FILES libxml.3 DESTINATION ${CMAKE_INSTALL_MANDIR}/man3 COMPONENT documentation)
+ install(FILES doc/xmlcatalog.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 COMPONENT documentation)
+ install(FILES doc/xmllint.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 COMPONENT documentation)
+-install(DIRECTORY doc/ DESTINATION ${CMAKE_INSTALL_DATADIR}/doc/libxml2 COMPONENT documentation PATTERN Makefile.* EXCLUDE)
++#install(DIRECTORY doc/ DESTINATION ${CMAKE_INSTALL_DATADIR}/doc/libxml2 COMPONENT documentation PATTERN Makefile.* EXCLUDE)
+ 
+ configure_package_config_file(
+ 	libxml2-config.cmake.cmake.in libxml2-config.cmake
diff --git a/textproc/libxml2/files/patch-CMakeLists.txt b/textproc/libxml2/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..3f45b65b7331
--- /dev/null
+++ b/textproc/libxml2/files/patch-CMakeLists.txt
@@ -0,0 +1,29 @@
+--- CMakeLists.txt.orig	2022-02-19 16:23:47 UTC
++++ CMakeLists.txt
+@@ -691,7 +691,7 @@ if(LIBXML2_WITH_PYTHON)
+ 	configure_file(python/setup.py.in setup.py @ONLY)
+ endif()
+ 
+-set(XML_INCLUDEDIR "-I\${includedir}/libxml2")
++set(XML_INCLUDEDIR "-I\${includedir}/libxml2 -I\${includedir}")
+ set(XML_LIBDIR "-L\${libdir}")
+ set(XML_LIBS "-lxml2")
+ set(XML_PRIVATE_LIBS "${Z_LIBS} ${LZMA_LIBS} ${THREAD_LIBS} ${ICONV_LIBS} ${ICU_LIBS} ${M_LIBS}")
+@@ -699,14 +699,14 @@ set(XML_PRIVATE_LIBS "${Z_LIBS} ${LZMA_LIBS} ${THREAD_
+ file(RELATIVE_PATH PACKAGE_RELATIVE_PATH "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig" "${CMAKE_INSTALL_PREFIX}")
+ string(REGEX REPLACE "/$" "" PACKAGE_RELATIVE_PATH "${PACKAGE_RELATIVE_PATH}")
+ 
+-set(prefix "\${pcfiledir}/${PACKAGE_RELATIVE_PATH}")
++set(prefix ${CMAKE_INSTALL_PREFIX})
+ set(exec_prefix "\${prefix}")
+ set(libdir "\${prefix}/${CMAKE_INSTALL_LIBDIR}")
+ set(includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
+ configure_file(libxml-2.0.pc.in libxml-2.0.pc @ONLY)
+-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libxml-2.0.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig COMPONENT development)
++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libxml-2.0.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}data/pkgconfig COMPONENT development)
+ 
+-set(prefix "\$(cd \"\$(dirname \"\$0\")\"; pwd -P)/..")
++set(prefix ${CMAKE_INSTALL_PREFIX})
+ configure_file(xml2-config.in xml2-config @ONLY)
+ install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/xml2-config DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT development)
+ 
diff --git a/textproc/libxml2/files/patch-Makefile.in b/textproc/libxml2/files/patch-Makefile.in
deleted file mode 100644
index ad6ff8409168..000000000000
--- a/textproc/libxml2/files/patch-Makefile.in
+++ /dev/null
@@ -1,47 +0,0 @@
---- Makefile.in.orig	2021-06-09 19:53:33 UTC
-+++ Makefile.in
-@@ -760,7 +760,7 @@ man_MANS = xml2-config.1 libxml.3
- m4datadir = $(datadir)/aclocal
- m4data_DATA = libxml.m4
- runtest_SOURCES = runtest.c
--runtest_LDFLAGS = 
-+runtest_LDFLAGS = -pthread
- runtest_DEPENDENCIES = $(DEPS)
- runtest_LDADD = $(BASE_THREAD_LIBS) $(RDL_LIBS) $(LDADDS)
- testrecurse_SOURCES = testrecurse.c
-@@ -808,7 +808,7 @@ testC14N_LDFLAGS = 
- testC14N_DEPENDENCIES = $(DEPS)
- testC14N_LDADD = $(LDADDS)
- testThreads_SOURCES = testThreads.c
--testThreads_LDFLAGS = 
-+testThreads_LDFLAGS = -pthread
- testThreads_DEPENDENCIES = $(DEPS)
- testThreads_LDADD = $(BASE_THREAD_LIBS) $(LDADDS)
- testURI_SOURCES = testURI.c
-@@ -1285,7 +1285,7 @@ am--depfiles: $(am__depfiles_remade)
- @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
- 
- .c.lo:
--@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -fPIC -DPIC -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
- @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@@ -1774,7 +1774,7 @@ check-am: all-am
- 	$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
- check: $(BUILT_SOURCES)
- 	$(MAKE) $(AM_MAKEFLAGS) check-recursive
--all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(SCRIPTS) $(MANS) $(DATA) \
-+all-am: Makefile $(LTLIBRARIES) $(SCRIPTS) $(MANS) $(DATA) \
- 		config.h
- install-binPROGRAMS: install-libLTLIBRARIES
- 
-@@ -1911,7 +1911,7 @@ info: info-recursive
- 
- info-am:
- 
--install-data-am: install-cmakeDATA install-data-local \
-+install-data-am: install-cmakeDATA \
- 	install-m4dataDATA install-man install-pkgconfigDATA
- 
- install-dvi: install-dvi-recursive
diff --git a/textproc/libxml2/files/patch-config.h.in b/textproc/libxml2/files/patch-config.h.in
deleted file mode 100644
index 326dbd57c71e..000000000000
--- a/textproc/libxml2/files/patch-config.h.in
+++ /dev/null
@@ -1,11 +0,0 @@
---- config.h.in.orig	2018-03-05 15:54:17 UTC
-+++ config.h.in
-@@ -1,5 +1,8 @@
- /* config.h.in.  Generated from configure.ac by autoheader.  */
- 
-+/* XXX */
-+#define HAVE_VFSCANF
-+
- /* Type cast for the gethostbyname() argument */
- #undef GETHOSTBYNAME_ARG_CAST
- 
diff --git a/textproc/libxml2/files/patch-configure b/textproc/libxml2/files/patch-configure
deleted file mode 100644
index 59a6d53a2ef6..000000000000
--- a/textproc/libxml2/files/patch-configure
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure.orig	2019-10-30 19:14:22 UTC
-+++ configure
-@@ -15525,6 +15525,8 @@ fi
- 	       fi
- 	   fi
-        ;;
-+       *freebsd*) THREAD_LIBS=""
-+       ;;
-     esac
-     if test "$WITH_THREADS" = "1" ; then
- 	THREAD_CFLAGS="$THREAD_CFLAGS -D_REENTRANT"
diff --git a/textproc/libxml2/files/patch-git-01-85b1792e37b131e7a51af98a37f92472e8de5f3f b/textproc/libxml2/files/patch-git-01-85b1792e37b131e7a51af98a37f92472e8de5f3f
deleted file mode 100644
index 3686454cbd24..000000000000
--- a/textproc/libxml2/files/patch-git-01-85b1792e37b131e7a51af98a37f92472e8de5f3f
+++ /dev/null
@@ -1,211 +0,0 @@
-From 85b1792e37b131e7a51af98a37f92472e8de5f3f Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnhofer@aevum.de>
-Date: Tue, 18 May 2021 20:08:28 +0200
-Subject: [PATCH] Work around lxml API abuse
-
-Make xmlNodeDumpOutput and htmlNodeDumpFormatOutput work with corrupted
-parent pointers. This used to work with the old recursive code but the
-non-recursive rewrite required parent pointers to be set correctly.
-
-Unfortunately, lxml relies on the old behavior and passes subtrees with
-a corrupted structure. Fall back to a recursive function call if an
-invalid parent pointer is detected.
-
-Fixes #255.
----
- HTMLtree.c | 46 ++++++++++++++++++++++++++++------------------
- xmlsave.c  | 31 +++++++++++++++++++++----------
- 2 files changed, 49 insertions(+), 28 deletions(-)
-
-diff --git a/HTMLtree.c b/HTMLtree.c
-index 24434d45..bdd639c7 100644
---- HTMLtree.c
-+++ HTMLtree.c
-@@ -744,7 +744,7 @@ void
- htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
- 	                 xmlNodePtr cur, const char *encoding ATTRIBUTE_UNUSED,
-                          int format) {
--    xmlNodePtr root;
-+    xmlNodePtr root, parent;
-     xmlAttrPtr attr;
-     const htmlElemDesc * info;
- 
-@@ -755,6 +755,7 @@ htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
-     }
- 
-     root = cur;
-+    parent = cur->parent;
-     while (1) {
-         switch (cur->type) {
-         case XML_HTML_DOCUMENT_NODE:
-@@ -762,13 +763,25 @@ htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
-             if (((xmlDocPtr) cur)->intSubset != NULL) {
-                 htmlDtdDumpOutput(buf, (xmlDocPtr) cur, NULL);
-             }
--            if (cur->children != NULL) {
-+            /* Always validate cur->parent when descending. */
-+            if ((cur->parent == parent) && (cur->children != NULL)) {
-+                parent = cur;
-                 cur = cur->children;
-                 continue;
-             }
-             break;
- 
-         case XML_ELEMENT_NODE:
-+            /*
-+             * Some users like lxml are known to pass nodes with a corrupted
-+             * tree structure. Fall back to a recursive call to handle this
-+             * case.
-+             */
-+            if ((cur->parent != parent) && (cur->children != NULL)) {
-+                htmlNodeDumpFormatOutput(buf, doc, cur, encoding, format);
-+                break;
-+            }
-+
-             /*
-              * Get specific HTML info for that node.
-              */
-@@ -817,6 +830,7 @@ htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
-                     (cur->name != NULL) &&
-                     (cur->name[0] != 'p')) /* p, pre, param */
-                     xmlOutputBufferWriteString(buf, "\n");
-+                parent = cur;
-                 cur = cur->children;
-                 continue;
-             }
-@@ -825,9 +839,9 @@ htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
-                 (info != NULL) && (!info->isinline)) {
-                 if ((cur->next->type != HTML_TEXT_NODE) &&
-                     (cur->next->type != HTML_ENTITY_REF_NODE) &&
--                    (cur->parent != NULL) &&
--                    (cur->parent->name != NULL) &&
--                    (cur->parent->name[0] != 'p')) /* p, pre, param */
-+                    (parent != NULL) &&
-+                    (parent->name != NULL) &&
-+                    (parent->name[0] != 'p')) /* p, pre, param */
-                     xmlOutputBufferWriteString(buf, "\n");
-             }
- 
-@@ -842,9 +856,9 @@ htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
-                 break;
-             if (((cur->name == (const xmlChar *)xmlStringText) ||
-                  (cur->name != (const xmlChar *)xmlStringTextNoenc)) &&
--                ((cur->parent == NULL) ||
--                 ((xmlStrcasecmp(cur->parent->name, BAD_CAST "script")) &&
--                  (xmlStrcasecmp(cur->parent->name, BAD_CAST "style"))))) {
-+                ((parent == NULL) ||
-+                 ((xmlStrcasecmp(parent->name, BAD_CAST "script")) &&
-+                  (xmlStrcasecmp(parent->name, BAD_CAST "style"))))) {
-                 xmlChar *buffer;
- 
-                 buffer = xmlEncodeEntitiesReentrant(doc, cur->content);
-@@ -902,13 +916,9 @@ htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
-                 break;
-             }
- 
--            /*
--             * The parent should never be NULL here but we want to handle
--             * corrupted documents gracefully.
--             */
--            if (cur->parent == NULL)
--                return;
--            cur = cur->parent;
-+            cur = parent;
-+            /* cur->parent was validated when descending. */
-+            parent = cur->parent;
- 
-             if ((cur->type == XML_HTML_DOCUMENT_NODE) ||
-                 (cur->type == XML_DOCUMENT_NODE)) {
-@@ -939,9 +949,9 @@ htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
-                     (cur->next != NULL)) {
-                     if ((cur->next->type != HTML_TEXT_NODE) &&
-                         (cur->next->type != HTML_ENTITY_REF_NODE) &&
--                        (cur->parent != NULL) &&
--                        (cur->parent->name != NULL) &&
--                        (cur->parent->name[0] != 'p')) /* p, pre, param */
-+                        (parent != NULL) &&
-+                        (parent->name != NULL) &&
-+                        (parent->name[0] != 'p')) /* p, pre, param */
-                         xmlOutputBufferWriteString(buf, "\n");
-                 }
-             }
-diff --git a/xmlsave.c b/xmlsave.c
-index 61a40459..aedbd5e7 100644
---- xmlsave.c
-+++ xmlsave.c
-@@ -847,7 +847,7 @@ htmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
- static void
- xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
-     int format = ctxt->format;
--    xmlNodePtr tmp, root, unformattedNode = NULL;
-+    xmlNodePtr tmp, root, unformattedNode = NULL, parent;
-     xmlAttrPtr attr;
-     xmlChar *start, *end;
-     xmlOutputBufferPtr buf;
-@@ -856,6 +856,7 @@ xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
-     buf = ctxt->buf;
- 
-     root = cur;
-+    parent = cur->parent;
-     while (1) {
-         switch (cur->type) {
-         case XML_DOCUMENT_NODE:
-@@ -868,7 +869,9 @@ xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
-             break;
- 
-         case XML_DOCUMENT_FRAG_NODE:
--            if (cur->children != NULL) {
-+            /* Always validate cur->parent when descending. */
-+            if ((cur->parent == parent) && (cur->children != NULL)) {
-+                parent = cur;
-                 cur = cur->children;
-                 continue;
-             }
-@@ -887,7 +890,18 @@ xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
-             break;
- 
-         case XML_ELEMENT_NODE:
--	    if ((cur != root) && (ctxt->format == 1) && (xmlIndentTreeOutput))
-+            /*
-+             * Some users like lxml are known to pass nodes with a corrupted
-+             * tree structure. Fall back to a recursive call to handle this
-+             * case.
-+             */
-+            if ((cur->parent != parent) && (cur->children != NULL)) {
-+                xmlNodeDumpOutputInternal(ctxt, cur);
-+                break;
-+            }
-+
-+	    if ((ctxt->level > 0) && (ctxt->format == 1) &&
-+                (xmlIndentTreeOutput))
- 		xmlOutputBufferWrite(buf, ctxt->indent_size *
- 				     (ctxt->level > ctxt->indent_nr ?
- 				      ctxt->indent_nr : ctxt->level),
-@@ -942,6 +956,7 @@ xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
-                 xmlOutputBufferWrite(buf, 1, ">");
-                 if (ctxt->format == 1) xmlOutputBufferWrite(buf, 1, "\n");
-                 if (ctxt->level >= 0) ctxt->level++;
-+                parent = cur;
-                 cur = cur->children;
-                 continue;
-             }
-@@ -1058,13 +1073,9 @@ xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
-                 break;
-             }
- 
--            /*
--             * The parent should never be NULL here but we want to handle
--             * corrupted documents gracefully.
--             */
--            if (cur->parent == NULL)
--                return;
--            cur = cur->parent;
-+            cur = parent;
-+            /* cur->parent was validated when descending. */
-+            parent = cur->parent;
- 
-             if (cur->type == XML_ELEMENT_NODE) {
-                 if (ctxt->level > 0) ctxt->level--;
--- 
-GitLab
-
diff --git a/textproc/libxml2/files/patch-git-01-b66ce0bba83febe2f4d119097a0391f5d886c3b4 b/textproc/libxml2/files/patch-git-01-b66ce0bba83febe2f4d119097a0391f5d886c3b4
new file mode 100644
index 000000000000..b5d302151dfe
--- /dev/null
+++ b/textproc/libxml2/files/patch-git-01-b66ce0bba83febe2f4d119097a0391f5d886c3b4
@@ -0,0 +1,86 @@
+From b66ce0bba83febe2f4d119097a0391f5d886c3b4 Mon Sep 17 00:00:00 2001
+From: Nick Wellnhofer <wellnhofer@aevum.de>
+Date: Tue, 1 Mar 2022 12:39:02 +0100
+Subject: [PATCH] Don't include ICU headers in public headers
+
+There's no need to make these implementation details public.
+---
+ configure.ac              |  2 --
+ encoding.c                | 14 ++++++++++++++
+ include/libxml/encoding.h | 21 +++------------------
+ 3 files changed, 17 insertions(+), 20 deletions(-)
+
+diff --git a/encoding.c b/encoding.c
+index 0847934a..bfa5a304 100644
+--- encoding.c
++++ encoding.c
+@@ -48,6 +48,20 @@
+ #include "buf.h"
+ #include "enc.h"
+ 
++#ifdef LIBXML_ICU_ENABLED
++#include <unicode/ucnv.h>
++/* Size of pivot buffer, same as icu/source/common/ucnv.cpp CHUNK_SIZE */
++#define ICU_PIVOT_BUF_SIZE 1024
++typedef struct _uconv_t uconv_t;
++struct _uconv_t {
++  UConverter *uconv; /* for conversion between an encoding and UTF-16 */
++  UConverter *utf8; /* for conversion between UTF-8 and UTF-16 */
++  UChar      pivot_buf[ICU_PIVOT_BUF_SIZE];
++  UChar      *pivot_source;
++  UChar      *pivot_target;
++};
++#endif
++
+ static xmlCharEncodingHandlerPtr xmlUTF16LEHandler = NULL;
+ static xmlCharEncodingHandlerPtr xmlUTF16BEHandler = NULL;
+ 
+diff --git a/include/libxml/encoding.h b/include/libxml/encoding.h
+index c875af6f..77f137f4 100644
+--- include/libxml/encoding.h
++++ include/libxml/encoding.h
+@@ -27,9 +27,7 @@
+ #ifdef LIBXML_ICONV_ENABLED
+ #include <iconv.h>
+ #endif
+-#ifdef LIBXML_ICU_ENABLED
+-#include <unicode/ucnv.h>
+-#endif
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+@@ -128,19 +126,6 @@ typedef int (* xmlCharEncodingOutputFunc)(unsigned char *out, int *outlen,
+  * Block defining the handlers for non UTF-8 encodings.
+  * If iconv is supported, there are two extra fields.
+  */
+-#ifdef LIBXML_ICU_ENABLED
+-/* Size of pivot buffer, same as icu/source/common/ucnv.cpp CHUNK_SIZE */
+-#define ICU_PIVOT_BUF_SIZE 1024
+-struct _uconv_t {
+-  UConverter *uconv; /* for conversion between an encoding and UTF-16 */
+-  UConverter *utf8; /* for conversion between UTF-8 and UTF-16 */
+-  UChar      pivot_buf[ICU_PIVOT_BUF_SIZE];
+-  UChar      *pivot_source;
+-  UChar      *pivot_target;
+-};
+-typedef struct _uconv_t uconv_t;
+-#endif
+-
+ typedef struct _xmlCharEncodingHandler xmlCharEncodingHandler;
+ typedef xmlCharEncodingHandler *xmlCharEncodingHandlerPtr;
+ struct _xmlCharEncodingHandler {
+@@ -152,8 +137,8 @@ struct _xmlCharEncodingHandler {
+     iconv_t                    iconv_out;
+ #endif /* LIBXML_ICONV_ENABLED */
+ #ifdef LIBXML_ICU_ENABLED
+-    uconv_t                    *uconv_in;
+-    uconv_t                    *uconv_out;
++    struct _uconv_t            *uconv_in;
++    struct _uconv_t            *uconv_out;
+ #endif /* LIBXML_ICU_ENABLED */
+ };
+ 
+-- 
+GitLab
+
diff --git a/textproc/libxml2/files/patch-git-02-13ad8736d294536da4cbcd70a96b0a2fbf47070c b/textproc/libxml2/files/patch-git-02-13ad8736d294536da4cbcd70a96b0a2fbf47070c
deleted file mode 100644
index 3bf47b75b3cc..000000000000
--- a/textproc/libxml2/files/patch-git-02-13ad8736d294536da4cbcd70a96b0a2fbf47070c
+++ /dev/null
@@ -1,46 +0,0 @@
-From 13ad8736d294536da4cbcd70a96b0a2fbf47070c Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnhofer@aevum.de>
-Date: Tue, 25 May 2021 10:55:25 +0200
-Subject: [PATCH] Fix regression in xmlNodeDumpOutputInternal
-
-Commit 85b1792e could cause additional whitespace if xmlNodeDump was
-called with a non-zero starting level.
----
- xmlsave.c | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/xmlsave.c b/xmlsave.c
-index aedbd5e7..489505f4 100644
---- xmlsave.c
-+++ xmlsave.c
-@@ -890,6 +890,13 @@ xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
-             break;
- 
-         case XML_ELEMENT_NODE:
-+	    if ((cur != root) && (ctxt->format == 1) &&
-+                (xmlIndentTreeOutput))
-+		xmlOutputBufferWrite(buf, ctxt->indent_size *
-+				     (ctxt->level > ctxt->indent_nr ?
-+				      ctxt->indent_nr : ctxt->level),
-+				     ctxt->indent);
-+
-             /*
-              * Some users like lxml are known to pass nodes with a corrupted
-              * tree structure. Fall back to a recursive call to handle this
-@@ -900,13 +907,6 @@ xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
-                 break;
-             }
- 
--	    if ((ctxt->level > 0) && (ctxt->format == 1) &&
--                (xmlIndentTreeOutput))
--		xmlOutputBufferWrite(buf, ctxt->indent_size *
--				     (ctxt->level > ctxt->indent_nr ?
--				      ctxt->indent_nr : ctxt->level),
--				     ctxt->indent);
--
-             xmlOutputBufferWrite(buf, 1, "<");
-             if ((cur->ns != NULL) && (cur->ns->prefix != NULL)) {
-                 xmlOutputBufferWriteString(buf, (const char *)cur->ns->prefix);
--- 
-GitLab
-
diff --git a/textproc/libxml2/files/patch-git-03-3e1aad4fe584747fd7d17cc7b2863a78e2d21a77 b/textproc/libxml2/files/patch-git-03-3e1aad4fe584747fd7d17cc7b2863a78e2d21a77
deleted file mode 100644
index 6ed3d25dd436..000000000000
--- a/textproc/libxml2/files/patch-git-03-3e1aad4fe584747fd7d17cc7b2863a78e2d21a77
+++ /dev/null
@@ -1,31 +0,0 @@
-From 3e1aad4fe584747fd7d17cc7b2863a78e2d21a77 Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnhofer@aevum.de>
-Date: Wed, 2 Jun 2021 17:31:49 +0200
-Subject: [PATCH] Fix XPath recursion limit
-
-Fix accounting of recursion depth when parsing XPath expressions.
-
-This silly bug introduced in commit 804c5297 could lead to spurious
-errors when parsing larger expressions or XSLT documents.
-
-Should fix #264.
----
- xpath.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/xpath.c b/xpath.c
-index 7497ba07..1aa2f1ab 100644
---- xpath.c
-+++ xpath.c
-@@ -10983,7 +10983,7 @@ xmlXPathCompileExpr(xmlXPathParserContextPtr ctxt, int sort) {
-     }
- 
-     if (xpctxt != NULL)
--        xpctxt->depth -= 1;
-+        xpctxt->depth -= 10;
- }
- 
- /**
--- 
-GitLab
-
diff --git a/textproc/libxml2/files/patch-git-04-92d9ab4c28842a09ca2b76d3ff2f933e01b6cd6f b/textproc/libxml2/files/patch-git-04-92d9ab4c28842a09ca2b76d3ff2f933e01b6cd6f
deleted file mode 100644
index bad2cff3acc4..000000000000
--- a/textproc/libxml2/files/patch-git-04-92d9ab4c28842a09ca2b76d3ff2f933e01b6cd6f
+++ /dev/null
@@ -1,43 +0,0 @@
-From 92d9ab4c28842a09ca2b76d3ff2f933e01b6cd6f Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnhofer@aevum.de>
-Date: Mon, 7 Jun 2021 15:09:53 +0200
-Subject: [PATCH] Fix whitespace when serializing empty HTML documents
-
-The old, non-recursive HTML serialization code would always terminate
-the output with a newline. The new implementation omitted the newline
-if the document node had no children. Readd the newline when
-serializing empty documents.
-
-Fixes #266.
----
- HTMLtree.c | 14 +++++++++-----
- 1 file changed, 9 insertions(+), 5 deletions(-)
-
-diff --git a/HTMLtree.c b/HTMLtree.c
-index bdd639c7..7a2b8558 100644
---- HTMLtree.c
-+++ HTMLtree.c
-@@ -763,11 +763,15 @@ htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
-             if (((xmlDocPtr) cur)->intSubset != NULL) {
-                 htmlDtdDumpOutput(buf, (xmlDocPtr) cur, NULL);
-             }
--            /* Always validate cur->parent when descending. */
--            if ((cur->parent == parent) && (cur->children != NULL)) {
--                parent = cur;
--                cur = cur->children;
--                continue;
-+            if (cur->children != NULL) {
-+                /* Always validate cur->parent when descending. */
-+                if (cur->parent == parent) {
-+                    parent = cur;
-+                    cur = cur->children;
-+                    continue;
-+                }
-+            } else {
-+                xmlOutputBufferWriteString(buf, "\n");
-             }
-             break;
- 
--- 
-GitLab
-
diff --git a/textproc/libxml2/files/patch-libxml-2.0-uninstalled.pc.in b/textproc/libxml2/files/patch-libxml-2.0-uninstalled.pc.in
deleted file mode 100644
index 77dc8c19fd9c..000000000000
--- a/textproc/libxml2/files/patch-libxml-2.0-uninstalled.pc.in
+++ /dev/null
@@ -1,9 +0,0 @@
---- libxml-2.0-uninstalled.pc.in.orig	2016-02-09 10:17:32 UTC
-+++ libxml-2.0-uninstalled.pc.in
-@@ -8,5 +8,5 @@ Name: libXML
- Version: @VERSION@
- Description: libXML library version2.
- Requires:
--Libs: -L${libdir} -lxml2 @ICU_LIBS@ @THREAD_LIBS@ @Z_LIBS@ @LZMA_LIBS@ @ICONV_LIBS@ @M_LIBS@ @LIBS@
-+Libs: -L${libdir} -lxml2 @THREAD_LIBS@ @Z_LIBS@ @LZMA_LIBS@ @ICONV_LIBS@ @M_LIBS@ @LIBS@
- Cflags: -I${includedir} @XML_INCLUDEDIR@ @XML_CFLAGS@
diff --git a/textproc/libxml2/files/patch-libxml-2.0.pc.in b/textproc/libxml2/files/patch-libxml-2.0.pc.in
index 1a4857175883..2635302b12e1 100644
--- a/textproc/libxml2/files/patch-libxml-2.0.pc.in
+++ b/textproc/libxml2/files/patch-libxml-2.0.pc.in
@@ -1,9 +1,11 @@
---- libxml-2.0.pc.in.orig	2016-02-09 10:17:32 UTC
+--- libxml-2.0.pc.in.orig	2022-03-08 22:00:47 UTC
 +++ libxml-2.0.pc.in
-@@ -9,5 +9,5 @@ Version: @VERSION@
+@@ -8,6 +8,6 @@ Name: libXML
+ Version: @VERSION@
  Description: libXML library version2.
  Requires:
- Libs: -L${libdir} -lxml2
+-Libs: -L${libdir} -lxml2
 -Libs.private: @ICU_LIBS@ @THREAD_LIBS@ @Z_LIBS@ @LZMA_LIBS@ @ICONV_LIBS@ @M_LIBS@ @WIN32_EXTRA_LIBADD@ @LIBS@
-+Libs.private: @THREAD_LIBS@ @Z_LIBS@ @LZMA_LIBS@ @ICONV_LIBS@ @M_LIBS@ @WIN32_EXTRA_LIBADD@ @LIBS@
++Libs: -L${libdir} @XML_LIBS@
++Libs.private: @XML_PRIVATE_LIBS@ @WIN32_EXTRA_LIBADD@ @LIBS@
  Cflags: @XML_INCLUDEDIR@ @XML_CFLAGS@
diff --git a/textproc/libxml2/files/patch-python_Makefile.in b/textproc/libxml2/files/patch-python_Makefile.in
deleted file mode 100644
index 610b02d370ef..000000000000
--- a/textproc/libxml2/files/patch-python_Makefile.in
+++ /dev/null
@@ -1,20 +0,0 @@
---- python/Makefile.in.orig	2019-11-16 14:42:34 UTC
-+++ python/Makefile.in
-@@ -493,7 +493,7 @@ top_srcdir = @top_srcdir@
- 
- # Makefile for libxml2 python library
- AUTOMAKE_OPTIONS = 1.4 foreign
--SUBDIRS = . tests
-+SUBDIRS = .
- docsdir = $(datadir)/doc/libxml2-python-$(LIBXML_VERSION)
- dist_docs_DATA = TODO
- EXTRA_DIST = \
-@@ -513,7 +513,7 @@ EXTRA_DIST = \
- @WITH_PYTHON_TRUE@python_LTLIBRARIES = libxml2mod.la
- @WITH_PYTHON_TRUE@libxml2mod_la_SOURCES = libxml.c libxml_wrap.h libxml2-py.h libxml2-py.c types.c
- @WITH_PYTHON_TRUE@libxml2mod_la_LDFLAGS = $(CYGWIN_EXTRA_LDFLAGS) $(WIN32_EXTRA_LDFLAGS) -module -avoid-version \
--@WITH_PYTHON_TRUE@        $(top_builddir)/libxml2.la $(CYGWIN_EXTRA_PYTHON_LIBADD) $(WIN32_EXTRA_PYTHON_LIBADD) $(PYTHON_LIBS)
-+@WITH_PYTHON_TRUE@        -lxml2 $(CYGWIN_EXTRA_PYTHON_LIBADD) $(WIN32_EXTRA_PYTHON_LIBADD) $(PYTHON_LIBS)
- 
- @WITH_PYTHON_TRUE@BUILT_SOURCES = libxml2-export.c libxml2-py.h libxml2-py.c
- @WITH_PYTHON_TRUE@dist_python_DATA = \
diff --git a/textproc/libxml2/files/patch-python_tests_Makefile.in b/textproc/libxml2/files/patch-python_tests_Makefile.in
deleted file mode 100644
index 9998f93a3e12..000000000000
--- a/textproc/libxml2/files/patch-python_tests_Makefile.in
+++ /dev/null
@@ -1,11 +0,0 @@
---- python/tests/Makefile.in.orig	2019-11-16 14:42:34 UTC
-+++ python/tests/Makefile.in
-@@ -387,7 +387,7 @@ target_alias = @target_alias@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--exampledir = $(datadir)/doc/libxml2-python-$(LIBXML_VERSION)/examples
-+exampledir = $(datadir)/examples/py-libxml2
- dist_example_DATA = $(PYTESTS) $(XMLS)
- PYTESTS = \
-     build.py	\
diff --git a/textproc/libxml2/files/patch-xml2Conf.sh.in b/textproc/libxml2/files/patch-xml2Conf.sh.in
deleted file mode 100644
index 2f01e89136bb..000000000000
--- a/textproc/libxml2/files/patch-xml2Conf.sh.in
+++ /dev/null
@@ -1,15 +0,0 @@
---- xml2Conf.sh.in.orig	2019-10-22 18:28:43 UTC
-+++ xml2Conf.sh.in
-@@ -1,6 +1,12 @@
- #
- # Configuration file for using the XML library in GNOME applications
- #
-+
-+prefix=@prefix@
-+exec_prefix=@exec_prefix@
-+includedir=@includedir@
-+libdir=@libdir@
-+
- XML2_LIBDIR="@XML_LIBDIR@"
- XML2_LIBS="@XML_LIBS@ @XML_PRIVATE_LIBS@"
- XML2_INCLUDEDIR="@XML_INCLUDEDIR@"
diff --git a/textproc/libxml2/pkg-plist b/textproc/libxml2/pkg-plist
index 41a493d45155..fe71e56cf861 100644
--- a/textproc/libxml2/pkg-plist
+++ b/textproc/libxml2/pkg-plist
@@ -48,15 +48,303 @@ 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
-lib/libxml2.a
+lib/cmake/libxml2-%%LIBVERSION%%/libxml2-config-version.cmake
+lib/cmake/libxml2-%%LIBVERSION%%/libxml2-config.cmake
+lib/cmake/libxml2-%%LIBVERSION%%/libxml2-export-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/libxml2-%%LIBVERSION%%/libxml2-export.cmake
 lib/libxml2.so
 lib/libxml2.so.2
 lib/libxml2.so.%%LIBVERSION%%
 lib/xml2Conf.sh
 libdata/pkgconfig/libxml-2.0.pc
-share/aclocal/libxml.m4
-man/man1/xml2-config.1.gz
 man/man1/xmlcatalog.1.gz
 man/man1/xmllint.1.gz
 man/man3/libxml.3.gz
+share/aclocal/libxml.m4
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk0.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk1.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk10.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk11.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk12.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk13.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk14.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk15.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk16.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk17.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk18.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk19.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk2.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk20.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk21.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk22.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk23.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk24.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk25.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk26.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk27.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk28.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk29.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk3.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk4.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk5.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk6.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk7.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk8.html
+%%PORTDOCS%%%%DOCSDIR%%/APIchunk9.html
+%%PORTDOCS%%%%DOCSDIR%%/APIconstructors.html
+%%PORTDOCS%%%%DOCSDIR%%/APIfiles.html
+%%PORTDOCS%%%%DOCSDIR%%/APIfunctions.html
+%%PORTDOCS%%%%DOCSDIR%%/APIsymbols.html
+%%PORTDOCS%%%%DOCSDIR%%/DOM.gif
+%%PORTDOCS%%%%DOCSDIR%%/DOM.html
+%%PORTDOCS%%%%DOCSDIR%%/FAQ.html
+%%PORTDOCS%%%%DOCSDIR%%/Libxml2-Logo-180x168.gif
+%%PORTDOCS%%%%DOCSDIR%%/Libxml2-Logo-90x34.gif
+%%PORTDOCS%%%%DOCSDIR%%/XMLinfo.html
+%%PORTDOCS%%%%DOCSDIR%%/XSLT.html
+%%PORTDOCS%%%%DOCSDIR%%/api.xsl
+%%PORTDOCS%%%%DOCSDIR%%/apibuild.py
+%%PORTDOCS%%%%DOCSDIR%%/architecture.html
+%%PORTDOCS%%%%DOCSDIR%%/bugs.html
+%%PORTDOCS%%%%DOCSDIR%%/catalog.gif
+%%PORTDOCS%%%%DOCSDIR%%/catalog.html
+%%PORTDOCS%%%%DOCSDIR%%/checkapisym.xsl
+%%PORTDOCS%%%%DOCSDIR%%/contribs.html
+%%PORTDOCS%%%%DOCSDIR%%/devhelp/devhelp2.xsl
+%%PORTDOCS%%%%DOCSDIR%%/devhelp/general.html
+%%PORTDOCS%%%%DOCSDIR%%/devhelp/home.png
+%%PORTDOCS%%%%DOCSDIR%%/devhelp/html.xsl
+%%PORTDOCS%%%%DOCSDIR%%/devhelp/index.html
+%%PORTDOCS%%%%DOCSDIR%%/devhelp/left.png
+%%PORTDOCS%%%%DOCSDIR%%/devhelp/libxml2-DOCBparser.html
+%%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
*** 263 LINES SKIPPED ***