From db434008feaf82a75f2dbca386bd73fc7efb2158 Mon Sep 17 00:00:00 2001 From: Krzesimir Nowak Date: Tue, 22 Mar 2022 13:38:11 +0100 Subject: [PATCH] dev-python/lxml: Sync with Gentoo It's from Gentoo commit 896273c19146f20e7077796790787062bf29970f. --- .../portage-stable/dev-python/lxml/Manifest | 3 +- .../lxml/files/lxml-4.6.0-tests-pypy.patch | 18 ++++ .../lxml/files/lxml-4.6.3-tests-libxml2.patch | 22 ---- .../dev-python/lxml/lxml-4.6.3-r1.ebuild | 101 ------------------ ...lxml-4.6.4.ebuild => lxml-4.8.0-r1.ebuild} | 37 ++++--- 5 files changed, 43 insertions(+), 138 deletions(-) delete mode 100644 sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-4.6.3-tests-libxml2.patch delete mode 100644 sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-4.6.3-r1.ebuild rename sdk_container/src/third_party/portage-stable/dev-python/lxml/{lxml-4.6.4.ebuild => lxml-4.8.0-r1.ebuild} (72%) diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/lxml/Manifest index 2beb210c3e..1bbee16e74 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/lxml/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/lxml/Manifest @@ -1,2 +1 @@ -DIST lxml-4.6.3.tar.gz 948931 BLAKE2B 373248827cb6bc0698b632ef60978adb2b8f7c37444fa1804567f08eb669018dc38fadf52422262fd96280e88c59578d244e4c5a1ed55609af55c010b3bf2b09 SHA512 50e42d6269dc45b4c0ab3285c49307f8bee87fcc4b9e0f531e1ee37bcf83c5938b7e361f906a3158fac8df89a79b932dd64a8839455e45f45f3a5f0ba73ff6a5 -DIST lxml-4.6.4.tar.gz 953275 BLAKE2B 7dae0fe0c92c937d823429b32ae952e501e193835892d40746aa35e48586df4e497865f246362ef10430cc9187cd54f98078b7edcc0fd9f421ac9d15994e7b2a SHA512 4e62b7c9ceec47f490136e86e9875aae3f3dccd0ee5e504f8128c62cdb111e00e64ee35678028438b87d32253fdeb8e1184d4017b56e06dfbc93cd0e8736101f +DIST lxml-4.8.0.tar.gz 959376 BLAKE2B a40be5e058153e1dc3f8501b645b0211f4498928ed71b161df54a67501356e9968064401b6d17e17dc8d62223b29e794eaa2bee7ff78ffee203d9f9a22f3e1c2 SHA512 bbcd8ea001cfa2820dcac4e00de6ded81700b2f0bd4a58bcdd4da05a19a107f57cd56280c4838fe19ee7ecd6be105878bf8c2f1c0e5111899c4ad1a2ba03537f diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-4.6.0-tests-pypy.patch b/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-4.6.0-tests-pypy.patch index bd17a8e06e..51bcb8fe2e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-4.6.0-tests-pypy.patch +++ b/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-4.6.0-tests-pypy.patch @@ -432,3 +432,21 @@ index cde23357..41f8d78b 100644 -- 2.25.0 +diff --git a/doc/element_classes.txt b/doc/element_classes.txt +index 4b1e72e8..fda9ea07 100644 +--- a/doc/element_classes.txt ++++ b/doc/element_classes.txt +@@ -576,10 +576,10 @@ subclasses for elements of this namespace: + + >>> print(honk_element[0].honk()) + HONK +- >>> print(honk_element[0].honking) ++ >>> print(honk_element[0].honking) # doctest: +ELLIPSIS + Traceback (most recent call last): + ... +- AttributeError: 'HonkNSElement' object has no attribute 'honking' ++ AttributeError: 'HonkNSElement' object has no attribute 'honking'... + + >>> print(honk_element[1].text) # uses fallback for non-elements + comment + diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-4.6.3-tests-libxml2.patch b/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-4.6.3-tests-libxml2.patch deleted file mode 100644 index 4c682add3a..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-4.6.3-tests-libxml2.patch +++ /dev/null @@ -1,22 +0,0 @@ -https://github.com/lxml/lxml/commit/852ed1092bd80b6b9a51db24371047ec88843031 -https://bugs.gentoo.org/791190 - -From: Stefan Behnel -Date: Tue, 18 May 2021 22:02:02 +0200 -Subject: [PATCH] Adapt a test to a behavioural change in libxml2 2.9.11+. - ---- a/src/lxml/tests/test_etree.py -+++ b/src/lxml/tests/test_etree.py -@@ -3036,7 +3036,10 @@ def test_subelement_nsmap(self): - def test_html_prefix_nsmap(self): - etree = self.etree - el = etree.HTML('aa').find('.//page-description') -- self.assertEqual({'hha': None}, el.nsmap) -+ if etree.LIBXML_VERSION < (2, 9, 11): -+ self.assertEqual({'hha': None}, el.nsmap) -+ else: -+ self.assertEqual({}, el.nsmap) - - def test_getchildren(self): - Element = self.etree.Element - diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-4.6.3-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-4.6.3-r1.ebuild deleted file mode 100644 index cf132e4274..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-4.6.3-r1.ebuild +++ /dev/null @@ -1,101 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{7..10} pypy3 ) - -inherit distutils-r1 optfeature toolchain-funcs - -DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries" -HOMEPAGE="https://lxml.de/ https://pypi.org/project/lxml/ https://github.com/lxml/lxml" -SRC_URI="https://github.com/lxml/lxml/archive/${P}.tar.gz" -S=${WORKDIR}/lxml-${P} - -LICENSE="BSD ElementTree GPL-2 PSF-2" -SLOT="0" -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 ~x64-solaris ~x86-solaris" -IUSE="doc examples +threads test" -RESTRICT="!test? ( test )" - -# Note: lib{xml2,xslt} are used as C libraries, not Python modules. -RDEPEND=" - >=dev-libs/libxml2-2.9.12-r2 - >=dev-libs/libxslt-1.1.28" -DEPEND="${RDEPEND}" -BDEPEND=" - virtual/pkgconfig - dev-python/cython[${PYTHON_USEDEP}] - doc? ( - $(python_gen_any_dep ' - dev-python/docutils[${PYTHON_USEDEP}] - dev-python/pygments[${PYTHON_USEDEP}] - dev-python/sphinx[${PYTHON_USEDEP}] - dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}] - ') - ) - test? ( dev-python/cssselect[${PYTHON_USEDEP}] ) - " - -DISTUTILS_IN_SOURCE_BUILD=1 - -PATCHES=( - "${FILESDIR}"/${PN}-4.6.0-tests-pypy.patch - "${FILESDIR}"/${P}-tests-libxml2.patch -) - -python_check_deps() { - use doc || return 0 - has_version "dev-python/docutils[${PYTHON_USEDEP}]" && - has_version "dev-python/pygments[${PYTHON_USEDEP}]" && - has_version "dev-python/sphinx[${PYTHON_USEDEP}]" && - has_version "dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]" -} - -python_prepare_all() { - # avoid replacing PYTHONPATH in tests. - sed -i -e '/sys\.path/d' test.py || die - - # don't use some random SDK on Darwin - sed -i -e '/_ldflags =/s/=.*isysroot.*darwin.*None/= None/' \ - setupinfo.py || die - - distutils-r1_python_prepare_all -} - -python_compile() { - if ! python_is_python3; then - local -x CFLAGS="${CFLAGS} -fno-strict-aliasing" - fi - tc-export PKG_CONFIG - distutils-r1_python_compile -} - -python_compile_all() { - use doc && emake html -} - -python_test() { - cp -r -l src/lxml/tests "${BUILD_DIR}"/lib/lxml/ || die - cp -r -l src/lxml/html/tests "${BUILD_DIR}"/lib/lxml/html/ || die - ln -s "${S}"/doc "${BUILD_DIR}"/ || die - - "${EPYTHON}" test.py -vv --all-levels -p || die "Test ${test} fails with ${EPYTHON}" -} - -python_install_all() { - if use doc; then - local DOCS=( README.rst *.txt doc/*.txt ) - local HTML_DOCS=( doc/html/. ) - fi - if use examples; then - dodoc -r samples - fi - - distutils-r1_python_install_all -} - -pkg_postinst() { - optfeature "Support for BeautifulSoup as a parser backend" dev-python/beautifulsoup4 - optfeature "Translates CSS selectors to XPath 1.0 expressions" dev-python/cssselect -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-4.6.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-4.8.0-r1.ebuild similarity index 72% rename from sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-4.6.4.ebuild rename to sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-4.8.0-r1.ebuild index 5669cfb3cd..26e673acd7 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-4.6.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-4.8.0-r1.ebuild @@ -1,28 +1,35 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{8..10} pypy3 ) +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8..11} pypy3 ) inherit distutils-r1 optfeature toolchain-funcs DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries" -HOMEPAGE="https://lxml.de/ https://pypi.org/project/lxml/ https://github.com/lxml/lxml" +HOMEPAGE=" + https://lxml.de/ + https://pypi.org/project/lxml/ + https://github.com/lxml/lxml +" SRC_URI="https://github.com/lxml/lxml/archive/${P}.tar.gz" S=${WORKDIR}/lxml-${P} LICENSE="BSD ElementTree GPL-2 PSF-2" SLOT="0" -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 ~x64-solaris ~x86-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris" IUSE="doc examples +threads test" RESTRICT="!test? ( test )" # Note: lib{xml2,xslt} are used as C libraries, not Python modules. -RDEPEND=" +DEPEND=" >=dev-libs/libxml2-2.9.12-r2 >=dev-libs/libxslt-1.1.28" -DEPEND="${RDEPEND}" +RDEPEND=" + ${DEPEND} +" BDEPEND=" virtual/pkgconfig dev-python/cython[${PYTHON_USEDEP}] @@ -34,10 +41,10 @@ BDEPEND=" dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}] ') ) - test? ( dev-python/cssselect[${PYTHON_USEDEP}] ) - " - -DISTUTILS_IN_SOURCE_BUILD=1 + test? ( + dev-python/cssselect[${PYTHON_USEDEP}] + ) +" PATCHES=( "${FILESDIR}"/${PN}-4.6.0-tests-pypy.patch @@ -72,9 +79,13 @@ python_compile_all() { } python_test() { - cp -r -l src/lxml/tests "${BUILD_DIR}"/lib/lxml/ || die - cp -r -l src/lxml/html/tests "${BUILD_DIR}"/lib/lxml/html/ || die - ln -s "${S}"/doc "${BUILD_DIR}"/ || die + local dir=${BUILD_DIR}/test$(python_get_sitedir)/lxml + local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH} + + cp -al "${BUILD_DIR}"/{install,test} || die + cp -al src/lxml/tests "${dir}/" || die + cp -al src/lxml/html/tests "${dir}/html/" || die + ln -rs "${S}"/doc "${dir}"/../../ || die "${EPYTHON}" test.py -vv --all-levels -p || die "Test ${test} fails with ${EPYTHON}" }