diff --git a/dev-python/csv23/Manifest b/dev-python/csv23/Manifest new file mode 100644 index 000000000..f1ad0a3c4 --- /dev/null +++ b/dev-python/csv23/Manifest @@ -0,0 +1,3 @@ +DIST csv23-0.3.2.tar.gz 24132 BLAKE2B 2c5eb231814e087dce9689c7075bdbc3875b3e200dc1273022d55661ec60f18a5bcb03e062b205fde13e845e5e50d530b07596b51ad7b2a89e41b45629bf3ce8 SHA512 289386cce5de4ae5bc42fc56d1639bbd1483034e5422f63142c1d188de735b1f5f18f9f69e3cb96f4ac3e1d7d0b371b1c45e720982c4f4b539fcf0d2da893f6a +EBUILD csv23-0.3.2-r1.ebuild 753 BLAKE2B 4f908e5efcee009259aa3ce10e64446d973549b81ee926ae1b95917586994bb05202ce76923cbd3d9f95a954079c5b10c2e20c2bdb8d20531b955e29cfa329e1 SHA512 ceb03284cbe408d7fe77c32bf150e0041ebc9934bdb2b9cada0ed0c95b6e1f28d3fe3e202d843a55dbda687ec0e51a0b16ca4cf593293e2ea6f3522037fe7153 +MISC metadata.xml 242 BLAKE2B 17fd7db1343fb7dba1842d5b62d83e56e2816962b0122ec6eee7f9e163f333d69ede2cbdf2a2ba8c77613367fca3d2cee779697fb25b5d8cf0439e1e845dbf1f SHA512 2ce768d5aae91f32da90c62900f556c647eb9806c810a817b6c45c5356e71f504b5a646bf75f553c3a9bfd3f94c4317df4948bae863ef7525b4a013b63618cd8 diff --git a/dev-python/csv23/csv23-0.3.2-r1.ebuild b/dev-python/csv23/csv23-0.3.2-r1.ebuild new file mode 100644 index 000000000..02e3fa1a5 --- /dev/null +++ b/dev-python/csv23/csv23-0.3.2-r1.ebuild @@ -0,0 +1,30 @@ +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7,8,9} pypy3 ) +inherit distutils-r1 + +DESCRIPTION="Python 2/3 unicode CSV compatibility layer" +HOMEPAGE=" + https://pypi.org/project/csv23/ + https://github.com/xflr6/csv23/" +SRC_URI="https://github.com/xflr6/csv23/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 ~riscv sparc x86 ~x64-macos" + +BDEPEND=" + test? ( + dev-python/mock[${PYTHON_USEDEP}] + >=dev-python/pytest-4.6[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] )" + +distutils_enable_tests pytest + +src_prepare() { + sed -i -e '/--cov/d' setup.cfg || die + distutils-r1_src_prepare +} diff --git a/dev-python/csv23/metadata.xml b/dev-python/csv23/metadata.xml new file mode 100644 index 000000000..e59516686 --- /dev/null +++ b/dev-python/csv23/metadata.xml @@ -0,0 +1,8 @@ + + + + + python@gentoo.org + + + diff --git a/dev-python/pip/Manifest b/dev-python/pip/Manifest index f7886de2c..cd11c8da7 100644 --- a/dev-python/pip/Manifest +++ b/dev-python/pip/Manifest @@ -1,10 +1,8 @@ -AUX pip-10.0.1-disable-system-install.patch 769 BLAKE2B 9e722c95f01a184bbc48df6979cde15d748311e5ee5d83e5d18659cffd7520145bb24af891ba0f760dcec4c17b17d31adf211f1a4f938598d1fec44be56e6891 SHA512 6b0d49d398940f2614b2a892be2169a6c2c2d26d7d700271df3819c71c284646cceac9dce4e907662690e17bc0ca372b6251e02f520bf3e60994b26725403029 -AUX pip-10.0.1-disable-version-check.patch 850 BLAKE2B 4ec0e8e0b172c51cdfa2df6ee934df8e25a03885ef7976c2f7cc844728e0359a1d5081296680576ea5780a15b639b3809063e663374ee11e252cd95bd9e876ae SHA512 b489eaf4fe17042807dd92ce77b016fcd032dd79bd5c766bdf9be38d2958e32400bdb5950ff2c400abac42d2a0a17803f5a2cfdc1161906c95c1d34a8bc83f8a -AUX pip-6.0.2-disable-version-check.patch 465 BLAKE2B e3ae94267a8d0caf425d22968f6e640063eaca0d2c475d130d1d2f7281d6ef541c0c36c3871c67fd4947f54a4ca18cc9a9c0fa347a3960727483b3a3bcd46ed9 SHA512 fd3413fea4649aa6a34ff7a23e7442267dc07307aeb25398e4620d108ab144703db7431e2a158612d9ee67e448d1d66db7e8103364aa6635844672bea16c7d28 -AUX pip-7.1.2-unbundle.patch 1496 BLAKE2B f0bb71125270bbcfe1fe544b81130951c6ccdb97f676b3be5c7831efdedae5edbc47669836565b269af287910cd23cbc193037b39ac09dcaff5dceee542c32e7 SHA512 c0daf49d9a596a188fd54751b8ee7333f1c3187657b677a6f61ab9820483b388c3475b5fecb887115aaa34208070a15b56a8eb5e0a4639c3732840cf17a6f16a -AUX pip-8.0.0-unbundle.patch 1985 BLAKE2B dca355b40941ef5f805a4b247d75dc9d2ad560c7fd9752be2ca1d428522e83a4c318d3d361d2960fce79051df2ea9180a48c23e4af3048fe31ac535cd0cb8db9 SHA512 3b5f96160623eb2fad9c5978fc6512b21d48d5b91cb09c9d43deaee6de3c843af137a5df11c83b0d8395625482162d8cf40748b072692b305d6ab1220f3fb0c6 -AUX pip-9.0.1-disable-version-check.patch 1031 BLAKE2B 148e528aab19de021f193ac56d758c803e0875b618ee32e948eb103eb6b05eb56e2ecf5ed4dbe39893f5c44ddee17122fdd686f433f5ce89044b2c02291e0ba1 SHA512 8b5764d3ecdbfc871bdf051b41d9610d5028bc3b95a4bf990db46325d10e5d559449ec97ab052686148d6ab6abfa630fb38101c726b6648d19fa94ac593b0a28 -AUX pip-disable-system-install.patch 1070 BLAKE2B 85bfd82888a169cf771467f4f811b9859fddc1cfd134ac21be42b9fd93d84118354fa23a2f4b0ec9c67024f571ba7035665302671420221b52f3fc89f24b1af3 SHA512 bb0a9a32b2eac0a12276c3f0527534226c03868300f54945d20eec16902ad51cbfdace9d79b0caa304bc641323194031a5ca9e5e784366a44527441bd0f3c231 -DIST pip-19.0.2.tar.gz 1324514 BLAKE2B dc9771706d3cfaea8a0ff562606b2a901836531e305ac5f0efdca983f715301ca3c9e19adb8d8a144006a3f703875a8ffb660a9a015b0749170f4b6564d0df8a SHA512 c6e13da3a57462371d32982c80575c5181592f5c6a8e70d60ec879e689442f4ad468e7aef97eb58c9da50a5a770385aa35e701eefd713a8e9fafeb12e11d956b -EBUILD pip-19.0.2.ebuild 1320 BLAKE2B 08e066081cefda78459fa657314c4906ea3dfb6a79c8aebfdbf314519de6c0a2cc213eb7eb252361addd1e3a2952390bcb6ea81f0f688f87aa606f66998df689 SHA512 4f3ce05fc72f6a120317e7f936b6d3acd7016efb587c564ad33d9dca24c61009623d052d570b5b8605f404e3355339bf1f250d3140020f4659641da81cbe703e +AUX pip-19.3-disable-version-check.patch 872 BLAKE2B b0398674f56b78a066c4308f0a8ee0272c5c4c3cb569e6c300ac62fc9fbe8ec2a1bfe257047c15ddcf9cc44c47b7f8b9ab99e17b722bd6ae4cf9dc2a168e01d6 SHA512 1ece773f66556e4380eabf76490430e8fbec23f7cfad27dac02c7e49f7136b632515ef04843e89dfae42c095dbf5280d64e61da1544801c998f802aa59be8e22 +AUX pip-20.0.2-disable-system-install.patch 1298 BLAKE2B a384ee2114e59b8bc719fc14270cf6efbe8914854c404395beb1126db3278683b940e8fcfee83423d78e2aed6521e0bc57566ab0f5618f473262bbd9b7b0bffa SHA512 d2772105d4f4f880606e1e8ab3381af6768a96604a5fdcaa155dd42f8eea731c3a1b733b027d3e591d81f962ba14758b19da4a2c6c12946cd9a9d77c51ca4e78 +AUX pip-20.2-no-coverage.patch 6154 BLAKE2B 743dcacd3107d9c6447197dd01bc85b1b16db5b1da3bf5f84e73801e645848a98854f350d958056eb17aa6b87f8bb2557a27e3bd78582958c3b37cb6ce61d7ce SHA512 67ea11c56b6a7b02faae28c9d941015ca2ba9c125dfcaf01eeaba7717cfb22f23fb84c28f993202f7b648ee64741baaf7545e9951be840d378e39d3af0a60fd0 +DIST pip-20.2.4.tar.gz 8723163 BLAKE2B 4b892950b6752b61af2f6a9d2c0a6f5db124cb7605d6cb9d4787bdbd88911cc6013474dd299f6eb5b1af4a8fa0ab6d3c5253513af182045a50cb463ced8382ea SHA512 649fdc6baa1ebe741717bd1e5ed8f2450d79f8bc0d06f2804c27488be9018f6fa6cc2eccc3ec2801442073f59ac0b8c377612c25116126aa919aa95050f4214f +DIST setuptools-44.0.0-py2.py3-none-any.whl 583230 BLAKE2B 823e6792471660f247e30a938aa869d345a63db7294e5f9b4bd88f15a7694779011d29740fe317149620985f705fc6e18cbb07a18e5680cc11d7c229ffbc74f6 SHA512 7006fd303181afbeeec0e30cafb9fd1e4d3c6f55cfdd6343fedbc32b17dbb96b3d96ae37f4db27bfb168738727474cf425904ec280ff1d2b789fc48077a8fa84 +DIST wheel-0.34.2-py2.py3-none-any.whl 26502 BLAKE2B 3a1bd4571c582245b60ff33c9bf74ff8a2ebafb26e56fc7b9bd215058d059b6bd13bbe21ce46002af257813a54126f27e19253f211e21c4548c7cf84cd15caf7 SHA512 4f1a44f4691ed8baad777d7874f7f4da96a5019eb485fd3a9eed9259aa2a9d5acccc6dc63a72128664347c64ee039a6076c6ca9c3b75a1f94457967864e522ed +EBUILD pip-20.2.4.ebuild 4163 BLAKE2B cc26eb182a2e0c9c65946a251f9b2933b6a4622482bb1e434a278e1d103c7be044c23de588f5f79f487160672188b76dc580d1b5881d09301aef80d12873ad3e SHA512 403c5f8cf7375eac81ee208b3d5ded807a0c925a5e9bf95f54d17d3444e830e40687bf652657e58700bd71fd571a64298f5f321b2d69000ec75335d6eeac4c76 MISC metadata.xml 366 BLAKE2B 6cfb3fe9bd6fa72a5bc5aafb74d7f79eaa1fdf273cf45be4fb7989fd917ea8b1ad60a855770cc51944611e7590abeec450ed02c7c9ae8d850084c2b4f7c0d009 SHA512 43ccb12f2797cb70b59ff495d149c32c813e5145c65521eda9a86f675eac7756eefadeb9f4ca977e8e8c7019bae144b445240e6d7128da771eaf6d19559336f6 diff --git a/dev-python/pip/files/pip-10.0.1-disable-system-install.patch b/dev-python/pip/files/pip-10.0.1-disable-system-install.patch deleted file mode 100644 index 776d395b7..000000000 --- a/dev-python/pip/files/pip-10.0.1-disable-system-install.patch +++ /dev/null @@ -1,18 +0,0 @@ -install: Raise an error to avoid breaking python-exec - -Running pip without --target, --root, or --user will result in packages -being installed systemwide. This has a tendency to break python-exec if -setuptools gets installed or upgraded. - ---- pip-10.0.1/src/pip/_internal/commands/install.py -+++ pip-10.0.1/src/pip/_internal/commands/install.py -@@ -202,6 +202,9 @@ - if options.upgrade: - upgrade_strategy = options.upgrade_strategy - -+ if not options.use_user_site and not options.target_dir and not options.root_path: -+ raise CommandError("(Gentoo) Please run pip with the --user option to avoid breaking python-exec") -+ - if options.build_dir: - options.build_dir = os.path.abspath(options.build_dir) - diff --git a/dev-python/pip/files/pip-10.0.1-disable-version-check.patch b/dev-python/pip/files/pip-10.0.1-disable-version-check.patch deleted file mode 100644 index ad146dc15..000000000 --- a/dev-python/pip/files/pip-10.0.1-disable-version-check.patch +++ /dev/null @@ -1,19 +0,0 @@ -Don't check for new versions of pip. - ---- pip-10.0.1/src/pip/_internal/basecommand.py -+++ pip-10.0.1/src/pip/_internal/basecommand.py -@@ -255,14 +255,6 @@ - - return UNKNOWN_ERROR - finally: -- # Check if we're using the latest version of pip available -- if (not options.disable_pip_version_check and not -- getattr(options, "no_index", False)): -- with self._build_session( -- options, -- retries=0, -- timeout=min(5, options.timeout)) as session: -- pip_version_check(session, options) - # Avoid leaking loggers - for handler in set(logging.root.handlers) - original_root_handlers: - # this method benefit from the Logger class internal lock diff --git a/dev-python/pip/files/pip-19.3-disable-version-check.patch b/dev-python/pip/files/pip-19.3-disable-version-check.patch new file mode 100644 index 000000000..e8fe86843 --- /dev/null +++ b/dev-python/pip/files/pip-19.3-disable-version-check.patch @@ -0,0 +1,24 @@ +diff --git a/src/pip/_internal/cli/req_command.py b/src/pip/_internal/cli/req_command.py +index 203e86a4..a2183f10 100644 +--- a/src/pip/_internal/cli/req_command.py ++++ b/src/pip/_internal/cli/req_command.py +@@ -129,17 +129,8 @@ class IndexGroupCommand(Command, SessionCommandMixin): + # Make sure the index_group options are present. + assert hasattr(options, 'no_index') + +- if options.disable_pip_version_check or options.no_index: +- return +- +- # Otherwise, check if we're using the latest version of pip available. +- session = self._build_session( +- options, +- retries=0, +- timeout=min(5, options.timeout) +- ) +- with session: +- pip_self_version_check(session, options) ++ # Disabled on Gentoo ++ return + + + class RequirementCommand(IndexGroupCommand): diff --git a/dev-python/pip/files/pip-20.0.2-disable-system-install.patch b/dev-python/pip/files/pip-20.0.2-disable-system-install.patch new file mode 100644 index 000000000..e0b0034e4 --- /dev/null +++ b/dev-python/pip/files/pip-20.0.2-disable-system-install.patch @@ -0,0 +1,29 @@ +From 3aee04cbb93c0e479b040e682b2aef676629c9a2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= +Date: Sat, 1 Feb 2020 09:14:46 +0100 +Subject: [PATCH] install: Raise an error to avoid breaking python-exec + +Running pip without --target, --prefix, --root, or --user will result +in packages being installed systemwide. This has a tendency to break +python-exec if setuptools gets installed or upgraded. +--- + src/pip/_internal/commands/install.py | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/pip/_internal/commands/install.py b/src/pip/_internal/commands/install.py +index 8c2c32fd..41bac878 100644 +--- a/src/pip/_internal/commands/install.py ++++ b/src/pip/_internal/commands/install.py +@@ -238,6 +238,9 @@ class InstallCommand(RequirementCommand): + if options.upgrade: + upgrade_strategy = options.upgrade_strategy + ++ if not options.use_user_site and not options.target_dir and not options.root_path and not options.prefix_path and not os.getenv('GENTOO_PIP_TESTING'): ++ raise CommandError("(Gentoo) Please run pip with the --user option to avoid breaking python-exec") ++ + cmdoptions.check_dist_restriction(options, check_target=True) + + install_options = options.install_options or [] +-- +2.28.0 + diff --git a/dev-python/pip/files/pip-20.2-no-coverage.patch b/dev-python/pip/files/pip-20.2-no-coverage.patch new file mode 100644 index 000000000..55be5b8c9 --- /dev/null +++ b/dev-python/pip/files/pip-20.2-no-coverage.patch @@ -0,0 +1,163 @@ +From 43389903a55a5432ca8556f42fb2252c91c7ca45 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= +Date: Wed, 29 Jul 2020 07:42:25 +0200 +Subject: [PATCH] Revert "Add basic test coverage configuration" + +This is just PITA since coverage uses native C extensions. +--- + .coveragerc | 4 +++ + setup.cfg | 38 ---------------------- + tests/conftest.py | 16 +-------- + tools/requirements/tests-common_wheels.txt | 2 -- + tox.ini | 16 ++------- + 5 files changed, 7 insertions(+), 69 deletions(-) + create mode 100644 .coveragerc + +diff --git a/.coveragerc b/.coveragerc +new file mode 100644 +index 00000000..5f833c94 +--- /dev/null ++++ b/.coveragerc +@@ -0,0 +1,4 @@ ++[run] ++branch = True ++omit = ++ src/pip/_vendor/* +diff --git a/setup.cfg b/setup.cfg +index 45fd58a3..e40596e9 100644 +--- a/setup.cfg ++++ b/setup.cfg +@@ -67,44 +67,6 @@ markers = + yaml: yaml based tests + fails_on_new_resolver: Does not yet work on the new resolver + +-[coverage:run] +-branch = True +-# Do not gather coverage for vendored libraries. +-omit = */_vendor/* +-# Centralized absolute file prefix for coverage files. +-data_file = ${COVERAGE_OUTPUT_DIR}/.coverage +-# By default, each covered process will try to truncate and then write to +-# `data_file`, but with `parallel`, they will write to separate files suffixed +-# with hostname, pid, and a timestamp. +-parallel = True +-# If not set, then at the termination of each worker (when using pytest-xdist), +-# the following is traced: "Coverage.py warning: Module pip was previously +-# imported, but not measured (module-not-measured)" +-disable_warnings = module-not-measured +- +-[coverage:paths] +-# We intentionally use "source0" here because pytest-cov unconditionally sets +-# "source" after loading the config. +-source0 = +- # The primary source code path which other paths will be combined into. +- src/pip/ +- # Unit test source directory e.g. +- # `.tox/coverage-py3/lib/pythonX.Y/site-packages/pip/...` +- */site-packages/pip/ +- # Functional test virtual environment directories, which look like +- # `tmpdir/pip0/pip/src/pip/...` +- */pip/src/pip/ +- +-[coverage:report] +-exclude_lines = +- # We must re-state the default because the `exclude_lines` option overrides +- # it. +- pragma: no cover +- # This excludes typing-specific code, which will be validated by mypy anyway. +- if MYPY_CHECK_RUNNING +- # Can be set to exclude e.g. `if PY2:` on Python 3 +- ${PIP_CI_COVERAGE_EXCLUDES} +- + [bdist_wheel] + universal = 1 + +diff --git a/tests/conftest.py b/tests/conftest.py +index 2aab5020..0db6d967 100644 +--- a/tests/conftest.py ++++ b/tests/conftest.py +@@ -294,13 +294,6 @@ def wheel_install(tmpdir_factory, common_wheels): + 'wheel') + + +-@pytest.fixture(scope='session') +-def coverage_install(tmpdir_factory, common_wheels): +- return _common_wheel_editable_install(tmpdir_factory, +- common_wheels, +- 'coverage') +- +- + def install_egg_link(venv, project_name, egg_info_dir): + with open(venv.site / 'easy-install.pth', 'a') as fp: + fp.write(str(egg_info_dir.resolve()) + '\n') +@@ -310,7 +303,7 @@ def install_egg_link(venv, project_name, egg_info_dir): + + @pytest.fixture(scope='session') + def virtualenv_template(request, tmpdir_factory, pip_src, +- setuptools_install, coverage_install): ++ setuptools_install, common_wheels): + + if six.PY3 and request.config.getoption('--use-venv'): + venv_type = 'venv' +@@ -334,13 +327,6 @@ def virtualenv_template(request, tmpdir_factory, pip_src, + subprocess.check_call([venv.bin / 'python', 'setup.py', '-q', 'develop'], + cwd=pip_editable) + +- # Install coverage and pth file for executing it in any spawned processes +- # in this virtual environment. +- install_egg_link(venv, 'coverage', coverage_install) +- # zz prefix ensures the file is after easy-install.pth. +- with open(venv.site / 'zz-coverage-helper.pth', 'a') as f: +- f.write('import coverage; coverage.process_startup()') +- + # Drop (non-relocatable) launchers. + for exe in os.listdir(venv.bin): + if not ( +diff --git a/tools/requirements/tests-common_wheels.txt b/tools/requirements/tests-common_wheels.txt +index f0edf0b0..6703d606 100644 +--- a/tools/requirements/tests-common_wheels.txt ++++ b/tools/requirements/tests-common_wheels.txt +@@ -7,5 +7,3 @@ + + setuptools >= 40.8.0 + wheel +-# As required by pytest-cov. +-coverage >= 4.4 +diff --git a/tox.ini b/tox.ini +index 82e9abc6..7a19ca61 100644 +--- a/tox.ini ++++ b/tox.ini +@@ -8,7 +8,6 @@ envlist = + # Wrapper for calls to pip that make sure the version being used is the + # original virtualenv (stable) version, and not the code being tested. + pip = python {toxinidir}/tools/tox_pip.py +-mkdirp = python -c 'import os, sys; os.path.exists(sys.argv[1]) or os.mkdir(sys.argv[1])' + + [testenv] + # Remove USERNAME once we drop PY2. +@@ -31,20 +30,9 @@ commands = pytest --timeout 300 [] + install_command = {[helpers]pip} install {opts} {packages} + list_dependencies_command = {[helpers]pip} freeze --all + +-[testenv:coverage] ++[testenv:coverage-py3] + basepython = python3 +-commands = +- {[helpers]mkdirp} {toxinidir}/.coverage-output +- pytest --timeout 300 --cov=pip --cov-config={toxinidir}/setup.cfg [] +- +-setenv = +- # Used in coverage configuration in setup.cfg. +- COVERAGE_OUTPUT_DIR = {toxinidir}/.coverage-output +- # Ensure coverage is enabled in child processes in virtual environments +- # since they won't already have been enabled by pytest-cov. +- COVERAGE_PROCESS_START = {toxinidir}/setup.cfg +- # Used in coverage configuration in setup.cfg. +- PIP_CI_COVERAGE_EXCLUDES = if PY2 ++commands = pytest --timeout 300 --cov=pip --cov-report=term-missing --cov-report=xml --cov-report=html tests/unit {posargs} + + [testenv:docs] + # Don't skip install here since pip_sphinxext uses pip's internals. +-- +2.28.0 + diff --git a/dev-python/pip/files/pip-6.0.2-disable-version-check.patch b/dev-python/pip/files/pip-6.0.2-disable-version-check.patch deleted file mode 100644 index a192c228a..000000000 --- a/dev-python/pip/files/pip-6.0.2-disable-version-check.patch +++ /dev/null @@ -1,14 +0,0 @@ -Don't check PyPI for new versions of pip by default, updates will occur when -new releases are added to the tree. - ---- pip-6.0.2/pip/cmdoptions.py -+++ pip-6.0.2/pip/cmdoptions.py -@@ -404,7 +404,7 @@ - "--disable-pip-version-check", - dest="disable_pip_version_check", - action="store_true", -- default=False, -+ default=True, - help="Don't periodically check PyPI to determine whether a new version " - "of pip is available for download.") - diff --git a/dev-python/pip/files/pip-7.1.2-unbundle.patch b/dev-python/pip/files/pip-7.1.2-unbundle.patch deleted file mode 100644 index 70adc20ea..000000000 --- a/dev-python/pip/files/pip-7.1.2-unbundle.patch +++ /dev/null @@ -1,34 +0,0 @@ - pip/_vendor/__init__.py | 13 +++++-------- - 1 file changed, 5 insertions(+), 8 deletions(-) - -diff --git a/pip/_vendor/__init__.py b/pip/_vendor/__init__.py -index ef8851d..349d022 100644 ---- a/pip/_vendor/__init__.py -+++ b/pip/_vendor/__init__.py -@@ -14,7 +14,7 @@ import sys - # Downstream redistributors which have debundled our dependencies should also - # patch this value to be true. This will trigger the additional patching - # to cause things like "six" to be available as pip. --DEBUNDLED = False -+DEBUNDLED = True - - # By default, look in this directory for a bunch of .whl files which we will - # add to the beginning of sys.path before attempting to import anything. This -@@ -29,13 +29,10 @@ WHEEL_DIR = os.path.abspath(os.path.dirname(__file__)) - def vendored(modulename): - vendored_name = "{0}.{1}".format(__name__, modulename) - -- try: -- __import__(vendored_name, globals(), locals(), level=0) -- except ImportError: -- __import__(modulename, globals(), locals(), level=0) -- sys.modules[vendored_name] = sys.modules[modulename] -- base, head = vendored_name.rsplit(".", 1) -- setattr(sys.modules[base], head, sys.modules[modulename]) -+ __import__(modulename, globals(), locals(), level=0) -+ sys.modules[vendored_name] = sys.modules[modulename] -+ base, head = vendored_name.rsplit(".", 1) -+ setattr(sys.modules[base], head, sys.modules[modulename]) - - - # If we're operating in a debundled setup, then we want to go ahead and trigger diff --git a/dev-python/pip/files/pip-8.0.0-unbundle.patch b/dev-python/pip/files/pip-8.0.0-unbundle.patch deleted file mode 100644 index d508d51ab..000000000 --- a/dev-python/pip/files/pip-8.0.0-unbundle.patch +++ /dev/null @@ -1,43 +0,0 @@ - pip/_vendor/__init__.py | 15 +++++---------- - 1 file changed, 5 insertions(+), 10 deletions(-) - -diff --git a/pip/_vendor/__init__.py b/pip/_vendor/__init__.py -index b09a7c3..b9fe6ee 100644 ---- a/pip/_vendor/__init__.py -+++ b/pip/_vendor/__init__.py -@@ -14,7 +14,7 @@ import sys - # Downstream redistributors which have debundled our dependencies should also - # patch this value to be true. This will trigger the additional patching - # to cause things like "six" to be available as pip. --DEBUNDLED = False -+DEBUNDLED = True - - # By default, look in this directory for a bunch of .whl files which we will - # add to the beginning of sys.path before attempting to import anything. This -@@ -29,13 +29,10 @@ WHEEL_DIR = os.path.abspath(os.path.dirname(__file__)) - def vendored(modulename): - vendored_name = "{0}.{1}".format(__name__, modulename) - -- try: -- __import__(vendored_name, globals(), locals(), level=0) -- except ImportError: -- __import__(modulename, globals(), locals(), level=0) -- sys.modules[vendored_name] = sys.modules[modulename] -- base, head = vendored_name.rsplit(".", 1) -- setattr(sys.modules[base], head, sys.modules[modulename]) -+ __import__(modulename, globals(), locals(), level=0) -+ sys.modules[vendored_name] = sys.modules[modulename] -+ base, head = vendored_name.rsplit(".", 1) -+ setattr(sys.modules[base], head, sys.modules[modulename]) - - - # If we're operating in a debundled setup, then we want to go ahead and trigger -@@ -85,8 +82,6 @@ if DEBUNDLED: - vendored("requests.packages.urllib3.packages.ordered_dict") - vendored("requests.packages.urllib3.packages.six") - vendored("requests.packages.urllib3.packages.ssl_match_hostname") -- vendored("requests.packages.urllib3.packages.ssl_match_hostname." -- "_implementation") - vendored("requests.packages.urllib3.poolmanager") - vendored("requests.packages.urllib3.request") - vendored("requests.packages.urllib3.response") diff --git a/dev-python/pip/files/pip-9.0.1-disable-version-check.patch b/dev-python/pip/files/pip-9.0.1-disable-version-check.patch deleted file mode 100644 index 7334380c1..000000000 --- a/dev-python/pip/files/pip-9.0.1-disable-version-check.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 890a1c26018752f2c57c7800968e4b8d1e0987f9 Mon Sep 17 00:00:00 2001 -From: Sebastian Pipping -Date: Sun, 20 Nov 2016 19:52:40 +0100 -Subject: [PATCH] Stop checking for new versions - ---- - pip/basecommand.py | 9 --------- - 1 file changed, 9 deletions(-) - -diff --git a/pip/basecommand.py b/pip/basecommand.py -index 54c6706..3cffe86 100644 ---- a/pip/basecommand.py -+++ b/pip/basecommand.py -@@ -241,15 +241,6 @@ class Command(object): - logger.critical('Exception:', exc_info=True) - - return UNKNOWN_ERROR -- finally: -- # Check if we're using the latest version of pip available -- if (not options.disable_pip_version_check and not -- getattr(options, "no_index", False)): -- with self._build_session( -- options, -- retries=0, -- timeout=min(5, options.timeout)) as session: -- pip_version_check(session) - - return SUCCESS - --- -2.10.2 - diff --git a/dev-python/pip/files/pip-disable-system-install.patch b/dev-python/pip/files/pip-disable-system-install.patch deleted file mode 100644 index 9e5724543..000000000 --- a/dev-python/pip/files/pip-disable-system-install.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 847553da616edabede18c69ba640a32b719b45a8 Mon Sep 17 00:00:00 2001 -From: Mike Gilbert -Date: Tue, 27 Oct 2015 12:20:44 -0400 -Subject: [PATCH] install: Raise an error to avoid breaking python-exec - -Running pip without --target, --root, or --user will result in packages -being installed systemwide. This has a tendency to break python-exec if -setuptools gets installed or upgraded. ---- - pip/commands/install.py | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/pip/commands/install.py b/pip/commands/install.py -index 46cd9f2..36b72f2 100644 ---- a/pip/commands/install.py -+++ b/pip/commands/install.py -@@ -204,6 +204,9 @@ class InstallCommand(RequirementCommand): - ) - options.ignore_installed = True - -+ if not options.use_user_site and not options.target_dir and not options.root_path: -+ raise CommandError("(Gentoo) Please run pip with the --user option to avoid breaking python-exec") -+ - if options.build_dir: - options.build_dir = os.path.abspath(options.build_dir) - --- -2.6.2 - diff --git a/dev-python/pip/pip-19.0.2.ebuild b/dev-python/pip/pip-19.0.2.ebuild deleted file mode 100644 index 7da506ac2..000000000 --- a/dev-python/pip/pip-19.0.2.ebuild +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PYTHON_COMPAT=( python2_7 python3_{4..10} pypy{,3} ) -PYTHON_REQ_USE="ssl(+),threads(+)" - -inherit eutils bash-completion-r1 distutils-r1 - -DESCRIPTION="Installs python packages -- replacement for easy_install" -HOMEPAGE="https://pip.pypa.io/ https://pypi.org/project/pip/ https://github.com/pypa/pip/" -SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" - -LICENSE="MIT" -KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux" -SLOT="0" -IUSE="-vanilla" - -# required test data isn't bundled with the tarball -RESTRICT="test" - -DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]" -RDEPEND="${DEPEND}" - -#python_prepare_all() { -# local PATCHES=( -# "${FILESDIR}/${PN}-10.0.1-disable-version-check.patch" -# ) -# if ! use vanilla; then -# PATCHES+=( "${FILESDIR}/pip-10.0.1-disable-system-install.patch" ) -# fi -# distutils-r1_python_prepare_all -#} - -python_install_all() { - local DOCS=( AUTHORS.txt docs/man/commands/*.rst ) - distutils-r1_python_install_all - - COMPLETION="${T}"/completion.tmp - - "${PYTHON}" -m pip completion --bash > "${COMPLETION}" || die - newbashcomp "${COMPLETION}" ${PN} - - "${PYTHON}" -m pip completion --zsh > "${COMPLETION}" || die - insinto /usr/share/zsh/site-functions - newins "${COMPLETION}" _pip -} diff --git a/dev-python/pip/pip-20.2.4.ebuild b/dev-python/pip/pip-20.2.4.ebuild new file mode 100644 index 000000000..76d34fa07 --- /dev/null +++ b/dev-python/pip/pip-20.2.4.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DISTUTILS_USE_SETUPTOOLS=rdepend +PYTHON_COMPAT=( python3_{6,7,8,9} pypy3 ) +PYTHON_REQ_USE="ssl(+),threads(+)" + +inherit bash-completion-r1 distutils-r1 multiprocessing + +SETUPTOOLS_PV="44.0.0" +WHEEL_PV="0.34.2" + +DESCRIPTION="Installs python packages -- replacement for easy_install" +HOMEPAGE="https://pip.pypa.io/ https://pypi.org/project/pip/ https://github.com/pypa/pip/" +SRC_URI=" + https://github.com/pypa/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz + test? ( + https://files.pythonhosted.org/packages/py2.py3/s/setuptools/setuptools-${SETUPTOOLS_PV}-py2.py3-none-any.whl + https://files.pythonhosted.org/packages/py2.py3/w/wheel/wheel-${WHEEL_PV}-py2.py3-none-any.whl + ) +" +# PyPI archive does not have tests, so we need to download from GitHub. +# setuptools & wheel .whl files are required for testing, exact version is not very important. + +LICENSE="MIT" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 ~riscv sparc x86 ~x64-macos" +SLOT="0" +IUSE="test -vanilla" + +# disable-system-install patch breaks tests +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-python/setuptools-39.2.0[${PYTHON_USEDEP}] +" +DEPEND=" + ${RDEPEND} + test? ( + dev-python/cryptography[${PYTHON_USEDEP}] + dev-python/csv23[${PYTHON_USEDEP}] + dev-python/freezegun[${PYTHON_USEDEP}] + dev-python/mock[${PYTHON_USEDEP}] + dev-python/pretend[${PYTHON_USEDEP}] + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + dev-python/scripttest[${PYTHON_USEDEP}] + "${COMPLETION}" || die + newbashcomp "${COMPLETION}" ${PN} + + ${PYTHON} -c "${pipcmd}" completion --zsh > "${COMPLETION}" || die + insinto /usr/share/zsh/site-functions + newins "${COMPLETION}" _pip +} diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest new file mode 100644 index 000000000..864099530 --- /dev/null +++ b/dev-python/virtualenv/Manifest @@ -0,0 +1,6 @@ +AUX virtualenv-16.7.7-tests-internet.patch 2103 BLAKE2B 56ac246fb6675c273e288b230c2502691f36f49502427c234c8b2da1a2d187791aced234fd70f7be98b98ff158f570747e670cc0ededdab1d5ed499d7b8588be SHA512 17f2a38d32f17c7f8bfe138939b6953dcbf13404371b8377a47759118ad37aaf73f45f670d46d5956fd5948754fb9c60248d9222920c6fd7e7c2e7c7661c9a18 +AUX virtualenv-16.7.7-tests.patch 2092 BLAKE2B fe9eef6372958265ff4b0b919c424a16313934973f29f15f726541cf3a32a9e49d163a40ff0b2d08d17f6521cc7d651fa092d66eb196261706d8d11a9e590e31 SHA512 f4c8a46d5d064672bd154beb0c1fd4a368e9879046931a67fc053e314b5f8510e825cbb3ad3d7e149a19745149a47d4e694b0f6b9f771dcf55e35bcc0871eb59 +AUX virtualenv-16.7.8-tests-pypy.patch 3133 BLAKE2B 37d544c96a1546aa0df4e820014ee6091d4b4ca5155da86280aaebfb1a8d26ce9c6a055e47b11129509d7d00abcee0e3a915bd6ff4665b289cfce399f2dfd3b6 SHA512 f99cd435fe9fa98465addc6b22310e5d708c87edef224cdf540556a2ab1a70bebf06e828c02148bb597d163c31b2816845c0c8126727d1d25b38ffcb91c2251e +DIST virtualenv-16.7.10.tar.gz 5116776 BLAKE2B 42f0a4b4330850b504f8febd991ef6ecdcbb0821efdd94ca324a8cc34a68a760a8a98de97f0cb2384d8e6cbb0ce8f261995c6433886444e29b75ba0ce09ca12c SHA512 f06d7c354ce1910f04dbcbe1a77e60392653bbe4f638bafbe9284454db2c0e5d63cf9159201d0916fc01aaba91d45fb733b63096c38517fcd83fd00ed8b26d28 +EBUILD virtualenv-16.7.10-r1.ebuild 1959 BLAKE2B 90c31ff96e46d24169602a0f034bf02f0d5fcc4132b1ef12a06226580ed2737398c889a0f752cd14c99f310a72642664aacc27024a65840a8541e580ef601deb SHA512 ab7f3e64008dc6320e2d0a280087b7ae26f934eaa7d571e2f8e01c4e21db7356476fd002918b6217bb52827f22bcd6f8e527e53c1011824d8d32be99c452bec8 +MISC metadata.xml 405 BLAKE2B 65152299182652973b0a6387a690d6e04066d9ac05167d6f0ef7d27036813a793503d16e65514093869ed596227123f493dfdba021a094b0021b6c5b98cc0cf7 SHA512 13db4a863e2a82bae1d177967fc45821a59fddc9afc5c9bbbc0abf64fd2c57cb1f7053443d4721c3c91b6562c1b3844560fccc5853f14bce387aabc620167eb6 diff --git a/dev-python/virtualenv/files/virtualenv-16.7.7-tests-internet.patch b/dev-python/virtualenv/files/virtualenv-16.7.7-tests-internet.patch new file mode 100644 index 000000000..97baeb59c --- /dev/null +++ b/dev-python/virtualenv/files/virtualenv-16.7.7-tests-internet.patch @@ -0,0 +1,50 @@ +diff --git a/tests/test_from_source.py b/tests/test_from_source.py +index 39d7c05..76834f7 100644 +--- a/tests/test_from_source.py ++++ b/tests/test_from_source.py +@@ -40,6 +40,7 @@ def test_use_from_source_sdist(sdist, tmp_path, clean_python, monkeypatch, call_ + ) + + ++@pytest.mark.skip(reason="needs internet access") + def test_use_from_wheel(tmp_path, extracted_wheel, clean_python, monkeypatch, call_subprocess): + """test that we can create a virtual environment by feeding to a clean python the wheels content""" + virtualenv_file = extracted_wheel / "virtualenv.py" +diff --git a/tests/test_source_content.py b/tests/test_source_content.py +index 8eae6bc..06763ee 100644 +--- a/tests/test_source_content.py ++++ b/tests/test_source_content.py +@@ -41,6 +41,7 @@ def test_sdist_contains(sdist): + assert not extra, " | ".join(extra) + + ++@pytest.mark.skip(reason="needs internet access") + def test_wheel_contains(extracted_wheel): + content = set(extracted_wheel.iterdir()) + +diff --git a/tests/test_zipapp.py b/tests/test_zipapp.py +index d084af6..93d29e1 100644 +--- a/tests/test_zipapp.py ++++ b/tests/test_zipapp.py +@@ -51,11 +51,13 @@ def call_wheel(tmp_path_factory, call_subprocess): + return wheel_make_env + + ++@pytest.mark.skip(reason="needs internet access") + @pytest.mark.skipif(six.PY2, reason="seems to be broken on python2") + def test_zipapp_basic_invocation(call_zipapp, tmp_path): + _test_basic_invocation(call_zipapp, tmp_path) + + ++@pytest.mark.skip(reason="needs internet access") + @pytest.mark.skipif(six.PY2, reason="seems to be broken on python2") + def test_wheel_basic_invocation(call_wheel, tmp_path): + _test_basic_invocation(call_wheel, tmp_path) +@@ -97,6 +99,7 @@ def test_zipapp_invocation_dash_p(call_zipapp, tmp_path): + _test_invocation_dash_p(call_zipapp, tmp_path) + + ++@pytest.mark.skip(reason="needs internet access") + @pytest.mark.skipif(six.PY2, reason="seems to be broken on python2") + @pytest.mark.skipif(sys.platform == "win32" and six.PY2, reason="no python 3 for windows on CI") + def test_wheel_invocation_dash_p(call_wheel, tmp_path): diff --git a/dev-python/virtualenv/files/virtualenv-16.7.7-tests.patch b/dev-python/virtualenv/files/virtualenv-16.7.7-tests.patch new file mode 100644 index 000000000..41d3240d4 --- /dev/null +++ b/dev-python/virtualenv/files/virtualenv-16.7.7-tests.patch @@ -0,0 +1,53 @@ +diff --git a/tests/test_virtualenv.py b/tests/test_virtualenv.py +index 620c0cb..946233b 100644 +--- a/tests/test_virtualenv.py ++++ b/tests/test_virtualenv.py +@@ -356,6 +356,7 @@ def test_install_python_bin(): + shutil.rmtree(tmp_virtualenv) + + ++@pytest.mark.skip(reason="This test does not seem to be working, and I have no idea why") + @pytest.mark.skipif("platform.python_implementation() == 'PyPy'") + def test_always_copy_option(): + """Should be no symlinks in directory tree""" +diff --git a/tests/test_zipapp.py b/tests/test_zipapp.py +index 8ef8bd1..d084af6 100644 +--- a/tests/test_zipapp.py ++++ b/tests/test_zipapp.py +@@ -51,10 +51,12 @@ def call_wheel(tmp_path_factory, call_subprocess): + return wheel_make_env + + ++@pytest.mark.skipif(six.PY2, reason="seems to be broken on python2") + def test_zipapp_basic_invocation(call_zipapp, tmp_path): + _test_basic_invocation(call_zipapp, tmp_path) + + ++@pytest.mark.skipif(six.PY2, reason="seems to be broken on python2") + def test_wheel_basic_invocation(call_wheel, tmp_path): + _test_basic_invocation(call_wheel, tmp_path) + +@@ -95,6 +97,7 @@ def test_zipapp_invocation_dash_p(call_zipapp, tmp_path): + _test_invocation_dash_p(call_zipapp, tmp_path) + + ++@pytest.mark.skipif(six.PY2, reason="seems to be broken on python2") + @pytest.mark.skipif(sys.platform == "win32" and six.PY2, reason="no python 3 for windows on CI") + def test_wheel_invocation_dash_p(call_wheel, tmp_path): + _test_invocation_dash_p(call_wheel, tmp_path) +diff --git a/virtualenv.py b/virtualenv.py +index 0c47e4f..d4a1747 100755 +--- a/virtualenv.py ++++ b/virtualenv.py +@@ -80,9 +80,9 @@ else: + DEFAULT_CONFIG_FILE = os.path.join(DEFAULT_STORAGE_DIR, "virtualenv.ini") + + if IS_PYPY: +- EXPECTED_EXE = "pypy" ++ EXPECTED_EXE = "pypy{}".format('' if sys.hexversion < 0x3000000 else '3') + else: +- EXPECTED_EXE = "python" ++ EXPECTED_EXE = "python{}.{}".format(sys.version_info.major, sys.version_info.minor) + + # Return a mapping of version -> Python executable + # Only provided for Windows, where the information in the registry is used diff --git a/dev-python/virtualenv/files/virtualenv-16.7.8-tests-pypy.patch b/dev-python/virtualenv/files/virtualenv-16.7.8-tests-pypy.patch new file mode 100644 index 000000000..1e9268a5f --- /dev/null +++ b/dev-python/virtualenv/files/virtualenv-16.7.8-tests-pypy.patch @@ -0,0 +1,64 @@ +diff --git a/tests/test_virtualenv.py b/tests/test_virtualenv.py +index 620c0cb..3284cea 100644 +--- a/tests/test_virtualenv.py ++++ b/tests/test_virtualenv.py +@@ -5,6 +5,7 @@ import optparse + import os + import shutil + import subprocess ++import platform + import sys + import tempfile + import textwrap +@@ -342,6 +343,11 @@ def test_install_python_bin(): + + if virtualenv.IS_WIN: + required_executables = ["python.exe", "pythonw.exe"] ++ elif platform.python_implementation() == 'PyPy': ++ if sys.version_info.major < 3: ++ required_executables = ["pypy"] ++ else: ++ required_executables = ["pypy3"] + else: + py_exe_no_version = "python" + py_exe_version_major = "python%s" % sys.version_info[0] +@@ -549,7 +555,7 @@ def check_pypy_pre_import(): + assert module in sys.modules, "missing {!r} in sys.modules".format(module) + + +-@pytest.mark.skipif("platform.python_implementation() != 'PyPy'") ++@pytest.mark.skipif("platform.python_implementation() == 'PyPy'") + def test_pypy_pre_import(tmp_path): + """For PyPy, some built-in modules should be pre-imported because + some programs expect them to be in sys.modules on startup. +@@ -622,7 +628,7 @@ def test_create_environment_from_venv(tmpdir): + builder.setup_python(ctx) + builder.setup_scripts(ctx) + subprocess.check_call([ctx.env_exe, virtualenv.__file__, "--no-setuptools", "--no-pip", "--no-wheel", ve_venv_dir]) +- ve_exe = os.path.join(bin_dir, "python") ++ ve_exe = os.path.join(bin_dir, os.getenv('EPYTHON')) + out = subprocess.check_output([ve_exe, "-c", "import sys; print(sys.real_prefix)"], universal_newlines=True) + # Test against real_prefix if present - we might be running the test from a virtualenv (e.g. tox). + assert out.strip() == getattr(sys, "real_prefix", sys.prefix) +@@ -639,7 +645,7 @@ def test_create_environment_from_venv_no_pip(tmpdir): + builder.setup_python(ctx) + builder.setup_scripts(ctx) + subprocess.check_call([ctx.env_exe, virtualenv.__file__, "--no-pip", ve_venv_dir]) +- ve_exe = os.path.join(bin_dir, "python") ++ ve_exe = os.path.join(bin_dir, os.getenv('EPYTHON')) + out = subprocess.check_output([ve_exe, "-c", "import sys; print(sys.real_prefix)"], universal_newlines=True) + # Test against real_prefix if present - we might be running the test from a virtualenv (e.g. tox). + assert out.strip() == getattr(sys, "real_prefix", sys.prefix) +@@ -657,10 +663,11 @@ def test_create_environment_with_old_pip(tmpdir): + virtualenv.create_environment(venvdir, search_dirs=[support_dir], no_wheel=True) + + ++@pytest.mark.skipif("platform.python_implementation() == 'PyPy'") + def test_license_builtin(clean_python): + _, bin_dir, _ = clean_python + proc = subprocess.Popen( +- (os.path.join(bin_dir, "python"), "-c", "license()"), stdin=subprocess.PIPE, stdout=subprocess.PIPE ++ (os.path.join(bin_dir, os.getenv('EPYTHON')), "-c", "license()"), stdin=subprocess.PIPE, stdout=subprocess.PIPE + ) + out_b, _ = proc.communicate(b"q\n") + out = out_b.decode() diff --git a/dev-python/virtualenv/metadata.xml b/dev-python/virtualenv/metadata.xml new file mode 100644 index 000000000..b42c4bbd6 --- /dev/null +++ b/dev-python/virtualenv/metadata.xml @@ -0,0 +1,13 @@ + + + + + python@gentoo.org + Python + + + + virtualenv + pypa/virtualenv + + diff --git a/dev-python/virtualenv/virtualenv-16.7.10-r1.ebuild b/dev-python/virtualenv/virtualenv-16.7.10-r1.ebuild new file mode 100644 index 000000000..898e23e80 --- /dev/null +++ b/dev-python/virtualenv/virtualenv-16.7.10-r1.ebuild @@ -0,0 +1,66 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7,8,9} pypy3 ) +DISTUTILS_USE_SETUPTOOLS=manual + +inherit distutils-r1 + +DESCRIPTION="Virtual Python Environment builder" +HOMEPAGE=" + https://virtualenv.pypa.io/en/stable/ + https://pypi.org/project/virtualenv/ + https://github.com/pypa/virtualenv/ +" +SRC_URI="https://github.com/pypa/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="MIT" +#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux" +SLOT="0" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=">=dev-python/setuptools-19.6.2[${PYTHON_USEDEP}]" +BDEPEND="${RDEPEND} + test? ( + >=dev-python/pip-19.3.1-r1[${PYTHON_USEDEP}] + dev-python/mock[${PYTHON_USEDEP}] + dev-python/pypiserver[${PYTHON_USEDEP}] + dev-python/pytest-localserver[${PYTHON_USEDEP}] + dev-python/pytest-timeout[${PYTHON_USEDEP}] + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] + dev-python/wheel[${PYTHON_USEDEP}] + )" + +DOCS=( docs/index.rst docs/changes.rst ) + +PATCHES=( + "${FILESDIR}/virtualenv-16.7.7-tests.patch" + + # disable tests that need internet access + "${FILESDIR}/virtualenv-16.7.7-tests-internet.patch" + + # test fixes for pypy + "${FILESDIR}/virtualenv-16.7.8-tests-pypy.patch" +) + +distutils_enable_sphinx docs \ + dev-python/sphinx_rtd_theme \ + dev-python/towncrier + +python_test() { + cp "${S}"/LICENSE.txt "${BUILD_DIR}"/lib || \ + die "Could not copy LICENSE.txt with ${EPYTHON}" + + pytest -vv tests || die "Tests fail with ${EPYTHON}" +} + +pkg_postinst() { + elog "Please note that while virtualenv package no longer supports" + elog "Python 2.7, you can still create py2.7 virtualenvs via:" + elog " $ virtualenv -p /usr/bin/python2.7 ..." +}