From 9969aaf6c98fa2955829490e390d42e5b47b17fd Mon Sep 17 00:00:00 2001 From: TomIO Date: Thu, 2 Oct 2025 17:53:47 +0200 Subject: [PATCH] bump(main/libxml2): 2.15.0 - Remove `libxml2-python-static` subpackage (empty) - Update project homepage (previous is a redirect) - Use Meson build system - Enable ICU support - Enable history and readline support for `xmllint` - Cleanup assorted jank --- .../libxml2/backport-dc307e3-mandir-fix.patch | 28 +++++++++++ packages/libxml2/build.sh | 49 ++++++++++++++----- .../libxml2-python-static.subpackage.sh | 6 --- packages/libxml2/libxml2-python.subpackage.sh | 1 - packages/libxml2/libxml2-utils.subpackage.sh | 8 ++- packages/libxml2/no-doxygen.patch | 21 ++++++++ 6 files changed, 92 insertions(+), 21 deletions(-) create mode 100644 packages/libxml2/backport-dc307e3-mandir-fix.patch delete mode 100644 packages/libxml2/libxml2-python-static.subpackage.sh create mode 100644 packages/libxml2/no-doxygen.patch diff --git a/packages/libxml2/backport-dc307e3-mandir-fix.patch b/packages/libxml2/backport-dc307e3-mandir-fix.patch new file mode 100644 index 000000000000000..3c415112f17bc99 --- /dev/null +++ b/packages/libxml2/backport-dc307e3-mandir-fix.patch @@ -0,0 +1,28 @@ +From dc307e31fd1343934a66fabe3ba4b42f34ac63c0 Mon Sep 17 00:00:00 2001 +From: Nick Wellnhofer +Date: Wed, 17 Sep 2025 11:10:51 +0200 +Subject: [PATCH] meson: Fix install dir of man pages + +Regressed when reworking documentation in 2.15. + +Fixes #985. +--- + doc/meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/doc/meson.build b/doc/meson.build +index 018b7d037..8cde254a9 100644 +--- a/doc/meson.build ++++ b/doc/meson.build +@@ -31,7 +31,7 @@ if want_docs + + xsltproc = find_program('xsltproc') + types = [ +- [ 'manpages', '.1', dir_man ], ++ [ 'manpages', '.1', dir_man / 'man1' ], + [ 'html', '.html', dir_doc ], + ] + programs = [ 'xmllint' ] +-- +GitLab + diff --git a/packages/libxml2/build.sh b/packages/libxml2/build.sh index a69851d17393292..e343b638c235e49 100644 --- a/packages/libxml2/build.sh +++ b/packages/libxml2/build.sh @@ -1,27 +1,48 @@ -TERMUX_PKG_HOMEPAGE=http://www.xmlsoft.org +TERMUX_PKG_HOMEPAGE=https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home TERMUX_PKG_DESCRIPTION="Library for parsing XML documents" TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="@termux" -TERMUX_PKG_VERSION="2.14.6" +TERMUX_PKG_VERSION="2.15.0" TERMUX_PKG_SRCURL=https://download.gnome.org/sources/libxml2/${TERMUX_PKG_VERSION%.*}/libxml2-${TERMUX_PKG_VERSION}.tar.xz -TERMUX_PKG_SHA256=7ce458a0affeb83f0b55f1f4f9e0e55735dbfc1a9de124ee86fb4a66b597203a +TERMUX_PKG_SHA256=5abc766497c5b1d6d99231f662e30c99402a90d03b06c67b62d6c1179dedd561 TERMUX_PKG_AUTO_UPDATE=true TERMUX_PKG_SETUP_PYTHON=true +# disabled due to compiler warnings +# -Dthread-alloc=enabled +# -Dtls=enabled TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" ---with-http ---with-legacy ---with-python + -Ddocs=enabled + -Dhttp=enabled + -Dicu=enabled + -Dlegacy=enabled " -TERMUX_PKG_RM_AFTER_INSTALL="share/gtk-doc" -TERMUX_PKG_DEPENDS="libiconv, liblzma, zlib" -TERMUX_PKG_BUILD_DEPENDS="python" +# Python bindings +TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" + -Dpython=enabled +" +# `xmllint` history support +TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" + -Dhistory=enabled + -Dreadline=enabled +" +TERMUX_PKG_RM_AFTER_INSTALL=" +share/doc/libxml2/html +share/doc/libxml2/xmlcatalog.html +share/doc/libxml2/xmllint.html +" +TERMUX_PKG_DEPENDS="libiconv, libicu, zlib" +TERMUX_PKG_BUILD_DEPENDS="python, readline" TERMUX_PKG_BREAKS="libxml2-dev" TERMUX_PKG_REPLACES="libxml2-dev" -termux_step_pre_configure() { - # SOVERSION suffix is needed for SONAME of shared libs to avoid conflict - # with system ones (in /system/lib64 or /system/lib): - sed -i 's/^\(linux\*android\)\*)/\1-notermux)/' configure +termux_step_configure() { + # This directory is usually made by doxygen + # and python/generator.py expects it to be there. + mkdir -p "$TERMUX_PKG_BUILDDIR/python/doc/xml" + # # SOVERSION suffix is needed for SONAME of shared libs to avoid conflict + # # with system ones (in /system/lib64 or /system/lib): + export TERMUX_MESON_ENABLE_SOVERSION=1 + termux_step_configure_meson } termux_step_post_massage() { @@ -30,6 +51,8 @@ termux_step_post_massage() { termux_error_exit "SONAME for libxml2.so is not properly set." fi + # If this has been bumped, remember to rebuild all reverse dependencies of libxml2! + # `./scripts/bin/revbump --dependencies libxml2` can find them for you. local _SOVERSION=16 if [[ ! -e "lib/libxml2.so.${_SOVERSION}" ]]; then echo "ERROR - Expected: lib/libxml2.so.${_SOVERSION}" >&2 diff --git a/packages/libxml2/libxml2-python-static.subpackage.sh b/packages/libxml2/libxml2-python-static.subpackage.sh deleted file mode 100644 index abdbf38232b56db..000000000000000 --- a/packages/libxml2/libxml2-python-static.subpackage.sh +++ /dev/null @@ -1,6 +0,0 @@ -TERMUX_SUBPKG_INCLUDE=" -lib/python*/**/*.a -lib/python*/**/*.la -" -TERMUX_SUBPKG_DESCRIPTION="Static libraries for libxml2-python" -TERMUX_SUBPKG_DEPENDS="libxml2-python" diff --git a/packages/libxml2/libxml2-python.subpackage.sh b/packages/libxml2/libxml2-python.subpackage.sh index 1c3eff54d1dd21a..39fca58349b9774 100644 --- a/packages/libxml2/libxml2-python.subpackage.sh +++ b/packages/libxml2/libxml2-python.subpackage.sh @@ -1,6 +1,5 @@ TERMUX_SUBPKG_INCLUDE=" lib/python* -share/doc/libxml2/python/ " TERMUX_SUBPKG_DESCRIPTION="Python bindings for libxml2" TERMUX_SUBPKG_DEPENDS="python" diff --git a/packages/libxml2/libxml2-utils.subpackage.sh b/packages/libxml2/libxml2-utils.subpackage.sh index 09ec2a1231e7bd9..2e721018826480f 100644 --- a/packages/libxml2/libxml2-utils.subpackage.sh +++ b/packages/libxml2/libxml2-utils.subpackage.sh @@ -1,3 +1,9 @@ -TERMUX_SUBPKG_INCLUDE="bin/xmllint bin/xmlcatalog share/man/man1/xmllint.1.gz share/man/man1/xmlcatalog.1.gz" +TERMUX_SUBPKG_INCLUDE=" +bin/xmllint +bin/xmlcatalog +share/man/man1/xmllint.1.gz +share/man/man1/xmlcatalog.1.gz +" TERMUX_SUBPKG_DESCRIPTION="XML utilities" +TERMUX_SUBPKG_DEPENDS="readline" TERMUX_SUBPKG_PROVIDES="xmllint" diff --git a/packages/libxml2/no-doxygen.patch b/packages/libxml2/no-doxygen.patch new file mode 100644 index 000000000000000..5b748bf0c1d1fa0 --- /dev/null +++ b/packages/libxml2/no-doxygen.patch @@ -0,0 +1,21 @@ +diff --git a/doc/meson.build b/doc/meson.build +index 018b7d03..327aab3e 100644 +--- a/doc/meson.build ++++ b/doc/meson.build +@@ -1,6 +1,6 @@ + # Doxygen + +-doxygen = find_program('doxygen') ++doxygen = find_program('true') + + # TODO: To make the xml directory work as dependency of the + # Python target, we must make sure that its timestamp changes +@@ -18,7 +18,7 @@ doxygen_docs = custom_target( + 'SOURCE_ROOT': meson.project_source_root() + '/', + 'BUILD_ROOT': meson.project_build_root() + '/', + }, +- install: true, ++ install: false, + install_dir: [ want_docs ? dir_doc : false, false ], + ) +