From 6300db47baa42ea4e648483392dbc90976af2a35 Mon Sep 17 00:00:00 2001 From: Charalampos Stratakis Date: Wed, 29 Jun 2022 02:26:42 +0200 Subject: [PATCH] Update to 22.2 Resolves: rhbz#2109468 --- 452d7da880.patch | 76 ------------------- dummy-certifi.patch | 22 +++--- nowarn-pip._internal.main.patch | 18 +++-- python-pip.spec | 47 +++++------- ...existing-dist-only-if-path-conflicts.patch | 26 +++---- sources | 2 +- 6 files changed, 56 insertions(+), 135 deletions(-) delete mode 100644 452d7da880.patch diff --git a/452d7da880.patch b/452d7da880.patch deleted file mode 100644 index 9333f7e..0000000 --- a/452d7da880.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 452d7da8801ca318f280bd1c1085c60b0b6f747f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Hrn=C4=8Diar?= -Date: Sat, 23 Apr 2022 16:56:59 +0200 -Subject: [PATCH] Fallback to pyproject.toml-based builds if setuptools cannot - be imported (#10717) - -This fallback is only triggered if the project has a `setup.py` file. - -Co-authored-by: Tzu-ping Chung -Co-authored-by: Pradyun Gedam ---- - news/10717.bugfix.rst | 1 + - src/pip/_internal/cli/cmdoptions.py | 7 +++++++ - src/pip/_internal/pyproject.py | 11 +++++++++-- - 3 files changed, 17 insertions(+), 2 deletions(-) - create mode 100644 news/10717.bugfix.rst - -diff --git a/news/10717.bugfix.rst b/news/10717.bugfix.rst -new file mode 100644 -index 00000000000..950a4521763 ---- /dev/null -+++ b/news/10717.bugfix.rst -@@ -0,0 +1 @@ -+Fallback to pyproject.toml-based builds if ``setup.py`` is present in a project, but ``setuptools`` cannot be imported. -diff --git a/src/pip/_internal/cli/cmdoptions.py b/src/pip/_internal/cli/cmdoptions.py -index cd1e8a00f63..91b94e3028c 100644 ---- a/src/pip/_internal/cli/cmdoptions.py -+++ b/src/pip/_internal/cli/cmdoptions.py -@@ -10,6 +10,7 @@ - # The following comment should be removed at some point in the future. - # mypy: strict-optional=False - -+import importlib.util - import logging - import os - import textwrap -@@ -770,6 +771,12 @@ def _handle_no_use_pep517( - """ - raise_option_error(parser, option=option, msg=msg) - -+ # If user doesn't wish to use pep517, we check if setuptools is installed -+ # and raise error if it is not. -+ if not importlib.util.find_spec("setuptools"): -+ msg = "It is not possible to use --no-use-pep517 without setuptools installed." -+ raise_option_error(parser, option=option, msg=msg) -+ - # Otherwise, --no-use-pep517 was passed via the command-line. - parser.values.use_pep517 = False - -diff --git a/src/pip/_internal/pyproject.py b/src/pip/_internal/pyproject.py -index e183eaf8658..1e9119f3e5c 100644 ---- a/src/pip/_internal/pyproject.py -+++ b/src/pip/_internal/pyproject.py -@@ -1,3 +1,4 @@ -+import importlib.util - import os - from collections import namedtuple - from typing import Any, List, Optional -@@ -89,9 +90,15 @@ def load_pyproject_toml( - - # If we haven't worked out whether to use PEP 517 yet, - # and the user hasn't explicitly stated a preference, -- # we do so if the project has a pyproject.toml file. -+ # we do so if the project has a pyproject.toml file -+ # or if we cannot import setuptools. -+ -+ # We fallback to PEP 517 when without setuptools, -+ # so setuptools can be installed as a default build backend. -+ # For more info see: -+ # https://discuss.python.org/t/pip-without-setuptools-could-the-experience-be-improved/11810/9 - elif use_pep517 is None: -- use_pep517 = has_pyproject -+ use_pep517 = has_pyproject or not importlib.util.find_spec("setuptools") - - # At this point, we know whether we're going to use PEP 517. - assert use_pep517 is not None diff --git a/dummy-certifi.patch b/dummy-certifi.patch index 459eada..a691cad 100644 --- a/dummy-certifi.patch +++ b/dummy-certifi.patch @@ -1,4 +1,4 @@ -From 2c58d7301dd5a47570f782fe2fce7fbb1918f60c Mon Sep 17 00:00:00 2001 +From cacd6d2fa9a27b29415a4ce25d76406fe69fc398 Mon Sep 17 00:00:00 2001 From: Karolina Surma Date: Mon, 10 May 2021 16:38:50 +0200 Subject: [PATCH] Dummy certifi patch @@ -9,28 +9,28 @@ Co-Authored-By: Tomas Hrnciar 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/pip/_vendor/certifi/core.py b/src/pip/_vendor/certifi/core.py -index b8140cf..f1a0b01 100644 +index f34045b..a2ada08 100644 --- a/src/pip/_vendor/certifi/core.py +++ b/src/pip/_vendor/certifi/core.py @@ -14,6 +14,7 @@ class _PipPatchedCertificate(Exception): - - + + try: + raise ImportError # force fallback # Return a certificate file on disk for a standalone pip zipapp running in # an isolated build environment to use. Passing --cert to the standalone # pip does not work since requests calls where() unconditionally on import. -@@ -67,9 +68,7 @@ except ImportError: +@@ -75,9 +76,7 @@ except ImportError: # If we don't have importlib.resources, then we will just do the old logic # of assuming we're on the filesystem and munge the path directly. - def where(): + def where() -> str: - f = os.path.dirname(__file__) - - return os.path.join(f, "cacert.pem") + return '/etc/pki/tls/certs/ca-bundle.crt' - - - def contents(): --- -2.30.2 + + + def contents() -> str: +-- +2.35.3 diff --git a/nowarn-pip._internal.main.patch b/nowarn-pip._internal.main.patch index 1490643..68f5971 100644 --- a/nowarn-pip._internal.main.patch +++ b/nowarn-pip._internal.main.patch @@ -1,4 +1,4 @@ -From 619782ad2d181fe2933ddf4edc7127fdc13dd0df Mon Sep 17 00:00:00 2001 +From 8dd3793d1bab226cec9c5c49b01718a9634bc403 Mon Sep 17 00:00:00 2001 From: Karolina Surma Date: Mon, 10 May 2021 16:48:49 +0200 Subject: [PATCH] Don't warn the user about pip._internal.main() entrypoint @@ -24,11 +24,11 @@ index 6afb5c6..faf25af 100755 - return _wrapper(args) + return _wrapper(args, _nowarn=True) diff --git a/src/pip/_internal/utils/entrypoints.py b/src/pip/_internal/utils/entrypoints.py -index 1504a12..07d941b 100644 +index f292c64..2e29a5e 100644 --- a/src/pip/_internal/utils/entrypoints.py +++ b/src/pip/_internal/utils/entrypoints.py -@@ -4,7 +4,7 @@ from typing import List, Optional - from pip._internal.cli.main import main +@@ -20,7 +20,7 @@ if WINDOWS: + ] -def _wrapper(args: Optional[List[str]] = None) -> int: @@ -36,7 +36,7 @@ index 1504a12..07d941b 100644 """Central wrapper for all old entrypoints. Historically pip has had several entrypoints defined. Because of issues -@@ -16,12 +16,13 @@ def _wrapper(args: Optional[List[str]] = None) -> int: +@@ -32,14 +32,15 @@ def _wrapper(args: Optional[List[str]] = None) -> int: directing them to an appropriate place for help, we now define all of our old entrypoints as wrappers for the current one. """ @@ -58,11 +58,13 @@ index 1504a12..07d941b 100644 + "running pip directly.\n" + ) return main(args) + + diff --git a/tests/functional/test_cli.py b/tests/functional/test_cli.py -index e416315..7f57f67 100644 +index 3e85703..f86c392 100644 --- a/tests/functional/test_cli.py +++ b/tests/functional/test_cli.py -@@ -31,4 +31,5 @@ def test_entrypoints_work(entrypoint, script): +@@ -43,4 +43,5 @@ def test_entrypoints_work(entrypoint: str, script: PipTestEnvironment) -> None: result = script.pip("-V") result2 = script.run("fake_pip", "-V", allow_stderr_warning=True) assert result.stdout == result2.stdout @@ -70,5 +72,5 @@ index e416315..7f57f67 100644 + if entrypoint[0] != "fake_pip = pip._internal:main": + assert "old script wrapper" in result2.stderr -- -2.32.0 +2.35.3 diff --git a/python-pip.spec b/python-pip.spec index cbcc5c5..b3307f2 100644 --- a/python-pip.spec +++ b/python-pip.spec @@ -13,7 +13,7 @@ %endif %global srcname pip -%global base_version 22.0.4 +%global base_version 22.2 %global upstream_version %{base_version}%{?prerel} %global python_wheel_name %{srcname}-%{upstream_version}-py3-none-any.whl @@ -21,7 +21,7 @@ Name: python-%{srcname} Version: %{base_version}%{?prerel:~%{prerel}} -Release: 5%{?dist} +Release: 1%{?dist} Summary: A tool for installing and managing Python packages # We bundle a lot of libraries with pip, which itself is under MIT license. @@ -89,10 +89,6 @@ Patch: nowarn-pip._internal.main.patch # Upstream issue: https://github.com/pypa/packaging/issues/368 Patch: no-version-warning.patch -# Fallback to pep517 if setup.py is present and setuptools cannot be imported -# https://bugzilla.redhat.com/show_bug.cgi?id=2020635 -Patch: https://github.com/pypa/pip/commit/452d7da880.patch - # Downstream only patch # Users might have local installations of pip from using # `pip install --user --upgrade pip` on older/newer versions. @@ -128,30 +124,28 @@ Packages" or "Pip Installs Python". # You can generate it with: # %%{_rpmconfigdir}/pythonbundles.py --namespace 'python%%{1}dist' src/pip/_vendor/vendor.txt %global bundled() %{expand: -Provides: bundled(python%{1}dist(cachecontrol)) = 0.12.10 -Provides: bundled(python%{1}dist(certifi)) = 2021.10.8 -Provides: bundled(python%{1}dist(chardet)) = 4 -Provides: bundled(python%{1}dist(colorama)) = 0.4.4 -Provides: bundled(python%{1}dist(distlib)) = 0.3.3 -Provides: bundled(python%{1}dist(distro)) = 1.6 -Provides: bundled(python%{1}dist(html5lib)) = 1.1 +Provides: bundled(python%{1}dist(cachecontrol)) = 0.12.11 +Provides: bundled(python%{1}dist(certifi)) = 2022.6.15 +Provides: bundled(python%{1}dist(chardet)) = 5 +Provides: bundled(python%{1}dist(colorama)) = 0.4.5 +Provides: bundled(python%{1}dist(distlib)) = 0.3.5 +Provides: bundled(python%{1}dist(distro)) = 1.7 Provides: bundled(python%{1}dist(idna)) = 3.3 -Provides: bundled(python%{1}dist(msgpack)) = 1.0.3 +Provides: bundled(python%{1}dist(msgpack)) = 1.0.4 Provides: bundled(python%{1}dist(packaging)) = 21.3 Provides: bundled(python%{1}dist(pep517)) = 0.12 -Provides: bundled(python%{1}dist(platformdirs)) = 2.4.1 -Provides: bundled(python%{1}dist(progress)) = 1.6 -Provides: bundled(python%{1}dist(pygments)) = 2.11.2 -Provides: bundled(python%{1}dist(pyparsing)) = 3.0.7 -Provides: bundled(python%{1}dist(requests)) = 2.27.1 +Provides: bundled(python%{1}dist(platformdirs)) = 2.5.2 +Provides: bundled(python%{1}dist(pygments)) = 2.12 +Provides: bundled(python%{1}dist(pyparsing)) = 3.0.9 +Provides: bundled(python%{1}dist(requests)) = 2.28.1 Provides: bundled(python%{1}dist(resolvelib)) = 0.8.1 -Provides: bundled(python%{1}dist(rich)) = 11 +Provides: bundled(python%{1}dist(rich)) = 12.5.1 Provides: bundled(python%{1}dist(setuptools)) = 44 Provides: bundled(python%{1}dist(six)) = 1.16 Provides: bundled(python%{1}dist(tenacity)) = 8.0.1 -Provides: bundled(python%{1}dist(tomli)) = 1.0.3 -Provides: bundled(python%{1}dist(typing-extensions)) = 4.0.1 -Provides: bundled(python%{1}dist(urllib3)) = 1.26.8 +Provides: bundled(python%{1}dist(tomli)) = 2.0.1 +Provides: bundled(python%{1}dist(typing-extensions)) = 4.3 +Provides: bundled(python%{1}dist(urllib3)) = 1.26.10 Provides: bundled(python%{1}dist(webencodings)) = 0.5.1 } @@ -270,9 +264,6 @@ sed -i '/"sphinxcontrib.towncrier",/d' docs/html/conf.py # tests expect wheels in here ln -s %{python_wheel_dir} tests/data/common_wheels -# Remove shebang from files in bundled chardet -grep -lr "^#\!/usr/bin/env python" src/pip/_vendor/chardet/ | xargs sed -i "1d" - # Remove windows executable binaries rm -v src/pip/_vendor/distlib/*.exe sed -i '/\.exe/d' setup.py @@ -411,6 +402,10 @@ pytest_k='not completion and %{python_wheel_dir}/%{python_wheel_name} %changelog +* Fri Jul 22 2022 Charalampos Stratakis - 22.2-1 +- Update to 22.2 +Resolves: rhbz#2109468 + * Fri Jul 22 2022 Fedora Release Engineering - 22.0.4-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild diff --git a/remove-existing-dist-only-if-path-conflicts.patch b/remove-existing-dist-only-if-path-conflicts.patch index 8f1e1b0..d4497fd 100644 --- a/remove-existing-dist-only-if-path-conflicts.patch +++ b/remove-existing-dist-only-if-path-conflicts.patch @@ -1,4 +1,4 @@ -From d4c72aa37d16e19c0f157e86203a66cad32a9c80 Mon Sep 17 00:00:00 2001 +From 2c3f3a590ddfc151a456b44a5f96f0f603d178e9 Mon Sep 17 00:00:00 2001 From: Lumir Balhar Date: Wed, 16 Feb 2022 08:36:21 +0100 Subject: [PATCH] Prevent removing of the system packages installed under @@ -23,10 +23,10 @@ Co-Authored-By: Karolina Surma 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/pip/_internal/metadata/base.py b/src/pip/_internal/metadata/base.py -index 1a5a781..3df4ab2 100644 +index 151fd6d..f9109cd 100644 --- a/src/pip/_internal/metadata/base.py +++ b/src/pip/_internal/metadata/base.py -@@ -24,7 +24,7 @@ from pip._vendor.packaging.utils import NormalizedName +@@ -28,7 +28,7 @@ from pip._vendor.packaging.utils import NormalizedName from pip._vendor.packaging.version import LegacyVersion, Version from pip._internal.exceptions import NoneMetadataError @@ -35,9 +35,9 @@ index 1a5a781..3df4ab2 100644 from pip._internal.models.direct_url import ( DIRECT_URL_METADATA_NAME, DirectUrl, -@@ -441,6 +441,16 @@ class BaseDistribution(Protocol): - or self._iter_declared_entries_from_legacy() - ) +@@ -560,6 +560,16 @@ class BaseDistribution(Protocol): + for extra in self._iter_egg_info_extras(): + metadata["Provides-Extra"] = extra + @property + def in_install_path(self) -> bool: @@ -53,10 +53,10 @@ index 1a5a781..3df4ab2 100644 class BaseEnvironment: """An environment containing distributions to introspect.""" diff --git a/src/pip/_internal/req/req_install.py b/src/pip/_internal/req/req_install.py -index 02dbda1..a952357 100644 +index a1e376c..ed7facf 100644 --- a/src/pip/_internal/req/req_install.py +++ b/src/pip/_internal/req/req_install.py -@@ -406,7 +406,7 @@ class InstallRequirement: +@@ -416,7 +416,7 @@ class InstallRequirement: f"lack sys.path precedence to {existing_dist.raw_name} " f"in {existing_dist.location}" ) @@ -66,10 +66,10 @@ index 02dbda1..a952357 100644 else: if self.editable: diff --git a/src/pip/_internal/resolution/legacy/resolver.py b/src/pip/_internal/resolution/legacy/resolver.py -index 8c149d4..a944906 100644 +index fb49d41..040f2c1 100644 --- a/src/pip/_internal/resolution/legacy/resolver.py +++ b/src/pip/_internal/resolution/legacy/resolver.py -@@ -203,7 +203,9 @@ class Resolver(BaseResolver): +@@ -325,7 +325,9 @@ class Resolver(BaseResolver): """ # Don't uninstall the conflict if doing a user install and the # conflict is not a user install. @@ -81,7 +81,7 @@ index 8c149d4..a944906 100644 req.satisfied_by = None diff --git a/src/pip/_internal/resolution/resolvelib/factory.py b/src/pip/_internal/resolution/resolvelib/factory.py -index 261d8d5..d1b7728 100644 +index a4c24b5..e7e2da9 100644 --- a/src/pip/_internal/resolution/resolvelib/factory.py +++ b/src/pip/_internal/resolution/resolvelib/factory.py @@ -1,6 +1,8 @@ @@ -93,7 +93,7 @@ index 261d8d5..d1b7728 100644 from typing import ( TYPE_CHECKING, Dict, -@@ -564,6 +566,16 @@ class Factory: +@@ -549,6 +551,16 @@ class Factory: if dist is None: # Not installed, no uninstallation required. return None @@ -111,5 +111,5 @@ index 261d8d5..d1b7728 100644 # be uninstalled, no matter it's in global or user site, because the # user site installation has precedence over global. -- -2.35.1 +2.35.3 diff --git a/sources b/sources index 7bec17a..05a18a7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (pip-22.0.4.tar.gz) = af6d1787b4fe97f2eec9c2e3e3f0f756efca8cb83f6ecdae797986fb6050ee60d872a8a8eb7502a32c4334fc0c7af8cf3c58ce980407d0e9f89eec28a4290093 +SHA512 (pip-22.2.tar.gz) = 2ff3f9c2dc84c65c14c978e8c58cd3cee6cfff9753655c726763d6d7780d147479f32c47873d402ad9e0821fef940b971a7df93fabd6b998f07dea5af1251c9b