diff --git a/00189-use-rpm-wheels.patch b/00189-use-rpm-wheels.patch index a672ba3..9b4bc55 100644 --- a/00189-use-rpm-wheels.patch +++ b/00189-use-rpm-wheels.patch @@ -1,18 +1,18 @@ -From e338b6e71b31fdebc0961e4ac1ad63c6e6fdfb36 Mon Sep 17 00:00:00 2001 +From 234fb84eea72ba856d7add39b5faee5e54ceba61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Wed, 15 Aug 2018 15:36:29 +0200 Subject: [PATCH] 00189: Instead of bundled wheels, use our RPM packaged wheels We keep them in /usr/share/python-wheels --- - Lib/ensurepip/__init__.py | 27 +++++++++++++++++---------- - 1 file changed, 17 insertions(+), 10 deletions(-) + Lib/ensurepip/__init__.py | 31 ++++++++++++++++++++----------- + 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py -index 386ed6c25c..19e7c8787e 100644 +index 386ed6c25c..dae2ba22e4 100644 --- a/Lib/ensurepip/__init__.py +++ b/Lib/ensurepip/__init__.py -@@ -1,19 +1,29 @@ +@@ -1,19 +1,33 @@ +import distutils.version +import glob import os @@ -29,13 +29,17 @@ index 386ed6c25c..19e7c8787e 100644 +_WHEEL_DIR = "/usr/share/python-wheels/" + ++_wheels = {} + +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 = "41.2.0" @@ -46,16 +50,18 @@ index 386ed6c25c..19e7c8787e 100644 _PROJECTS = [ ("setuptools", _SETUPTOOLS_VERSION), -@@ -99,12 +109,9 @@ def _bootstrap(*, root=None, upgrade=False, user=False, +@@ -98,13 +112,10 @@ def _bootstrap(*, root=None, upgrade=False, user=False, + # additional paths that need added to sys.path 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 = resources.read_binary( - _bundled, - 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/python39.spec b/python39.spec index d820883..c3f8b74 100644 --- a/python39.spec +++ b/python39.spec @@ -17,7 +17,7 @@ URL: https://www.python.org/ %global prerel a3 %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} -Release: 1%{?dist} +Release: 2%{?dist} License: Python @@ -1589,6 +1589,9 @@ CheckPython optimized # ====================================================== %changelog +* Tue Feb 11 2020 Miro HronĨok - 3.9.0~a3-2 +- Update the ensurepip module to work with setuptools >= 45 + * Mon Jan 27 2020 Victor Stinner - 3.9.0~a3-1 - Update to Python 3.9.0a3