dev-libs/libxml2: Sync with gentoo

It's from gentoo commit 1f361d68bae474c55c7d08826107f9b2ef73ae81.

This should be updated in tandem with dev-libs/libxslt. Also, not
modifying the PYTHON_COMPAT, since we disable python in overlay for
this package.
This commit is contained in:
Krzesimir Nowak 2021-11-17 19:44:17 +01:00
parent 5c20434b8d
commit d2b9a84628
12 changed files with 16 additions and 719 deletions

View File

@ -1,9 +1,6 @@
DIST libxml2-2.9.10-r1-patchset.tar.xz 72088 BLAKE2B 4d5f8aed35d6c0232089e09f22a77cbd25cbd2007c1330538e1c7acc4398ec3ef9023289129677cf5499dbacde4c2f28850ae81acab351d02625d3452aedaede SHA512 a63032d1e85128f637c2b54356aab06a17e31eb1f5facd8fdf88463eb21df6a1d9fd8cc751fa94b8d322fa4f796be4e1d9aa071cbd0826ab31fae46525fde952
DIST libxml2-2.9.10.tar.gz 5624761 BLAKE2B a9958bd7db17fbfb8259b64d66548eb19d28f1aecf40cf66752fcec5720855d31cea9941d52963badd8c18ea1770485f1c11da6213149458336ce0273418f421 SHA512 0adfd12bfde89cbd6296ba6e66b6bed4edb814a74b4265bda34d95c41d9d92c696ee7adb0c737aaf9cc6e10426a31a35079b2a23d26c074e299858da12c072ed
DIST libxml2-2.9.12-r2-patchset.tar.bz2 5939 BLAKE2B e518a174385a121ca5545d0a51c2a2b4ddd21b1e7996e2806f368588b27d60e8318ab50ebfb90c3ee57ccece4f1c37e05c1daeed4203a4e9cb5a056ba530ad2b SHA512 06b96ab8426cd560c1147998965b5e718bee08536549a278269f6535ff1460ed97d83067ed0e8a4d834145a5e5a6caa912cf8aa5a33a360e4b1bc9d9135bfb04
DIST libxml2-2.9.12-r5-patchset.tar.bz2 7231 BLAKE2B d9d0d56ebccbfe234a8af04cc5343c1a02d84fbd998c2373fd48be59cf92807a9417db650a6bb6ba309e101994c4ae2b28edda7bf635c7728eb8b8047d0d3391 SHA512 b2db0fe4595c1559d9f8dc836ee6eee469191f6c490fc95d25d9fa99a544e80858894cc35b6e4a6624a38d0309800540badc929e86ef29950c1107caa4656a14
DIST libxml2-2.9.12.tar.gz 5681632 BLAKE2B ab93633140e9fd119d3a48ed829a91213c3d7956a00d181203f5188fb0ed0d3a7150d3128fe986b13efadf6fe484393262a3de575527f38f74aa6c0067a6d934 SHA512 df1c6486e80f0fcf3c506f3599bcfb94b620c00d0b5d26831bc983daa78d58ec58b5057b1ec7c1a26c694f40199c6234ee2a6dcabf65abfa10c447cb5705abbd
DIST libxml2-2.9.12.tar.gz.asc 488 BLAKE2B 48ec86ec373d94de73bdb52141fc77fccd0ca296a35ed97aa3479ecdcf82b15422dd7d751359b5b1ca477e24b8eee9226784cfbfd861236e10eed2519e7959bf SHA512 69ca6ab7170cad467724e19eff99a3544966a26069e78a7b7cc27ae93a9077b11cc8dad2536bd0b27c3b45f4ea7520c813fe5a018cd65f103059f7f75147a656
DIST xmlts20080827.tar.gz 638940 BLAKE2B c5aab959c6e0698acd5b9be82b48a8ac26f4d01cc03f9acfff20d344f97f4711fc6d4a524ae70457147e8e30c72e27b6726829e1dd21896286aa974ed60774e7 SHA512 7325d0977c4427fc4944b291ccf896a665f654cc24399e5565c12a849c2bc3aef4fa3ee42a09ac115abcb6570c51a8fbd052c38d64d164279ecdecad5a4e884d
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,66 +0,0 @@
--- a/catalog.c
+++ b/catalog.c
@@ -68,10 +68,10 @@
#define XML_URN_PUBID "urn:publicid:"
#define XML_CATAL_BREAK ((xmlChar *) -1)
#ifndef XML_XML_DEFAULT_CATALOG
-#define XML_XML_DEFAULT_CATALOG "file:///etc/xml/catalog"
+#define XML_XML_DEFAULT_CATALOG "file://@GENTOO_PORTAGE_EPREFIX@/etc/xml/catalog"
#endif
#ifndef XML_SGML_DEFAULT_CATALOG
-#define XML_SGML_DEFAULT_CATALOG "file:///etc/sgml/catalog"
+#define XML_SGML_DEFAULT_CATALOG "file://@GENTOO_PORTAGE_EPREFIX@/etc/sgml/catalog"
#endif
#if defined(_WIN32) && defined(_MSC_VER)
@@ -76,7 +76,7 @@
#if defined(_WIN32) && defined(_MSC_VER)
#undef XML_XML_DEFAULT_CATALOG
-static char XML_XML_DEFAULT_CATALOG[256] = "file:///etc/xml/catalog";
+static char XML_XML_DEFAULT_CATALOG[256] = "file://@GENTOO_PORTAGE_EPREFIX@/etc/xml/catalog";
#if defined(_WIN32_WCE)
/* Windows CE don't have a A variant */
#define GetModuleHandleA GetModuleHandle
--- a/xmlcatalog.c
+++ b/xmlcatalog.c
@@ -43,7 +43,7 @@
#ifndef XML_SGML_DEFAULT_CATALOG
-#define XML_SGML_DEFAULT_CATALOG "/etc/sgml/catalog"
+#define XML_SGML_DEFAULT_CATALOG "@GENTOO_PORTAGE_EPREFIX@/etc/sgml/catalog"
#endif
/************************************************************************
--- a/runtest.c
+++ b/runtest.c
@@ -2747,7 +2747,7 @@
*/
static int
uripMatch(const char * URI) {
- if ((URI == NULL) || (!strcmp(URI, "file:///etc/xml/catalog")))
+ if ((URI == NULL) || (!strcmp(URI, "file://@GENTOO_PORTAGE_EPREFIX@/etc/xml/catalog")))
return(0);
/* Verify we received the escaped URL */
if (strcmp(urip_rcvsURLs[urip_current], URI))
@@ -2766,7 +2766,7 @@
*/
static void *
uripOpen(const char * URI) {
- if ((URI == NULL) || (!strcmp(URI, "file:///etc/xml/catalog")))
+ if ((URI == NULL) || (!strcmp(URI, "file://@GENTOO_PORTAGE_EPREFIX@/etc/xml/catalog")))
return(NULL);
/* Verify we received the escaped URL */
if (strcmp(urip_rcvsURLs[urip_current], URI))
--- a/xmllint.c
+++ b/xmllint.c
@@ -103,7 +103,7 @@
#endif
#ifndef XML_XML_DEFAULT_CATALOG
-#define XML_XML_DEFAULT_CATALOG "file:///etc/xml/catalog"
+#define XML_XML_DEFAULT_CATALOG "file://@GENTOO_PORTAGE_EPREFIX@/etc/xml/catalog"
#endif
typedef enum {

View File

@ -1,24 +0,0 @@
https://bugs.gentoo.org/751922
https://gitlab.gnome.org/GNOME/libxml2/-/issues/202
From c1bae734f3850f6900cf54d186ca0a9102895d82 Mon Sep 17 00:00:00 2001
From: Lars Wendler <polynomial-c@gentoo.org>
Date: Fri, 30 Oct 2020 10:27:23 +0100
Subject: [PATCH] Fix build with icu-68.1
icu-68.1 removed macro definitions for TRUE and FALSE
Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
---
--- a/encoding.c
+++ b/encoding.c
@@ -1958,7 +1958,7 @@ xmlEncOutputChunk(xmlCharEncodingHandler *handler, unsigned char *out,
#ifdef LIBXML_ICU_ENABLED
else if (handler->uconv_out != NULL) {
ret = xmlUconvWrapper(handler->uconv_out, 0, out, outlen, in, inlen,
- TRUE);
+ 1);
}
#endif /* LIBXML_ICU_ENABLED */
else {
--

View File

@ -1,30 +0,0 @@
https://bugs.gentoo.org/749849
From 50f06b3efb638efb0abd95dc62dca05ae67882c2 Mon Sep 17 00:00:00 2001
From: Nick Wellnhofer <wellnhofer@aevum.de>
Date: Fri, 7 Aug 2020 21:54:27 +0200
Subject: [PATCH] Fix out-of-bounds read with 'xmllint --htmlout'
Make sure that truncated UTF-8 sequences don't cause an out-of-bounds
array access.
Thanks to @SuhwanSong and the Agency for Defense Development (ADD) for
the report.
Fixes #178.
--- a/xmllint.c
+++ b/xmllint.c
@@ -528,6 +528,12 @@ static void
xmlHTMLEncodeSend(void) {
char *result;
+ /*
+ * xmlEncodeEntitiesReentrant assumes valid UTF-8, but the buffer might
+ * end with a truncated UTF-8 sequence. This is a hack to at least avoid
+ * an out-of-bounds read.
+ */
+ memset(&buffer[sizeof(buffer)-4], 0, 4);
result = (char *) xmlEncodeEntitiesReentrant(NULL, BAD_CAST buffer);
if (result) {
xmlGenericError(xmlGenericErrorContext, "%s", result);
--

View File

@ -1,33 +0,0 @@
https://gitlab.gnome.org/GNOME/libxml2/-/issues/252
From 5d6403682a3463f29a1f7c27aa54ecb5e3971547 Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Thu, 13 May 2021 17:40:22 +0000
Subject: [PATCH] Disable fuzz tests
Not all of the fuzz files are included with the dist tarball,
so disabling them for now to get the release in with most tests
given the security bug.
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,9 +2,9 @@
ACLOCAL_AMFLAGS = -I m4
-SUBDIRS = include . doc example fuzz xstc $(PYTHON_SUBDIR)
+SUBDIRS = include . doc example xstc $(PYTHON_SUBDIR)
-DIST_SUBDIRS = include . doc example fuzz python xstc
+DIST_SUBDIRS = include . doc example python xstc
AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/include
@@ -210,7 +210,6 @@ runtests: runtest$(EXEEXT) testrecurse$(EXEEXT) testapi$(EXEEXT) \
$(CHECKER) ./runxmlconf$(EXEEXT)
@(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; \
$(MAKE) tests ; fi)
- @cd fuzz; $(MAKE) tests
check: all runtests
--

View File

@ -1,11 +0,0 @@
--- a/configure.ac
+++ b/configure.ac
@@ -844,7 +844,7 @@ if test "$with_python" != "no" ; then
fi
if test "$PYTHON" != ""
then
- PYTHON_VERSION=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_version())"`
+ PYTHON_VERSION=`$PYTHON -c "import sysconfig; print(sysconfig.get_config_var('LDVERSION') or sysconfig.get_config_var('py_version_short'))"`
PYTHON_INCLUDES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_inc())"`
# does not work as it produce a /usr/lib/python path instead of/usr/lib64/python
#

View File

@ -1,32 +0,0 @@
https://gitlab.gnome.org/GNOME/libxml2/merge_requests/14
From 54878c018af979b20ca1bfbf12599973484cae5b Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Thu, 3 Jan 2019 05:44:03 -0500
Subject: [PATCH] fix reader5.py test when building out of tree
When building out of tree, the relative path this test uses doesn't
work. Resolve the path relative to the test script itself instead.
Url: https://bugs.gentoo.org/565576
--- a/python/tests/reader5.py
+++ b/python/tests/reader5.py
@@ -4,6 +4,7 @@
# this extract the Dragon bibliography entries from the XML specification
#
import libxml2
+import os
import sys
# Memory debug specific
@@ -14,7 +15,8 @@ Ravi Sethi, and Jeffrey D. Ullman.
<emph>Compilers: Principles, Techniques, and Tools</emph>.
Reading: Addison-Wesley, 1986, rpt. corr. 1988.</bibl>"""
-f = open('../../test/valid/REC-xml-19980210.xml', 'rb')
+basedir = os.path.dirname(os.path.realpath(__file__))
+f = open(os.path.join(basedir, '../../test/valid/REC-xml-19980210.xml'), 'rb')
input = libxml2.inputBuffer(f)
reader = input.newTextReader("REC")
res=""
--

View File

@ -1,33 +0,0 @@
https://bugs.gentoo.org/745162
--- a/python/libxml.c
+++ b/python/libxml.c
@@ -1620,6 +1620,7 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNU
PyObject *message;
PyObject *result;
char str[1000];
+ unsigned char *ptr = (unsigned char *)str;
#ifdef DEBUG_ERROR
printf("libxml_xmlErrorFuncHandler(%p, %s, ...) called\n", ctx, msg);
@@ -1636,12 +1637,20 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNU
str[999] = 0;
va_end(ap);
+#if PY_MAJOR_VERSION >= 3
+ /* Ensure the error string doesn't start at UTF8 continuation. */
+ while (*ptr && (*ptr & 0xc0) == 0x80)
+ ptr++;
+#endif
+
list = PyTuple_New(2);
PyTuple_SetItem(list, 0, libxml_xmlPythonErrorFuncCtxt);
Py_XINCREF(libxml_xmlPythonErrorFuncCtxt);
- message = libxml_charPtrConstWrap(str);
+ message = libxml_charPtrConstWrap(ptr);
PyTuple_SetItem(list, 1, message);
result = PyEval_CallObject(libxml_xmlPythonErrorFuncHandler, list);
+ /* Forget any errors caused in the error handler. */
+ PyErr_Clear();
Py_XDECREF(list);
Py_XDECREF(result);
}

View File

@ -1,240 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_7 )
PYTHON_REQ_USE="xml"
inherit autotools flag-o-matic prefix python-r1 multilib-minimal
# Note: Please bump in sync with dev-libs/libxslt
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="xmlts20080827.tar.gz"
DESCRIPTION="XML C parser and toolkit"
HOMEPAGE="http://www.xmlsoft.org/ https://gitlab.gnome.org/GNOME/libxml2"
SRC_URI="
ftp://xmlsoft.org/${PN}/${PN}-${PV/_rc/-rc}.tar.gz
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-r1-patchset.tar.xz
test? (
${XSTS_HOME}/${XSTS_NAME_1}/${XSTS_TARBALL_1}
${XSTS_HOME}/${XSTS_NAME_2}/${XSTS_TARBALL_2}
http://www.w3.org/XML/Test/${XMLCONF_TARBALL}
)
"
S="${WORKDIR}/${PN}-${PV%_rc*}"
LICENSE="MIT"
SLOT="2"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="debug examples icu ipv6 lzma +python readline static-libs test"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RESTRICT="!test? ( test )"
BDEPEND="
dev-util/gtk-doc-am
virtual/pkgconfig
"
RDEPEND="
>=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}"
MULTILIB_CHOST_TOOLS=(
/usr/bin/xml2-config
)
src_unpack() {
# ${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 ${P/_rc/-rc}.tar.gz
unpack ${P}-r1-patchset.tar.xz
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
DOCS=( AUTHORS ChangeLog NEWS README* TODO* )
# Selective cherry-picks from master up to 2019-02-28 (commit 8161b463f5)
eapply "${WORKDIR}"/patches
# Patches needed for prefix support
eapply "${FILESDIR}"/${PN}-2.7.1-catalog_path.patch
eapply "${FILESDIR}"/${P}-remove-TRUE.patch
eprefixify catalog.c xmlcatalog.c runtest.c xmllint.c
# Fix python detection, bug #567066
# https://bugzilla.gnome.org/show_bug.cgi?id=760458
eapply "${FILESDIR}"/${PN}-2.9.2-python-ABIFLAG.patch
# Fix python tests when building out of tree #565576
eapply "${FILESDIR}"/${PN}-2.9.8-out-of-tree-test.patch
# bug #745162
eapply "${FILESDIR}"/${PN}-2.9.8-python3-unicode-errors.patch
# bug #749849
eapply "${FILESDIR}"/${PN}-2.9.10-xmllint-utf8.patch
if [[ ${CHOST} == *-darwin* ]] ; then
# Avoid final linking arguments for python modules
sed -i -e '/PYTHON_LIBS/s/ldflags/libs/' configure.ac || die
# gcc-apple doesn't grok -Wno-array-bounds
sed -i -e 's/-Wno-array-bounds//' configure.ac || die
fi
# Please do not remove, as else we get references to PORTAGE_TMPDIR
# in /usr/lib/python?.?/site-packages/libxml2mod.la among things.
# We now need to run eautoreconf at the end to prevent maintainer mode.
# elibtoolize
# If we don't eautoreconf, we need this instead
# epunt_cxx
eautoreconf
}
multilib_src_configure() {
# Filter seemingly problematic CFLAGS (#26320)
filter-flags -fprefetch-loop-arrays -funroll-loops
# Notes:
# 1) USE zlib support breaks gnome2
# (libgnomeprint for instance fails to compile with
# fresh install, and existing) - <azarah@gentoo.org> (22 Dec 2002).
#
# 2) The meaning of the 'debug' USE flag does not apply to the --with-debug
# switch (enabling the libxml2 debug module). See bug #100898.
#
# 3) --with-mem-debug causes unusual segmentation faults (bug #105120).
libxml2_configure() {
ECONF_SOURCE="${S}" econf \
--with-html-subdir=${PF}/html \
$(use_with debug run-debug) \
$(use_with icu) \
$(use_with lzma) \
$(use_enable ipv6) \
$(use_enable static-libs static) \
$(multilib_native_use_with readline) \
$(multilib_native_use_with readline history) \
"$@"
}
libxml2_py_configure() {
# Ensure python build dirs exist
mkdir -p "${BUILD_DIR}" || die
# Odd build system, also see bug #582130
run_in_build_dir libxml2_configure \
"--with-python=${EPYTHON}" \
"--with-python-install-dir=$(python_get_sitedir)"
}
# Build python bindings separately
libxml2_configure --without-python
if multilib_is_native_abi && use python ; then
python_foreach_impl libxml2_py_configure
fi
}
libxml2_py_emake() {
pushd "${BUILD_DIR}/python" > /dev/null || die
emake "$@"
popd > /dev/null || die
}
multilib_src_compile() {
default
if multilib_is_native_abi && use python ; then
local native_builddir="${BUILD_DIR}"
python_foreach_impl libxml2_py_emake \
top_builddir="${native_builddir}" \
all
fi
}
multilib_src_test() {
ln -s "${S}"/xmlconf || die
emake check
if multilib_is_native_abi && use python ; then
python_foreach_impl libxml2_py_emake test
fi
}
multilib_src_install() {
emake \
DESTDIR="${D}" \
EXAMPLES_DIR="${EPREFIX}"/usr/share/doc/${PF}/examples \
install
if multilib_is_native_abi && use python ; then
python_foreach_impl libxml2_py_emake \
DESTDIR="${D}" \
docsdir="${EPREFIX}"/usr/share/doc/${PF}/python \
exampledir="${EPREFIX}"/usr/share/doc/${PF}/python/examples \
install
python_foreach_impl python_optimize
fi
}
multilib_src_install_all() {
rm -rf "${ED}"/usr/share/doc/${P}
einstalldocs
if ! use examples ; then
rm -rf "${ED}"/usr/share/doc/${PF}/examples
rm -rf "${ED}"/usr/share/doc/${PF}/python/examples
fi
find "${D}" -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

@ -5,11 +5,11 @@ EAPI=7
# Note: Please bump in sync with dev-libs/libxslt
PATCHSET_VERSION="2.9.12-r2-patchset"
PATCHSET_VERSION="2.9.12-r5-patchset"
PYTHON_COMPAT=( python3_7 )
PYTHON_COMPAT=( python3_{8..10} )
PYTHON_REQ_USE="xml"
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/danielveillard.asc
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/danielveillard.asc
inherit autotools flag-o-matic prefix python-r1 multilib-minimal verify-sig
XSTS_HOME="http://www.w3.org/XML/2004/xml-schema-test-suite"
@ -34,7 +34,9 @@ S="${WORKDIR}/${PN}-${PV%_rc*}"
LICENSE="MIT"
SLOT="2"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
# Dropped keywords for now because it's a minor LDFLAGS fix, and it will ease upgrades
# bug #802210
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="debug examples icu ipv6 lzma +python readline static-libs test"
RESTRICT="!test? ( test )"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
@ -77,9 +79,16 @@ PATCHES=(
# Avoid failure on missing fuzz.h when running tests
"${WORKDIR}"/${PN}-2.9.11-disable-fuzz-tests.patch
# Respect LDFLAGS fully (bug #798942)
"${WORKDIR}"/${PN}-2.9.12-respect-LDFLAGS-as-needed.patch
# ... and don't bother copying Python's libraries (bug #798942 still)
"${WORKDIR}"/${PN}-2.9.12-dont-copy-python-ldflags.patch
## Upstream
# Fix lxml compatibility
# Fix lxml compatibility (bug #790737)
"${WORKDIR}"/${PN}-2.9.12-fix-lxml-compatibility.patch
# Fix serialising empty HTML documents (bug #794733)
"${WORKDIR}"/${PN}-2.9.12-Fix-whitespace-when-serializing-empty-HTML-documents.patch
)
src_unpack() {

View File

@ -1,240 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
# Note: Please bump in sync with dev-libs/libxslt
PYTHON_COMPAT=( python3_7 )
PYTHON_REQ_USE="xml"
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/danielveillard.asc
inherit autotools flag-o-matic prefix python-r1 multilib-minimal verify-sig
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="http://www.xmlsoft.org/ https://gitlab.gnome.org/GNOME/libxml2"
SRC_URI="
ftp://xmlsoft.org/${PN}/${PN}-${PV/_rc/-rc}.tar.gz
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}
)
verify-sig? ( ftp://xmlsoft.org/${PN}/${PN}-${PV/_rc/-rc}.tar.gz.asc )
"
S="${WORKDIR}/${PN}-${PV%_rc*}"
LICENSE="MIT"
SLOT="2"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="debug examples icu ipv6 lzma +python readline static-libs test"
RESTRICT="!test? ( test )"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
BDEPEND="
dev-util/gtk-doc-am
virtual/pkgconfig
verify-sig? ( app-crypt/openpgp-keys-danielveillard )
"
RDEPEND="
>=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}"
MULTILIB_CHOST_TOOLS=(
/usr/bin/xml2-config
)
DOCS=( AUTHORS ChangeLog NEWS README TODO TODO_SCHEMAS )
PATCHES=(
# Patches needed for prefix support
"${FILESDIR}"/${PN}-2.7.1-catalog_path.patch
# Fix python detection, bug #567066
# https://bugzilla.gnome.org/show_bug.cgi?id=760458
"${FILESDIR}"/${PN}-2.9.2-python-ABIFLAG.patch
# Fix python tests when building out of tree #565576
"${FILESDIR}"/${PN}-2.9.8-out-of-tree-test.patch
# bug #745162
"${FILESDIR}"/${PN}-2.9.8-python3-unicode-errors.patch
# Avoid failure on missing fuzz.h when running tests
"${FILESDIR}"/${PN}-2.9.11-disable-fuzz-tests.patch
)
src_unpack() {
local tarname=${P/_rc/-rc}.tar.gz
if use verify-sig ; then
verify-sig_verify_detached "${DISTDIR}"/${tarname}{,.asc}
fi
# ${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}
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
eprefixify catalog.c xmlcatalog.c runtest.c xmllint.c
if [[ ${CHOST} == *-darwin* ]] ; then
# Avoid final linking arguments for python modules
sed -i -e '/PYTHON_LIBS/s/ldflags/libs/' configure.ac || die
# gcc-apple doesn't grok -Wno-array-bounds
sed -i -e 's/-Wno-array-bounds//' configure.ac || die
fi
# Please do not remove, as else we get references to PORTAGE_TMPDIR
# in /usr/lib/python?.?/site-packages/libxml2mod.la among things.
# We now need to run eautoreconf at the end to prevent maintainer mode.
#elibtoolize
eautoreconf
}
multilib_src_configure() {
# Filter seemingly problematic CFLAGS (#26320)
filter-flags -fprefetch-loop-arrays -funroll-loops
# Notes:
# 1) USE zlib support breaks gnome2
# (libgnomeprint for instance fails to compile with
# fresh install, and existing) - <azarah@gentoo.org> (22 Dec 2002).
#
# 2) The meaning of the 'debug' USE flag does not apply to the --with-debug
# switch (enabling the libxml2 debug module). See bug #100898.
#
# 3) --with-mem-debug causes unusual segmentation faults (bug #105120).
libxml2_configure() {
ECONF_SOURCE="${S}" econf \
--with-html-subdir=${PF}/html \
$(use_with debug run-debug) \
$(use_with icu) \
$(use_with lzma) \
$(use_enable ipv6) \
$(use_enable static-libs static) \
$(multilib_native_use_with readline) \
$(multilib_native_use_with readline history) \
"$@"
}
libxml2_py_configure() {
# Ensure python build dirs exist
mkdir -p "${BUILD_DIR}" || die
# Odd build system, also see bug #582130
run_in_build_dir libxml2_configure \
"--with-python=${EPYTHON}" \
"--with-python-install-dir=$(python_get_sitedir)"
}
# Build python bindings separately
libxml2_configure --without-python
if multilib_is_native_abi && use python ; then
python_foreach_impl libxml2_py_configure
fi
}
libxml2_py_emake() {
pushd "${BUILD_DIR}/python" > /dev/null || die
emake "$@"
popd > /dev/null || die
}
multilib_src_compile() {
default
if multilib_is_native_abi && use python ; then
local native_builddir="${BUILD_DIR}"
python_foreach_impl libxml2_py_emake \
top_builddir="${native_builddir}" \
all
fi
}
multilib_src_test() {
ln -s "${S}"/xmlconf || die
emake check
if multilib_is_native_abi && use python ; then
python_foreach_impl libxml2_py_emake test
fi
}
multilib_src_install() {
emake \
DESTDIR="${D}" \
EXAMPLES_DIR="${EPREFIX}"/usr/share/doc/${PF}/examples \
install
if multilib_is_native_abi && use python ; then
python_foreach_impl libxml2_py_emake \
DESTDIR="${D}" \
docsdir="${EPREFIX}"/usr/share/doc/${PF}/python \
exampledir="${EPREFIX}"/usr/share/doc/${PF}/python/examples \
install
python_foreach_impl python_optimize
fi
}
multilib_src_install_all() {
rm -rf "${ED}"/usr/share/doc/${P}
einstalldocs
if ! use examples ; then
rm -rf "${ED}"/usr/share/doc/${PF}/examples
rm -rf "${ED}"/usr/share/doc/${PF}/python/examples
fi
find "${D}" -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,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>sam@gentoo.org</email>