commit: fe1f465862f1c81065a04109a4140d5ff813e3bc Author: Alfred Wingate <parona <AT> protonmail <DOT> com> AuthorDate: Sat May 3 09:50:48 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Mon May 5 07:55:13 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fe1f4658
dev-libs/libxml2-compat: new package, add 2.13.7 Bug: https://bugs.gentoo.org/954318 Signed-off-by: Alfred Wingate <parona <AT> protonmail.com> Part-of: https://github.com/gentoo/gentoo/pull/41919 Signed-off-by: Sam James <sam <AT> gentoo.org> dev-libs/libxml2-compat/Manifest | 4 + .../files/libxml2-2.12.9-icu-pkgconfig.patch | 20 +++ .../libxml2-compat/libxml2-compat-2.13.7.ebuild | 150 +++++++++++++++++++++ dev-libs/libxml2-compat/metadata.xml | 16 +++ 4 files changed, 190 insertions(+) diff --git a/dev-libs/libxml2-compat/Manifest b/dev-libs/libxml2-compat/Manifest new file mode 100644 index 000000000000..2cdea189421a --- /dev/null +++ b/dev-libs/libxml2-compat/Manifest @@ -0,0 +1,4 @@ +DIST libxml2-2.13.7.tar.xz 2424236 BLAKE2B 464097c4b579f964a42909e26b3c2702d7b40c3029628c8980a1ea7a43867dda3c4bdf38b63557f971b20b125a5fc0ac7031bad5df10b1bc25380e995f7707b4 SHA512 6e69ed38cdf2aaa5df7e26b654a7aadd2d80131619184380bafc6a22811acb6b7286c819175c3b37edb194019a93ba6085852a0281934d6bb36d0b52ce138541 +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 diff --git a/dev-libs/libxml2-compat/files/libxml2-2.12.9-icu-pkgconfig.patch b/dev-libs/libxml2-compat/files/libxml2-2.12.9-icu-pkgconfig.patch new file mode 100644 index 000000000000..d00f37bfb681 --- /dev/null +++ b/dev-libs/libxml2-compat/files/libxml2-2.12.9-icu-pkgconfig.patch @@ -0,0 +1,20 @@ +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 +@@ -1108,10 +1108,10 @@ if test "$with_icu" = "no" || test "$with_icu" = "" ; 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], [ +- WITH_ICU=1; XML_PC_REQUIRES="${XML_PC_REQUIRES} icu-i18n" ++ PKG_CHECK_MODULES([ICU], [icu-uc icu-i18n], [ ++ WITH_ICU=1; XML_PC_REQUIRES="${XML_PC_REQUIRES} icu-uc icu-i18n" + 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],[:]) diff --git a/dev-libs/libxml2-compat/libxml2-compat-2.13.7.ebuild b/dev-libs/libxml2-compat/libxml2-compat-2.13.7.ebuild new file mode 100644 index 000000000000..e5f20cb6da9e --- /dev/null +++ b/dev-libs/libxml2-compat/libxml2-compat-2.13.7.ebuild @@ -0,0 +1,150 @@ +# 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 + +GNOME_ORG_MODULE="libxml2" +inherit autotools gnome.org 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" +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}/libxml2-${PV%_rc*}" + +LICENSE="MIT" +SLOT="2" +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" + +IUSE="icu lzma readline test" +RESTRICT="!test? ( test )" + +RDEPEND=" + !<dev-libs/libxml2-2.14 + 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}] ) + readline? ( sys-libs/readline:= ) +" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/libxml2-2.12.9-icu-pkgconfig.patch +) + +src_unpack() { + local tarname=libxml2-${PV/_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 libxml2-${PATCHSET_VERSION}.tar.xz + 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() { + ECONF_SOURCE="${S}" econf \ + $(use_with icu) \ + $(use_with lzma) \ + --disable-static \ + $(multilib_native_use_with readline) \ + $(multilib_native_use_with readline history) \ + --without-python \ + --with-legacy \ + "$@" +} + +multilib_src_test() { + ln -s "${S}"/xmlconf || die + + emake check +} + +multilib_src_install() { + emake DESTDIR="${D}" install + + rm "${ED}"/usr/$(get_libdir)/libxml2.so || die + + rm -r "${ED}"/usr/$(get_libdir)/cmake/libxml2 || die + rm -r "${ED}"/usr/$(get_libdir)/pkgconfig/libxml-2.0.pc || die +} + +multilib_src_install_all() { + einstalldocs + + # Don't conflict with >=dev-libs/libxml2-2.14 + rm -r "${ED}"/usr/bin/xml2-config || die + rm -r "${ED}"/usr/bin/xmllint || die + rm -r "${ED}"/usr/bin/xmlcatalog || die + rm -r "${ED}"/usr/share/doc/${PF}/xmlcatalog.html || die + rm -r "${ED}"/usr/share/doc/${PF}/xmllint.html || die + rm -r "${ED}"/usr/include/ || die + rm -r "${ED}"/usr/share/man/ || die + rm -r "${ED}"/usr/share/gtk-doc/ || die + rm -r "${ED}"/usr/share/aclocal/libxml.m4 || die + + rm -rf "${ED}"/usr/share/doc/libxml2-${PVR}/examples || die + rm -rf "${ED}"/usr/share/doc/libxml2-${PVR}/python/examples || die + + rm -rf "${ED}"/usr/share/doc/libxml2-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 + # <[email protected]> + 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 +} diff --git a/dev-libs/libxml2-compat/metadata.xml b/dev-libs/libxml2-compat/metadata.xml new file mode 100644 index 000000000000..46e3b3676cb5 --- /dev/null +++ b/dev-libs/libxml2-compat/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>[email protected]</email> + <name>Sam James</name> + </maintainer> + <maintainer type="project"> + <email>[email protected]</email> + <name>Gentoo Base System</name> + </maintainer> + <upstream> + <remote-id type="cpe">cpe:/a:xmlsoft:libxml2</remote-id> + <remote-id type="gnome-gitlab">GNOME/libxml2</remote-id> + </upstream> +</pkgmetadata>
