dev-libs/libxml2: Sync with Gentoo

It's from Gentoo commit c725d3dc775eb6d720c695bb201414199f65b0b0.
This commit is contained in:
Flatcar Buildbot 2025-06-16 07:08:18 +00:00 committed by Krzesimir Nowak
parent 4cda40745d
commit 995563fc58
10 changed files with 147 additions and 628 deletions

View File

@ -1,8 +1,6 @@
DIST libxml2-2.11.9.tar.xz 2627500 BLAKE2B 3ecab5df9017673f31e8bbf737273d72cb4475c3a6f0d0669e7f074b0e4d378460df2e175fe4991c675d8462a2e4d4607c151ed11937a0c8a3a4e81107102f67 SHA512 d5c34ed56525f4c6b61d7055fe4219d7a3337077b4fb27081682e9f8350f1542b4476ac42f2754e590b371a4d9a00921cebf20c10b299371b05b8391e7fa7c33
DIST libxml2-2.12.10.tar.xz 2483708 BLAKE2B b0e68457650665967936799c5b8f550a74534a820ffa1ebcf580c025681ab7f0a0941aea8e3cec93dc056e9cbe53266864635d991f8ce7662cf7b66b2c49abbd SHA512 7bd04375321a99c9b7a82d6a72d9412ab45f958b923f1e2f75d9dfbb1a053eba3e0fd067a53753f9a343b4dcb2d9ab5cba894d4194a5f9fb7108f7c545224791
DIST libxml2-2.12.9.tar.xz 2643456 BLAKE2B 769ff564e62c1c0167e5334879ac9e912491c651b6d48a9d21db569002ae86bc4e4490098710a614bc90bbefc44a9dd0af6b02958041dd3bffccf8b5ddc0f7ca SHA512 6e4544ed3ab36d6cb7481d465ceabf223444739d7f41de3e1927309b8716a5eac85520b9bbaf69913f53e052fbfaf68bf27372074daaa24dca9463ce728b4173
DIST libxml2-2.13.6.tar.xz 2423476 BLAKE2B b21f2946dd6945de4a47c993e93bfbbc785b51a501782bf44c234ad69675a58ccdbf6a255301c4d69e92ba9a9ed6670156e55b4d8100215f2dea015c943931ff SHA512 1d4fc3c58df28834ceeeefd49ab90b263b62823d2f0870ae38d11320da93cfa2a18d979c605293c91ad985cb702e7395ddc0ec00b4785dab35ba6d8c33d5f6a7
DIST libxml2-2.13.7.tar.xz 2424236 BLAKE2B 464097c4b579f964a42909e26b3c2702d7b40c3029628c8980a1ea7a43867dda3c4bdf38b63557f971b20b125a5fc0ac7031bad5df10b1bc25380e995f7707b4 SHA512 6e69ed38cdf2aaa5df7e26b654a7aadd2d80131619184380bafc6a22811acb6b7286c819175c3b37edb194019a93ba6085852a0281934d6bb36d0b52ce138541
DIST libxml2-2.13.8.tar.xz 2423128 BLAKE2B 9abe12acb2b619f8649dc4472c39d4c59074a83538bf1a534163737bf9e99e6387fec53404392c325102da1e77f53606f2679c47b7136d7f7541a8fcc6bcd995 SHA512 668e556404693f17e074bc31e2caa5e50bf003ee3cd81b61a51ea25e76efd7eff7ec70ff603eed87b9d9e9b2299673e6e8871798264113e660e703b74b58458f
DIST libxml2-2.14.3.tar.xz 2325052 BLAKE2B 25ad281925dee3aa032f9ce5c71bebfdfeb3469351eebdcede01c81978ddc411376f2a13b82d207614857b385ca7d589708c3437ad3effd5bc425d7e6b515cf2 SHA512 0efdd42c5fe0160a91945fdbe3193937ee799965e0ac19bd091e1a56e63a36dfc585bd9afee83af330b7d93914e5bd28cf4914246802565dd758a6edd80b1bf7
DIST xmlts20130923.tar.gz 641522 BLAKE2B 63a47bc69278ef510cd0b3779aed729e1b309e30efa0015d28ed051cc03f9dfddb447ab57b07b3393e8f47393d15473b0e199c34cb1f5f746b15ddfaa55670be SHA512 d5c4d26b324ed21f4e0641cd7f8b76dbf9de80df8b519982e44d41c960df29fd03618e02e9693b2d11ad06d19c4a965274c95a048ec3b9653eacb919a7f8b733
DIST xsts-2002-01-16.tar.gz 6894439 BLAKE2B 1e9ec63d2c104655e64249e07440a04d862fcbcd4d4e19745d81b34994319b510a531c9d6df1491fae1e90b5d0764f0f1a827251ca8df5d613178b0eab01ef25 SHA512 43300af6d39c1e2221b0ed7318fe14c7464eeb6eb030ed1e22eb29b4ab17f014e2a4c8887c3a46ae5d243e3072da27f00f4e285498ae6f1288177d38d1108288
DIST xsts-2004-01-14.tar.gz 2761085 BLAKE2B 41545995fb3a65d053257c376c07d45ffd1041a433bfbdb46d4dd87a5afb60c18c8629a3d988323f9e7a1d709775b5a7e5930276a7121c0725a22705c0976e36 SHA512 32854388d7e720ad67156baf50bf2bae7bd878ca3e35fd7e44e57cad3f434f69d56bbbedd61509f8a1faf01c9eae74a078df8fe130780b182c05c05cb1c39ebe

View File

@ -1,71 +0,0 @@
https://gitlab.gnome.org/GNOME/libxml2/-/issues/583
https://gitlab.gnome.org/GNOME/libxml2/-/commit/d39f78069dff496ec865c73aa44d7110e429bce9
https://bugs.gentoo.org/915351
From d39f78069dff496ec865c73aa44d7110e429bce9 Mon Sep 17 00:00:00 2001
From: Nick Wellnhofer <wellnhofer@aevum.de>
Date: Wed, 23 Aug 2023 20:24:24 +0200
Subject: [PATCH] tree: Fix copying of DTDs
- Don't create multiple DTD nodes.
- Fix UAF if malloc fails.
- Skip DTD nodes if tree module is disabled.
Fixes #583.
--- a/tree.c
+++ b/tree.c
@@ -4471,29 +4471,28 @@ xmlNodePtr
xmlStaticCopyNodeList(xmlNodePtr node, xmlDocPtr doc, xmlNodePtr parent) {
xmlNodePtr ret = NULL;
xmlNodePtr p = NULL,q;
+ xmlDtdPtr newSubset = NULL;
while (node != NULL) {
-#ifdef LIBXML_TREE_ENABLED
if (node->type == XML_DTD_NODE ) {
- if (doc == NULL) {
+#ifdef LIBXML_TREE_ENABLED
+ if ((doc == NULL) || (doc->intSubset != NULL)) {
node = node->next;
continue;
}
- if (doc->intSubset == NULL) {
- q = (xmlNodePtr) xmlCopyDtd( (xmlDtdPtr) node );
- if (q == NULL) goto error;
- q->doc = doc;
- q->parent = parent;
- doc->intSubset = (xmlDtdPtr) q;
- xmlAddChild(parent, q);
- } else {
- q = (xmlNodePtr) doc->intSubset;
- xmlAddChild(parent, q);
- }
- } else
+ q = (xmlNodePtr) xmlCopyDtd( (xmlDtdPtr) node );
+ if (q == NULL) goto error;
+ q->doc = doc;
+ q->parent = parent;
+ newSubset = (xmlDtdPtr) q;
+#else
+ node = node->next;
+ continue;
#endif /* LIBXML_TREE_ENABLED */
+ } else {
q = xmlStaticCopyNode(node, doc, parent, 1);
- if (q == NULL) goto error;
+ if (q == NULL) goto error;
+ }
if (ret == NULL) {
q->prev = NULL;
ret = p = q;
@@ -4505,6 +4504,8 @@ xmlStaticCopyNodeList(xmlNodePtr node, xmlDocPtr doc, xmlNodePtr parent) {
}
node = node->next;
}
+ if (newSubset != NULL)
+ doc->intSubset = newSubset;
return(ret);
error:
xmlFreeNodeList(ret);
--
GitLab

View File

@ -1,19 +0,0 @@
Needed with icu-76.1 at least. Not clear why it worked before.
/var/tmp/portage/dev-libs/libxml2-2.11.9/work/libxml2-2.11.9-abi_x86_32.x86/.libs/runtest:
symbol lookup error: /var/tmp/portage/dev-libs/libxml2-2.11.9/work/libxml2-2.11.9-abi_x86_32.x86/.libs/libxml2.so.2: undefined symbol: UCNV_FROM_U_CALLBACK_STOP
--- a/configure.ac
+++ b/configure.ac
@@ -1082,10 +1082,10 @@ if test "$with_icu" != "yes" ; then
else
# Try pkg-config first so that static linking works.
# If this succeeeds, we ignore the WITH_ICU directory.
- PKG_CHECK_MODULES([ICU], [icu-i18n], [
+ PKG_CHECK_MODULES([ICU], [icu-uc icu-i18n], [
WITH_ICU=1
m4_ifdef([PKG_CHECK_VAR],
- [PKG_CHECK_VAR([ICU_DEFS], [icu-i18n], [DEFS])])
+ [PKG_CHECK_VAR([ICU_DEFS], [icu-uc icu-i18n], [DEFS])])
if test "x$ICU_DEFS" != "x"; then
ICU_CFLAGS="$ICU_CFLAGS $ICU_DEFS"
fi],[:])

View File

@ -0,0 +1,34 @@
From 4d6eb90bfdfe347fb1c5fe3151ef9dae80d12866 Mon Sep 17 00:00:00 2001
From: Alfred Wingate <parona@protonmail.com>
Date: Sun, 4 May 2025 15:41:31 +0300
Subject: [PATCH] meson: allow building without git
Signed-off-by: Alfred Wingate <parona@protonmail.com>
---
meson.build | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/meson.build b/meson.build
index a8af753d..b0c99eef 100644
--- a/meson.build
+++ b/meson.build
@@ -17,9 +17,13 @@ v_min = v_array[1].to_int()
v_mic = v_array[2].to_int()
v_nbr = v_maj * 10000 + v_min * 100 + v_mic
v_extra = ''
-r = run_command('git', 'describe', check: false)
-if (r.returncode() == 0)
- v_extra = '-GIT' + r.stdout().strip()
+
+git = find_program('git', required: false)
+if git.found()
+ r = run_command(git, 'describe', check: false)
+ if (r.returncode() == 0)
+ v_extra = '-GIT' + r.stdout().strip()
+ endif
endif
# install paths
--
2.49.0

View File

@ -1,201 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Note: Please bump in sync with dev-libs/libxslt
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="xml(+)"
inherit flag-o-matic python-r1 multilib-minimal
XSTS_HOME="http://www.w3.org/XML/2004/xml-schema-test-suite"
XSTS_NAME_1="xmlschema2002-01-16"
XSTS_NAME_2="xmlschema2004-01-14"
XSTS_TARBALL_1="xsts-2002-01-16.tar.gz"
XSTS_TARBALL_2="xsts-2004-01-14.tar.gz"
XMLCONF_TARBALL="xmlts20130923.tar.gz"
DESCRIPTION="XML C parser and toolkit"
HOMEPAGE="https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home"
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/libxml2"
inherit git-r3
else
inherit autotools gnome.org
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
fi
inherit autotools
SRC_URI+="
test? (
${XSTS_HOME}/${XSTS_NAME_1}/${XSTS_TARBALL_1}
${XSTS_HOME}/${XSTS_NAME_2}/${XSTS_TARBALL_2}
https://www.w3.org/XML/Test/${XMLCONF_TARBALL}
)
"
S="${WORKDIR}/${PN}-${PV%_rc*}"
LICENSE="MIT"
SLOT="2"
IUSE="debug examples +ftp icu lzma +python readline static-libs test"
RESTRICT="!test? ( test )"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RDEPEND="
virtual/libiconv
>=sys-libs/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}]
icu? ( >=dev-libs/icu-51.2-r1:=[${MULTILIB_USEDEP}] )
lzma? ( >=app-arch/xz-utils-5.0.5-r1:=[${MULTILIB_USEDEP}] )
python? ( ${PYTHON_DEPS} )
readline? ( sys-libs/readline:= )
"
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"
if [[ ${PV} == 9999 ]] ; then
BDEPEND+=" dev-build/gtk-doc-am"
fi
MULTILIB_CHOST_TOOLS=(
/usr/bin/xml2-config
)
PATCHES=(
"${FILESDIR}"/${PN}-2.11.5-CVE-2023-45322.patch
"${FILESDIR}"/${PN}-2.11.9-icu-pkgconfig.patch
)
src_unpack() {
if [[ ${PV} == 9999 ]] ; then
git-r3_src_unpack
else
local tarname=${P/_rc/-rc}.tar.xz
# ${A} isn't used to avoid unpacking of test tarballs into ${WORKDIR},
# as they are needed as tarballs in ${S}/xstc instead and not unpacked
unpack ${tarname}
if [[ -n ${PATCHSET_VERSION} ]] ; then
unpack ${PN}-${PATCHSET_VERSION}.tar.xz
fi
fi
cd "${S}" || die
if use test ; then
cp "${DISTDIR}/${XSTS_TARBALL_1}" \
"${DISTDIR}/${XSTS_TARBALL_2}" \
"${S}"/xstc/ \
|| die "Failed to install test tarballs"
unpack ${XMLCONF_TARBALL}
fi
}
src_prepare() {
default
# Please do not remove, as else we get references to PORTAGE_TMPDIR
# in /usr/lib/python?.?/site-packages/libxml2mod.la among things.
#elibtoolize
eautoreconf
}
multilib_src_configure() {
# Filter seemingly problematic CFLAGS (bug #26320)
filter-flags -fprefetch-loop-arrays -funroll-loops
# Notes:
# The meaning of the 'debug' USE flag does not apply to the --with-debug
# switch (enabling the libxml2 debug module). See bug #100898.
libxml2_configure() {
ECONF_SOURCE="${S}" econf \
--enable-ipv6 \
$(use_with ftp) \
$(use_with debug run-debug) \
$(use_with icu) \
$(use_with lzma) \
$(use_enable static-libs static) \
$(multilib_native_use_with readline) \
$(multilib_native_use_with readline history) \
"$@"
}
# Build python bindings separately
libxml2_configure --without-python
multilib_is_native_abi && use python &&
python_foreach_impl run_in_build_dir libxml2_configure --with-python
}
libxml2_py_emake() {
pushd "${BUILD_DIR}"/python >/dev/null || die
emake top_builddir="${NATIVE_BUILD_DIR}" "$@"
popd >/dev/null || die
}
multilib_src_compile() {
default
if multilib_is_native_abi && use python ; then
NATIVE_BUILD_DIR="${BUILD_DIR}"
python_foreach_impl run_in_build_dir libxml2_py_emake all
fi
}
multilib_src_test() {
ln -s "${S}"/xmlconf || die
emake check
multilib_is_native_abi && use python &&
python_foreach_impl run_in_build_dir libxml2_py_emake check
}
multilib_src_install() {
emake DESTDIR="${D}" install
multilib_is_native_abi && use python &&
python_foreach_impl run_in_build_dir libxml2_py_emake DESTDIR="${D}" install
# Hack until automake release is made for the optimise fix
# https://git.savannah.gnu.org/cgit/automake.git/commit/?id=bde43d0481ff540418271ac37012a574a4fcf097
multilib_is_native_abi && use python && python_foreach_impl python_optimize
}
multilib_src_install_all() {
einstalldocs
if ! use examples ; then
rm -rf "${ED}"/usr/share/doc/${PF}/examples || die
rm -rf "${ED}"/usr/share/doc/${PF}/python/examples || die
fi
rm -rf "${ED}"/usr/share/doc/${PN}-python-${PVR} || die
find "${ED}" -name '*.la' -delete || die
}
pkg_postinst() {
# We don't want to do the xmlcatalog during stage1, as xmlcatalog will not
# be in / and stage1 builds to ROOT=/tmp/stage1root. This fixes bug #208887.
if [[ -n "${ROOT}" ]]; then
elog "Skipping XML catalog creation for stage building (bug #208887)."
else
# Need an XML catalog, so no-one writes to a non-existent one
CATALOG="${EROOT}/etc/xml/catalog"
# We don't want to clobber an existing catalog though,
# only ensure that one is there
# <obz@gentoo.org>
if [[ ! -e "${CATALOG}" ]]; then
[[ -d "${EROOT}/etc/xml" ]] || mkdir -p "${EROOT}/etc/xml"
"${EPREFIX}"/usr/bin/xmlcatalog --create > "${CATALOG}"
einfo "Created XML catalog in ${CATALOG}"
fi
fi
}

View File

@ -1,198 +0,0 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Note: Please bump in sync with dev-libs/libxslt
PYTHON_COMPAT=( python3_{10..13} )
PYTHON_REQ_USE="xml(+)"
inherit autotools flag-o-matic python-r1 multilib-minimal
XSTS_HOME="http://www.w3.org/XML/2004/xml-schema-test-suite"
XSTS_NAME_1="xmlschema2002-01-16"
XSTS_NAME_2="xmlschema2004-01-14"
XSTS_TARBALL_1="xsts-2002-01-16.tar.gz"
XSTS_TARBALL_2="xsts-2004-01-14.tar.gz"
XMLCONF_TARBALL="xmlts20130923.tar.gz"
DESCRIPTION="XML C parser and toolkit"
HOMEPAGE="https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home"
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/libxml2"
inherit git-r3
else
inherit gnome.org
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
fi
SRC_URI+="
test? (
${XSTS_HOME}/${XSTS_NAME_1}/${XSTS_TARBALL_1}
${XSTS_HOME}/${XSTS_NAME_2}/${XSTS_TARBALL_2}
https://www.w3.org/XML/Test/${XMLCONF_TARBALL}
)
"
S="${WORKDIR}/${PN}-${PV%_rc*}"
LICENSE="MIT"
SLOT="2"
IUSE="debug examples +ftp icu lzma +python readline static-libs test"
RESTRICT="!test? ( test )"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RDEPEND="
virtual/libiconv
>=sys-libs/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}]
icu? ( >=dev-libs/icu-51.2-r1:=[${MULTILIB_USEDEP}] )
lzma? ( >=app-arch/xz-utils-5.0.5-r1:=[${MULTILIB_USEDEP}] )
python? ( ${PYTHON_DEPS} )
readline? ( sys-libs/readline:= )
"
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"
if [[ ${PV} == 9999 ]] ; then
BDEPEND+=" dev-build/gtk-doc-am"
fi
MULTILIB_CHOST_TOOLS=(
/usr/bin/xml2-config
)
PATCHES=(
"${FILESDIR}"/${PN}-2.12.9-icu-pkgconfig.patch
)
src_unpack() {
if [[ ${PV} == 9999 ]] ; then
git-r3_src_unpack
else
local tarname=${P/_rc/-rc}.tar.xz
# ${A} isn't used to avoid unpacking of test tarballs into ${WORKDIR},
# as they are needed as tarballs in ${S}/xstc instead and not unpacked
unpack ${tarname}
if [[ -n ${PATCHSET_VERSION} ]] ; then
unpack ${PN}-${PATCHSET_VERSION}.tar.xz
fi
fi
cd "${S}" || die
if use test ; then
cp "${DISTDIR}/${XSTS_TARBALL_1}" \
"${DISTDIR}/${XSTS_TARBALL_2}" \
"${S}"/xstc/ \
|| die "Failed to install test tarballs"
unpack ${XMLCONF_TARBALL}
fi
}
src_prepare() {
default
# Please do not remove, as else we get references to PORTAGE_TMPDIR
# in /usr/lib/python?.?/site-packages/libxml2mod.la among things.
#elibtoolize
eautoreconf
}
multilib_src_configure() {
# Filter seemingly problematic CFLAGS (bug #26320)
filter-flags -fprefetch-loop-arrays -funroll-loops
# Notes:
# The meaning of the 'debug' USE flag does not apply to the --with-debug
# switch (enabling the libxml2 debug module). See bug #100898.
libxml2_configure() {
ECONF_SOURCE="${S}" econf \
--enable-ipv6 \
$(use_with ftp) \
$(use_with debug run-debug) \
$(use_with icu) \
$(use_with lzma) \
$(use_enable static-libs static) \
$(multilib_native_use_with readline) \
$(multilib_native_use_with readline history) \
"$@"
}
# Build python bindings separately
libxml2_configure --without-python
multilib_is_native_abi && use python &&
python_foreach_impl run_in_build_dir libxml2_configure --with-python
}
libxml2_py_emake() {
pushd "${BUILD_DIR}"/python >/dev/null || die
emake top_builddir="${NATIVE_BUILD_DIR}" "$@"
popd >/dev/null || die
}
multilib_src_compile() {
default
if multilib_is_native_abi && use python ; then
NATIVE_BUILD_DIR="${BUILD_DIR}"
python_foreach_impl run_in_build_dir libxml2_py_emake all
fi
}
multilib_src_test() {
ln -s "${S}"/xmlconf || die
emake check
multilib_is_native_abi && use python &&
python_foreach_impl run_in_build_dir libxml2_py_emake check
}
multilib_src_install() {
emake DESTDIR="${D}" install
multilib_is_native_abi && use python &&
python_foreach_impl run_in_build_dir libxml2_py_emake DESTDIR="${D}" install
# Hack until automake release is made for the optimise fix
# https://git.savannah.gnu.org/cgit/automake.git/commit/?id=bde43d0481ff540418271ac37012a574a4fcf097
multilib_is_native_abi && use python && python_foreach_impl python_optimize
}
multilib_src_install_all() {
einstalldocs
if ! use examples ; then
rm -rf "${ED}"/usr/share/doc/${PF}/examples || die
rm -rf "${ED}"/usr/share/doc/${PF}/python/examples || die
fi
rm -rf "${ED}"/usr/share/doc/${PN}-python-${PVR} || die
find "${ED}" -name '*.la' -delete || die
}
pkg_postinst() {
# We don't want to do the xmlcatalog during stage1, as xmlcatalog will not
# be in / and stage1 builds to ROOT=/tmp/stage1root. This fixes bug #208887.
if [[ -n "${ROOT}" ]]; then
elog "Skipping XML catalog creation for stage building (bug #208887)."
else
# Need an XML catalog, so no-one writes to a non-existent one
CATALOG="${EROOT}/etc/xml/catalog"
# We don't want to clobber an existing catalog though,
# only ensure that one is there
# <obz@gentoo.org>
if [[ ! -e "${CATALOG}" ]]; then
[[ -d "${EROOT}/etc/xml" ]] || mkdir -p "${EROOT}/etc/xml"
"${EPREFIX}"/usr/bin/xmlcatalog --create > "${CATALOG}"
einfo "Created XML catalog in ${CATALOG}"
fi
fi
}

View File

@ -23,7 +23,7 @@ if [[ ${PV} == 9999 ]] ; then
inherit git-r3
else
inherit gnome.org
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
fi
SRC_URI+="

View File

@ -5,7 +5,7 @@ EAPI=8
# Note: Please bump in sync with dev-libs/libxslt
PYTHON_COMPAT=( python3_{10..13} )
PYTHON_COMPAT=( python3_{11..14} )
PYTHON_REQ_USE="xml(+)"
inherit autotools python-r1 multilib-minimal
@ -23,7 +23,7 @@ if [[ ${PV} == 9999 ]] ; then
inherit git-r3
else
inherit gnome.org
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
fi
SRC_URI+="

View File

@ -5,9 +5,9 @@ EAPI=8
# Note: Please bump in sync with dev-libs/libxslt
PYTHON_COMPAT=( python3_{10..13} )
PYTHON_COMPAT=( python3_{11..14} )
PYTHON_REQ_USE="xml(+)"
inherit autotools flag-o-matic python-r1 multilib-minimal
inherit python-r1 meson-multilib
XSTS_HOME="http://www.w3.org/XML/2004/xml-schema-test-suite"
XSTS_NAME_1="xmlschema2002-01-16"
@ -23,7 +23,7 @@ if [[ ${PV} == 9999 ]] ; then
inherit git-r3
else
inherit gnome.org
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
fi
SRC_URI+="
@ -36,8 +36,9 @@ SRC_URI+="
S="${WORKDIR}/${PN}-${PV%_rc*}"
LICENSE="MIT"
SLOT="2"
IUSE="debug examples +ftp icu lzma +python readline static-libs test"
# see so_version = v_maj + v_min_compat for subslot
SLOT="2/16"
IUSE="icu +python readline static-libs test"
RESTRICT="!test? ( test )"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
@ -45,23 +46,18 @@ RDEPEND="
virtual/libiconv
>=sys-libs/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}]
icu? ( >=dev-libs/icu-51.2-r1:=[${MULTILIB_USEDEP}] )
lzma? ( >=app-arch/xz-utils-5.0.5-r1:=[${MULTILIB_USEDEP}] )
python? ( ${PYTHON_DEPS} )
readline? ( sys-libs/readline:= )
"
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"
if [[ ${PV} == 9999 ]] ; then
BDEPEND+=" dev-build/gtk-doc-am"
fi
MULTILIB_CHOST_TOOLS=(
/usr/bin/xml2-config
)
PATCHES=(
"${FILESDIR}"/${PN}-2.12.9-icu-pkgconfig.patch
"${FILESDIR}"/libxml2-2.14.2-no-git.patch
)
src_unpack() {
@ -93,88 +89,77 @@ src_unpack() {
src_prepare() {
default
# Please do not remove, as else we get references to PORTAGE_TMPDIR
# in /usr/lib/python?.?/site-packages/libxml2mod.la among things.
#elibtoolize
sed -e "/^dir_doc/ s/meson.project_name()$/\'${PF}\'/" -i meson.build || die
}
eautoreconf
python_configure() {
local emesonargs=(
$(meson_feature icu)
$(meson_native_use_feature readline)
$(meson_native_use_feature readline history)
-Dpython=enabled
)
mkdir "${BUILD_DIR}" || die
pushd "${BUILD_DIR}" >/dev/null || die
meson_src_configure
popd >/dev/null || die
}
multilib_src_configure() {
# Filter seemingly problematic CFLAGS (bug #26320)
filter-flags -fprefetch-loop-arrays -funroll-loops
local emesonargs=(
-Ddefault_library=$(multilib_native_usex static-libs both shared)
$(meson_feature icu)
$(meson_native_use_feature readline)
$(meson_native_use_feature readline history)
-Dpython=disabled
# Notes:
# The meaning of the 'debug' USE flag does not apply to the --with-debug
# switch (enabling the libxml2 debug module). See bug #100898.
libxml2_configure() {
ECONF_SOURCE="${S}" econf \
--enable-ipv6 \
$(use_with ftp) \
$(use_with debug run-debug) \
$(use_with icu) \
$(use_with lzma) \
$(use_enable static-libs static) \
$(multilib_native_use_with readline) \
$(multilib_native_use_with readline history) \
"$@"
}
# There has been a clean break with a soname bump.
# It's time to deal with the breakage.
# bug #935452
-Dlegacy=disabled
)
meson_src_configure
# Build python bindings separately
libxml2_configure --without-python
multilib_is_native_abi && use python &&
python_foreach_impl run_in_build_dir libxml2_configure --with-python
if multilib_is_native_abi && use python ; then
python_foreach_impl python_configure
fi
}
libxml2_py_emake() {
pushd "${BUILD_DIR}"/python >/dev/null || die
emake top_builddir="${NATIVE_BUILD_DIR}" "$@"
python_compile() {
pushd "${BUILD_DIR}" >/dev/null || die
meson_src_compile
popd >/dev/null || die
}
multilib_src_compile() {
default
meson_src_compile
if multilib_is_native_abi && use python ; then
NATIVE_BUILD_DIR="${BUILD_DIR}"
python_foreach_impl run_in_build_dir libxml2_py_emake all
python_foreach_impl python_compile
fi
}
multilib_src_test() {
ln -s "${S}"/xmlconf || die
meson_src_test
emake check
if multilib_is_native_abi && use python ; then
python_foreach_impl meson_src_test
fi
}
multilib_is_native_abi && use python &&
python_foreach_impl run_in_build_dir libxml2_py_emake check
python_install() {
pushd "${BUILD_DIR}" >/dev/null || die
meson_src_install
python_optimize
popd >/dev/null || die
}
multilib_src_install() {
emake DESTDIR="${D}" install
multilib_is_native_abi && use python &&
python_foreach_impl run_in_build_dir libxml2_py_emake DESTDIR="${D}" install
# Hack until automake release is made for the optimise fix
# https://git.savannah.gnu.org/cgit/automake.git/commit/?id=bde43d0481ff540418271ac37012a574a4fcf097
multilib_is_native_abi && use python && python_foreach_impl python_optimize
}
multilib_src_install_all() {
einstalldocs
if ! use examples ; then
rm -rf "${ED}"/usr/share/doc/${PF}/examples || die
rm -rf "${ED}"/usr/share/doc/${PF}/python/examples || die
if multilib_is_native_abi && use python ; then
python_foreach_impl python_install
fi
rm -rf "${ED}"/usr/share/doc/${PN}-python-${PVR} || die
find "${ED}" -name '*.la' -delete || die
meson_src_install
}
pkg_postinst() {

View File

@ -1,13 +1,13 @@
# Copyright 1999-2024 Gentoo Authors
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Note: Please bump in sync with dev-libs/libxslt
PYTHON_COMPAT=( python3_{10..13} )
PYTHON_COMPAT=( python3_{11..14} )
PYTHON_REQ_USE="xml(+)"
inherit python-r1 multilib-minimal
inherit python-r1 meson-multilib
XSTS_HOME="http://www.w3.org/XML/2004/xml-schema-test-suite"
XSTS_NAME_1="xmlschema2002-01-16"
@ -20,9 +20,9 @@ DESCRIPTION="XML C parser and toolkit"
HOMEPAGE="https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home"
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/libxml2"
inherit autotools git-r3
inherit git-r3
else
inherit gnome.org libtool
inherit gnome.org
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
fi
@ -36,8 +36,9 @@ SRC_URI+="
S="${WORKDIR}/${PN}-${PV%_rc*}"
LICENSE="MIT"
SLOT="2"
IUSE="examples icu lzma +python readline static-libs test"
# see so_version = v_maj + v_min_compat for subslot
SLOT="2/16"
IUSE="icu +python readline static-libs test"
RESTRICT="!test? ( test )"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
@ -45,17 +46,12 @@ RDEPEND="
virtual/libiconv
>=sys-libs/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}]
icu? ( >=dev-libs/icu-51.2-r1:=[${MULTILIB_USEDEP}] )
lzma? ( >=app-arch/xz-utils-5.0.5-r1:=[${MULTILIB_USEDEP}] )
python? ( ${PYTHON_DEPS} )
readline? ( sys-libs/readline:= )
"
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"
if [[ ${PV} == 9999 ]] ; then
BDEPEND+=" dev-build/gtk-doc-am"
fi
MULTILIB_CHOST_TOOLS=(
/usr/bin/xml2-config
)
@ -89,82 +85,77 @@ src_unpack() {
src_prepare() {
default
if [[ ${PV} == 9999 ]] ; then
eautoreconf
else
# Please do not remove, as else we get references to PORTAGE_TMPDIR
# in /usr/lib/python?.?/site-packages/libxml2mod.la among things.
elibtoolize
fi
sed -e "/^dir_doc/ s/meson.project_name()$/\'${PF}\'/" -i meson.build || die
}
python_configure() {
local emesonargs=(
$(meson_feature icu)
$(meson_native_use_feature readline)
$(meson_native_use_feature readline history)
-Dpython=enabled
)
mkdir "${BUILD_DIR}" || die
pushd "${BUILD_DIR}" >/dev/null || die
meson_src_configure
popd >/dev/null || die
}
multilib_src_configure() {
libxml2_configure() {
ECONF_SOURCE="${S}" econf \
$(use_with icu) \
$(use_with lzma) \
$(use_enable static-libs static) \
$(multilib_native_use_with readline) \
$(multilib_native_use_with readline history) \
--with-legacy \
"$@"
}
local emesonargs=(
-Ddefault_library=$(multilib_native_usex static-libs both shared)
$(meson_feature icu)
$(meson_native_use_feature readline)
$(meson_native_use_feature readline history)
-Dpython=disabled
# Build python bindings separately
libxml2_configure --without-python
# There has been a clean break with a soname bump.
# It's time to deal with the breakage.
# bug #935452
-Dlegacy=disabled
)
meson_src_configure
multilib_is_native_abi && use python &&
python_foreach_impl run_in_build_dir libxml2_configure --with-python
if multilib_is_native_abi && use python ; then
python_foreach_impl python_configure
fi
}
libxml2_py_emake() {
pushd "${BUILD_DIR}"/python >/dev/null || die
emake top_builddir="${NATIVE_BUILD_DIR}" "$@"
python_compile() {
pushd "${BUILD_DIR}" >/dev/null || die
meson_src_compile
popd >/dev/null || die
}
multilib_src_compile() {
default
meson_src_compile
if multilib_is_native_abi && use python ; then
NATIVE_BUILD_DIR="${BUILD_DIR}"
python_foreach_impl run_in_build_dir libxml2_py_emake all
python_foreach_impl python_compile
fi
}
multilib_src_test() {
ln -s "${S}"/xmlconf || die
meson_src_test
emake check
if multilib_is_native_abi && use python ; then
python_foreach_impl meson_src_test
fi
}
multilib_is_native_abi && use python &&
python_foreach_impl run_in_build_dir libxml2_py_emake check
python_install() {
pushd "${BUILD_DIR}" >/dev/null || die
meson_src_install
python_optimize
popd >/dev/null || die
}
multilib_src_install() {
emake DESTDIR="${D}" install
multilib_is_native_abi && use python &&
python_foreach_impl run_in_build_dir libxml2_py_emake DESTDIR="${D}" install
# Hack until automake release is made for the optimise fix
# https://git.savannah.gnu.org/cgit/automake.git/commit/?id=bde43d0481ff540418271ac37012a574a4fcf097
multilib_is_native_abi && use python && python_foreach_impl python_optimize
}
multilib_src_install_all() {
einstalldocs
if ! use examples ; then
rm -rf "${ED}"/usr/share/doc/${PF}/examples || die
rm -rf "${ED}"/usr/share/doc/${PF}/python/examples || die
if multilib_is_native_abi && use python ; then
python_foreach_impl python_install
fi
rm -rf "${ED}"/usr/share/doc/${PN}-python-${PVR} || die
find "${ED}" -name '*.la' -delete || die
meson_src_install
}
pkg_postinst() {