diff options
Diffstat (limited to 'dev-python/setuptools')
-rw-r--r-- | dev-python/setuptools/Manifest | 11 | ||||
-rw-r--r-- | dev-python/setuptools/files/setuptools-69.5.1-py313.patch | 30 | ||||
-rw-r--r-- | dev-python/setuptools/setuptools-72.1.0.ebuild (renamed from dev-python/setuptools/setuptools-69.0.3-r1.ebuild) | 46 | ||||
-rw-r--r-- | dev-python/setuptools/setuptools-72.2.0.ebuild (renamed from dev-python/setuptools/setuptools-69.5.1-r1.ebuild) | 56 | ||||
-rw-r--r-- | dev-python/setuptools/setuptools-73.0.1.ebuild | 125 |
5 files changed, 183 insertions, 85 deletions
diff --git a/dev-python/setuptools/Manifest b/dev-python/setuptools/Manifest index 3dc3dd51bbdc..14871b118bac 100644 --- a/dev-python/setuptools/Manifest +++ b/dev-python/setuptools/Manifest @@ -1,7 +1,8 @@ AUX setuptools-62.4.0-py-compile.patch 3704 BLAKE2B 9a5e70d2556b059be0ef060abd1db71298cd0e9aa1e2795d92cea5cdbaf0c82f4433e1a0c3095f4bc41bc72a457b63142253fe46c712afa1d7855a5d43607bca SHA512 48d7c065e2d8c29ce6e498effe6d79f9caa0f37d7cf6cadd0ed02c48d196a4d8a10a73cfa26744d6f74b48c63cd28a4074b161a6aae18c6169f6d8fffb044b1e -AUX setuptools-69.5.1-py313.patch 1170 BLAKE2B c94591a2c0c8e8b03ab7285934b42e85b9742ae69ffa48cf1ca4d23cb6b4f1ad0a9b8dc4b57ce80815f139edffe0e2339270be0b9880ea8dfaa0e739cdc0193a SHA512 dbda665f7d68c3f574e3d21d8fd946d2c6bda60cd2999ce83c58309dca5066f2e4294a441c4b56a9eeb80536cf76fd14141c443223c5b6cc5dd94c894b7d8645 -DIST setuptools-69.0.3.tar.gz 2219609 BLAKE2B 1a5e7896c7ea82d51b0aa4794435b9899cef871f6ae43d22ae5e08c57d87b70641f3f2abfcc29956a3de515f90b112fd61d3daf793474b4cf33f8567e3a38f4a SHA512 11df934931f4b73f7e07ea5713479593c6baa134d423556b2ae7aff0f1e5bdbdee1f5b516131adb169c838231ceb0293441fbf275ef7030dabecf74122565b6d -DIST setuptools-69.5.1.tar.gz 2291314 BLAKE2B 3756dd587136c7e688bdfecf4c0434c0e799f50f9a9a95750d41cb75e26b613b3dc178f43a9e0d21f17c42a7c4ad7461e7986966aefb814e3d0ff05178c82542 SHA512 81f4a5184976a0d4aa070261bb56458c54ec6a479786fa469e98cb336e9a1691b281ae771abe41bc5398fac15b2dd039c07cf014ee00572f46908ce6830fcb6a -EBUILD setuptools-69.0.3-r1.ebuild 3942 BLAKE2B 7f198d6bf946f17df21143474c91c61be21ebde1c035f1dabdb78cf5308b978113bcb5f0d353ded961493ee8b0b9636f3354c6ac8fdc06bf16b75c2e12c32499 SHA512 170054320f5213dd0e9532836378415191796149bd6ea97824a4aad5019b5ee0e459b0a260aab176ae4cab8cc795d037ea29620d742f35b058d09e5ef5918136 -EBUILD setuptools-69.5.1-r1.ebuild 4599 BLAKE2B 3a113c6de01f5bbf85cbab2b99106d67df61a8565da701b9eb36a40353421a99fbee48cdcc10c6a979e19f95cb8e952168b1651d90b958feb20c9f5a0a19a135 SHA512 c9c5e3c170f1c5af4031dd975c954403ff3c1589118172a73654b10b73375e30c497ac45aed8ff8415753c1c4ccbaba8f3cebe7e2f5c35deae422d19b1050c01 +DIST setuptools-72.1.0.tar.gz 2419487 BLAKE2B df05affc48f8909b6b3b9dc30ef33e31c4b3781e747fea7d23b855d0294976f563e25b268666bfd2c758be66eca00e3e850463ff3d6f26b891185a2a15c8d31c SHA512 d0a34f16dfa6bb9a6df39076cd43528cf854d343f6f801c448ea0ebab2a259aec3d03571e2a26709df6082ed2fcb6c43b86448be556fd559b6af41831b4f38e0 +DIST setuptools-72.2.0.tar.gz 2419230 BLAKE2B f04c196d13f62302e7c6f30a1021598fe22955cc8c980ddf22efa65f4d398c25273552b1a19b8719e2fee722dc44e9f1a2e339c5b6da8f4ca4ae8399cd27b2e1 SHA512 029c711be2953cc7fd88b6a0a00715e05ac04414e085e0b2387d58757c970a3316afb6e13426fa10dcc53785b98c8543ba48d49acf223a6332399a39a4924732 +DIST setuptools-73.0.1.tar.gz 2526506 BLAKE2B 766453a7f6f3e34bdc63628b8c0321730c66381cc6048d01fbf9dbf76eb9900cd5cfa6dbd7c55c95ada3e01065d43bf7cd9029793e0735cae989b3cb1b95287c SHA512 5def2d817329524e610c7981fc3a84687ea4d2e0a72799341a706a16ec61df3efc16c4622f8b88746ad4cb52f92f2493c23a99a21cf3607ed48da480dedd200b +EBUILD setuptools-72.1.0.ebuild 4261 BLAKE2B 5211e0e5aa791afcc0d700964638ba793e5c5fe507a036dbad025dda8f3905575b92d472ba0db77ae43ddd5c6cb86cba877275a7b7ca8322ad095294053cc125 SHA512 2989175c52bd37682d09c333883ca57dd92b1b40ccaf755fc820c6f31cf8d503f2846a965ec8cc94e420facee4930b9395083a34e5536b146a5d86534d6d2ad9 +EBUILD setuptools-72.2.0.ebuild 4428 BLAKE2B b584ccf973ab6784e0d5187499b5f140d1cb3e6b88bebd5439a1af5439ec5eabd2cfd6082ad02b007fe9ab38d3b4f1331bd4a49400231e79e6061462ea2c80f3 SHA512 a1cf38c6eff9313656f907de31eae6504ad66bea90b7a257e324400917c80a93490d50656c3251daa16565455cf2d24d5af94aa7665603bd4b9312ece90b9312 +EBUILD setuptools-73.0.1.ebuild 4372 BLAKE2B d1adf6c88761065855de60e4e3e2636b02372b96813650b1e5f60541faf179ab9a67a9fb145e79b65be8ae2579c73e979df63e2f97cfc70c243a755fbd649169 SHA512 2e7974293b764156a0fbd0254203ad39b9736b8b0ee077c154337fbcae2345d9034bff62707087aba8e2ed58eb143020539f560131905a1c0feb1fa7c37e1b7a MISC metadata.xml 469 BLAKE2B 4a26769b09a3785586b22db850b7fc5c4818f31c3ace9cc94476d35df05e50edf6721f3c95ec615c3b2efe071ef284a54ea2d53566316ba653f7830bb48f80bf SHA512 dd682c4ad2e59a97094ebdabe4d1063e2319ed05e1fe9d8c2fafe069badb3b4cf8bb6d9f50e09d2128e2a081c1c69827407ac8aed644ebf70eb4ca1bc9a57319 diff --git a/dev-python/setuptools/files/setuptools-69.5.1-py313.patch b/dev-python/setuptools/files/setuptools-69.5.1-py313.patch deleted file mode 100644 index 7222d3dba266..000000000000 --- a/dev-python/setuptools/files/setuptools-69.5.1-py313.patch +++ /dev/null @@ -1,30 +0,0 @@ -From c6266e423fa26aafa01f1df71de7c6613273155e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz> -Date: Tue, 14 May 2024 16:24:07 +0200 -Subject: [PATCH] Make the validation test for entry-points work with Python - 3.13+ - -The exception in importlib.metadata has changed. -See https://github.com/python/importlib_metadata/issues/488 - -This makes an existing test pass with Python 3.13. - -Partially fixes https://github.com/pypa/setuptools/issues/4196 ---- - setuptools/_entry_points.py | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/setuptools/_entry_points.py b/setuptools/_entry_points.py -index 747a69067e..b244e78387 100644 ---- a/setuptools/_entry_points.py -+++ b/setuptools/_entry_points.py -@@ -17,7 +17,8 @@ def ensure_valid(ep): - """ - try: - ep.extras -- except AttributeError as ex: -+ except (AttributeError, AssertionError) as ex: -+ # Why both? See https://github.com/python/importlib_metadata/issues/488 - msg = ( - f"Problems to parse {ep}.\nPlease ensure entry-point follows the spec: " - "https://packaging.python.org/en/latest/specifications/entry-points/" diff --git a/dev-python/setuptools/setuptools-69.0.3-r1.ebuild b/dev-python/setuptools/setuptools-72.1.0.ebuild index 056511cea1a8..54bceb617bc6 100644 --- a/dev-python/setuptools/setuptools-69.0.3-r1.ebuild +++ b/dev-python/setuptools/setuptools-72.1.0.ebuild @@ -7,7 +7,7 @@ EAPI=8 # please bump dev-python/ensurepip-setuptools along with this package! DISTUTILS_USE_PEP517=standalone -PYTHON_TESTED=( python3_{10..12} pypy3 ) +PYTHON_TESTED=( python3_{10..13} pypy3 ) PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) PYTHON_REQ_USE="xml(+)" @@ -26,26 +26,33 @@ IUSE="test" RESTRICT="!test? ( test )" RDEPEND=" + !!<dev-python/setuptools-rust-1.8.0 >=dev-python/jaraco-text-3.7.0-r1[${PYTHON_USEDEP}] >=dev-python/more-itertools-8.12.0-r1[${PYTHON_USEDEP}] >=dev-python/ordered-set-4.0.2-r1[${PYTHON_USEDEP}] - >=dev-python/packaging-21.3-r2[${PYTHON_USEDEP}] + >=dev-python/packaging-24[${PYTHON_USEDEP}] >=dev-python/platformdirs-2.6.2-r1[${PYTHON_USEDEP}] - >=dev-python/tomli-2.0.1[${PYTHON_USEDEP}] >=dev-python/wheel-0.37.1-r1[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + >=dev-python/tomli-2.0.1[${PYTHON_USEDEP}] + ' 3.10) " BDEPEND=" ${RDEPEND} test? ( $(python_gen_cond_dep ' - dev-python/build[${PYTHON_USEDEP}] - >=dev-python/ini2toml-0.9[${PYTHON_USEDEP}] + >=dev-python/build-1.0.3[${PYTHON_USEDEP}] + >=dev-python/ini2toml-0.14[${PYTHON_USEDEP}] >=dev-python/filelock-3.4.0[${PYTHON_USEDEP}] >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}] >=dev-python/jaraco-path-3.2.0[${PYTHON_USEDEP}] + dev-python/jaraco-test[${PYTHON_USEDEP}] dev-python/pip[${PYTHON_USEDEP}] dev-python/pip-run[${PYTHON_USEDEP}] + dev-python/pyproject-hooks[${PYTHON_USEDEP}] dev-python/pytest[${PYTHON_USEDEP}] + >=dev-python/pytest-home-0.5[${PYTHON_USEDEP}] + dev-python/pytest-subprocess[${PYTHON_USEDEP}] dev-python/pytest-timeout[${PYTHON_USEDEP}] dev-python/pytest-xdist[${PYTHON_USEDEP}] >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}] @@ -55,25 +62,32 @@ BDEPEND=" " # setuptools-scm is here because installing plugins apparently breaks stuff at # runtime, so let's pull it early. See bug #663324. +# +# trove-classifiers are optionally used in validation, if they are +# installed. Since we really oughtn't block them, let's always enforce +# the newest version for the time being to avoid errors. +# https://github.com/pypa/setuptools/issues/4459 PDEPEND=" dev-python/setuptools-scm[${PYTHON_USEDEP}] + >=dev-python/trove-classifiers-2024.7.2[${PYTHON_USEDEP}] " src_prepare() { local PATCHES=( # TODO: remove this when we're 100% PEP517 mode - "${FILESDIR}"/setuptools-62.4.0-py-compile.patch + "${FILESDIR}/setuptools-62.4.0-py-compile.patch" ) distutils-r1_src_prepare + # breaks tests + sed -i -e '/--import-mode/d' pytest.ini || die + # remove bundled dependencies - rm -r */_vendor || die + rm -r */_vendor setuptools/_distutils/_vendor || die - # remove the ugly */extern hack that breaks on unvendored deps - rm -r */extern || die find -name '*.py' -exec sed \ - -e 's:from \w*[.]\+extern ::' -e 's:\w*[.]\+extern[.]::' \ + -e 's:from [.]_vendor[.]:from :' \ -i {} + || die } @@ -84,20 +98,14 @@ python_test() { local EPYTEST_DESELECT=( # network - # TODO: see if PRE_BUILT_SETUPTOOLS_* helps - setuptools/tests/config/test_apply_pyprojecttoml.py::test_apply_pyproject_equivalent_to_setupcfg - setuptools/tests/integration/test_pip_install_sdist.py::test_install_sdist setuptools/tests/test_build_meta.py::test_legacy_editable_install setuptools/tests/test_distutils_adoption.py setuptools/tests/test_editable_install.py - setuptools/tests/test_setuptools.py::test_its_own_wheel_does_not_contain_tests - setuptools/tests/test_virtualenv.py::test_clean_env_install setuptools/tests/test_virtualenv.py::test_no_missing_dependencies setuptools/tests/test_virtualenv.py::test_test_command_install_requirements # TODO setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors - setuptools/tests/test_extern.py::test_distribution_picklable # expects bundled deps in virtualenv setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_in_sdist setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_not_in_wheel @@ -105,8 +113,12 @@ python_test() { setuptools/tests/test_easy_install.py::TestSetupRequires::test_setup_requires_with_allow_hosts # TODO, probably some random package setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass + # broken by unbundling + setuptools/tests/test_setuptools.py::test_wheel_includes_vendored_metadata ) local EPYTEST_XDIST=1 - epytest -o tmp_path_retention_policy=all setuptools + local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH} + epytest -o tmp_path_retention_policy=all \ + -m "not uses_network" setuptools } diff --git a/dev-python/setuptools/setuptools-69.5.1-r1.ebuild b/dev-python/setuptools/setuptools-72.2.0.ebuild index 548567ac52f4..b861cccb6b65 100644 --- a/dev-python/setuptools/setuptools-69.5.1-r1.ebuild +++ b/dev-python/setuptools/setuptools-72.2.0.ebuild @@ -21,12 +21,12 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="amd64 arm arm64 hppa ~ia64 ~loong ~m68k ppc ppc64 ~riscv ~s390 sparc x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE="test" RESTRICT="!test? ( test )" -# check */_vendor/vendored.txt RDEPEND=" + !!<dev-python/setuptools-rust-1.8.0 >=dev-python/jaraco-text-3.7.0-r1[${PYTHON_USEDEP}] >=dev-python/more-itertools-8.12.0-r1[${PYTHON_USEDEP}] >=dev-python/ordered-set-4.0.2-r1[${PYTHON_USEDEP}] @@ -41,38 +41,41 @@ BDEPEND=" ${RDEPEND} test? ( $(python_gen_cond_dep ' - dev-python/build[${PYTHON_USEDEP}] - >=dev-python/ini2toml-0.9[${PYTHON_USEDEP}] + >=dev-python/build-1.0.3[${PYTHON_USEDEP}] + >=dev-python/ini2toml-0.14[${PYTHON_USEDEP}] >=dev-python/filelock-3.4.0[${PYTHON_USEDEP}] >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}] >=dev-python/jaraco-path-3.2.0[${PYTHON_USEDEP}] + dev-python/jaraco-test[${PYTHON_USEDEP}] dev-python/pip[${PYTHON_USEDEP}] dev-python/pip-run[${PYTHON_USEDEP}] + dev-python/pyproject-hooks[${PYTHON_USEDEP}] dev-python/pytest[${PYTHON_USEDEP}] >=dev-python/pytest-home-0.5[${PYTHON_USEDEP}] + dev-python/pytest-subprocess[${PYTHON_USEDEP}] dev-python/pytest-timeout[${PYTHON_USEDEP}] dev-python/pytest-xdist[${PYTHON_USEDEP}] - dev-python/tomli[${PYTHON_USEDEP}] + >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}] >=dev-python/virtualenv-20[${PYTHON_USEDEP}] ' "${PYTHON_TESTED[@]}") - $(python_gen_cond_dep ' - >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}] - ' python3_10 pypy3) ) " # setuptools-scm is here because installing plugins apparently breaks stuff at # runtime, so let's pull it early. See bug #663324. +# +# trove-classifiers are optionally used in validation, if they are +# installed. Since we really oughtn't block them, let's always enforce +# the newest version for the time being to avoid errors. +# https://github.com/pypa/setuptools/issues/4459 PDEPEND=" dev-python/setuptools-scm[${PYTHON_USEDEP}] + >=dev-python/trove-classifiers-2024.7.2[${PYTHON_USEDEP}] " src_prepare() { local PATCHES=( # TODO: remove this when we're 100% PEP517 mode "${FILESDIR}/setuptools-62.4.0-py-compile.patch" - - # https://github.com/pypa/setuptools/pull/4357 - "${FILESDIR}/${P}-py313.patch" ) distutils-r1_src_prepare @@ -81,12 +84,10 @@ src_prepare() { sed -i -e '/--import-mode/d' pytest.ini || die # remove bundled dependencies - rm -r */_vendor || die + rm -r */_vendor setuptools/_distutils/_vendor || die - # remove the ugly */extern hack that breaks on unvendored deps - rm -r */extern || die find -name '*.py' -exec sed \ - -e 's:from \w*[.]\+extern ::' -e 's:\w*[.]\+extern[.]::' \ + -e 's:from [.]_vendor[.]:from :' \ -i {} + || die } @@ -97,20 +98,14 @@ python_test() { local EPYTEST_DESELECT=( # network - # TODO: see if PRE_BUILT_SETUPTOOLS_* helps - setuptools/tests/config/test_apply_pyprojecttoml.py::test_apply_pyproject_equivalent_to_setupcfg - setuptools/tests/integration/test_pip_install_sdist.py::test_install_sdist setuptools/tests/test_build_meta.py::test_legacy_editable_install setuptools/tests/test_distutils_adoption.py setuptools/tests/test_editable_install.py - setuptools/tests/test_setuptools.py::test_its_own_wheel_does_not_contain_tests - setuptools/tests/test_virtualenv.py::test_clean_env_install setuptools/tests/test_virtualenv.py::test_no_missing_dependencies setuptools/tests/test_virtualenv.py::test_test_command_install_requirements # TODO setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors - setuptools/tests/test_extern.py::test_distribution_picklable # expects bundled deps in virtualenv setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_in_sdist setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_not_in_wheel @@ -118,19 +113,14 @@ python_test() { setuptools/tests/test_easy_install.py::TestSetupRequires::test_setup_requires_with_allow_hosts # TODO, probably some random package setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass - # Internet, sigh - setuptools/tests/test_integration.py + # broken by unbundling + setuptools/tests/test_setuptools.py::test_wheel_includes_vendored_metadata + # fails on normalized metadata, perhaps different dep version? + setuptools/tests/test_build_meta.py::TestBuildMetaBackend::test_build_with_pyproject_config ) - case ${EPYTHON} in - python3.12) - EPYTEST_DESELECT+=( - # TODO - setuptools/tests/test_easy_install.py::TestSetupRequires::test_setup_requires_with_distutils_command_dep - setuptools/tests/test_easy_install.py::TestSetupRequires::test_setup_requires_with_transitive_extra_dependency - ) - esac - local EPYTEST_XDIST=1 - epytest -o tmp_path_retention_policy=all setuptools + local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH} + epytest -o tmp_path_retention_policy=all \ + -m "not uses_network" setuptools } diff --git a/dev-python/setuptools/setuptools-73.0.1.ebuild b/dev-python/setuptools/setuptools-73.0.1.ebuild new file mode 100644 index 000000000000..99f798f9e34d --- /dev/null +++ b/dev-python/setuptools/setuptools-73.0.1.ebuild @@ -0,0 +1,125 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +# please bump dev-python/ensurepip-setuptools along with this package! + +DISTUTILS_USE_PEP517=standalone +PYTHON_TESTED=( python3_{10..13} pypy3 ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) +PYTHON_REQ_USE="xml(+)" + +inherit distutils-r1 pypi + +DESCRIPTION="Collection of extensions to Distutils" +HOMEPAGE=" + https://github.com/pypa/setuptools/ + https://pypi.org/project/setuptools/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + !!<dev-python/setuptools-rust-1.8.0 + >=dev-python/jaraco-text-3.7.0-r1[${PYTHON_USEDEP}] + >=dev-python/more-itertools-8.12.0-r1[${PYTHON_USEDEP}] + >=dev-python/packaging-24[${PYTHON_USEDEP}] + >=dev-python/platformdirs-2.6.2-r1[${PYTHON_USEDEP}] + >=dev-python/wheel-0.44.0[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + >=dev-python/tomli-2.0.1[${PYTHON_USEDEP}] + ' 3.10) +" +BDEPEND=" + ${RDEPEND} + test? ( + $(python_gen_cond_dep ' + >=dev-python/build-1.0.3[${PYTHON_USEDEP}] + >=dev-python/ini2toml-0.14[${PYTHON_USEDEP}] + >=dev-python/filelock-3.4.0[${PYTHON_USEDEP}] + >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}] + >=dev-python/jaraco-path-3.2.0[${PYTHON_USEDEP}] + dev-python/jaraco-test[${PYTHON_USEDEP}] + dev-python/pip[${PYTHON_USEDEP}] + dev-python/pip-run[${PYTHON_USEDEP}] + dev-python/pyproject-hooks[${PYTHON_USEDEP}] + dev-python/pytest[${PYTHON_USEDEP}] + >=dev-python/pytest-home-0.5[${PYTHON_USEDEP}] + dev-python/pytest-subprocess[${PYTHON_USEDEP}] + dev-python/pytest-timeout[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}] + >=dev-python/virtualenv-20[${PYTHON_USEDEP}] + ' "${PYTHON_TESTED[@]}") + ) +" +# setuptools-scm is here because installing plugins apparently breaks stuff at +# runtime, so let's pull it early. See bug #663324. +# +# trove-classifiers are optionally used in validation, if they are +# installed. Since we really oughtn't block them, let's always enforce +# the newest version for the time being to avoid errors. +# https://github.com/pypa/setuptools/issues/4459 +PDEPEND=" + dev-python/setuptools-scm[${PYTHON_USEDEP}] + >=dev-python/trove-classifiers-2024.7.2[${PYTHON_USEDEP}] +" + +src_prepare() { + local PATCHES=( + # TODO: remove this when we're 100% PEP517 mode + "${FILESDIR}/setuptools-62.4.0-py-compile.patch" + ) + + distutils-r1_src_prepare + + # breaks tests + sed -i -e '/--import-mode/d' pytest.ini || die + + # remove bundled dependencies + rm -r */_vendor setuptools/_distutils/_vendor || die + + find -name '*.py' -exec sed \ + -e 's:from [.]_vendor[.]:from :' \ + -i {} + || die +} + +python_test() { + if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then + return + fi + + local EPYTEST_DESELECT=( + # network + setuptools/tests/test_build_meta.py::test_legacy_editable_install + setuptools/tests/test_distutils_adoption.py + setuptools/tests/test_editable_install.py + setuptools/tests/test_virtualenv.py::test_no_missing_dependencies + setuptools/tests/test_virtualenv.py::test_test_command_install_requirements + # TODO + setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic + setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors + # expects bundled deps in virtualenv + setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_in_sdist + setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_not_in_wheel + # fails if python-xlib is installed + setuptools/tests/test_easy_install.py::TestSetupRequires::test_setup_requires_with_allow_hosts + # TODO, probably some random package + setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass + # broken by unbundling + setuptools/tests/test_setuptools.py::test_wheel_includes_vendored_metadata + # fails on normalized metadata, perhaps different dep version? + setuptools/tests/test_build_meta.py::TestBuildMetaBackend::test_build_with_pyproject_config + ) + + local EPYTEST_XDIST=1 + local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH} + epytest -o tmp_path_retention_policy=all \ + -m "not uses_network" setuptools +} |