Update to 20.0.2

Resolves https://bugzilla.redhat.com/show_bug.cgi?id=1793456

The main() wrapper moved the import path again, this time with compatibility shim:

 - we still need pip-allow-different-versions.patch to support older pips installed by users
 - we dropped callable-main.patch - the shim is provided by pip for all previous paths
 - no need to patch older pips to support user installed pip 20+
 - no need to patch Pythons (or virtualenv) to support pip 20+ wheel in ensurepip
This commit is contained in:
Miro Hrončok 2020-03-04 12:20:06 +01:00
commit f994ff1cc7
8 changed files with 68 additions and 1208 deletions

View file

@ -15,8 +15,8 @@
Name: python-%{srcname}
# When updating, update the bundled libraries versions bellow!
# You can use vendor_meta.sh in the dist git repo
Version: 19.3.1
Release: 2%{?dist}
Version: 20.0.2
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.
@ -91,21 +91,6 @@ Patch3: remove-existing-dist-only-if-path-conflicts.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1655253
Patch4: dummy-certifi.patch
%if %{with tests}
# Mark tests that need the Internet as network tests so we can skip them
# https://github.com/pypa/pip/pull/7359
Patch5: network-tests.patch
%endif
# Dark magic to make pip 19.3+ support the old private API of main()
# This is needed to be able to use pip 19.3+ in ensurepip of older Pythons
# without patching all the Pythons
# A proper fix is discussed in:
# https://discuss.python.org/t/can-we-finally-add-a-minimal-api-to-pip/2833/3
# https://github.com/pypa/pip/pull/7061
# https://github.com/python/cpython/pull/16782
Patch6: callable-main.patch
# Downstream only patch
# Users might have local installations of pip from using
# `pip install --user --upgrade pip` on older/newer versions.
@ -123,6 +108,10 @@ Patch6: callable-main.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1767212
# WARNING: /usr/bin/pip* are entrypoints, this cannot be applied in %%prep!
# %%patch10 doesn't work outside of %%prep, so we add it as a source
# Note that since pip 20, old main() import paths are preserved for backwards
# compatibility: https://github.com/pypa/pip/issues/7498
# Meaning we don't need to update any of the older pips to support 20+
# We also don't need to update Pythons to use new import path in ensurepip
Source10: pip-allow-different-versions.patch
%description
@ -137,27 +126,27 @@ Packages" or "Pip Installs Python".
# You can find the versions in src/pip/_vendor/vendor.txt file.
%global bundled() %{expand:
Provides: bundled(python%{1}dist(appdirs)) = 1.4.3
Provides: bundled(python%{1}dist(CacheControl)) = 0.12.5
Provides: bundled(python%{1}dist(certifi)) = 2019.9.11
Provides: bundled(python%{1}dist(CacheControl)) = 0.12.6
Provides: bundled(python%{1}dist(certifi)) = 2019.11.28
Provides: bundled(python%{1}dist(chardet)) = 3.0.4
Provides: bundled(python%{1}dist(colorama)) = 0.4.1
Provides: bundled(python%{1}dist(colorama)) = 0.4.3
Provides: bundled(python%{1}dist(contextlib2)) = 0.6.0
Provides: bundled(python%{1}dist(distlib)) = 0.2.9.post0
Provides: bundled(python%{1}dist(distlib)) = 0.3.0
Provides: bundled(python%{1}dist(distro)) = 1.4.0
Provides: bundled(python%{1}dist(html5lib)) = 1.0.1
Provides: bundled(python%{1}dist(idna)) = 2.8
Provides: bundled(python%{1}dist(ipaddress)) = 1.0.22
Provides: bundled(python%{1}dist(ipaddress)) = 1.0.23
Provides: bundled(python%{1}dist(msgpack)) = 0.6.2
Provides: bundled(python%{1}dist(packaging)) = 19.2
Provides: bundled(python%{1}dist(packaging)) = 20.1
Provides: bundled(python%{1}dist(pep517)) = 0.7.0
Provides: bundled(python%{1}dist(progress)) = 1.5
Provides: bundled(python%{1}dist(pyparsing)) = 2.4.2
Provides: bundled(python%{1}dist(pyparsing)) = 2.4.6
Provides: bundled(python%{1}dist(pytoml)) = 0.1.21
Provides: bundled(python%{1}dist(requests)) = 2.22.0
Provides: bundled(python%{1}dist(retrying)) = 1.3.3
Provides: bundled(python%{1}dist(setuptools)) = 41.4.0
Provides: bundled(python%{1}dist(six)) = 1.12.0
Provides: bundled(python%{1}dist(urllib3)) = 1.25.6
Provides: bundled(python%{1}dist(setuptools)) = 44.0.0
Provides: bundled(python%{1}dist(six)) = 1.14.0
Provides: bundled(python%{1}dist(urllib3)) = 1.25.7
Provides: bundled(python%{1}dist(webencodings)) = 0.5.1
}
@ -195,6 +184,7 @@ BuildRequires: python%{python3_pkgversion}-pretend
BuildRequires: python%{python3_pkgversion}-freezegun
BuildRequires: python%{python3_pkgversion}-scripttest
BuildRequires: python%{python3_pkgversion}-virtualenv
BuildRequires: python%{python3_pkgversion}-werkzeug
BuildRequires: python%{python3_pkgversion}-pyyaml
%endif
BuildRequires: python%{python3_pkgversion}-wheel
@ -260,10 +250,6 @@ popd
%patch2 -p1
%patch3 -p1
%patch4 -p1
%if %{with tests}
%patch5 -p1
%endif
%patch6 -p1
# this goes together with patch4
rm src/pip/_vendor/certifi/*.pem
@ -331,7 +317,7 @@ ln -s ./pip-%{python3_version} %{buildroot}%{_bindir}/pip-3
# Make sure the INSTALLER is not pip, otherwise Patch2 won't work
# TODO Maybe we should make all our python packages have this?
# %%pyproject macros do this for all packages
echo rpm > %{buildroot}%{python3_sitelib}/pip-%{version}.dist-info/INSTALLER
mkdir -p %{buildroot}%{python_wheeldir}
@ -392,6 +378,9 @@ ln -sf %{buildroot}%{_bindir}/pip3 _bin/pip
%{python_wheeldir}/%{python_wheelname}
%changelog
* Mon Mar 02 2020 Miro Hrončok <mhroncok@redhat.com> - 20.0.2-1
- Update to 20.0.2 (#1793456)
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 19.3.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild