From 66ed56bcd4e1a49726ef262470f9c3ed85e01b49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Wed, 12 Feb 2020 13:30:25 +0100 Subject: [PATCH] Update the ensurepip module to work with setuptools >= 45 setuptools 45.x is Python 3 only and changed the name of the wheel --- 00189-use-rpm-wheels.patch | 17 +++++++++++------ python35.spec | 5 ++++- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/00189-use-rpm-wheels.patch b/00189-use-rpm-wheels.patch index c9daa94..93157da 100644 --- a/00189-use-rpm-wheels.patch +++ b/00189-use-rpm-wheels.patch @@ -2,7 +2,7 @@ diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py index 25c5567..2553524 100644 --- a/Lib/ensurepip/__init__.py +++ b/Lib/ensurepip/__init__.py -@@ -1,16 +1,27 @@ +@@ -1,16 +1,31 @@ +import distutils.version +import glob import os @@ -17,14 +17,18 @@ index 25c5567..2553524 100644 +_WHEEL_DIR = "/usr/share/python-wheels/" -_SETUPTOOLS_VERSION = "28.8.0" ++_wheels = {} -_PIP_VERSION = "9.0.1" +def _get_most_recent_wheel_version(pkg): + prefix = os.path.join(_WHEEL_DIR, "{}-".format(pkg)) -+ suffix = "-py2.py3-none-any.whl" -+ pattern = "{}*{}".format(prefix, suffix) -+ versions = (p[len(prefix):-len(suffix)] for p in glob.glob(pattern)) -+ return str(max(versions, key=distutils.version.LooseVersion)) ++ _wheels[pkg] = {} ++ for suffix in "-py2.py3-none-any.whl", "-py3-none-any.whl": ++ pattern = "{}*{}".format(prefix, suffix) ++ for path in glob.glob(pattern): ++ version_str = path[len(prefix):-len(suffix)] ++ _wheels[pkg][version_str] = os.path.basename(path) ++ return str(max(_wheels[pkg], key=distutils.version.LooseVersion)) + + +_SETUPTOOLS_VERSION = _get_most_recent_wheel_version("setuptools") @@ -52,13 +56,14 @@ index 25c5567..2553524 100644 @@ -93,12 +109,9 @@ def bootstrap(*, root=None, upgrade=False, user=False, additional_paths = [] for project, version in _PROJECTS: - wheel_name = "{}-{}-py2.py3-none-any.whl".format(project, version) +- wheel_name = "{}-{}-py2.py3-none-any.whl".format(project, version) - whl = pkgutil.get_data( - "ensurepip", - "_bundled/{}".format(wheel_name), - ) - with open(os.path.join(tmpdir, wheel_name), "wb") as fp: - fp.write(whl) ++ wheel_name = _wheels[project][version] + with open(os.path.join(_WHEEL_DIR, wheel_name), "rb") as sfp: + with open(os.path.join(tmpdir, wheel_name), "wb") as fp: + fp.write(sfp.read()) diff --git a/python35.spec b/python35.spec index e025bfb..4be0ea6 100644 --- a/python35.spec +++ b/python35.spec @@ -87,7 +87,7 @@ URL: https://www.python.org/ #global prerel ... %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} -Release: 2%{?dist} +Release: 3%{?dist} License: Python # Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package @@ -1060,6 +1060,9 @@ CheckPython optimized # ====================================================== %changelog +* Wed Feb 12 2020 Miro HronĨok - 3.5.9-3 +- Update the ensurepip module to work with setuptools >= 45 + * Thu Jan 30 2020 Fedora Release Engineering - 3.5.9-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild