diff options
| author | Michał Górny <mgorny@gentoo.org> | 2025-07-05 14:24:30 +0200 |
|---|---|---|
| committer | Michał Górny <mgorny@gentoo.org> | 2025-07-08 08:03:05 +0200 |
| commit | c017c6384e76484d2e2465eff2e16c78e35cd580 (patch) | |
| tree | 029d6bb7579705b7ed671f2e3cf35fa9a46ae4a3 | |
| parent | 129f9f44662460d2793cf0f55304ca3b8d3346ab (diff) | |
| download | gentoo-c017c6384e76484d2e2465eff2e16c78e35cd580.tar.gz gentoo-c017c6384e76484d2e2465eff2e16c78e35cd580.tar.bz2 gentoo-c017c6384e76484d2e2465eff2e16c78e35cd580.zip | |
dev-python/ensurepip-setuptools: Switch to building from source
Build the installed wheel from source rather than fetching the upstream
wheel. This is going to make it easier to patch bugs, and it enables
users to apply user patches. Additionally, we are effectively extending
test coverage, since dev-python/setuptools is only testing the unbundled
variant.
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Part-of: https://github.com/gentoo/gentoo/pull/42882
Signed-off-by: Michał Górny <mgorny@gentoo.org>
| -rw-r--r-- | dev-python/ensurepip-setuptools/Manifest | 1 | ||||
| -rw-r--r-- | dev-python/ensurepip-setuptools/ensurepip-setuptools-80.9.0-r1.ebuild | 86 | ||||
| -rw-r--r-- | dev-python/ensurepip-setuptools/metadata.xml | 17 |
3 files changed, 97 insertions, 7 deletions
diff --git a/dev-python/ensurepip-setuptools/Manifest b/dev-python/ensurepip-setuptools/Manifest index 52cfd61b5197..7db4debdcccd 100644 --- a/dev-python/ensurepip-setuptools/Manifest +++ b/dev-python/ensurepip-setuptools/Manifest @@ -1,2 +1,3 @@ DIST setuptools-79.0.1-py3-none-any.whl 1256281 BLAKE2B 8ae51bdd1c0ccada116757c2bd765225fcf4bedc7ada18567ae12f09b6978cdbcddd4f635a39a5568b6d3ed4388e4f73af5c33a7060f2ac0d0907fc82d8fd74f SHA512 fef6cfc6f95a5bb7320f1680e1c665cb8d9a4e4227cde4d8aab8a50bed4bcf04320085b9d7d5343359f887008db5c5a861e57f3d08b7b0b2311a28adaeee6b4a DIST setuptools-80.9.0-py3-none-any.whl 1201486 BLAKE2B 79895683ef4df387aee698984dfdf13adb14314f2d0267f41291c1c1ca68f4383a4273f004b6f3457463913eb19f8d386f32e2630ceaceaaf27ef32c4f61b7ed SHA512 2a0420f7faaa33d2132b82895a8282688030e939db0225ad8abb95a47bdb87b45318f10985fc3cee271a9121441c1526caa363d7f2e4a4b18b1a674068766e87 +DIST setuptools-80.9.0.tar.gz 1319958 BLAKE2B ab367912eec92b0d1251916d09c1dd2e311767eec87225beaff870dff923b47ba1732d2f7393b7d9e55d1ff1249c612e4403019e0021048951f9fc3b775c04c9 SHA512 36eb1f219d29c6b9e135936bde2001ad70a971c8069cd0175d3a5325b450e6843a903d3f70043c9f534768ebeab8ab0c544b8f44456555d333f1ed72daa5c18b diff --git a/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.9.0-r1.ebuild b/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.9.0-r1.ebuild new file mode 100644 index 000000000000..16193240eb0e --- /dev/null +++ b/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.9.0-r1.ebuild @@ -0,0 +1,86 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=standalone +PYPI_PN=${PN#ensurepip-} +# PYTHON_COMPAT used only for testing +PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) +PYTHON_REQ_USE="xml(+)" + +inherit distutils-r1 pypi + +DESCRIPTION="Shared setuptools wheel for ensurepip Python module" +HOMEPAGE=" + https://github.com/pypa/setuptools/ + https://pypi.org/project/setuptools/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="test" +RESTRICT="!test? ( test )" + +BDEPEND=" + ${RDEPEND} + test? ( + >=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.7.2[${PYTHON_USEDEP}] + >=dev-python/jaraco-test-5.5[${PYTHON_USEDEP}] + dev-python/pip[${PYTHON_USEDEP}] + dev-python/pyproject-hooks[${PYTHON_USEDEP}] + >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}] + >=dev-python/virtualenv-20[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=( pytest-{home,subprocess,timeout} ) +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_compile() { + # If we're testing, install for all implementations. + # If we're not, just get one wheel built. + if use test || [[ -z ${DISTUTILS_WHEEL_PATH} ]]; then + distutils-r1_python_compile + fi +} + +python_test() { + local EPYTEST_DESELECT=( + # TODO + setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic + setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors + # TODO, probably some random package + setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass + # relies on -Werror + setuptools/_static.py::setuptools._static.Dict + setuptools/_static.py::setuptools._static.List + ) + + case ${EPYTHON} in + pypy3.11) + EPYTEST_DESELECT+=( + setuptools/tests/test_editable_install.py::TestCustomBuildWheel::test_access_plat_name + ) + ;; + esac + + local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH} + epytest -o tmp_path_retention_policy=all \ + -m "not uses_network" setuptools +} + +src_install() { + if [[ ${DISTUTILS_WHEEL_PATH} != *py3-none-any.whl ]]; then + die "Non-pure wheel produced?! ${DISTUTILS_WHEEL_PATH}" + fi + # TODO: compress it? + insinto /usr/lib/python/ensurepip + doins "${DISTUTILS_WHEEL_PATH}" +} diff --git a/dev-python/ensurepip-setuptools/metadata.xml b/dev-python/ensurepip-setuptools/metadata.xml index ac51c41b5f27..46eeb100c7f3 100644 --- a/dev-python/ensurepip-setuptools/metadata.xml +++ b/dev-python/ensurepip-setuptools/metadata.xml @@ -1,11 +1,14 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="project"> - <email>python@gentoo.org</email> - </maintainer> - <stabilize-allarches/> - <upstream> - <remote-id type="pypi">setuptools</remote-id> - </upstream> + <maintainer type="project"> + <email>python@gentoo.org</email> + <name>Python</name> + </maintainer> + <stabilize-allarches/> + <upstream> + <remote-id type="pypi">setuptools</remote-id> + <remote-id type="github">pypa/setuptools</remote-id> + <remote-id type="cpe">cpe:/a:python:setuptools</remote-id> + </upstream> </pkgmetadata> |
