diff options
| author | Crucible <crucible@localhost> | 2026-10-23 14:07:00 -0500 |
|---|---|---|
| committer | Crucible <crucible@localhost> | 2026-10-23 14:07:00 -0500 |
| commit | 9f5d6f2dd0b699da78272da6681c0786bc364b78 (patch) | |
| tree | 9d2a11293291251ff9b703dd11bdd95f3a09fd02 /dev-python | |
| parent | a12baa2c6bdd04b0d13246478eb2fe31665f042f (diff) | |
| download | srcux-9f5d6f2dd0b699da78272da6681c0786bc364b78.tar.gz srcux-9f5d6f2dd0b699da78272da6681c0786bc364b78.tar.xz srcux-9f5d6f2dd0b699da78272da6681c0786bc364b78.zip | |
Publish srcux candidate 0000000855-20261023-140321
Diffstat (limited to 'dev-python')
| -rw-r--r-- | dev-python/ensurepip-pip/Manifest | 1 | ||||
| -rw-r--r-- | dev-python/ensurepip-pip/ensurepip-pip-26.2.1-r1.ebuild | 191 | ||||
| -rw-r--r-- | dev-python/ensurepip-pip/ensurepip-pip-26.2.2-r1.ebuild | 191 | ||||
| -rw-r--r-- | dev-python/qemu-qmp/qemu-qmp-0.0.6.ebuild | 2 | ||||
| -rw-r--r-- | dev-python/urwid-readline/urwid-readline-0.15.1.ebuild | 2 | ||||
| -rw-r--r-- | dev-python/virtualenv/Manifest | 2 | ||||
| -rw-r--r-- | dev-python/virtualenv/virtualenv-21.14.13.ebuild | 135 |
7 files changed, 522 insertions, 2 deletions
diff --git a/dev-python/ensurepip-pip/Manifest b/dev-python/ensurepip-pip/Manifest index d0b8b25e59da..b56a30ca9dff 100644 --- a/dev-python/ensurepip-pip/Manifest +++ b/dev-python/ensurepip-pip/Manifest @@ -1,3 +1,4 @@ +DIST certifi-system-store-3024.7.22.gh.tar.gz 12441 BLAKE2B 445477dc557f980c5f2edf37d6683204181071e625dac66e9cc3bdeec38ba28ff385d2a92d8162de6af30fc552b64b6c8ad13a06dd6e7f2e26f02d453d69d5c4 SHA512 a4862dbb9f931322f7c62ecd877bee97679cc147acd4585642cbd215f37663f3bde7a73cf846bb0c84077c6cee1c1e4c06da9e2ce44d8dcb1e8fe6065e282feb DIST flit_core-3.12.0-py3-none-any.whl 45594 BLAKE2B 7c6cb6eb03d45bbba27f27b3728881b57fe82dd38e03f884d3b7c46116eb2b9dd76f92bdaf7f594ef8ccbe12ec8f9a56424ff9e9fc7a839c4818a113fdf0c3d3 SHA512 790c12b1f43201e365fb3f8f2f0a54e1a578876799dfdf8bfeea679a25ea096bf62946d006618c1458ae6e37ce6d00998f37e9aba426d5ab80d32ef2d75da4e0 DIST pip-26.1.2.gh.tar.gz 9268753 BLAKE2B 8cbf0ecf25a2bdd148506ca0e2e778b9053759cf5fed3914b915454bd8810b1d7a27e3b2efb5fd29c4e6b189c7e8050f0da15ae6c259712446b5a35f44018ee0 SHA512 e29c98a7da5e329183b7eef86a66f9d6c3473051f64aa6e762714306148547eb0de4220824484071822a9a62bd01a62a09ab16bba4c26e4b847bfc2609728608 DIST pip-26.2.1.gh.tar.gz 9301563 BLAKE2B eb7b929de0e99c84c9b1257f1bf737f524eb6de01075d40b36519b082d8a49e107dbd0eded9a8bf737ce8f7d452c5e5cffb853b000d6ac2936b5b84dd607c770 SHA512 03a00bdc4387a4e7e4e54672e9198893500d279912ece4cd144f015c568c974ecc2c3c7bd6abf108df852302ddd49468ef0bc514ca4323ee037d754e2fbfaee0 diff --git a/dev-python/ensurepip-pip/ensurepip-pip-26.2.1-r1.ebuild b/dev-python/ensurepip-pip/ensurepip-pip-26.2.1-r1.ebuild new file mode 100644 index 000000000000..5a3dd9b30e07 --- /dev/null +++ b/dev-python/ensurepip-pip/ensurepip-pip-26.2.1-r1.ebuild @@ -0,0 +1,191 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit-core +# PYTHON_COMPAT is used only for testing +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE="ssl(+),threads(+)" + +inherit distutils-r1 pypi + +FLIT_CORE_PV=3.12.0 +CERTIFI_PV=3024.7.22 +CERTIFI_P=certifi-system-store-${CERTIFI_PV} + +MY_P=${P#ensurepip-} +DESCRIPTION="Shared pip wheel for ensurepip Python module" +HOMEPAGE=" + https://pip.pypa.io/en/stable/ + https://pypi.org/project/pip/ + https://github.com/pypa/pip/ +" +SRC_URI=" + https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${MY_P}.gh.tar.gz + https://github.com/projg2/certifi-system-store/archive/v${CERTIFI_PV}.tar.gz + -> ${CERTIFI_P}.gh.tar.gz + test? ( + $(pypi_wheel_url flit-core "${FLIT_CORE_PV}") + ) +" +S=${WORKDIR}/${MY_P} + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="test test-rust" +RESTRICT="!test? ( test )" + +BDEPEND=" + ${RDEPEND} + test? ( + <dev-python/ensurepip-setuptools-80 + dev-python/ensurepip-wheel + dev-python/freezegun[${PYTHON_USEDEP}] + dev-python/pretend[${PYTHON_USEDEP}] + dev-python/scripttest[${PYTHON_USEDEP}] + dev-python/virtualenv[${PYTHON_USEDEP}] + dev-python/werkzeug[${PYTHON_USEDEP}] + dev-python/wheel[${PYTHON_USEDEP}] + test-rust? ( + dev-python/cryptography[${PYTHON_USEDEP}] + ) + dev-vcs/git + ) +" + +EPYTEST_PLUGINS=() +EPYTEST_RERUNS=5 +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +declare -A VENDOR_LICENSES=( + [cachecontrol]=Apache-2.0 + [certifi]=MPL-2.0 + [distlib]=PSF-2 + [distro]=Apache-2.0 + [idna]=BSD + [msgpack]=Apache-2.0 + [packaging]="|| ( Apache-2.0 MIT )" + [pkg_resources]=MIT + [platformdirs]=MIT + [pygments]=BSD-2 + [pyproject_hooks]=MIT + [requests]=Apache-2.0 + [resolvelib]=ISC + [rich]=MIT + [tomli]=MIT + [tomli_w]=MIT + [truststore]=MIT + [urllib3]=MIT +) +LICENSE+=" ${VENDOR_LICENSES[*]}" + +python_prepare_all() { + local PATCHES=( + # remove coverage & pytest-subket wheel expectation from test suite + # (from dev-python/pip) + "${FILESDIR}/pip-26.0-test-wheels.patch" + ) + + distutils-r1_python_prepare_all + + # Replace bundled certifi with certifi-system-store, which is the next + # best thing after unbundling certifi entirely. + rm -r src/pip/_vendor/certifi || die + mv "${WORKDIR}/${CERTIFI_P}/src/certifi" src/pip/_vendor/ || die + sed -i -e "/certifi/s:[0-9][0-9.]*:${CERTIFI_PV}:" src/pip/_vendor/vendor.txt || die + + if use test; then + local wheels=( + "${BROOT}"/usr/lib/python/ensurepip/{setuptools,wheel}-*.whl + "${DISTDIR}/$(pypi_wheel_name flit-core "${FLIT_CORE_PV}")" + ) + mkdir tests/data/common_wheels/ || die + cp "${wheels[@]}" tests/data/common_wheels/ || die + fi + + # Verify that we've covered licenses for all vendored packages + cd src/pip/_vendor || die + local packages=( */ ) + local pkg missing=() + for pkg in "${packages[@]%/}"; do + if [[ ! -v "VENDOR_LICENSES[${pkg}]" ]]; then + missing+=( "${pkg}" ) + else + unset "VENDOR_LICENSES[${pkg}]" + fi + done + + if [[ ${missing[@]} || ${VENDOR_LICENSES[@]} ]]; then + [[ ${missing[@]} ]] && + eerror "License missing for packages: ${missing[*]}" + [[ ${VENDOR_LICENSES[@]} ]] && + eerror "Vendored packages removed: ${!VENDOR_LICENSES[*]}" + die "VENDOR_LICENSES outdated" + fi + + local upstream_count=$(wc -l < vendor.txt || die) + if [[ ${#packages[@]} -ne ${upstream_count} ]]; then + eerror "VENDOR_LICENSES: ${#packages[@]}" + eerror "vendor.txt: ${upstream_count}" + die "Not all vendored packages matched" + fi +} + +python_test() { + local EPYTEST_DESELECT=( + tests/functional/test_inspect.py::test_inspect_basic + # Internet + tests/functional/test_config_settings.py::test_backend_sees_config_via_sdist + tests/functional/test_install.py::test_double_install_fail + tests/functional/test_install.py::test_install_sdist_links + tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed + tests/functional/test_lock.py::test_lock_archive + tests/functional/test_lock.py::test_lock_vcs + # broken by system site-packages use + tests/functional/test_freeze.py::test_freeze_with_setuptools + tests/functional/test_pip_runner_script.py::test_runner_work_in_environments_with_no_pip + tests/functional/test_uninstall.py::test_basic_uninstall_distutils + tests/unit/test_base_command.py::test_base_command_global_tempdir_cleanup + tests/unit/test_base_command.py::test_base_command_local_tempdir_cleanup + tests/unit/test_base_command.py::test_base_command_provides_tempdir_helpers + # require cmake wheel + tests/functional/test_build_env.py::test_build_env_can_still_access_python_tools_on_system_path + tests/functional/test_build_env.py::test_build_env_isolation[venv-inprocess] + tests/functional/test_build_env.py::test_build_env_isolation[venv-subprocess] + tests/functional/test_install_config.py::test_build_dependency_install_uses_same_keyring_as_root[legacy-isolation] + ) + local EPYTEST_IGNORE=( + # from upstream options + src/pip/_vendor + tests/tests_cache + # requires proxy.py + tests/functional/test_proxy.py + ) + + if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then + EPYTEST_DESELECT+=( + tests/functional/test_install.py::test_install_sends_client_cert + tests/functional/test_install_config.py::test_do_not_prompt_for_authentication + tests/functional/test_install_config.py::test_prompt_for_authentication + tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed + ) + fi + + local -x PIP_DISABLE_PIP_VERSION_CHECK=1 + # rerunfailures because test suite breaks if packages are installed + # in parallel + epytest -m "not network" -o addopts= -o tmp_path_retention_policy=all \ + --use-venv +} + +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-pip/ensurepip-pip-26.2.2-r1.ebuild b/dev-python/ensurepip-pip/ensurepip-pip-26.2.2-r1.ebuild new file mode 100644 index 000000000000..7f663a732bd6 --- /dev/null +++ b/dev-python/ensurepip-pip/ensurepip-pip-26.2.2-r1.ebuild @@ -0,0 +1,191 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit-core +# PYTHON_COMPAT is used only for testing +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE="ssl(+),threads(+)" + +inherit distutils-r1 pypi + +FLIT_CORE_PV=3.12.0 +CERTIFI_PV=3024.7.22 +CERTIFI_P=certifi-system-store-${CERTIFI_PV} + +MY_P=${P#ensurepip-} +DESCRIPTION="Shared pip wheel for ensurepip Python module" +HOMEPAGE=" + https://pip.pypa.io/en/stable/ + https://pypi.org/project/pip/ + https://github.com/pypa/pip/ +" +SRC_URI=" + https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${MY_P}.gh.tar.gz + https://github.com/projg2/certifi-system-store/archive/v${CERTIFI_PV}.tar.gz + -> ${CERTIFI_P}.gh.tar.gz + test? ( + $(pypi_wheel_url flit-core "${FLIT_CORE_PV}") + ) +" +S=${WORKDIR}/${MY_P} + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="test test-rust" +RESTRICT="!test? ( test )" + +BDEPEND=" + ${RDEPEND} + test? ( + <dev-python/ensurepip-setuptools-80 + dev-python/ensurepip-wheel + dev-python/freezegun[${PYTHON_USEDEP}] + dev-python/pretend[${PYTHON_USEDEP}] + dev-python/scripttest[${PYTHON_USEDEP}] + dev-python/virtualenv[${PYTHON_USEDEP}] + dev-python/werkzeug[${PYTHON_USEDEP}] + dev-python/wheel[${PYTHON_USEDEP}] + test-rust? ( + dev-python/cryptography[${PYTHON_USEDEP}] + ) + dev-vcs/git + ) +" + +EPYTEST_PLUGINS=() +EPYTEST_RERUNS=5 +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +declare -A VENDOR_LICENSES=( + [cachecontrol]=Apache-2.0 + [certifi]=MPL-2.0 + [distlib]=PSF-2 + [distro]=Apache-2.0 + [idna]=BSD + [msgpack]=Apache-2.0 + [packaging]="|| ( Apache-2.0 MIT )" + [pkg_resources]=MIT + [platformdirs]=MIT + [pygments]=BSD-2 + [pyproject_hooks]=MIT + [requests]=Apache-2.0 + [resolvelib]=ISC + [rich]=MIT + [tomli]=MIT + [tomli_w]=MIT + [truststore]=MIT + [urllib3]=MIT +) +LICENSE+=" ${VENDOR_LICENSES[*]}" + +python_prepare_all() { + local PATCHES=( + # remove coverage & pytest-subket wheel expectation from test suite + # (from dev-python/pip) + "${FILESDIR}/pip-26.0-test-wheels.patch" + ) + + distutils-r1_python_prepare_all + + # Replace bundled certifi with certifi-system-store, which is the next + # best thing after unbundling certifi entirely. + rm -r src/pip/_vendor/certifi || die + mv "${WORKDIR}/${CERTIFI_P}/src/certifi" src/pip/_vendor/ || die + sed -i -e "/certifi/s:[0-9][0-9.]*:${CERTIFI_PV}:" src/pip/_vendor/vendor.txt || die + + if use test; then + local wheels=( + "${BROOT}"/usr/lib/python/ensurepip/{setuptools,wheel}-*.whl + "${DISTDIR}/$(pypi_wheel_name flit-core "${FLIT_CORE_PV}")" + ) + mkdir tests/data/common_wheels/ || die + cp "${wheels[@]}" tests/data/common_wheels/ || die + fi + + # Verify that we've covered licenses for all vendored packages + cd src/pip/_vendor || die + local packages=( */ ) + local pkg missing=() + for pkg in "${packages[@]%/}"; do + if [[ ! -v "VENDOR_LICENSES[${pkg}]" ]]; then + missing+=( "${pkg}" ) + else + unset "VENDOR_LICENSES[${pkg}]" + fi + done + + if [[ ${missing[@]} || ${VENDOR_LICENSES[@]} ]]; then + [[ ${missing[@]} ]] && + eerror "License missing for packages: ${missing[*]}" + [[ ${VENDOR_LICENSES[@]} ]] && + eerror "Vendored packages removed: ${!VENDOR_LICENSES[*]}" + die "VENDOR_LICENSES outdated" + fi + + local upstream_count=$(wc -l < vendor.txt || die) + if [[ ${#packages[@]} -ne ${upstream_count} ]]; then + eerror "VENDOR_LICENSES: ${#packages[@]}" + eerror "vendor.txt: ${upstream_count}" + die "Not all vendored packages matched" + fi +} + +python_test() { + local EPYTEST_DESELECT=( + tests/functional/test_inspect.py::test_inspect_basic + # Internet + tests/functional/test_config_settings.py::test_backend_sees_config_via_sdist + tests/functional/test_install.py::test_double_install_fail + tests/functional/test_install.py::test_install_sdist_links + tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed + tests/functional/test_lock.py::test_lock_archive + tests/functional/test_lock.py::test_lock_vcs + # broken by system site-packages use + tests/functional/test_freeze.py::test_freeze_with_setuptools + tests/functional/test_pip_runner_script.py::test_runner_work_in_environments_with_no_pip + tests/functional/test_uninstall.py::test_basic_uninstall_distutils + tests/unit/test_base_command.py::test_base_command_global_tempdir_cleanup + tests/unit/test_base_command.py::test_base_command_local_tempdir_cleanup + tests/unit/test_base_command.py::test_base_command_provides_tempdir_helpers + # require cmake wheel + tests/functional/test_build_env.py::test_build_env_can_still_access_python_tools_on_system_path + tests/functional/test_build_env.py::test_build_env_isolation[venv-inprocess] + tests/functional/test_build_env.py::test_build_env_isolation[venv-subprocess] + tests/functional/test_install_config.py::test_build_dependency_install_uses_same_keyring_as_root[legacy-isolation] + ) + local EPYTEST_IGNORE=( + # from upstream options + src/pip/_vendor + tests/tests_cache + # requires proxy.py + tests/functional/test_proxy.py + ) + + if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then + EPYTEST_DESELECT+=( + tests/functional/test_install.py::test_install_sends_client_cert + tests/functional/test_install_config.py::test_do_not_prompt_for_authentication + tests/functional/test_install_config.py::test_prompt_for_authentication + tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed + ) + fi + + local -x PIP_DISABLE_PIP_VERSION_CHECK=1 + # rerunfailures because test suite breaks if packages are installed + # in parallel + epytest -m "not network" -o addopts= -o tmp_path_retention_policy=all \ + --use-venv +} + +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/qemu-qmp/qemu-qmp-0.0.6.ebuild b/dev-python/qemu-qmp/qemu-qmp-0.0.6.ebuild index e10564824808..3a68b4e7b5c6 100644 --- a/dev-python/qemu-qmp/qemu-qmp-0.0.6.ebuild +++ b/dev-python/qemu-qmp/qemu-qmp-0.0.6.ebuild @@ -16,7 +16,7 @@ HOMEPAGE=" LICENSE="GPL-2 LGPL-2+" SLOT="0" -KEYWORDS="~amd64" +KEYWORDS="~amd64 ~arm64 ~ppc64" RDEPEND="!<app-emulation/qemu-11.1.2-r0[python]" BDEPEND=" diff --git a/dev-python/urwid-readline/urwid-readline-0.15.1.ebuild b/dev-python/urwid-readline/urwid-readline-0.15.1.ebuild index df32af6d9ece..347c3bef5630 100644 --- a/dev-python/urwid-readline/urwid-readline-0.15.1.ebuild +++ b/dev-python/urwid-readline/urwid-readline-0.15.1.ebuild @@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P} LICENSE="MIT" SLOT="0" -KEYWORDS="~amd64 ~arm64 ~x86" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" RDEPEND=" dev-python/urwid[${PYTHON_USEDEP}] diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest index 2b84f4a853bd..80ca283cca50 100644 --- a/dev-python/virtualenv/Manifest +++ b/dev-python/virtualenv/Manifest @@ -10,6 +10,8 @@ DIST virtualenv-21.14.11.tar.gz 5503091 BLAKE2B 73e59fbf96059002e43819076f17912a DIST virtualenv-21.14.11.tar.gz.provenance 9939 BLAKE2B f1b9d5aacc24af5f6da163863444c58827b272312a03fd5986dd4425298b28d4948e66ccf61614adc76c3f341e084e7fccf6a0a8da20834cb798dcfc3b9d8ea6 SHA512 84f2025ce55b8285dd5fd82f8a5c7c8a6e1743ac775aa9fb3a502f9314dc72d0c83584e9534c907cf3572b7b2226786102614f178730f7a10d68feb60774bf88 DIST virtualenv-21.14.12.tar.gz 5562800 BLAKE2B e74bae47559d4e42d62cb55b4eb454c89010e7bbe4c01e77353f1330d7d7b5b1d8674a44ab434f8348ae799c03630312a6fc1beccf833c19551a6bfab8e5efe5 SHA512 8ad3ba141e199b74861ca2480a940f022ce117d13c225973eedc96537b6ec99132255d7f34296199e6e6c3dede3db76d3f9c131f3504a805cb56b9d7bb8c8394 DIST virtualenv-21.14.12.tar.gz.provenance 9575 BLAKE2B f92c135942161076edaf72fc7b458384804533d21d44e283f8be940a01d5bdf76502f4f70fa8ba88173ef2872b7253bfd1e47b36b229543e103ecac90eb27afc SHA512 4cdd9414ea7d623ddcae7d3ea52056843a196f2fe00415a2ed7b2835aaa093d48c595043b9a5fc0dd421627b2d0f32b123ceea4b141c327fafa0fd241af025bf +DIST virtualenv-21.14.13.tar.gz 5570301 BLAKE2B c55e528057703b527dd0b047fee6dfa4e26f9b64176364660d26c94b3ae1d00371590fa0e3271e2e244cc293cad316370d9e759d622a1b322c1510ecfd261ef8 SHA512 320fdbf35181b377a5e4c807f566d4224d84b2e0dee2f272379684b42649ea165379ae8e931657ca25e62f5d04d75163b84cc6839f884f0d471fe8915971aa38 +DIST virtualenv-21.14.13.tar.gz.provenance 9434 BLAKE2B 58954e2e0c9afa38e13d8582dab2185e84826d6468b88425e3739b8c7be90cb9a4c0b61b7280975fef6a9cd363577b77bf74c5deff432a33ccc64f40c94eacf4 SHA512 ca8243298f1eb035670f3051a2b6751da936ec9037201f8e878456bec5cb68c399508d651c6ee9ddf8209581610395883e0c9704157774dcab62d9a408c0612d DIST virtualenv-21.14.3.tar.gz 5464634 BLAKE2B e82707e1a51d55efef6b902fd8f5aa617003fa43d61558a504d7c26186fd64cbf5c559ccb17b0710b2bde0dea7130652d606cc71dfd82936ffe51c046bb74499 SHA512 6ed46584d704a2ea4b4241348a0c8a3dcc7ae0fb5096fe096f60cac1e589b7f634ef46c377b31f3db220b8b0d2cc2f4f1a46294171c662d8fbd8d2d4a569caec DIST virtualenv-21.14.3.tar.gz.provenance 9808 BLAKE2B 2bd41496285aa992dcebae332feda3bc0b6f6c06483ae09278ebb4e9835df510a66d29806033afda3cce87ea3899aeb4d5eee8f53ce1df2d2543ee32e13127fd SHA512 98c0db6aed32e36ce3b88ae8193a725e9abecff06cbe7e3821e172c82f9bfa03e2e247f50314740f700a0c2d828b254d6bbfb0e74a7919d10d5d33ebac54701b DIST virtualenv-21.14.5.tar.gz 5467127 BLAKE2B 029434d3c647a5898664b98ddd9fcb7577bc6cbe4e7e5cce308bcac83181e48d55556a9936b4928c26f9f5365bf3551047742d29a82b2233cb047df88336db3c SHA512 d58e9332fc6d79a04d534db9b597cbc7e4abebab11858223baa29cf0284bca72646a909c844c0d141c35e63f7b999879af1eed53d0c51e8e4213c3a494ee615f diff --git a/dev-python/virtualenv/virtualenv-21.14.13.ebuild b/dev-python/virtualenv/virtualenv-21.14.13.ebuild new file mode 100644 index 000000000000..36b412b29967 --- /dev/null +++ b/dev-python/virtualenv/virtualenv-21.14.13.ebuild @@ -0,0 +1,135 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYPI_VERIFY_REPO=https://github.com/pypa/virtualenv +PYTHON_TESTED=( python3_{13..14} ) +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Virtual Python Environment builder" +HOMEPAGE=" + https://virtualenv.pypa.io/en/stable/ + https://pypi.org/project/virtualenv/ + https://github.com/pypa/virtualenv/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-python/distlib-0.3.7[${PYTHON_USEDEP}] + >=dev-python/filelock-3.24.2[${PYTHON_USEDEP}] + >=dev-python/packaging-23.1[${PYTHON_USEDEP}] + >=dev-python/platformdirs-3.9.1[${PYTHON_USEDEP}] + >=dev-python/python-discovery-1.6[${PYTHON_USEDEP}] + + dev-python/ensurepip-pip + >=dev-python/ensurepip-setuptools-70.1 + dev-python/ensurepip-wheel +" +# coverage is used somehow magically in virtualenv, maybe it actually +# tests something useful +BDEPEND=" + dev-python/hatch-vcs[${PYTHON_USEDEP}] + test? ( + ${RDEPEND} + $(python_gen_cond_dep ' + dev-python/coverage[${PYTHON_USEDEP}] + >=dev-python/hatchling-1.27[${PYTHON_USEDEP}] + >=dev-python/pip-22.2.1[${PYTHON_USEDEP}] + >=dev-python/pytest-mock-3.6.1[${PYTHON_USEDEP}] + dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] + dev-python/pytest-timeout[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + >=dev-python/setuptools-67.8[${PYTHON_USEDEP}] + dev-python/time-machine[${PYTHON_USEDEP}] + dev-python/wheel[${PYTHON_USEDEP}] + >=dev-python/packaging-20.0[${PYTHON_USEDEP}] + ' "${PYTHON_TESTED[@]}") + ) +" + +src_prepare() { + local PATCHES=( + # use wheels from ensurepip bundle + "${FILESDIR}/${PN}-21.5.1-ensurepip.patch" + ) + + distutils-r1_src_prepare + + # workaround test failures due to warnings from setuptools-scm, sigh + echo '[tool.setuptools_scm]' >> pyproject.toml || die + + # remove useless pins + sed -i -e 's:,<[=0-9.]*::' pyproject.toml || die + + # remove bundled wheels + rm src/virtualenv/seed/wheels/embed/*.whl || die +} + +python_test() { + if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then + einfo "Skipping testing on ${EPYTHON}" + return + fi + + local EPYTEST_DESELECT=( + tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_seed_link_via_app_data + # tests for old wheels with py3.7 support + tests/unit/seed/embed/test_pip_invoke.py::test_base_bootstrap_via_pip_invoke + tests/unit/seed/wheels/test_wheels_util.py::test_wheel_not_support + # broken by different wheel versions in ensurepip + tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_string + tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_exact + tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_none + tests/unit/seed/wheels/test_acquire.py::test_download_wheel_bad_output + tests/unit/seed/wheels/test_wheels_util.py::test_embed_wheel_below_oldest_supported_is_missing + # hangs on a busy system, sigh + tests/unit/test_util.py::test_reentrant_file_lock_is_thread_safe + # TODO + tests/unit/create/via_global_ref/test_build_c_ext.py::test_can_build_c_extensions + # random resource leaks or xdist + tests/unit/test_file_limit.py::test_too_many_open_files + # Internet + tests/unit/create/test_creator.py::test_create_distutils_cfg + tests/unit/seed/embed/test_pip_invoke.py::test_pip_reseed_removes_previous_version_metadata + # we do not use bundled wheels + tests/unit/seed/wheels/test_bundle.py::test_every_wheel_on_disk_has_sha256 + # requires bundled packages in pip + tests/unit/test_sbom.py::test_sbom_spdx_declared_license + # require pre-commit = internet + tests/unit/test_wheel_age.py::test_generator_converges + tests/unit/test_wheel_age.py::test_generator_updates_license + # TODO + tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_pip_launcher_record_matches_contents + tests/unit/seed/wheels/test_acquire.py::test_download_wheel_skips_local_pip_module + tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest + # some platformdirs nonsense (bundled packages?) + tests/unit/config/test___main__.py::test_module_entry_from_target_install + # these all timeout; they may require xonsh or be plain broken + tests/property/test_activation_prompt.py::test_prompt_seeds_stay_data + tests/property/test_activation_prompt.py::test_prompt_stays_data + tests/unit/activation/test_activator.py::test_activator_prompt_stays_data + ) + + local -x TZ=UTC + local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} time-machine ) + local EPYTEST_RERUNS=5 + local EPYTEST_TIMEOUT=180 + local EPYTEST_XDIST=1 + epytest -o addopts= +} + +src_install() { + distutils-r1_src_install + + # remove bundled wheels, we're using ensurepip bundle instead + find "${ED}" -name '*.whl' -delete || die +} |
