From 7973de8b00d4be10a162ddba58157e7a3669b043 Mon Sep 17 00:00:00 2001 From: Charalampos Stratakis Date: Feb 17 2017 09:26:59 +0000 Subject: 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. --- diff --git a/00260-require-setuptools-dependencies.patch b/00260-require-setuptools-dependencies.patch new file mode 100644 index 0000000..2e3ac20 --- /dev/null +++ b/00260-require-setuptools-dependencies.patch @@ -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", + ] + ) + diff --git a/python3.spec b/python3.spec index bcfd9f8..29904b1 100644 --- a/python3.spec +++ b/python3.spec @@ -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 - 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 - 3.6.0-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild