git: a13ec21cd733 - main - textproc/libxml2: Update to 2.9.13 and migrate to CMake
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 ***