2020-03-24 17:56:52 +00:00
|
|
|
From 0eb96d45196adaa7dc1362590ae44ddfb175e29c Mon Sep 17 00:00:00 2001
|
2019-05-07 15:13:12 +00:00
|
|
|
From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
|
|
|
|
Date: Wed, 15 Aug 2018 15:36:29 +0200
|
2019-07-29 22:48:16 +00:00
|
|
|
Subject: [PATCH] 00189: Instead of bundled wheels, use our RPM packaged wheels
|
2019-05-07 15:13:12 +00:00
|
|
|
|
|
|
|
We keep them in /usr/share/python-wheels
|
|
|
|
---
|
2020-02-27 12:12:49 +00:00
|
|
|
Lib/ensurepip/__init__.py | 33 ++++++++++++++++++++++-----------
|
|
|
|
1 file changed, 22 insertions(+), 11 deletions(-)
|
2019-05-07 15:13:12 +00:00
|
|
|
|
2018-08-15 13:36:29 +00:00
|
|
|
diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py
|
2020-03-24 17:56:52 +00:00
|
|
|
index 545fce656f..f86992c90c 100644
|
2018-08-15 13:36:29 +00:00
|
|
|
--- a/Lib/ensurepip/__init__.py
|
|
|
|
+++ b/Lib/ensurepip/__init__.py
|
2020-03-24 17:56:52 +00:00
|
|
|
@@ -1,3 +1,5 @@
|
2018-08-15 13:36:29 +00:00
|
|
|
+import distutils.version
|
|
|
|
+import glob
|
|
|
|
import os
|
|
|
|
import os.path
|
|
|
|
import sys
|
2020-03-24 17:56:52 +00:00
|
|
|
@@ -5,16 +7,28 @@ import runpy
|
2019-11-26 00:08:45 +00:00
|
|
|
import tempfile
|
|
|
|
from importlib import resources
|
2018-08-15 13:36:29 +00:00
|
|
|
|
2019-11-26 00:08:45 +00:00
|
|
|
-from . import _bundled
|
|
|
|
-
|
2018-08-15 13:36:29 +00:00
|
|
|
|
|
|
|
|
2019-11-26 00:08:45 +00:00
|
|
|
__all__ = ["version", "bootstrap"]
|
2018-08-15 13:36:29 +00:00
|
|
|
|
2019-11-26 00:08:45 +00:00
|
|
|
+_WHEEL_DIR = "/usr/share/python-wheels/"
|
|
|
|
+
|
2020-02-11 21:28:39 +00:00
|
|
|
+_wheels = {}
|
2019-11-26 00:08:45 +00:00
|
|
|
+
|
2018-08-15 13:36:29 +00:00
|
|
|
+def _get_most_recent_wheel_version(pkg):
|
|
|
|
+ prefix = os.path.join(_WHEEL_DIR, "{}-".format(pkg))
|
2020-02-11 21:28:39 +00:00
|
|
|
+ _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))
|
2018-08-15 13:36:29 +00:00
|
|
|
+
|
2019-11-26 00:08:45 +00:00
|
|
|
|
|
|
|
-_SETUPTOOLS_VERSION = "41.2.0"
|
2018-08-15 13:36:29 +00:00
|
|
|
+_SETUPTOOLS_VERSION = _get_most_recent_wheel_version("setuptools")
|
2019-11-26 00:08:45 +00:00
|
|
|
|
|
|
|
-_PIP_VERSION = "19.2.3"
|
2018-08-15 13:36:29 +00:00
|
|
|
+_PIP_VERSION = _get_most_recent_wheel_version("pip")
|
|
|
|
|
|
|
|
_PROJECTS = [
|
|
|
|
("setuptools", _SETUPTOOLS_VERSION),
|
2020-03-24 17:56:52 +00:00
|
|
|
@@ -108,13 +122,10 @@ def _bootstrap(*, root=None, upgrade=False, user=False,
|
2020-02-11 21:28:39 +00:00
|
|
|
# additional paths that need added to sys.path
|
2018-08-15 13:36:29 +00:00
|
|
|
additional_paths = []
|
|
|
|
for project, version in _PROJECTS:
|
2020-02-11 21:28:39 +00:00
|
|
|
- wheel_name = "{}-{}-py2.py3-none-any.whl".format(project, version)
|
2019-11-20 09:35:05 +00:00
|
|
|
- whl = resources.read_binary(
|
|
|
|
- _bundled,
|
|
|
|
- wheel_name,
|
2018-08-15 13:36:29 +00:00
|
|
|
- )
|
|
|
|
- with open(os.path.join(tmpdir, wheel_name), "wb") as fp:
|
|
|
|
- fp.write(whl)
|
2020-02-11 21:28:39 +00:00
|
|
|
+ wheel_name = _wheels[project][version]
|
2018-08-15 13:36:29 +00:00
|
|
|
+ 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())
|
|
|
|
|
|
|
|
additional_paths.append(os.path.join(tmpdir, wheel_name))
|
|
|
|
|
2019-05-07 15:13:12 +00:00
|
|
|
--
|
2020-03-24 17:56:52 +00:00
|
|
|
2.26.0.rc2
|
2019-05-07 15:13:12 +00:00
|
|
|
|