Merge pull request #166 from kinvolk/sayan/update-libxml2-2.9.10-r5

dev-libs/libxml2: Sync with Gentoo upstream; updates to 2.9.10-r5
This commit is contained in:
Sayan Chowdhury 2021-04-26 22:45:29 +05:30 committed by GitHub
commit 3d816cda8b
10 changed files with 163 additions and 341 deletions

View File

@ -1,8 +1,5 @@
DIST libxml2-2.9.10-patchset.tar.xz 71584 BLAKE2B 4925a28570ed4f84da0407c3ce5b257d0959661855792160e4c534125fe0bbfa3749e7fc43b6c91a17206ac08a85922f4158bf40164c8a17ec940bf12b7dde1c SHA512 cd5a6aa86b6cf9ff852922ecfa23f34edeecab10a0e6d1bcd4dca56a6e17713b10af9387c7a6276bfec612f1d44fc06c16a7bdcab01ef9080f4dd10fab253b93
DIST libxml2-2.9.10-r1-patchset.tar.xz 72088 BLAKE2B 4d5f8aed35d6c0232089e09f22a77cbd25cbd2007c1330538e1c7acc4398ec3ef9023289129677cf5499dbacde4c2f28850ae81acab351d02625d3452aedaede SHA512 a63032d1e85128f637c2b54356aab06a17e31eb1f5facd8fdf88463eb21df6a1d9fd8cc751fa94b8d322fa4f796be4e1d9aa071cbd0826ab31fae46525fde952 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.10.tar.gz 5624761 BLAKE2B a9958bd7db17fbfb8259b64d66548eb19d28f1aecf40cf66752fcec5720855d31cea9941d52963badd8c18ea1770485f1c11da6213149458336ce0273418f421 SHA512 0adfd12bfde89cbd6296ba6e66b6bed4edb814a74b4265bda34d95c41d9d92c696ee7adb0c737aaf9cc6e10426a31a35079b2a23d26c074e299858da12c072ed
DIST libxml2-2.9.9-patchset.tar.xz 16792 BLAKE2B f761b5cda41d57543dadf2cdd8915b69727a818f31badc1092903a9e4341b807852fed0887e9ec7a06a0c19c4a49f9afc2f3c048947f21a09006bb51ef8399ef SHA512 c8c0ee6d0a2833e5664aa7549999f8ba63b9f0bbfda4651050eeee7d3a958c33ef55daba8cfb1ca73ebffeb44d411b5f4259fe6e11ef0204ad2deebd1708ebfb
DIST libxml2-2.9.9.tar.gz 5476717 BLAKE2B 00a67c38084f2effd5d68d7d3e68f0c96cf4f52eab6d8d9b96dc91f03a84baa132abeaf303a836ff9bbf04f832432a036077316c464398e433c9779d8519074b SHA512 cb7784ba4e72e942614e12e4f83f4ceb275f3d738b30e3b5c1f25edf8e9fa6789e854685974eed95b362049dbf6c8e7357e0327d64c681ed390534ac154e6810
DIST xmlts20080827.tar.gz 638940 BLAKE2B c5aab959c6e0698acd5b9be82b48a8ac26f4d01cc03f9acfff20d344f97f4711fc6d4a524ae70457147e8e30c72e27b6726829e1dd21896286aa974ed60774e7 SHA512 7325d0977c4427fc4944b291ccf896a665f654cc24399e5565c12a849c2bc3aef4fa3ee42a09ac115abcb6570c51a8fbd052c38d64d164279ecdecad5a4e884d DIST xmlts20080827.tar.gz 638940 BLAKE2B c5aab959c6e0698acd5b9be82b48a8ac26f4d01cc03f9acfff20d344f97f4711fc6d4a524ae70457147e8e30c72e27b6726829e1dd21896286aa974ed60774e7 SHA512 7325d0977c4427fc4944b291ccf896a665f654cc24399e5565c12a849c2bc3aef4fa3ee42a09ac115abcb6570c51a8fbd052c38d64d164279ecdecad5a4e884d
DIST xsts-2002-01-16.tar.gz 6894439 BLAKE2B 1e9ec63d2c104655e64249e07440a04d862fcbcd4d4e19745d81b34994319b510a531c9d6df1491fae1e90b5d0764f0f1a827251ca8df5d613178b0eab01ef25 SHA512 43300af6d39c1e2221b0ed7318fe14c7464eeb6eb030ed1e22eb29b4ab17f014e2a4c8887c3a46ae5d243e3072da27f00f4e285498ae6f1288177d38d1108288 DIST xsts-2002-01-16.tar.gz 6894439 BLAKE2B 1e9ec63d2c104655e64249e07440a04d862fcbcd4d4e19745d81b34994319b510a531c9d6df1491fae1e90b5d0764f0f1a827251ca8df5d613178b0eab01ef25 SHA512 43300af6d39c1e2221b0ed7318fe14c7464eeb6eb030ed1e22eb29b4ab17f014e2a4c8887c3a46ae5d243e3072da27f00f4e285498ae6f1288177d38d1108288
DIST xsts-2004-01-14.tar.gz 2761085 BLAKE2B 41545995fb3a65d053257c376c07d45ffd1041a433bfbdb46d4dd87a5afb60c18c8629a3d988323f9e7a1d709775b5a7e5930276a7121c0725a22705c0976e36 SHA512 32854388d7e720ad67156baf50bf2bae7bd878ca3e35fd7e44e57cad3f434f69d56bbbedd61509f8a1faf01c9eae74a078df8fe130780b182c05c05cb1c39ebe DIST xsts-2004-01-14.tar.gz 2761085 BLAKE2B 41545995fb3a65d053257c376c07d45ffd1041a433bfbdb46d4dd87a5afb60c18c8629a3d988323f9e7a1d709775b5a7e5930276a7121c0725a22705c0976e36 SHA512 32854388d7e720ad67156baf50bf2bae7bd878ca3e35fd7e44e57cad3f434f69d56bbbedd61509f8a1faf01c9eae74a078df8fe130780b182c05c05cb1c39ebe

View File

@ -0,0 +1,24 @@
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

@ -0,0 +1,30 @@
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,8 +1,3 @@
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 14ac0a8..f787b12 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -844,7 +844,7 @@ if test "$with_python" != "no" ; then @@ -844,7 +844,7 @@ if test "$with_python" != "no" ; then

View File

@ -9,12 +9,6 @@ When building out of tree, the relative path this test uses doesn't
work. Resolve the path relative to the test script itself instead. work. Resolve the path relative to the test script itself instead.
Url: https://bugs.gentoo.org/565576 Url: https://bugs.gentoo.org/565576
---
python/tests/reader5.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/python/tests/reader5.py b/python/tests/reader5.py
index 82d0daea474a..da5355ffc4c6 100755
--- a/python/tests/reader5.py --- a/python/tests/reader5.py
+++ b/python/tests/reader5.py +++ b/python/tests/reader5.py
@@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
@ -36,5 +30,3 @@ index 82d0daea474a..da5355ffc4c6 100755
reader = input.newTextReader("REC") reader = input.newTextReader("REC")
res="" res=""
-- --
2.19.1

View File

@ -1,7 +1,6 @@
Index: libxml2-2.9.5/python/libxml.c https://bugs.gentoo.org/745162
=================================================================== --- a/python/libxml.c
--- libxml2-2.9.5.orig/python/libxml.c +++ b/python/libxml.c
+++ libxml2-2.9.5/python/libxml.c
@@ -1620,6 +1620,7 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNU @@ -1620,6 +1620,7 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNU
PyObject *message; PyObject *message;
PyObject *result; PyObject *result;

View File

@ -1,19 +1,19 @@
# Copyright 1999-2020 Gentoo Authors # Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=7 EAPI=7
PYTHON_COMPAT=( python3_{6,7} ) PYTHON_COMPAT=( python3_7 )
PYTHON_REQ_USE="xml" PYTHON_REQ_USE="xml"
inherit libtool flag-o-matic python-r1 autotools prefix multilib-minimal inherit autotools flag-o-matic prefix python-r1 multilib-minimal
DESCRIPTION="XML C parser and toolkit" DESCRIPTION="XML C parser and toolkit"
HOMEPAGE="http://www.xmlsoft.org/" HOMEPAGE="http://www.xmlsoft.org/ https://gitlab.gnome.org/GNOME/libxml2"
LICENSE="MIT" LICENSE="MIT"
SLOT="2" SLOT="2"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" 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" IUSE="debug examples icu ipv6 lzma +python readline static-libs test"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RESTRICT="!test? ( test )" RESTRICT="!test? ( test )"
@ -78,11 +78,9 @@ src_prepare() {
# Patches needed for prefix support # Patches needed for prefix support
eapply "${FILESDIR}"/${PN}-2.7.1-catalog_path.patch eapply "${FILESDIR}"/${PN}-2.7.1-catalog_path.patch
eprefixify catalog.c xmlcatalog.c runtest.c xmllint.c eapply "${FILESDIR}"/${P}-remove-TRUE.patch
# Fix build for Windows platform eprefixify catalog.c xmlcatalog.c runtest.c xmllint.c
# https://bugzilla.gnome.org/show_bug.cgi?id=760456
# eapply "${FILESDIR}"/${PN}-2.8.0_rc1-winnt.patch
# Fix python detection, bug #567066 # Fix python detection, bug #567066
# https://bugzilla.gnome.org/show_bug.cgi?id=760458 # https://bugzilla.gnome.org/show_bug.cgi?id=760458
@ -91,6 +89,9 @@ src_prepare() {
# Fix python tests when building out of tree #565576 # Fix python tests when building out of tree #565576
eapply "${FILESDIR}"/${PN}-2.9.8-out-of-tree-test.patch eapply "${FILESDIR}"/${PN}-2.9.8-out-of-tree-test.patch
# bug #745162
eapply "${FILESDIR}"/${PN}-2.9.8-python3-unicode-errors.patch
if [[ ${CHOST} == *-darwin* ]] ; then if [[ ${CHOST} == *-darwin* ]] ; then
# Avoid final linking arguments for python modules # Avoid final linking arguments for python modules
sed -i -e '/PYTHON_LIBS/s/ldflags/libs/' configure.ac || die sed -i -e '/PYTHON_LIBS/s/ldflags/libs/' configure.ac || die
@ -177,15 +178,6 @@ multilib_src_install() {
} }
multilib_src_install_all() { multilib_src_install_all() {
# on windows, xmllint is installed by interix libxml2 in parent prefix.
# this is the version to use. the native winnt version does not support
# symlinks, which makes repoman fail if the portage tree is linked in
# from another location (which is my default). -- mduft
if [[ ${CHOST} == *-winnt* ]]; then
rm -rf "${ED}"/usr/bin/xmllint
rm -rf "${ED}"/usr/bin/xmlcatalog
fi
rm -rf "${ED}"/usr/share/doc/${P} rm -rf "${ED}"/usr/share/doc/${P}
einstalldocs einstalldocs
@ -200,7 +192,7 @@ multilib_src_install_all() {
pkg_postinst() { pkg_postinst() {
# We don't want to do the xmlcatalog during stage1, as xmlcatalog will not # 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. # be in / and stage1 builds to ROOT=/tmp/stage1root. This fixes bug #208887.
if [[ "${ROOT}" != "/" ]]; then if [[ -n ${ROOT} ]]; then
elog "Skipping XML catalog creation for stage building (bug #208887)." elog "Skipping XML catalog creation for stage building (bug #208887)."
else else
# need an XML catalog, so no-one writes to a non-existent one # need an XML catalog, so no-one writes to a non-existent one

View File

@ -1,37 +1,45 @@
# Copyright 1999-2020 Gentoo Authors # Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=7 EAPI=7
PYTHON_COMPAT=( python3_{6,7} ) PYTHON_COMPAT=( python3_7 )
PYTHON_REQ_USE="xml" PYTHON_REQ_USE="xml"
inherit libtool flag-o-matic python-r1 autotools prefix multilib-minimal inherit autotools flag-o-matic prefix python-r1 multilib-minimal
DESCRIPTION="XML C parser and toolkit"
HOMEPAGE="http://www.xmlsoft.org/"
LICENSE="MIT"
SLOT="2"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~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 )"
# Note: Please bump in sync with dev-libs/libxslt
XSTS_HOME="http://www.w3.org/XML/2004/xml-schema-test-suite" XSTS_HOME="http://www.w3.org/XML/2004/xml-schema-test-suite"
XSTS_NAME_1="xmlschema2002-01-16" XSTS_NAME_1="xmlschema2002-01-16"
XSTS_NAME_2="xmlschema2004-01-14" XSTS_NAME_2="xmlschema2004-01-14"
XSTS_TARBALL_1="xsts-2002-01-16.tar.gz" XSTS_TARBALL_1="xsts-2002-01-16.tar.gz"
XSTS_TARBALL_2="xsts-2004-01-14.tar.gz" XSTS_TARBALL_2="xsts-2004-01-14.tar.gz"
XMLCONF_TARBALL="xmlts20080827.tar.gz" XMLCONF_TARBALL="xmlts20080827.tar.gz"
DESCRIPTION="XML C parser and toolkit"
SRC_URI="ftp://xmlsoft.org/${PN}/${PN}-${PV/_rc/-rc}.tar.gz HOMEPAGE="http://www.xmlsoft.org/ https://gitlab.gnome.org/GNOME/libxml2"
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-patchset.tar.xz 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? ( test? (
${XSTS_HOME}/${XSTS_NAME_1}/${XSTS_TARBALL_1} ${XSTS_HOME}/${XSTS_NAME_1}/${XSTS_TARBALL_1}
${XSTS_HOME}/${XSTS_NAME_2}/${XSTS_TARBALL_2} ${XSTS_HOME}/${XSTS_NAME_2}/${XSTS_TARBALL_2}
http://www.w3.org/XML/Test/${XMLCONF_TARBALL} )" 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=" RDEPEND="
>=sys-libs/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] >=sys-libs/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}]
icu? ( >=dev-libs/icu-51.2-r1:=[${MULTILIB_USEDEP}] ) icu? ( >=dev-libs/icu-51.2-r1:=[${MULTILIB_USEDEP}] )
@ -40,12 +48,6 @@ RDEPEND="
readline? ( sys-libs/readline:= ) readline? ( sys-libs/readline:= )
" "
DEPEND="${RDEPEND}" DEPEND="${RDEPEND}"
BDEPEND="
dev-util/gtk-doc-am
virtual/pkgconfig
"
S="${WORKDIR}/${PN}-${PV%_rc*}"
MULTILIB_CHOST_TOOLS=( MULTILIB_CHOST_TOOLS=(
/usr/bin/xml2-config /usr/bin/xml2-config
@ -55,7 +57,7 @@ src_unpack() {
# ${A} isn't used to avoid unpacking of test tarballs into $WORKDIR, # ${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 # as they are needed as tarballs in ${S}/xstc instead and not unpacked
unpack ${P/_rc/-rc}.tar.gz unpack ${P/_rc/-rc}.tar.gz
unpack ${P}-patchset.tar.xz unpack ${P}-r1-patchset.tar.xz
cd "${S}" || die cd "${S}" || die
if use test ; then if use test ; then
@ -78,11 +80,9 @@ src_prepare() {
# Patches needed for prefix support # Patches needed for prefix support
eapply "${FILESDIR}"/${PN}-2.7.1-catalog_path.patch eapply "${FILESDIR}"/${PN}-2.7.1-catalog_path.patch
eprefixify catalog.c xmlcatalog.c runtest.c xmllint.c eapply "${FILESDIR}"/${P}-remove-TRUE.patch
# Fix build for Windows platform eprefixify catalog.c xmlcatalog.c runtest.c xmllint.c
# https://bugzilla.gnome.org/show_bug.cgi?id=760456
# eapply "${FILESDIR}"/${PN}-2.8.0_rc1-winnt.patch
# Fix python detection, bug #567066 # Fix python detection, bug #567066
# https://bugzilla.gnome.org/show_bug.cgi?id=760458 # https://bugzilla.gnome.org/show_bug.cgi?id=760458
@ -91,6 +91,12 @@ src_prepare() {
# Fix python tests when building out of tree #565576 # Fix python tests when building out of tree #565576
eapply "${FILESDIR}"/${PN}-2.9.8-out-of-tree-test.patch 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 if [[ ${CHOST} == *-darwin* ]] ; then
# Avoid final linking arguments for python modules # Avoid final linking arguments for python modules
sed -i -e '/PYTHON_LIBS/s/ldflags/libs/' configure.ac || die sed -i -e '/PYTHON_LIBS/s/ldflags/libs/' configure.ac || die
@ -102,23 +108,25 @@ src_prepare() {
# in /usr/lib/python?.?/site-packages/libxml2mod.la among things. # in /usr/lib/python?.?/site-packages/libxml2mod.la among things.
# We now need to run eautoreconf at the end to prevent maintainer mode. # We now need to run eautoreconf at the end to prevent maintainer mode.
# elibtoolize # elibtoolize
# epunt_cxx # if we don't eautoreconf # If we don't eautoreconf, we need this instead
# epunt_cxx
eautoreconf eautoreconf
} }
multilib_src_configure() { multilib_src_configure() {
# filter seemingly problematic CFLAGS (#26320) # Filter seemingly problematic CFLAGS (#26320)
filter-flags -fprefetch-loop-arrays -funroll-loops filter-flags -fprefetch-loop-arrays -funroll-loops
# USE zlib support breaks gnome2 # Notes:
# 1) USE zlib support breaks gnome2
# (libgnomeprint for instance fails to compile with # (libgnomeprint for instance fails to compile with
# fresh install, and existing) - <azarah@gentoo.org> (22 Dec 2002). # fresh install, and existing) - <azarah@gentoo.org> (22 Dec 2002).
#
# The meaning of the 'debug' USE flag does not apply to the --with-debug # 2) The meaning of the 'debug' USE flag does not apply to the --with-debug
# switch (enabling the libxml2 debug module). See bug #100898. # switch (enabling the libxml2 debug module). See bug #100898.
#
# --with-mem-debug causes unusual segmentation faults (bug #105120). # 3) --with-mem-debug causes unusual segmentation faults (bug #105120).
libxml2_configure() { libxml2_configure() {
ECONF_SOURCE="${S}" econf \ ECONF_SOURCE="${S}" econf \
@ -134,37 +142,58 @@ multilib_src_configure() {
} }
libxml2_py_configure() { libxml2_py_configure() {
mkdir -p "${BUILD_DIR}" || die # ensure python build dirs exist # Ensure python build dirs exist
mkdir -p "${BUILD_DIR}" || die
# Odd build system, also see bug #582130
run_in_build_dir libxml2_configure \ run_in_build_dir libxml2_configure \
"--with-python=${EPYTHON}" \ "--with-python=${EPYTHON}" \
"--with-python-install-dir=$(python_get_sitedir)" "--with-python-install-dir=$(python_get_sitedir)"
# odd build system, also see bug #582130
} }
libxml2_configure --without-python # build python bindings separately # Build python bindings separately
libxml2_configure --without-python
if multilib_is_native_abi && use python ; then if multilib_is_native_abi && use python ; then
python_foreach_impl libxml2_py_configure python_foreach_impl libxml2_py_configure
fi fi
} }
libxml2_py_emake() {
pushd "${BUILD_DIR}/python" > /dev/null || die
emake "$@"
popd > /dev/null || die
}
multilib_src_compile() { multilib_src_compile() {
default default
if multilib_is_native_abi && use python ; then if multilib_is_native_abi && use python ; then
local native_builddir=${BUILD_DIR} local native_builddir="${BUILD_DIR}"
python_foreach_impl libxml2_py_emake top_builddir="${native_builddir}" all
python_foreach_impl libxml2_py_emake \
top_builddir="${native_builddir}" \
all
fi fi
} }
multilib_src_test() { multilib_src_test() {
ln -s "${S}"/xmlconf || die ln -s "${S}"/xmlconf || die
emake check emake check
multilib_is_native_abi && use python && python_foreach_impl libxml2_py_emake test
if multilib_is_native_abi && use python ; then
python_foreach_impl libxml2_py_emake test
fi
} }
multilib_src_install() { multilib_src_install() {
emake DESTDIR="${D}" \ emake \
EXAMPLES_DIR="${EPREFIX}"/usr/share/doc/${PF}/examples install DESTDIR="${D}" \
EXAMPLES_DIR="${EPREFIX}"/usr/share/doc/${PF}/examples \
install
if multilib_is_native_abi && use python ; then if multilib_is_native_abi && use python ; then
python_foreach_impl libxml2_py_emake \ python_foreach_impl libxml2_py_emake \
@ -172,21 +201,14 @@ multilib_src_install() {
docsdir="${EPREFIX}"/usr/share/doc/${PF}/python \ docsdir="${EPREFIX}"/usr/share/doc/${PF}/python \
exampledir="${EPREFIX}"/usr/share/doc/${PF}/python/examples \ exampledir="${EPREFIX}"/usr/share/doc/${PF}/python/examples \
install install
python_foreach_impl python_optimize python_foreach_impl python_optimize
fi fi
} }
multilib_src_install_all() { multilib_src_install_all() {
# on windows, xmllint is installed by interix libxml2 in parent prefix.
# this is the version to use. the native winnt version does not support
# symlinks, which makes repoman fail if the portage tree is linked in
# from another location (which is my default). -- mduft
if [[ ${CHOST} == *-winnt* ]]; then
rm -rf "${ED}"/usr/bin/xmllint
rm -rf "${ED}"/usr/bin/xmlcatalog
fi
rm -rf "${ED}"/usr/share/doc/${P} rm -rf "${ED}"/usr/share/doc/${P}
einstalldocs einstalldocs
if ! use examples ; then if ! use examples ; then
@ -200,25 +222,19 @@ multilib_src_install_all() {
pkg_postinst() { pkg_postinst() {
# We don't want to do the xmlcatalog during stage1, as xmlcatalog will not # 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. # be in / and stage1 builds to ROOT=/tmp/stage1root. This fixes bug #208887.
if [[ "${ROOT}" != "/" ]]; then if [[ -n "${ROOT}" ]]; then
elog "Skipping XML catalog creation for stage building (bug #208887)." elog "Skipping XML catalog creation for stage building (bug #208887)."
else else
# need an XML catalog, so no-one writes to a non-existent one # Need an XML catalog, so no-one writes to a non-existent one
CATALOG="${EROOT}/etc/xml/catalog" CATALOG="${EROOT}/etc/xml/catalog"
# we dont want to clobber an existing catalog though, # We don't want to clobber an existing catalog though,
# only ensure that one is there # only ensure that one is there
# <obz@gentoo.org> # <obz@gentoo.org>
if [[ ! -e ${CATALOG} ]]; then if [[ ! -e "${CATALOG}" ]]; then
[[ -d "${EROOT}/etc/xml" ]] || mkdir -p "${EROOT}/etc/xml" [[ -d "${EROOT}/etc/xml" ]] || mkdir -p "${EROOT}/etc/xml"
"${EPREFIX}"/usr/bin/xmlcatalog --create > "${CATALOG}" "${EPREFIX}"/usr/bin/xmlcatalog --create > "${CATALOG}"
einfo "Created XML catalog in ${CATALOG}" einfo "Created XML catalog in ${CATALOG}"
fi fi
fi fi
} }
libxml2_py_emake() {
pushd "${BUILD_DIR}/python" > /dev/null || die
emake "$@"
popd > /dev/null
}

View File

@ -1,227 +0,0 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python3_{6,7} )
PYTHON_REQ_USE="xml"
inherit libtool flag-o-matic python-r1 autotools prefix multilib-minimal
DESCRIPTION="XML C parser and toolkit"
HOMEPAGE="http://www.xmlsoft.org/"
LICENSE="MIT"
SLOT="2"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~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 )"
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"
SRC_URI="ftp://xmlsoft.org/${PN}/${PN}-${PV/_rc/-rc}.tar.gz
https://dev.gentoo.org/~leio/distfiles/${P}-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} )"
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}
dev-util/gtk-doc-am
virtual/pkgconfig
hppa? ( >=sys-devel/binutils-2.15.92.0.2 )
"
S="${WORKDIR}/${PN}-${PV%_rc*}"
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}-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
eprefixify catalog.c xmlcatalog.c runtest.c xmllint.c
# Fix build for Windows platform
# https://bugzilla.gnome.org/show_bug.cgi?id=760456
# eapply "${FILESDIR}"/${PN}-2.8.0_rc1-winnt.patch
# 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
# Workaround python3 itstool potential problems, bug 701020
eapply "${FILESDIR}"/${PV}-python3-unicode-errors.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
# epunt_cxx # if we don't eautoreconf
eautoreconf
}
multilib_src_configure() {
# filter seemingly problematic CFLAGS (#26320)
filter-flags -fprefetch-loop-arrays -funroll-loops
# USE zlib support breaks gnome2
# (libgnomeprint for instance fails to compile with
# fresh install, and existing) - <azarah@gentoo.org> (22 Dec 2002).
# The meaning of the 'debug' USE flag does not apply to the --with-debug
# switch (enabling the libxml2 debug module). See bug #100898.
# --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() {
mkdir -p "${BUILD_DIR}" || die # ensure python build dirs exist
run_in_build_dir libxml2_configure \
"--with-python=${EPYTHON}" \
"--with-python-install-dir=$(python_get_sitedir)"
# odd build system, also see bug #582130
}
libxml2_configure --without-python # build python bindings separately
if multilib_is_native_abi && use python; then
python_foreach_impl libxml2_py_configure
fi
}
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
multilib_is_native_abi && use python && python_foreach_impl libxml2_py_emake test
}
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() {
# on windows, xmllint is installed by interix libxml2 in parent prefix.
# this is the version to use. the native winnt version does not support
# symlinks, which makes repoman fail if the portage tree is linked in
# from another location (which is my default). -- mduft
if [[ ${CHOST} == *-winnt* ]]; then
rm -rf "${ED}"/usr/bin/xmllint
rm -rf "${ED}"/usr/bin/xmlcatalog
fi
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 [[ "${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 dont 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
}
libxml2_py_emake() {
pushd "${BUILD_DIR}/python" > /dev/null || die
emake "$@"
popd > /dev/null
}

View File

@ -1,9 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata> <pkgmetadata>
<maintainer type="person">
<email>sam@gentoo.org</email>
<name>Sam James</name>
</maintainer>
<maintainer type="project"> <maintainer type="project">
<email>gnome@gentoo.org</email> <email>base-system@gentoo.org</email>
<name>Gentoo GNOME Desktop</name> <name>Gentoo Base System</name>
</maintainer> </maintainer>
<upstream> <upstream>
<remote-id type="cpe">cpe:/a:xmlsoft:libxml2</remote-id> <remote-id type="cpe">cpe:/a:xmlsoft:libxml2</remote-id>