summaryrefslogtreecommitdiff
path: root/dev-python/setuptools
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/setuptools')
-rw-r--r--dev-python/setuptools/Manifest11
-rw-r--r--dev-python/setuptools/files/setuptools-69.5.1-py313.patch30
-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.ebuild125
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
+}