commit: 284e3c7a974b4b6d9e88f86cda35139ff17f13dc Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Mon Feb 23 19:47:52 2026 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Mon Feb 23 20:18:03 2026 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=284e3c7a
dev-python/virtualenv: Bump to 20.39.0 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> dev-python/virtualenv/Manifest | 2 + dev-python/virtualenv/virtualenv-20.39.0.ebuild | 133 ++++++++++++++++++++++++ 2 files changed, 135 insertions(+) diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest index ba2ff7f685ad..a18a635090c0 100644 --- a/dev-python/virtualenv/Manifest +++ b/dev-python/virtualenv/Manifest @@ -10,3 +10,5 @@ DIST virtualenv-20.37.0.tar.gz 5864710 BLAKE2B e3a86f35f68df45e10a2a6e2d2fc6cd67 DIST virtualenv-20.37.0.tar.gz.provenance 9304 BLAKE2B 194fde1f7781211ad66bd66239bfffed818aec5c757e0f236bd7abad86caac6eaf7dcd5382d4b56e3f5ed836abeb096e2c5fee0ba3498ae101f780f36b355d59 SHA512 76ea2857f8131e61742b61f9d1edb8b7d791a2862f47185d960ca03b1ec382ff8b445689c4da9acbc84147b0c664f6a4e89efdc992b19f2afc0f3ef37197ed70 DIST virtualenv-20.38.0.tar.gz 5864558 BLAKE2B b085b7813b1f29d854842346dcf3c45e30e084d3a993e1af27a93e777918ae75a742dec0cd858d945c220c6f4c5897bf2d598300e3812ba0be1ab397f1b21775 SHA512 336d2bbf6a33a664c07d42b26c1000710cbdebacaedd7fa13cd6598d7002e320551b9c60454b6b8b29fb318f1b0138581fa733e42dfe68a9ed2c149070fd571d DIST virtualenv-20.38.0.tar.gz.provenance 9633 BLAKE2B eb7f486f5bf39c05dd73c0c82fa5dfb4ddf74dd560f6566d3c4faf6ab351afe680ee11095f46fb68cb5c80dd5b2a1c461d48fc5c92cbbddc0cbc53efdedff403 SHA512 d821d2a4c406cee74dda97bcaeb61c1de4cce5340b13c17710e0554fda7b46e755f00cd1862a6c436bd40abd49169e5b9b4e0ee619680d979ff048d5f9361d57 +DIST virtualenv-20.39.0.tar.gz 5869141 BLAKE2B 382ae1d0cd95e7401cf43f8269c0f81cf171abbab29172a7c2d25d21ad6f1447b8781856b3b8ac26580897b1a1318d47b60bc1bbb5fc321efde9c038ec9d158c SHA512 2efd0675fd0dc7010d5e2dc22cd694a1c9b363eca35ffcae96a5910dd53edfa3ecd505f18ba99279adb672040b9fcc995194028cacc1571340890a3d8a8c533a +DIST virtualenv-20.39.0.tar.gz.provenance 9492 BLAKE2B 177bbccf5bb17e44cf78e4e646f69a321684cac89bf892e5bf5464e636b18a1934cc1bd8d567b10a724dfbbfd344a84a0e7650e4b75042c6fe98e8aa94573584 SHA512 22945883f27ddb456341db8975e55db1481b4055b9fd5b57a7ffb35e2d6fbce8fff9b0e0c0495feeb2044f06f7c604d9ee5c3f17be6fd6527436cfc29a5de436 diff --git a/dev-python/virtualenv/virtualenv-20.39.0.ebuild b/dev-python/virtualenv/virtualenv-20.39.0.ebuild new file mode 100644 index 000000000000..912448ff10f5 --- /dev/null +++ b/dev-python/virtualenv/virtualenv-20.39.0.ebuild @@ -0,0 +1,133 @@ +# 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_{11..14} pypy3_11 ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{13,14}t ) + +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/platformdirs-3.9.1[${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/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/wheel[${PYTHON_USEDEP}] + >=dev-python/packaging-20.0[${PYTHON_USEDEP}] + ' "${PYTHON_TESTED[@]}") + $(python_gen_cond_dep ' + dev-python/time-machine[${PYTHON_USEDEP}] + ' python3_{11..14}) + $(python_gen_cond_dep ' + >=dev-python/pytest-freezer-0.4.6[${PYTHON_USEDEP}] + ' 'pypy3*') + ) +" + +src_prepare() { + local PATCHES=( + # use wheels from ensurepip bundle + "${FILESDIR}/${PN}-20.31.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 + # 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 + ) + case ${EPYTHON} in + pypy3.11) + EPYTEST_DESELECT+=( + # these don't like the executable called pypy3.11? + tests/unit/activation/test_bash.py::test_bash + tests/unit/activation/test_fish.py::test_fish + tests/unit/discovery/py_info/test_py_info.py::test_fallback_existent_system_executable + ) + ;; + esac + + local -x TZ=UTC + local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} ) + if [[ ${EPYTHON} == pypy3* ]]; then + EPYTEST_PLUGINS+=( pytest-freezer ) + else + EPYTEST_PLUGINS+=( time-machine ) + fi + 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 +}
