Date: Monday, June 27, 2022 @ 14:53:32 Author: dvzrv Revision: 449489
upgpkg: python-pip 22.1.2-1: Upgrade to 22.1.2. List all dependencies alphabetically. Remove unneeded quotes and curly braces. Add patch to enable devendoring. Add (upstreamed) patch to add missing imports for python-rich when devendoring. Remove unneeded patch for python-resolvelib. Remove docs formerly used for python2 support. Simplify setup for deselecting tests using a bash array. Switch to PEP517. Added: python-pip/trunk/pip-22.1.2-devendor.patch python-pip/trunk/pip-22.1.2-devendor_imports.patch Modified: python-pip/trunk/PKGBUILD Deleted: python-pip/trunk/resolvelib-0.5.5.patch -----------------------------------+ PKGBUILD | 175 ++++++++++++++++++++++-------------- pip-22.1.2-devendor.patch | 12 ++ pip-22.1.2-devendor_imports.patch | 21 ++++ resolvelib-0.5.5.patch | 45 --------- 4 files changed, 141 insertions(+), 112 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2022-06-27 14:46:09 UTC (rev 449488) +++ PKGBUILD 2022-06-27 14:53:32 UTC (rev 449489) @@ -1,94 +1,135 @@ -# Maintainer: Dan McGee <[email protected]> +# Maintainer: David Runge <[email protected]> +# Maintainer: Felix Yan <[email protected]> +# Contributor: Dan McGee <[email protected]> # Contributor: Eli Schwartz <[email protected]> # Contributor: Sebastien Binet <binet@lblbox> +_name=pip pkgname=python-pip -pkgver=21.0 +pkgver=22.1.2 pkgrel=1 pkgdesc="The PyPA recommended tool for installing Python packages" url="https://pip.pypa.io/" -arch=('any') -license=('MIT') -_deps=('appdirs' 'cachecontrol' 'colorama' 'contextlib2' 'distlib' 'distro' 'html5lib' - 'packaging' 'pep517' 'progress' 'requests' 'retrying' 'resolvelib' 'setuptools' 'six' 'toml' - # add these until https://github.com/pypa/pip/issues/5354#issuecomment-672678167 is resolved - 'pyopenssl') -depends=("${_deps[@]/#/python-}") -makedepends=("${_deps[@]/#/python-}" 'python-sphinx' - 'python-sphinx-inline-tabs' 'python-sphinxcontrib-towncrier') -checkdepends=('python-pytest-runner' 'python-scripttest' 'python-virtualenv' 'python-pretend' - 'python-yaml' 'python-mock' 'python-freezegun' 'python-cryptography' 'python-pip' - 'python-wheel' 'python-werkzeug' 'python-csv23' 'git' 'subversion') -source=("pip-${pkgver}.tar.gz::https://github.com/pypa/pip/archive/${pkgver}.tar.gz" - resolvelib-0.5.5.patch) -sha512sums=('ac77a7204423f1fdc3a4d328dab1860258efccde0123cff3217f357637c4ce3d85772ab81a230122ff813be2cfa40f2862e5d499390289efe1dcde3a31a42264' - 'f339a20e965c583c1dc741d9fff90749aab049d591f0ac974e2187d4f41842661802b96266e8e35454b65d61d65c337a770d58b81119af07483fde0eda48001b') +arch=(any) +license=(MIT) +# packages required to devendor pip: https://github.com/pypa/pip/tree/main/src/pip/_vendor +_vendored=( + python-cachecontrol + python-certifi + python-chardet + python-colorama + python-distlib + python-distro + python-html5lib + python-idna + python-msgpack + python-packaging + python-pep517 + python-platformdirs + python-pygments + python-pyparsing + python-requests + python-resolvelib + python-rich + python-setuptools + python-six + python-tenacity + python-tomli + python-typing-extensions + python-urllib3 + python-webencodings +) +# add these until https://github.com/pypa/pip/issues/5354#issuecomment-672678167 is resolved +_vendored_optional=( + python-pyopenssl +) +depends=("${_vendored[@]}" "${_vendored_optional[@]}") +makedepends=( + python-build + python-installer + python-myst-parser + python-setuptools + python-sphinx + python-sphinx-copybutton + python-sphinx-inline-tabs + python-sphinxcontrib-towncrier + python-wheel +) +checkdepends=( + git + python-cryptography + python-freezegun + python-pytest + python-pytest-rerunfailures + python-pytest-xdist + python-scripttest + python-setuptools + python-tomli-w + python-virtualenv + python-werkzeug + python-wheel + subversion +) +source=( + $_name-$pkgver.tar.gz::https://github.com/pypa/$_name/archive/$pkgver.tar.gz + $_name-22.1.2-devendor.patch + $_name-22.1.2-devendor_imports.patch +) +sha512sums=('7dd13150023f1cca8f5e01da7688ae418b5d0b36364efcfc15374a5147c7cabd46ff1d34e6499bc8e182dc0d34a366f5fe21d8ab4de4d112d269a97200401305' + '90f07252786d765c8ba7ce12915ed9434d3696addb8e5cfff298f280b9f499ad6836a158c9f515a51fc7373f1a77b9eb550b7855609114b041aa7bc5b2b821ae' + '5abdd74c505f649e381c807607c98edeab45671ca48bb7d99fc85d35191bbe7addbcadb4b833d8851095896433a8860a703c80e120a15038afb234448cea514d') +b2sums=('f709f8977d467d5a3170884bb75cd2f74a2f40801ae02a3725d442e18e4073f9c4a39cd1c9d2ce3949eb888be69d151f67d0cf2d0cbad7e2ec1ec6e78150b5c7' + '892455034738c6c7a74cd7c136c0650f9c4eb54dd4708cf43d2e17ecbd9904adb567c9c3d5a05865048645ad3aac65406a82d23af43fd3889d9290b66d89ead5' + '256b5cc8b0f91265965ca90f443033f540fc698fca981cc9b30fbba60fcc9a82b2f7acfabb807db0911677f5a50ad3387879adf6ee21b6029cad47ed2abe7ebd') shopt -s extglob prepare() { - cd pip-$pkgver + # set DEBUNDLED to True + patch -Np1 -d $_name-$pkgver -i ../$_name-22.1.2-devendor.patch + # add missing imports for rich for devendoring: https://github.com/pypa/pip/pull/11211 + patch -Np1 -d $_name-$pkgver -i ../$_name-22.1.2-devendor_imports.patch - # Backported from: - # https://github.com/pypa/pip/commit/0d39ae9734d054c25e48e2da7ddb76545e5de330 - patch -p1 -i ../resolvelib-0.5.5.patch - - # Remove certifi usage - sed -i 's|from pip._vendor.certifi import where|where = lambda: "/etc/ssl/certs/ca-certificates.crt"|' src/pip/_internal/commands/debug.py - - rm -rf src/pip/_vendor/!(__init__.py) - sed -i -e 's/DEBUNDLED = False/DEBUNDLED = True/' \ - src/pip/_vendor/__init__.py + # remove vendored files, except __init__.py + rm -frv $_name-$pkgver/src/pip/_vendor/!(__init__.py) + shopt -u extglob } build() { - cd pip-$pkgver + cd $_name-$pkgver - python setup.py build + python -m build --wheel --no-isolation cd docs/ - PYTHONPATH="$srcdir/pip-$pkgver/src/" python pip_sphinxext.py - PYTHONPATH="$srcdir/pip-$pkgver/src/" sphinx-build -W -b man -d build/doctrees/man man build/man -c html - mkdir -p build/man-pip2 - cd build/man - for manfile in *; do - sed 's/pip/pip2/g;s/PIP/PIP2/g' $manfile > ../man-pip2/${manfile/pip/pip2} - done + PYTHONPATH="$srcdir/$_name-$pkgver/src/" python pip_sphinxext.py + PYTHONPATH="$srcdir/$_name-$pkgver/src/" sphinx-build -b man -d build/doctrees/man man build/man -c html } check() { - cd "$srcdir"/pip-$pkgver - pip wheel -w tests/data/common_wheels -r tools/requirements/tests-common_wheels.txt - python setup.py install --root="$PWD/tmp_install" --optimize=1 - # appdirs: https://github.com/pypa/pip/issues/7784 - # build_env: TODO weird looking errors - # virtualenv: https://github.com/pypa/pip/issues/8273 - PYTHONPATH="$PWD/tmp_install/usr/lib/python3.10/site-packages" PATH="$PWD/tmp_install/usr/bin:$PATH" \ - python -m pytest -m unit --junit-xml=junit/unit-test.xml --deselect tests/unit/test_appdirs.py::TestSiteConfigDirs::test_site_config_dirs_linux \ - --deselect tests/unit/test_appdirs.py::TestSiteConfigDirs::test_site_config_dirs_linux_override \ - --deselect tests/unit/test_appdirs.py::TestSiteConfigDirs::test_site_config_dirs_linux_empty \ - --deselect tests/unit/test_appdirs.py::TestUserDataDir::test_user_data_dir_osx \ - --deselect tests/unit/test_appdirs.py::TestUserConfigDir::test_user_config_dir_osx \ - --deselect tests/unit/test_build_env.py::test_build_env_requirements_check \ - --deselect tests/unit/test_build_env.py::test_build_env_overlay_prefix_has_priority \ - --deselect tests/unit/test_build_env.py::test_build_env_isolation \ - --deselect tests/unit/test_build_env.py::test_build_env_allow_only_one_install \ - --deselect tests/unit/test_direct_url_helpers.py::test_from_link_vcs_with_source_dir_obtains_commit_id \ - --deselect tests/unit/test_direct_url_helpers.py::test_from_link_vcs_without_source_dir \ - --deselect tests/unit/test_wheel_builder.py::test_should_cache_git_sha \ - --deselect tests/unit/resolution_resolvelib/test_requirement.py::test_new_resolver_full_resolve + local _site_packages=$(python -c "import site; print(site.getsitepackages()[0])") + local _deselected=( + # deselect tests that would require python-pip in checkdepends (may or may not work due to devendored dependencies when python-pip is updated) + --deselect tests/unit/test_direct_url_helpers.py::test_from_link_vcs_with_source_dir_obtains_commit_id + --deselect tests/unit/test_direct_url_helpers.py::test_from_link_vcs_without_source_dir + --deselect tests/unit/test_wheel_builder.py::test_should_cache_git_sha + ) + + cd $_name-$pkgver + # install to temporary location + python -m installer --destdir=test_dir dist/*.whl + export PYTHONPATH="test_dir/$_site_packages:$PYTHONPATH" + pytest -vv -m unit "${_deselected[@]}" } package() { - cd pip-$pkgver - python setup.py install --prefix=/usr --root="$pkgdir" + local _site_packages=$(python -c "import site; print(site.getsitepackages()[0])") - install -D -m644 LICENSE.txt \ - "$pkgdir/usr/share/licenses/$pkgname/LICENSE" + cd $_name-$pkgver + python -m installer --destdir="$pkgdir" dist/*.whl - install -Dm644 -t "$pkgdir"/usr/share/man/man1 docs/build/man/* + install -vDm 644 LICENSE.txt -t "$pkgdir/usr/share/licenses/$pkgname/" + install -vDm 644 docs/build/man/*.1 -t "$pkgdir/usr/share/man/man1/" - PYTHONPATH="$pkgdir"/usr/lib/python3.10/site-packages "$pkgdir"/usr/bin/pip completion --bash \ - | install -Dm644 /dev/stdin "$pkgdir"/usr/share/bash-completion/completions/pip - PYTHONPATH="$pkgdir"/usr/lib/python3.10/site-packages "$pkgdir"/usr/bin/pip completion --fish \ - | install -Dm644 /dev/stdin "$pkgdir"/usr/share/fish/vendor_completions.d/pip.fish + # NOTE: zsh completion does not work: https://bugs.archlinux.org/task/65349#comment187166 + PYTHONPATH="$pkgdir/$_site_packages" "$pkgdir"/usr/bin/pip completion --bash | install -vDm 644 /dev/stdin "$pkgdir"/usr/share/bash-completion/completions/pip + PYTHONPATH="$pkgdir/$_site_packages" "$pkgdir"/usr/bin/pip completion --fish | install -vDm 644 /dev/stdin "$pkgdir"/usr/share/fish/vendor_completions.d/pip.fish } Added: pip-22.1.2-devendor.patch =================================================================== --- pip-22.1.2-devendor.patch (rev 0) +++ pip-22.1.2-devendor.patch 2022-06-27 14:53:32 UTC (rev 449489) @@ -0,0 +1,12 @@ +diff -ruN a/src/pip/_vendor/__init__.py b/src/pip/_vendor/__init__.py +--- a/src/pip/_vendor/__init__.py 2022-05-31 13:05:52.000000000 +0200 ++++ b/src/pip/_vendor/__init__.py 2022-06-27 13:03:22.909131639 +0200 +@@ -14,7 +14,7 @@ + # 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 Added: pip-22.1.2-devendor_imports.patch =================================================================== --- pip-22.1.2-devendor_imports.patch (rev 0) +++ pip-22.1.2-devendor_imports.patch 2022-06-27 14:53:32 UTC (rev 449489) @@ -0,0 +1,21 @@ +diff --git c/src/pip/_vendor/__init__.py w/src/pip/_vendor/__init__.py +index 3843cb099..39579aa96 100644 +--- c/src/pip/_vendor/__init__.py ++++ w/src/pip/_vendor/__init__.py +@@ -106,6 +106,16 @@ if DEBUNDLED: + vendored("requests.packages.urllib3.util.timeout") + vendored("requests.packages.urllib3.util.url") + vendored("resolvelib") ++ vendored("rich") ++ vendored("rich.console") ++ vendored("rich.highlighter") ++ vendored("rich.logging") ++ vendored("rich.markup") ++ vendored("rich.progress") ++ vendored("rich.segment") ++ vendored("rich.style") ++ vendored("rich.text") ++ vendored("rich.traceback") + vendored("tenacity") + vendored("tomli") + vendored("urllib3") Deleted: resolvelib-0.5.5.patch =================================================================== --- resolvelib-0.5.5.patch 2022-06-27 14:46:09 UTC (rev 449488) +++ resolvelib-0.5.5.patch 2022-06-27 14:53:32 UTC (rev 449489) @@ -1,45 +0,0 @@ -From 0d39ae9734d054c25e48e2da7ddb76545e5de330 Mon Sep 17 00:00:00 2001 -From: Tzu-ping Chung <[email protected]> -Date: Tue, 9 Mar 2021 05:20:23 +0800 -Subject: [PATCH] Pull in resolvelib's typing information - ---- - .../resolution/resolvelib/factory.py | 9 ++- - .../resolution/resolvelib/provider.py | 24 ++++-- - .../resolution/resolvelib/resolver.py | 25 +++++-- - src/pip/_vendor/resolvelib.pyi | 1 - - src/pip/_vendor/resolvelib/__init__.py | 2 +- - src/pip/_vendor/resolvelib/__init__.pyi | 15 ++++ - src/pip/_vendor/resolvelib/providers.py | 8 +- - src/pip/_vendor/resolvelib/providers.pyi | 44 +++++++++++ - src/pip/_vendor/resolvelib/py.typed | 0 - src/pip/_vendor/resolvelib/reporters.pyi | 10 +++ - src/pip/_vendor/resolvelib/resolvers.py | 39 +++++----- - src/pip/_vendor/resolvelib/resolvers.pyi | 73 +++++++++++++++++++ - src/pip/_vendor/resolvelib/structs.pyi | 35 +++++++++ - src/pip/_vendor/vendor.txt | 2 +- - 14 files changed, 242 insertions(+), 45 deletions(-) - delete mode 100644 src/pip/_vendor/resolvelib.pyi - create mode 100644 src/pip/_vendor/resolvelib/__init__.pyi - create mode 100644 src/pip/_vendor/resolvelib/providers.pyi - create mode 100644 src/pip/_vendor/resolvelib/py.typed - create mode 100644 src/pip/_vendor/resolvelib/reporters.pyi - create mode 100644 src/pip/_vendor/resolvelib/resolvers.pyi - create mode 100644 src/pip/_vendor/resolvelib/structs.pyi - -diff --git a/src/pip/_internal/resolution/resolvelib/provider.py b/src/pip/_internal/resolution/resolvelib/provider.py -index 2085a0714a3..cd2ccfa60a3 100644 ---- a/src/pip/_internal/resolution/resolvelib/provider.py -+++ b/src/pip/_internal/resolution/resolvelib/provider.py -@@ -50,9 +50,9 @@ def __init__( - self._upgrade_strategy = upgrade_strategy - self._user_requested = user_requested - -- def identify(self, dependency): -+ def identify(self, requirement_or_candidate): - # type: (Union[Requirement, Candidate]) -> str -- return dependency.name -+ return requirement_or_candidate.name - - def get_preference( - self,
