BuildRequire the new dependencies of python-setuptools when rewheel mode is enabled

and add a patch to adjust the upstream test suite to account for these dependencies,
since without them, the virtualenv's would not install anything in their site-packages
directory thus making pip unusable inside virtualenv's.
This commit is contained in:
Charalampos Stratakis 2017-02-17 10:26:59 +01:00
parent 45bc6145e3
commit 7973de8b00
2 changed files with 202 additions and 1 deletions

View File

@ -0,0 +1,183 @@
diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py
index 9f5d151..4dfa8a1 100644
--- a/Lib/ensurepip/__init__.py
+++ b/Lib/ensurepip/__init__.py
@@ -8,13 +8,25 @@ import tempfile
__all__ = ["version", "bootstrap"]
-_SETUPTOOLS_VERSION = "28.8.0"
+_SETUPTOOLS_VERSION = "34.2.0"
_PIP_VERSION = "9.0.1"
+_SIX_VERSION = "1.10.0"
+
+_APPDIRS_VERSION = "1.4.0"
+
+_PACKAGING_VERSION = "16.8"
+
+_PYPARSING_VERSION = "2.1.10"
+
_PROJECTS = [
- ("setuptools", _SETUPTOOLS_VERSION),
- ("pip", _PIP_VERSION),
+ ("setuptools", _SETUPTOOLS_VERSION),
+ ("pip", _PIP_VERSION),
+ ("six", _SIX_VERSION),
+ ("appdirs", _APPDIRS_VERSION),
+ ("packaging", _PACKAGING_VERSION),
+ ("pyparsing", _PYPARSING_VERSION)
]
diff --git a/Lib/test/test_ensurepip.py b/Lib/test/test_ensurepip.py
index 9b04c18..23664c4 100644
--- a/Lib/test/test_ensurepip.py
+++ b/Lib/test/test_ensurepip.py
@@ -40,13 +40,14 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase):
self.run_pip.assert_called_once_with(
[
"install", "--no-index", "--find-links",
- unittest.mock.ANY, "setuptools", "pip",
+ unittest.mock.ANY,
+ "setuptools", "pip", "six", "appdirs", "packaging", "pyparsing",
],
unittest.mock.ANY,
)
additional_paths = self.run_pip.call_args[0][1]
- self.assertEqual(len(additional_paths), 2)
+ self.assertEqual(len(additional_paths), 6)
def test_bootstrapping_with_root(self):
ensurepip.bootstrap(root="/foo/bar/")
@@ -55,7 +56,7 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase):
[
"install", "--no-index", "--find-links",
unittest.mock.ANY, "--root", "/foo/bar/",
- "setuptools", "pip",
+ "setuptools", "pip", "six", "appdirs", "packaging", "pyparsing",
],
unittest.mock.ANY,
)
@@ -66,7 +67,8 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase):
self.run_pip.assert_called_once_with(
[
"install", "--no-index", "--find-links",
- unittest.mock.ANY, "--user", "setuptools", "pip",
+ unittest.mock.ANY, "--user",
+ "setuptools", "pip", "six", "appdirs", "packaging", "pyparsing",
],
unittest.mock.ANY,
)
@@ -77,7 +79,8 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase):
self.run_pip.assert_called_once_with(
[
"install", "--no-index", "--find-links",
- unittest.mock.ANY, "--upgrade", "setuptools", "pip",
+ unittest.mock.ANY, "--upgrade",
+ "setuptools", "pip", "six", "appdirs", "packaging", "pyparsing",
],
unittest.mock.ANY,
)
@@ -88,7 +91,8 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase):
self.run_pip.assert_called_once_with(
[
"install", "--no-index", "--find-links",
- unittest.mock.ANY, "-v", "setuptools", "pip",
+ unittest.mock.ANY, "-v",
+ "setuptools", "pip", "six", "appdirs", "packaging", "pyparsing",
],
unittest.mock.ANY,
)
@@ -99,7 +103,8 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase):
self.run_pip.assert_called_once_with(
[
"install", "--no-index", "--find-links",
- unittest.mock.ANY, "-vv", "setuptools", "pip",
+ unittest.mock.ANY, "-vv",
+ "setuptools", "pip", "six", "appdirs", "packaging", "pyparsing",
],
unittest.mock.ANY,
)
@@ -110,7 +115,8 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase):
self.run_pip.assert_called_once_with(
[
"install", "--no-index", "--find-links",
- unittest.mock.ANY, "-vvv", "setuptools", "pip",
+ unittest.mock.ANY, "-vvv",
+ "setuptools", "pip", "six", "appdirs", "packaging", "pyparsing",
],
unittest.mock.ANY,
)
@@ -186,8 +192,8 @@ class TestUninstall(EnsurepipMixin, unittest.TestCase):
self.run_pip.assert_called_once_with(
[
- "uninstall", "-y", "--disable-pip-version-check", "pip",
- "setuptools",
+ "uninstall", "-y", "--disable-pip-version-check",
+ "pyparsing", "packaging", "appdirs", "six", "pip", "setuptools",
]
)
@@ -197,8 +203,8 @@ class TestUninstall(EnsurepipMixin, unittest.TestCase):
self.run_pip.assert_called_once_with(
[
- "uninstall", "-y", "--disable-pip-version-check", "-v", "pip",
- "setuptools",
+ "uninstall", "-y", "--disable-pip-version-check", "-v",
+ "pyparsing", "packaging", "appdirs", "six", "pip", "setuptools",
]
)
@@ -208,8 +214,8 @@ class TestUninstall(EnsurepipMixin, unittest.TestCase):
self.run_pip.assert_called_once_with(
[
- "uninstall", "-y", "--disable-pip-version-check", "-vv", "pip",
- "setuptools",
+ "uninstall", "-y", "--disable-pip-version-check", "-vv",
+ "pyparsing", "packaging", "appdirs", "six", "pip", "setuptools",
]
)
@@ -220,7 +226,7 @@ class TestUninstall(EnsurepipMixin, unittest.TestCase):
self.run_pip.assert_called_once_with(
[
"uninstall", "-y", "--disable-pip-version-check", "-vvv",
- "pip", "setuptools",
+ "pyparsing", "packaging", "appdirs", "six", "pip", "setuptools",
]
)
@@ -260,13 +266,14 @@ class TestBootstrappingMainFunction(EnsurepipMixin, unittest.TestCase):
self.run_pip.assert_called_once_with(
[
"install", "--no-index", "--find-links",
- unittest.mock.ANY, "setuptools", "pip",
+ unittest.mock.ANY,
+ "setuptools", "pip", "six", "appdirs", "packaging", "pyparsing",
],
unittest.mock.ANY,
)
additional_paths = self.run_pip.call_args[0][1]
- self.assertEqual(len(additional_paths), 2)
+ self.assertEqual(len(additional_paths), 6)
class TestUninstallationMainFunction(EnsurepipMixin, unittest.TestCase):
@@ -284,8 +291,8 @@ class TestUninstallationMainFunction(EnsurepipMixin, unittest.TestCase):
self.run_pip.assert_called_once_with(
[
- "uninstall", "-y", "--disable-pip-version-check", "pip",
- "setuptools",
+ "uninstall", "-y", "--disable-pip-version-check", "pyparsing", "packaging",
+ "appdirs", "six", "pip", "setuptools",
]
)

View File

@ -124,7 +124,7 @@
Summary: Version 3 of the Python programming language aka Python 3000
Name: python3
Version: %{pybasever}.0
Release: 11%{?dist}
Release: 12%{?dist}
License: Python
Group: Development/Languages
@ -183,6 +183,10 @@ BuildRequires: zlib-devel
%if 0%{?with_rewheel}
BuildRequires: python3-setuptools
BuildRequires: python3-six
BuildRequires: python3-pyparsing
BuildRequires: python3-appdirs
BuildRequires: python3-packaging
BuildRequires: python3-pip
%endif
@ -423,6 +427,15 @@ Patch254: 00254-make-Random.seed-actually-use-OS-randomness.patch
# Reported upstream: http://bugs.python.org/issue29324
Patch258: 00258-fix-test_aead_aes_gcm.patch
# 00260 #
# setuptools from version 34.0.0 and onwards, unbundled its dependencies
# and started requiring them so when rewheel mode is enabled we will have
# to BuildRequire the new dependencies, in order for the virtualenv's to work properly
# setuptools change: https://setuptools.readthedocs.io/en/latest/history.html#v34-0-0
# Reported upstream: http://bugs.python.org/issue29523
# https://github.com/python/cpython/pull/67
Patch260: 00260-require-setuptools-dependencies.patch
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@ -671,6 +684,7 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
%patch253 -p1
%patch254 -p1
%patch258 -p1
%patch260 -p1
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
# are many differences between 2.6 and the Python 3 library.
@ -1593,6 +1607,10 @@ rm -fr %{buildroot}
# ======================================================
%changelog
* Wed Feb 15 2017 Charalampos Stratakis <cstratak@redhat.com> - 3.6.0-12
- BuildRequire the new dependencies of setuptools when rewheel mode is enabled
in order for the virtualenvs to work properly
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.0-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild