Re: git: a18dfb61a2c9 - main - textproc/libxml2: Update to 2.14.4

From: Charlie Li <vishwin_at_freebsd.org>
Date: Sat, 21 Jun 2025 14:35:36 UTC
Daniel Engberg wrote:
> The branch main has been updated by diizzy:
> 
> URL: https://cgit.FreeBSD.org/ports/commit/?id=a18dfb61a2c96a01f9536d70ad0f69390981833d
> 
> commit a18dfb61a2c96a01f9536d70ad0f69390981833d
> Author:     Daniel Engberg <diizzy@FreeBSD.org>
> AuthorDate: 2025-06-21 12:38:19 +0000
> Commit:     Daniel Engberg <diizzy@FreeBSD.org>
> CommitDate: 2025-06-21 14:09:31 +0000
> 
>      textproc/libxml2: Update to 2.14.4
>      
>      Fixes multiple CVEs:
>      CVE-2025-32415
>      CVE-2025-32414
>      CVE-2025-27113
>      CVE-2025-24928
>      CVE-2024-56171
>      
>      Changelog: https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.4
>      
>      Backport upstream commits:
>      19de8b47b1fe4b87b06bc6b89f5ee9697870a0ad
>      5700d989cc18889e1601c651ad69a41af8b32073
>      d3e33dc214276498e73b61188be02b2863c9670a
>      cf52139b4170be13b51b62da11c208dc66e6eff0
>      356542324fa439de544b5e419b91ae68d42c306c
>      
>      References:
>      https://gitlab.gnome.org/GNOME/libxml2/-/commit/19de8b47b1fe4b87b06bc6b89f5ee9697870a0ad
>      https://gitlab.gnome.org/GNOME/libxml2/-/commit/5700d989cc18889e1601c651ad69a41af8b32073
>      https://gitlab.gnome.org/GNOME/libxml2/-/commit/d3e33dc214276498e73b61188be02b2863c9670a
>      https://gitlab.gnome.org/GNOME/libxml2/-/commit/cf52139b4170be13b51b62da11c208dc66e6eff0
>      https://gitlab.gnome.org/GNOME/libxml2/-/commit/356542324fa439de544b5e419b91ae68d42c306c
>      
>      PR:             279705, 287391
>      Approved by:    ports-sec (tz) via PR 287391
>      Exp-runs by:    antoine (previous iterations)
> ---
>   textproc/libxml2/Makefile                          | 21 +++----
>   textproc/libxml2/distinfo                          |  6 +-
>   textproc/libxml2/files/patch-CMakeLists.txt        | 33 ----------
>   ...git-01-19de8b47b1fe4b87b06bc6b89f5ee9697870a0ad | 25 ++++++++
>   ...git-02-5700d989cc18889e1601c651ad69a41af8b32073 | 39 ++++++++++++
>   ...git-03-d3e33dc214276498e73b61188be02b2863c9670a | 25 ++++++++
>   ...git-04-cf52139b4170be13b51b62da11c208dc66e6eff0 | 46 ++++++++++++++
>   ...git-05-356542324fa439de544b5e419b91ae68d42c306c | 27 +++++++++
>   textproc/libxml2/pkg-plist                         | 70 +---------------------
>   textproc/py-libxml2/Makefile                       | 15 ++---
>   10 files changed, 181 insertions(+), 126 deletions(-)
> 
> diff --git a/textproc/libxml2/Makefile b/textproc/libxml2/Makefile
> index 251af286f36d..0608d51684c0 100644
> --- a/textproc/libxml2/Makefile
> +++ b/textproc/libxml2/Makefile
> @@ -1,5 +1,5 @@
>   PORTNAME=	libxml2
> -DISTVERSION=	2.11.9
> +DISTVERSION=	2.14.4
>   PORTREVISION?=	0
>   CATEGORIES?=	textproc gnome
>   MASTER_SITES=	GNOME
> @@ -18,32 +18,28 @@ USE_LDCONFIG=	yes
>   # Don't build with Python support unless requested
>   CMAKE_${LIBXML2_SLAVE:DON:UOFF}=LIBXML2_WITH_PYTHON
>   
> -# Many symbols in the linker version script libxml2.syms are only defined when
> -# --with-xptr-locs is enabled at configure time. Suppress errors with lld >= 17
> -# due to these undefined symbols.
> -LDFLAGS+=	-Wl,--undefined-version
> -
>   CMAKE_TESTING_ON=	LIBXML2_WITH_TESTS
>   
>   CMAKE_ARGS=	-DCMAKE_INSTALL_SYSCONFDIR=share
>   CMAKE_OFF+=	LIBXML2_WITH_TESTS
> +CMAKE_ON+=	LIBXML2_WITH_HTTP \
> +		LIBXML2_WITH_LZMA \
> +		LIBXML2_WITH_ZLIB
>   
>   PLIST_SUB+=	LIBVERSION=${DISTVERSION}
>   
> -OPTIONS_DEFINE=	DOCS ICU MEM_DEBUG READLINE THREAD_ALLOC
> +OPTIONS_DEFINE=	DOCS ICU READLINE THREAD_ALLOC
>   OPTIONS_DEFAULT=	READLINE
>   OPTIONS_SUB=		yes
>   
> -MEM_DEBUG_DESC=		Memory debugging (DEVELOPERS ONLY!)
>   READLINE_DESC=		History for xmllint
>   THREAD_ALLOC_DESC=	Per-thread memory (DEVELOPERS ONLY!)
>   
> -ICU_LIB_DEPENDS=		libicudata.so:devel/icu
> +ICU_LIB_DEPENDS=		libicuuc.so:devel/icu
>   ICU_CMAKE_BOOL=			LIBXML2_WITH_ICU
> -MEM_DEBUG_CONFIGURE_WITH=	LIBXML2_WITH_MEM_DEBUG
>   READLINE_LIB_DEPENDS=		libreadline.so:devel/readline
> -READLINE_CMAKE_OFF=		-DHAVE_LIBHISTORY=false \
> -				-DHAVE_LIBREADLINE=false
> +READLINE_CMAKE_BOOL=		HAVE_LIBHISTORY \
> +				HAVE_LIBREADLINE
>   THREAD_ALLOC_CMAKE_BOOL=	LIBXML2_WITH_THREAD_ALLOC
>   
>   post-patch:
> @@ -51,6 +47,7 @@ post-patch:
>   		's|/etc/xml/catalog|${LOCALBASE}/share/xml/catalog|g; \
>   		 s|/etc/sgml/catalog|${LOCALBASE}/share/sgml/catalog|g' \
>   		${WRKSRC}/doc/xmllint.1
> +	@${RM} ${WRKSRC}/doc/xmllint.1.bak
>   
>   post-install:
>   .if defined(LIBXML2_SLAVE)
> diff --git a/textproc/libxml2/distinfo b/textproc/libxml2/distinfo
> index 4ea4340dc6f1..79365ae9c78f 100644
> --- a/textproc/libxml2/distinfo
> +++ b/textproc/libxml2/distinfo
> @@ -1,3 +1,3 @@
> -TIMESTAMP = 1725749707
> -SHA256 (gnome/libxml2-2.11.9.tar.xz) = 780157a1efdb57188ec474dca87acaee67a3a839c2525b2214d318228451809f
> -SIZE (gnome/libxml2-2.11.9.tar.xz) = 2627500
> +TIMESTAMP = 1750103732
> +SHA256 (gnome/libxml2-2.14.4.tar.xz) = 24175ec30a97cfa86bdf9befb7ccf4613f8f4b2713c5103e0dd0bc9c711a2773
> +SIZE (gnome/libxml2-2.14.4.tar.xz) = 2325848
> diff --git a/textproc/libxml2/files/patch-CMakeLists.txt b/textproc/libxml2/files/patch-CMakeLists.txt
> deleted file mode 100644
> index 6926e72e1e54..000000000000
> --- a/textproc/libxml2/files/patch-CMakeLists.txt
> +++ /dev/null
> @@ -1,33 +0,0 @@
> ---- CMakeLists.txt.orig	2023-08-11 18:59:11 UTC
> -+++ CMakeLists.txt
> -@@ -395,13 +395,17 @@ if(LIBXML2_WITH_ICU)
> - 	if(WIN32)
> - 		set(ICU_LIBS "-licudt -licuin -licuuc")
> - 	else()
> --		set(ICU_LIBS "-licudata -licui18n -licuuc")
> -+		set(ICU_LIBS_DIR "${ICU_INCLUDE_DIRS}")
> -+		STRING(REGEX REPLACE "include" "lib" ICU_LIBS_DIR ${ICU_LIBS_DIR})
> -+		set(ICU_LIBS "-L${ICU_LIBS_DIR} -licudata -licui18n -licuuc")
> - 	endif()
> - endif()
> -
> - if(LIBXML2_WITH_LZMA)
> - 	target_link_libraries(LibXml2 PRIVATE LibLZMA::LibLZMA)
> --	set(LZMA_LIBS "-llzma")
> -+	set(LZMA_LIBS_DIR "${LIBLZMA_INCLUDE_DIRS}")
> -+	STRING(REGEX REPLACE "include" "lib" LZMA_LIBS_DIR ${LZMA_LIBS_DIR})
> -+	set(LZMA_LIBS "-L${LZMA_LIBS_DIR} -llzma")
> - endif()
> -
> - if(LIBXML2_WITH_THREADS)
> -@@ -411,7 +415,9 @@ endif()
> -
> - if(LIBXML2_WITH_ZLIB)
> - 	target_link_libraries(LibXml2 PRIVATE ZLIB::ZLIB)
> --	set(Z_LIBS "-lz")
> -+	set(Z_LIBS_DIR "${ZLIB_INCLUDE_DIRS}")
> -+	STRING(REGEX REPLACE "include" "lib" Z_LIBS_DIR ${Z_LIBS_DIR})
> -+	set(Z_LIBS "-L${Z_LIBS_DIR} -lz")
> - endif()
> -
> - set_target_properties(
> diff --git a/textproc/libxml2/files/patch-git-01-19de8b47b1fe4b87b06bc6b89f5ee9697870a0ad b/textproc/libxml2/files/patch-git-01-19de8b47b1fe4b87b06bc6b89f5ee9697870a0ad
> new file mode 100644
> index 000000000000..2b290bbc9d50
> --- /dev/null
> +++ b/textproc/libxml2/files/patch-git-01-19de8b47b1fe4b87b06bc6b89f5ee9697870a0ad
> @@ -0,0 +1,25 @@
> +From 19de8b47b1fe4b87b06bc6b89f5ee9697870a0ad Mon Sep 17 00:00:00 2001
> +From: Nick Wellnhofer <wellnhofer@aevum.de>
> +Date: Thu, 27 Mar 2025 23:05:15 +0100
> +Subject: [PATCH] cmake: Remove version from Python libxml2mod.so
> +
> +This shouldn't be necessary and matches the Autotools build.
> +---
> + CMakeLists.txt | 1 -
> + 1 file changed, 1 deletion(-)
> +
> +diff --git a/CMakeLists.txt b/CMakeLists.txt
> +index c23fe75fb..f15095ff7 100644
> +--- CMakeLists.txt
> ++++ CMakeLists.txt
> +@@ -547,7 +547,6 @@ if(LIBXML2_WITH_PYTHON)
> +         IMPORT_PREFIX lib
> +         OUTPUT_NAME xml2mod
> +         PREFIX lib
> +-        VERSION ${PROJECT_VERSION}
> +     )
> +     if (WIN32)
> +         set_target_properties(LibXml2Mod PROPERTIES SUFFIX ".pyd")
> +--
> +GitLab
> +
> diff --git a/textproc/libxml2/files/patch-git-02-5700d989cc18889e1601c651ad69a41af8b32073 b/textproc/libxml2/files/patch-git-02-5700d989cc18889e1601c651ad69a41af8b32073
> new file mode 100644
> index 000000000000..947921d2be5e
> --- /dev/null
> +++ b/textproc/libxml2/files/patch-git-02-5700d989cc18889e1601c651ad69a41af8b32073
> @@ -0,0 +1,39 @@
> +From 5700d989cc18889e1601c651ad69a41af8b32073 Mon Sep 17 00:00:00 2001
> +From: Markus Rickert <markus.rickert@uni-bamberg.de>
> +Date: Wed, 18 Jun 2025 13:48:55 +0200
> +Subject: [PATCH] Fix CMake iconv handling after change to private dependency
> +
> +---
> + CMakeLists.txt          | 2 +-
> + libxml2-config.cmake.in | 2 +-
> + 2 files changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/CMakeLists.txt b/CMakeLists.txt
> +index e136f2167..b952d7bfa 100644
> +--- CMakeLists.txt
> ++++ CMakeLists.txt
> +@@ -354,7 +354,7 @@ if(WIN32)
> + endif()
> +
> + if(LIBXML2_WITH_ICONV)
> +-    target_link_libraries(LibXml2 PUBLIC Iconv::Iconv)
> ++    target_link_libraries(LibXml2 PRIVATE Iconv::Iconv)
> +     if(NOT Iconv_IS_BUILT_IN)
> +         set(ICONV_LIBS "-liconv")
> +     endif()
> +diff --git a/libxml2-config.cmake.in b/libxml2-config.cmake.in
> +index e040a759b..3ce7ef43f 100644
> +--- libxml2-config.cmake.in
> ++++ libxml2-config.cmake.in
> +@@ -56,7 +56,7 @@ if(NOT LIBXML2_SHARED)
> +     if(LIBXML2_WITH_ICONV)
> +         find_dependency(Iconv)
> +         list(APPEND LIBXML2_LIBRARIES    ${Iconv_LIBRARIES})
> +-        list(APPEND LIBXML2_INTERFACE_LINK_LIBRARIES "Iconv::Iconv")
> ++        list(APPEND LIBXML2_INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:Iconv::Iconv>")
> +         if(NOT Iconv_FOUND)
> +             set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
> +             set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Iconv dependency was not found")
> +--
> +GitLab
> +
> diff --git a/textproc/libxml2/files/patch-git-03-d3e33dc214276498e73b61188be02b2863c9670a b/textproc/libxml2/files/patch-git-03-d3e33dc214276498e73b61188be02b2863c9670a
> new file mode 100644
> index 000000000000..99438c918d15
> --- /dev/null
> +++ b/textproc/libxml2/files/patch-git-03-d3e33dc214276498e73b61188be02b2863c9670a
> @@ -0,0 +1,25 @@
> +From d3e33dc214276498e73b61188be02b2863c9670a Mon Sep 17 00:00:00 2001
> +From: Nick Wellnhofer <wellnhofer@aevum.de>
> +Date: Fri, 20 Jun 2025 11:20:34 +0200
> +Subject: [PATCH] cmake: Add missing endif() in libxml2-config.cmake.in
> +
> +Regressed with 28ccdaf9.
> +---
> + libxml2-config.cmake.in | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/libxml2-config.cmake.in b/libxml2-config.cmake.in
> +index 3ce7ef43f..bd971e081 100644
> +--- libxml2-config.cmake.in
> ++++ libxml2-config.cmake.in
> +@@ -119,6 +119,7 @@ if(NOT LIBXML2_SHARED)
> +         if(LIBXML2_WITH_HTTP)
> +             list(APPEND LIBXML2_LIBRARIES ws2_32)
> +             list(APPEND LIBXML2_INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:ws2_32>")
> ++        endif()
> +     endif()
> + endif()
> +
> +--
> +GitLab
> +
> diff --git a/textproc/libxml2/files/patch-git-04-cf52139b4170be13b51b62da11c208dc66e6eff0 b/textproc/libxml2/files/patch-git-04-cf52139b4170be13b51b62da11c208dc66e6eff0
> new file mode 100644
> index 000000000000..e6e31b883bd1
> --- /dev/null
> +++ b/textproc/libxml2/files/patch-git-04-cf52139b4170be13b51b62da11c208dc66e6eff0
> @@ -0,0 +1,46 @@
> +From cf52139b4170be13b51b62da11c208dc66e6eff0 Mon Sep 17 00:00:00 2001
> +From: Nick Wellnhofer <wellnhofer@aevum.de>
> +Date: Fri, 20 Jun 2025 22:22:03 +0200
> +Subject: [PATCH] xmllint: Fix --xinclude --path
> +
> +Use resource loader for XInclude. Regressed with f96dca9c.
> +---
> + xmllint.c | 16 +++++++++++++++-
> + 1 file changed, 15 insertions(+), 1 deletion(-)
> +
> +diff --git a/xmllint.c b/xmllint.c
> +index 4ffc31ef0..ab2f2ebc7 100644
> +--- xmllint.c
> ++++ xmllint.c
> +@@ -2181,13 +2181,27 @@ parseAndPrintFile(xmllintState *lint, const char *filename) {
> +
> + #ifdef LIBXML_XINCLUDE_ENABLED
> +     if (lint->xinclude) {
> ++        xmlXIncludeCtxt *xinc;
> ++        int res;
> ++
> + 	if ((lint->timing) && (lint->repeat == 1)) {
> + 	    startTimer(lint);
> + 	}
> +-	if (xmlXIncludeProcessFlags(doc, lint->options) < 0) {
> ++
> ++        xinc = xmlXIncludeNewContext(doc);
> ++        if (xinc == NULL) {
> ++            lint->progresult = XMLLINT_ERR_MEM;
> ++            goto done;
> ++        }
> ++        xmlXIncludeSetResourceLoader(xinc, xmllintResourceLoader, lint);
> ++        xmlXIncludeSetFlags(xinc, lint->options);
> ++        res = xmlXIncludeProcessNode(xinc, (xmlNode *) doc);
> ++        xmlXIncludeFreeContext(xinc);
> ++        if (res < 0) {
> + 	    lint->progresult = XMLLINT_ERR_UNCLASS;
> +             goto done;
> +         }
> ++
> + 	if ((lint->timing) && (lint->repeat == 1)) {
> + 	    endTimer(lint, "Xinclude processing");
> + 	}
> +--
> +GitLab
> +
> diff --git a/textproc/libxml2/files/patch-git-05-356542324fa439de544b5e419b91ae68d42c306c b/textproc/libxml2/files/patch-git-05-356542324fa439de544b5e419b91ae68d42c306c
> new file mode 100644
> index 000000000000..62d1dac2d224
> --- /dev/null
> +++ b/textproc/libxml2/files/patch-git-05-356542324fa439de544b5e419b91ae68d42c306c
> @@ -0,0 +1,27 @@
> +From 356542324fa439de544b5e419b91ae68d42c306c Mon Sep 17 00:00:00 2001
> +From: Nick Wellnhofer <wellnhofer@aevum.de>
> +Date: Fri, 20 Jun 2025 23:46:46 +0200
> +Subject: [PATCH] parser: Fix xmlCtxtIsStopped
> +
> +Make xmlCtxtIsStopped check for fatal errors as well. This makes it
> +easier to migrate away from disableSAX.
> +---
> + parserInternals.c | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/parserInternals.c b/parserInternals.c
> +index 4e39db1f8..45085cd52 100644
> +--- parserInternals.c
> ++++ parserInternals.c
> +@@ -3327,7 +3327,7 @@ xmlCtxtIsStopped(xmlParserCtxtPtr ctxt) {
> +     if (ctxt == NULL)
> +         return(0);
> +
> +-    return(PARSER_STOPPED(ctxt));
> ++    return(ctxt->disableSAX != 0);
> + }
> +
> + #ifdef LIBXML_VALID_ENABLED
> +--
> +GitLab
> +
> diff --git a/textproc/libxml2/pkg-plist b/textproc/libxml2/pkg-plist
> index 8d53acb96cd1..170d1c6c8515 100644
> --- a/textproc/libxml2/pkg-plist
> +++ b/textproc/libxml2/pkg-plist
> @@ -52,13 +52,12 @@ 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/libxml2.so.16
> +lib/libxml2.so.16.0.4
>   libdata/pkgconfig/libxml-2.0.pc
>   share/man/man1/xml2-config.1.gz
>   share/man/man1/xmlcatalog.1.gz
>   share/man/man1/xmllint.1.gz
> -share/aclocal/libxml.m4
>   %%PORTDOCS%%%%DOCSDIR%%/devhelp/general.html
>   %%PORTDOCS%%%%DOCSDIR%%/devhelp/home.png
>   %%PORTDOCS%%%%DOCSDIR%%/devhelp/index.html
> @@ -113,70 +112,5 @@ share/aclocal/libxml.m4
>   %%PORTDOCS%%%%DOCSDIR%%/devhelp/right.png
>   %%PORTDOCS%%%%DOCSDIR%%/devhelp/style.css
>   %%PORTDOCS%%%%DOCSDIR%%/devhelp/up.png
> -%%PORTDOCS%%%%DOCSDIR%%/examples/index.html
> -%%PORTDOCS%%%%DOCSDIR%%/examples/io1.c
> -%%PORTDOCS%%%%DOCSDIR%%/examples/io2.c
> -%%PORTDOCS%%%%DOCSDIR%%/examples/parse1.c
> -%%PORTDOCS%%%%DOCSDIR%%/examples/parse2.c
> -%%PORTDOCS%%%%DOCSDIR%%/examples/parse3.c
> -%%PORTDOCS%%%%DOCSDIR%%/examples/parse4.c
> -%%PORTDOCS%%%%DOCSDIR%%/examples/reader1.c
> -%%PORTDOCS%%%%DOCSDIR%%/examples/reader2.c
> -%%PORTDOCS%%%%DOCSDIR%%/examples/reader3.c
> -%%PORTDOCS%%%%DOCSDIR%%/examples/reader4.c
> -%%PORTDOCS%%%%DOCSDIR%%/examples/testWriter.c
> -%%PORTDOCS%%%%DOCSDIR%%/examples/tree1.c
> -%%PORTDOCS%%%%DOCSDIR%%/examples/tree2.c
> -%%PORTDOCS%%%%DOCSDIR%%/examples/xpath1.c
> -%%PORTDOCS%%%%DOCSDIR%%/examples/xpath2.c
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/apa.html
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/apb.html
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/apc.html
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/apd.html
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/ape.html
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/apf.html
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/apg.html
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/aph.html
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/api.html
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/ar01s02.html
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/ar01s03.html
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/ar01s04.html
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/ar01s05.html
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/ar01s06.html
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/ar01s07.html
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/ar01s08.html
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/ar01s09.html
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/blank.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/callouts/1.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/callouts/10.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/callouts/2.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/callouts/3.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/callouts/4.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/callouts/5.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/callouts/6.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/callouts/7.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/callouts/8.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/callouts/9.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/caution.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/draft.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/home.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/important.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/next.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/note.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/prev.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/tip.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/toc-blank.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/toc-minus.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/toc-plus.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/up.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/images/warning.png
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/includeaddattribute.c
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/includeaddkeyword.c
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/includeconvert.c
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/includegetattribute.c
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/includekeyword.c
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/includexpath.c
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/index.html
> -%%PORTDOCS%%%%DOCSDIR%%/tutorial/ix01.html
>   %%PORTDOCS%%%%DOCSDIR%%/xmlcatalog.html
>   %%PORTDOCS%%%%DOCSDIR%%/xmllint.html
> diff --git a/textproc/py-libxml2/Makefile b/textproc/py-libxml2/Makefile
> index 7633fdebb4a1..099b26ef6033 100644
> --- a/textproc/py-libxml2/Makefile
> +++ b/textproc/py-libxml2/Makefile
> @@ -1,28 +1,23 @@
> -PORTREVISION=	2
> +PORTREVISION=	0
>   CATEGORIES=	textproc gnome python
>   PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
>   
>   COMMENT=	Python interface for XML parser library for GNOME
> +MASTERDIR=	${.CURDIR}/../libxml2
>   
>   USES+=		gnome python shebangfix
>   USE_GNOME=	libxml2
>   USE_PYTHON=	flavors
> -SHEBANG_FILES=	*.py doc/*.py python/*.py python/tests/*.py
> -
> -# Help CMake determine the correct version of Python if
> -# multiple versions are installed
> -CMAKE_ARGS=	-DPython_EXECUTABLE=${PYTHON_CMD}
> +SHEBANG_FILES=	doc/*.py python/*.py python/tests/*.py
>   
> -MASTERDIR=	${.CURDIR}/../libxml2
> +# Tell master port we're a slave port
> +LIBXML2_SLAVE=	python
>   
>   DESCR=		${.CURDIR}/pkg-descr
>   PLIST=		${.CURDIR}/pkg-plist
>   
>   OPTIONS_EXCLUDE=	${OPTIONS_DEFINE}
>   
> -# Tell master port we're a slave port
> -LIBXML2_SLAVE=	python
> -
>   do-install:
>   		${MKDIR} ${STAGEDIR}${PYTHON_SITELIBDIR}
>   		${INSTALL_SCRIPT} ${WRKSRC}/python/drv_libxml2.py ${STAGEDIR}${PYTHON_SITELIBDIR}
This is not approved by desktop@ and will be reverted. ports-secteam@ 
does not apply to a full-fledged update.

-- 
Charlie Li
...nope, still don't have an exit line.