import python3x-pip-19.3.1-1.module+el8.3.0+7187+a27ec44b
This commit is contained in:
		
							parent
							
								
									8e32936e88
								
							
						
					
					
						commit
						a3e56ae700
					
				
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1 +1 @@ | ||||
| SOURCES/pip-19.2.3.tar.gz | ||||
| SOURCES/pip-19.3.1.tar.gz | ||||
|  | ||||
| @ -1 +1 @@ | ||||
| 80f07dcd304d1b5819c83c644c4bea8c07335917 SOURCES/pip-19.2.3.tar.gz | ||||
| bb825314632e0528aa93a19ab18e87f4cc36e998 SOURCES/pip-19.3.1.tar.gz | ||||
|  | ||||
| @ -1,8 +1,19 @@ | ||||
| From aab24967a03bda3b0999d80562a6064c27d1e0e0 Mon Sep 17 00:00:00 2001 | ||||
| From: Tomas Orsava <torsava@redhat.com> | ||||
| Date: Tue, 12 Nov 2019 17:15:08 +0100 | ||||
| Subject: [PATCH] Downstream only patch | ||||
| 
 | ||||
| Emit a warning to the user if pip install is run with root privileges | ||||
| Issue upstream: https://github.com/pypa/pip/issues/4288 | ||||
| ---
 | ||||
|  src/pip/_internal/commands/install.py | 19 +++++++++++++++++++ | ||||
|  1 file changed, 19 insertions(+) | ||||
| 
 | ||||
| diff --git a/src/pip/_internal/commands/install.py b/src/pip/_internal/commands/install.py
 | ||||
| index 1279d4a..aeb9d26 100644
 | ||||
| index 5842d18..a6104b4 100644
 | ||||
| --- a/src/pip/_internal/commands/install.py
 | ||||
| +++ b/src/pip/_internal/commands/install.py
 | ||||
| @@ -5,6 +5,8 @@ import logging
 | ||||
| @@ -12,6 +12,8 @@ import logging
 | ||||
|  import operator | ||||
|  import os | ||||
|  import shutil | ||||
| @ -11,9 +22,9 @@ index 1279d4a..aeb9d26 100644 | ||||
|  from optparse import SUPPRESS_HELP | ||||
|   | ||||
|  from pip._vendor import pkg_resources | ||||
| @@ -217,6 +219,23 @@ class InstallCommand(RequirementCommand):
 | ||||
|   | ||||
| @@ -281,6 +283,23 @@ class InstallCommand(RequirementCommand):
 | ||||
|      def run(self, options, args): | ||||
|          # type: (Values, List[Any]) -> int | ||||
|          cmdoptions.check_install_build_global(options) | ||||
| +
 | ||||
| +        def is_venv():
 | ||||
| @ -35,3 +46,6 @@ index 1279d4a..aeb9d26 100644 | ||||
|          upgrade_strategy = "to-satisfy-only" | ||||
|          if options.upgrade: | ||||
|              upgrade_strategy = options.upgrade_strategy | ||||
| -- 
 | ||||
| 2.20.1 | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										683
									
								
								SOURCES/network-tests.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										683
									
								
								SOURCES/network-tests.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,683 @@ | ||||
| From 621800d5c65aea36c6a1d9b685ff88f35cfce476 Mon Sep 17 00:00:00 2001 | ||||
| From: Tomas Orsava <torsava@redhat.com> | ||||
| Date: Fri, 15 Nov 2019 19:44:54 +0100 | ||||
| Subject: [PATCH] Mark 6 tests as network tests | ||||
| 
 | ||||
| =================================== FAILURES ===================================
 | ||||
| _______________________________ test_freeze_path _______________________________ | ||||
| tmpdir = Path('/tmp/pytest-of-mockbuild/pytest-0/test_freeze_path0') | ||||
| script = <tests.lib.PipTestEnvironment object at 0x7fe950a4caf0> | ||||
| data = <tests.lib.TestData object at 0x7fe950a4cc10> | ||||
|     def test_freeze_path(tmpdir, script, data): | ||||
|         """ | ||||
|         Test freeze with --path. | ||||
|         """ | ||||
| >       script.pip('install', '--find-links', data.find_links,
 | ||||
|                    '--target', tmpdir, 'simple==2.0') | ||||
| tests/functional/test_freeze.py:712: | ||||
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | ||||
| tests/lib/__init__.py:593: in run | ||||
|     _check_stderr( | ||||
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | ||||
| stderr = "WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'N...t at 0x7fe6435ef280>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/\n" | ||||
| allow_stderr_warning = False, allow_stderr_error = False | ||||
|     def _check_stderr( | ||||
|         stderr, allow_stderr_warning, allow_stderr_error, | ||||
|     ): | ||||
|         """ | ||||
|         Check the given stderr for logged warnings and errors. | ||||
| 
 | ||||
|         :param stderr: stderr output as a string. | ||||
|         :param allow_stderr_warning: whether a logged warning (or deprecation | ||||
|             message) is allowed. Must be True if allow_stderr_error is True. | ||||
|         :param allow_stderr_error: whether a logged error is allowed. | ||||
|         """ | ||||
|         assert not (allow_stderr_error and not allow_stderr_warning) | ||||
| 
 | ||||
|         lines = stderr.splitlines() | ||||
|         for line in lines: | ||||
|             # First check for logging errors, which we don't allow during | ||||
|             # tests even if allow_stderr_error=True (since a logging error | ||||
|             # would signal a bug in pip's code). | ||||
|             #    Unlike errors logged with logger.error(), these errors are | ||||
|             # sent directly to stderr and so bypass any configured log formatter. | ||||
|             # The "--- Logging error ---" string is used in Python 3.4+, and | ||||
|             # "Logged from file " is used in Python 2. | ||||
|             if (line.startswith('--- Logging error ---') or | ||||
|                     line.startswith('Logged from file ')): | ||||
|                 reason = 'stderr has a logging error, which is never allowed' | ||||
|                 msg = make_check_stderr_message(stderr, line=line, reason=reason) | ||||
|                 raise RuntimeError(msg) | ||||
|             if allow_stderr_error: | ||||
|                 continue | ||||
| 
 | ||||
|             if line.startswith('ERROR: '): | ||||
|                 reason = ( | ||||
|                     'stderr has an unexpected error ' | ||||
|                     '(pass allow_stderr_error=True to permit this)' | ||||
|                 ) | ||||
|                 msg = make_check_stderr_message(stderr, line=line, reason=reason) | ||||
|                 raise RuntimeError(msg) | ||||
|             if allow_stderr_warning: | ||||
|                 continue | ||||
| 
 | ||||
|             if (line.startswith('WARNING: ') or | ||||
|                     line.startswith(DEPRECATION_MSG_PREFIX)): | ||||
|                 reason = ( | ||||
|                     'stderr has an unexpected warning ' | ||||
|                     '(pass allow_stderr_warning=True to permit this)' | ||||
|                 ) | ||||
|                 msg = make_check_stderr_message(stderr, line=line, reason=reason) | ||||
| >               raise RuntimeError(msg)
 | ||||
| E               RuntimeError: stderr has an unexpected warning (pass allow_stderr_warning=True to permit this): | ||||
| E                Caused by line: "WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fe64364c850>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/" | ||||
| E                Complete stderr: WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fe64364c850>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/ | ||||
| E               WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fe64364cdc0>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/ | ||||
| E               WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fe64364cf70>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/ | ||||
| E               WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fe6435ef130>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/ | ||||
| E               WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fe6435ef280>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/ | ||||
| tests/lib/__init__.py:404: RuntimeError | ||||
| ________________________ test_freeze_path_exclude_user _________________________ | ||||
| tmpdir = Path('/tmp/pytest-of-mockbuild/pytest-0/test_freeze_path_exclude_user0') | ||||
| script = <tests.lib.PipTestEnvironment object at 0x7fe950ec8fa0> | ||||
| data = <tests.lib.TestData object at 0x7fe950ec8a30> | ||||
|     def test_freeze_path_exclude_user(tmpdir, script, data): | ||||
|         """ | ||||
|         Test freeze with --path and make sure packages from --user are not picked | ||||
|         up. | ||||
|         """ | ||||
|         script.pip_install_local('--find-links', data.find_links, | ||||
|                                  '--user', 'simple2') | ||||
| >       script.pip('install', '--find-links', data.find_links,
 | ||||
|                    '--target', tmpdir, 'simple==1.0') | ||||
| tests/functional/test_freeze.py:728: | ||||
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | ||||
| tests/lib/__init__.py:593: in run | ||||
|     _check_stderr( | ||||
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | ||||
| stderr = "WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'N...t at 0x7f87ae751310>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/\n" | ||||
| allow_stderr_warning = False, allow_stderr_error = False | ||||
|     def _check_stderr( | ||||
|         stderr, allow_stderr_warning, allow_stderr_error, | ||||
|     ): | ||||
|         """ | ||||
|         Check the given stderr for logged warnings and errors. | ||||
| 
 | ||||
|         :param stderr: stderr output as a string. | ||||
|         :param allow_stderr_warning: whether a logged warning (or deprecation | ||||
|             message) is allowed. Must be True if allow_stderr_error is True. | ||||
|         :param allow_stderr_error: whether a logged error is allowed. | ||||
|         """ | ||||
|         assert not (allow_stderr_error and not allow_stderr_warning) | ||||
| 
 | ||||
|         lines = stderr.splitlines() | ||||
|         for line in lines: | ||||
|             # First check for logging errors, which we don't allow during | ||||
|             # tests even if allow_stderr_error=True (since a logging error | ||||
|             # would signal a bug in pip's code). | ||||
|             #    Unlike errors logged with logger.error(), these errors are | ||||
|             # sent directly to stderr and so bypass any configured log formatter. | ||||
|             # The "--- Logging error ---" string is used in Python 3.4+, and | ||||
|             # "Logged from file " is used in Python 2. | ||||
|             if (line.startswith('--- Logging error ---') or | ||||
|                     line.startswith('Logged from file ')): | ||||
|                 reason = 'stderr has a logging error, which is never allowed' | ||||
|                 msg = make_check_stderr_message(stderr, line=line, reason=reason) | ||||
|                 raise RuntimeError(msg) | ||||
|             if allow_stderr_error: | ||||
|                 continue | ||||
| 
 | ||||
|             if line.startswith('ERROR: '): | ||||
|                 reason = ( | ||||
|                     'stderr has an unexpected error ' | ||||
|                     '(pass allow_stderr_error=True to permit this)' | ||||
|                 ) | ||||
|                 msg = make_check_stderr_message(stderr, line=line, reason=reason) | ||||
|                 raise RuntimeError(msg) | ||||
|             if allow_stderr_warning: | ||||
|                 continue | ||||
| 
 | ||||
|             if (line.startswith('WARNING: ') or | ||||
|                     line.startswith(DEPRECATION_MSG_PREFIX)): | ||||
|                 reason = ( | ||||
|                     'stderr has an unexpected warning ' | ||||
|                     '(pass allow_stderr_warning=True to permit this)' | ||||
|                 ) | ||||
|                 msg = make_check_stderr_message(stderr, line=line, reason=reason) | ||||
| >               raise RuntimeError(msg)
 | ||||
| E               RuntimeError: stderr has an unexpected warning (pass allow_stderr_warning=True to permit this): | ||||
| E                Caused by line: "WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f87ae7aa8e0>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/" | ||||
| E                Complete stderr: WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f87ae7aa8e0>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/ | ||||
| E               WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f87ae7aae50>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/ | ||||
| E               WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f87ae751040>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/ | ||||
| E               WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f87ae7511c0>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/ | ||||
| E               WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f87ae751310>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/ | ||||
| tests/lib/__init__.py:404: RuntimeError | ||||
| __________________________ test_freeze_path_multiple ___________________________ | ||||
| tmpdir = Path('/tmp/pytest-of-mockbuild/pytest-0/test_freeze_path_multiple0') | ||||
| script = <tests.lib.PipTestEnvironment object at 0x7fe950b43fd0> | ||||
| data = <tests.lib.TestData object at 0x7fe950b43df0> | ||||
|     def test_freeze_path_multiple(tmpdir, script, data): | ||||
|         """ | ||||
|         Test freeze with multiple --path arguments. | ||||
|         """ | ||||
|         path1 = tmpdir / "path1" | ||||
|         os.mkdir(path1) | ||||
|         path2 = tmpdir / "path2" | ||||
|         os.mkdir(path2) | ||||
| >       script.pip('install', '--find-links', data.find_links,
 | ||||
|                    '--target', path1, 'simple==2.0') | ||||
| tests/functional/test_freeze.py:750: | ||||
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | ||||
| tests/lib/__init__.py:593: in run | ||||
|     _check_stderr( | ||||
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | ||||
| stderr = "WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'N...t at 0x7f07e6253280>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/\n" | ||||
| allow_stderr_warning = False, allow_stderr_error = False | ||||
|     def _check_stderr( | ||||
|         stderr, allow_stderr_warning, allow_stderr_error, | ||||
|     ): | ||||
|         """ | ||||
|         Check the given stderr for logged warnings and errors. | ||||
| 
 | ||||
|         :param stderr: stderr output as a string. | ||||
|         :param allow_stderr_warning: whether a logged warning (or deprecation | ||||
|             message) is allowed. Must be True if allow_stderr_error is True. | ||||
|         :param allow_stderr_error: whether a logged error is allowed. | ||||
|         """ | ||||
|         assert not (allow_stderr_error and not allow_stderr_warning) | ||||
| 
 | ||||
|         lines = stderr.splitlines() | ||||
|         for line in lines: | ||||
|             # First check for logging errors, which we don't allow during | ||||
|             # tests even if allow_stderr_error=True (since a logging error | ||||
|             # would signal a bug in pip's code). | ||||
|             #    Unlike errors logged with logger.error(), these errors are | ||||
|             # sent directly to stderr and so bypass any configured log formatter. | ||||
|             # The "--- Logging error ---" string is used in Python 3.4+, and | ||||
|             # "Logged from file " is used in Python 2. | ||||
|             if (line.startswith('--- Logging error ---') or | ||||
|                     line.startswith('Logged from file ')): | ||||
|                 reason = 'stderr has a logging error, which is never allowed' | ||||
|                 msg = make_check_stderr_message(stderr, line=line, reason=reason) | ||||
|                 raise RuntimeError(msg) | ||||
|             if allow_stderr_error: | ||||
|                 continue | ||||
| 
 | ||||
|             if line.startswith('ERROR: '): | ||||
|                 reason = ( | ||||
|                     'stderr has an unexpected error ' | ||||
|                     '(pass allow_stderr_error=True to permit this)' | ||||
|                 ) | ||||
|                 msg = make_check_stderr_message(stderr, line=line, reason=reason) | ||||
|                 raise RuntimeError(msg) | ||||
|             if allow_stderr_warning: | ||||
|                 continue | ||||
| 
 | ||||
|             if (line.startswith('WARNING: ') or | ||||
|                     line.startswith(DEPRECATION_MSG_PREFIX)): | ||||
|                 reason = ( | ||||
|                     'stderr has an unexpected warning ' | ||||
|                     '(pass allow_stderr_warning=True to permit this)' | ||||
|                 ) | ||||
|                 msg = make_check_stderr_message(stderr, line=line, reason=reason) | ||||
| >               raise RuntimeError(msg)
 | ||||
| E               RuntimeError: stderr has an unexpected warning (pass allow_stderr_warning=True to permit this): | ||||
| E                Caused by line: "WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f07e62ae850>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/" | ||||
| E                Complete stderr: WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f07e62ae850>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/ | ||||
| E               WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f07e62aedc0>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/ | ||||
| E               WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f07e62aef70>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/ | ||||
| E               WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f07e6253130>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/ | ||||
| E               WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f07e6253280>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/simple/ | ||||
| tests/lib/__init__.py:404: RuntimeError | ||||
| _________________ test_install_no_binary_builds_pep_517_wheel __________________ | ||||
| script = <tests.lib.PipTestEnvironment object at 0x7fe9509f4e20> | ||||
| data = <tests.lib.TestData object at 0x7fe9509f4640>, with_wheel = None | ||||
|     def test_install_no_binary_builds_pep_517_wheel(script, data, with_wheel): | ||||
|         to_install = data.packages.joinpath('pep517_setup_and_pyproject') | ||||
| >       res = script.pip(
 | ||||
|             'install', '--no-binary=:all:', '-f', data.find_links, to_install | ||||
|         ) | ||||
| tests/functional/test_install.py:1279: | ||||
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | ||||
| self = <tests.lib.PipTestEnvironment object at 0x7fe9509f4e20> | ||||
| args = ('python', '-m', 'pip', 'install', '--no-binary=:all:', '-f', ...) | ||||
| kw = {'expect_stderr': True} | ||||
| cwd = Path('/tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/workspace/scratch') | ||||
| run_from = None, allow_stderr_error = False, allow_stderr_warning = False | ||||
| expect_error = None | ||||
|     def run(self, *args, **kw): | ||||
|         """ | ||||
|         :param allow_stderr_error: whether a logged error is allowed in | ||||
|             stderr.  Passing True for this argument implies | ||||
|             `allow_stderr_warning` since warnings are weaker than errors. | ||||
|         :param allow_stderr_warning: whether a logged warning (or | ||||
|             deprecation message) is allowed in stderr. | ||||
|         :param expect_error: if False (the default), asserts that the command | ||||
|             exits with 0.  Otherwise, asserts that the command exits with a | ||||
|             non-zero exit code.  Passing True also implies allow_stderr_error | ||||
|             and allow_stderr_warning. | ||||
|         :param expect_stderr: whether to allow warnings in stderr (equivalent | ||||
|             to `allow_stderr_warning`).  This argument is an abbreviated | ||||
|             version of `allow_stderr_warning` and is also kept for backwards | ||||
|             compatibility. | ||||
|         """ | ||||
|         if self.verbose: | ||||
|             print('>> running %s %s' % (args, kw)) | ||||
| 
 | ||||
|         cwd = kw.pop('cwd', None) | ||||
|         run_from = kw.pop('run_from', None) | ||||
|         assert not cwd or not run_from, "Don't use run_from; it's going away" | ||||
|         cwd = cwd or run_from or self.cwd | ||||
|         if sys.platform == 'win32': | ||||
|             # Partial fix for ScriptTest.run using `shell=True` on Windows. | ||||
|             args = [str(a).replace('^', '^^').replace('&', '^&') for a in args] | ||||
| 
 | ||||
|         # Remove `allow_stderr_error` and `allow_stderr_warning` before | ||||
|         # calling run() because PipTestEnvironment doesn't support them. | ||||
|         allow_stderr_error = kw.pop('allow_stderr_error', None) | ||||
|         allow_stderr_warning = kw.pop('allow_stderr_warning', None) | ||||
| 
 | ||||
|         # Propagate default values. | ||||
|         expect_error = kw.get('expect_error') | ||||
|         if expect_error: | ||||
|             # Then default to allowing logged errors. | ||||
|             if allow_stderr_error is not None and not allow_stderr_error: | ||||
|                 raise RuntimeError( | ||||
|                     'cannot pass allow_stderr_error=False with ' | ||||
|                     'expect_error=True' | ||||
|                 ) | ||||
|             allow_stderr_error = True | ||||
| 
 | ||||
|         elif kw.get('expect_stderr'): | ||||
|             # Then default to allowing logged warnings. | ||||
|             if allow_stderr_warning is not None and not allow_stderr_warning: | ||||
|                 raise RuntimeError( | ||||
|                     'cannot pass allow_stderr_warning=False with ' | ||||
|                     'expect_stderr=True' | ||||
|                 ) | ||||
|             allow_stderr_warning = True | ||||
| 
 | ||||
|         if allow_stderr_error: | ||||
|             if allow_stderr_warning is not None and not allow_stderr_warning: | ||||
|                 raise RuntimeError( | ||||
|                     'cannot pass allow_stderr_warning=False with ' | ||||
|                     'allow_stderr_error=True' | ||||
|                 ) | ||||
| 
 | ||||
|         # Default values if not set. | ||||
|         if allow_stderr_error is None: | ||||
|             allow_stderr_error = False | ||||
|         if allow_stderr_warning is None: | ||||
|             allow_stderr_warning = allow_stderr_error | ||||
| 
 | ||||
|         # Pass expect_stderr=True to allow any stderr.  We do this because | ||||
|         # we do our checking of stderr further on in check_stderr(). | ||||
|         kw['expect_stderr'] = True | ||||
| >       result = super(PipTestEnvironment, self).run(cwd=cwd, *args, **kw)
 | ||||
| E       AssertionError: Script returned code: 1 | ||||
| tests/lib/__init__.py:586: AssertionError | ||||
| ----------------------------- Captured stdout call -----------------------------
 | ||||
| Script result: python -m pip install --no-binary=:all: -f file:///tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/data/packages /tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/data/packages/pep517_setup_and_pyproject | ||||
|   return code: 1 | ||||
| -- stderr: --------------------
 | ||||
|   ERROR: Command errored out with exit status 1: | ||||
|    command: /tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/workspace/venv/bin/python /builddir/build/BUILDROOT/python-pip-19.3.1-1.fc32.noarch/usr/lib/python3.8/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/workspace/tmp/pip-build-env-ntp1m4dh/overlay --no-warn-script-location --no-binary :all: --only-binary :none: -i https://pypi.org/simple --find-links file:///tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/data/packages -- setuptools | ||||
|        cwd: None | ||||
|   Complete output (28 lines): | ||||
|   Looking in links: file:///tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/data/packages | ||||
|   WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f7234ef1e50>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/ | ||||
|   WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f7234e92040>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/ | ||||
|   WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f7234e921c0>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/ | ||||
|   WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f7234e92340>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/ | ||||
|   WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f7234e924c0>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/ | ||||
|   Processing /tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/data/packages/setuptools-0.9.6.tar.gz | ||||
|       ERROR: Command errored out with exit status 1: | ||||
|        command: /tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/workspace/venv/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/workspace/tmp/pip-install-b_6lf4z6/setuptools/setup.py'"'"'; __file__='"'"'/tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/workspace/tmp/pip-install-b_6lf4z6/setuptools/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/workspace/tmp/pip-install-b_6lf4z6/setuptools/pip-egg-info | ||||
|            cwd: /tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/workspace/tmp/pip-install-b_6lf4z6/setuptools/ | ||||
|       Complete output (15 lines): | ||||
|       Traceback (most recent call last): | ||||
|         File "<string>", line 1, in <module> | ||||
|         File "/tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/workspace/tmp/pip-install-b_6lf4z6/setuptools/setuptools/__init__.py", line 2, in <module> | ||||
|           from setuptools.extension import Extension, Library | ||||
|         File "/tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/workspace/tmp/pip-install-b_6lf4z6/setuptools/setuptools/extension.py", line 5, in <module> | ||||
|           from setuptools.dist import _get_unpatched | ||||
|         File "/tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/workspace/tmp/pip-install-b_6lf4z6/setuptools/setuptools/dist.py", line 7, in <module> | ||||
|           from setuptools.command.install import install | ||||
|         File "/tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/workspace/tmp/pip-install-b_6lf4z6/setuptools/setuptools/command/__init__.py", line 8, in <module> | ||||
|           from setuptools.command import install_scripts | ||||
|         File "/tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/workspace/tmp/pip-install-b_6lf4z6/setuptools/setuptools/command/install_scripts.py", line 3, in <module> | ||||
|           from pkg_resources import Distribution, PathMetadata, ensure_directory | ||||
|         File "/tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/workspace/tmp/pip-install-b_6lf4z6/setuptools/pkg_resources.py", line 1545, in <module> | ||||
|           register_loader_type(importlib_bootstrap.SourceFileLoader, DefaultProvider) | ||||
|       AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader' | ||||
|       ---------------------------------------- | ||||
|   ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. | ||||
|   ---------------------------------------- | ||||
| ERROR: Command errored out with exit status 1: /tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/workspace/venv/bin/python /builddir/build/BUILDROOT/python-pip-19.3.1-1.fc32.noarch/usr/lib/python3.8/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/workspace/tmp/pip-build-env-ntp1m4dh/overlay --no-warn-script-location --no-binary :all: --only-binary :none: -i https://pypi.org/simple --find-links file:///tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/data/packages -- setuptools Check the logs for full command output. | ||||
| -- stdout: --------------------
 | ||||
| Looking in links: file:///tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/data/packages | ||||
| Processing /tmp/pytest-of-mockbuild/pytest-0/test_install_no_binary_builds_0/data/packages/pep517_setup_and_pyproject | ||||
|   Installing build dependencies: started | ||||
|   Installing build dependencies: finished with status 'error' | ||||
| _______________________ test_config_file_override_stack ________________________ | ||||
| script = <tests.lib.PipTestEnvironment object at 0x7fe950d9b7f0> | ||||
| virtualenv = <VirtualEnvironment /tmp/pytest-of-mockbuild/pytest-0/test_config_file_override_stac0/workspace/venv> | ||||
|     def test_config_file_override_stack(script, virtualenv): | ||||
|         """ | ||||
|         Test config files (global, overriding a global config with a | ||||
|         local, overriding all with a command line flag). | ||||
| 
 | ||||
|         """ | ||||
|         fd, config_file = tempfile.mkstemp('-pip.cfg', 'test-') | ||||
|         try: | ||||
| >           _test_config_file_override_stack(script, virtualenv, config_file)
 | ||||
| tests/functional/test_install_config.py:144: | ||||
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | ||||
| tests/functional/test_install_config.py:172: in _test_config_file_override_stack | ||||
|     result = script.pip( | ||||
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | ||||
| self = <tests.lib.PipTestEnvironment object at 0x7fe950d9b7f0> | ||||
| args = ('python', '-m', 'pip', 'install', '-vvv', '--index-url', ...) | ||||
| kw = {'expect_stderr': True} | ||||
| cwd = Path('/tmp/pytest-of-mockbuild/pytest-0/test_config_file_override_stac0/workspace/scratch') | ||||
| run_from = None, allow_stderr_error = False, allow_stderr_warning = False | ||||
| expect_error = None | ||||
|     def run(self, *args, **kw): | ||||
|         """ | ||||
|         :param allow_stderr_error: whether a logged error is allowed in | ||||
|             stderr.  Passing True for this argument implies | ||||
|             `allow_stderr_warning` since warnings are weaker than errors. | ||||
|         :param allow_stderr_warning: whether a logged warning (or | ||||
|             deprecation message) is allowed in stderr. | ||||
|         :param expect_error: if False (the default), asserts that the command | ||||
|             exits with 0.  Otherwise, asserts that the command exits with a | ||||
|             non-zero exit code.  Passing True also implies allow_stderr_error | ||||
|             and allow_stderr_warning. | ||||
|         :param expect_stderr: whether to allow warnings in stderr (equivalent | ||||
|             to `allow_stderr_warning`).  This argument is an abbreviated | ||||
|             version of `allow_stderr_warning` and is also kept for backwards | ||||
|             compatibility. | ||||
|         """ | ||||
|         if self.verbose: | ||||
|             print('>> running %s %s' % (args, kw)) | ||||
| 
 | ||||
|         cwd = kw.pop('cwd', None) | ||||
|         run_from = kw.pop('run_from', None) | ||||
|         assert not cwd or not run_from, "Don't use run_from; it's going away" | ||||
|         cwd = cwd or run_from or self.cwd | ||||
|         if sys.platform == 'win32': | ||||
|             # Partial fix for ScriptTest.run using `shell=True` on Windows. | ||||
|             args = [str(a).replace('^', '^^').replace('&', '^&') for a in args] | ||||
| 
 | ||||
|         # Remove `allow_stderr_error` and `allow_stderr_warning` before | ||||
|         # calling run() because PipTestEnvironment doesn't support them. | ||||
|         allow_stderr_error = kw.pop('allow_stderr_error', None) | ||||
|         allow_stderr_warning = kw.pop('allow_stderr_warning', None) | ||||
| 
 | ||||
|         # Propagate default values. | ||||
|         expect_error = kw.get('expect_error') | ||||
|         if expect_error: | ||||
|             # Then default to allowing logged errors. | ||||
|             if allow_stderr_error is not None and not allow_stderr_error: | ||||
|                 raise RuntimeError( | ||||
|                     'cannot pass allow_stderr_error=False with ' | ||||
|                     'expect_error=True' | ||||
|                 ) | ||||
|             allow_stderr_error = True | ||||
| 
 | ||||
|         elif kw.get('expect_stderr'): | ||||
|             # Then default to allowing logged warnings. | ||||
|             if allow_stderr_warning is not None and not allow_stderr_warning: | ||||
|                 raise RuntimeError( | ||||
|                     'cannot pass allow_stderr_warning=False with ' | ||||
|                     'expect_stderr=True' | ||||
|                 ) | ||||
|             allow_stderr_warning = True | ||||
| 
 | ||||
|         if allow_stderr_error: | ||||
|             if allow_stderr_warning is not None and not allow_stderr_warning: | ||||
|                 raise RuntimeError( | ||||
|                     'cannot pass allow_stderr_warning=False with ' | ||||
|                     'allow_stderr_error=True' | ||||
|                 ) | ||||
| 
 | ||||
|         # Default values if not set. | ||||
|         if allow_stderr_error is None: | ||||
|             allow_stderr_error = False | ||||
|         if allow_stderr_warning is None: | ||||
|             allow_stderr_warning = allow_stderr_error | ||||
| 
 | ||||
|         # Pass expect_stderr=True to allow any stderr.  We do this because | ||||
|         # we do our checking of stderr further on in check_stderr(). | ||||
|         kw['expect_stderr'] = True | ||||
| >       result = super(PipTestEnvironment, self).run(cwd=cwd, *args, **kw)
 | ||||
| E       AssertionError: Script returned code: 1 | ||||
| tests/lib/__init__.py:586: AssertionError | ||||
| ----------------------------- Captured stdout call -----------------------------
 | ||||
| Script result: python -m pip install -vvv --index-url https://pypi.org/simple/ INITools | ||||
|   return code: 1 | ||||
| -- stderr: --------------------
 | ||||
| WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f9669c3d8b0>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/initools/ | ||||
| WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f9669c3da60>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/initools/ | ||||
| WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f9669c3dbe0>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/initools/ | ||||
| WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f9669c3dd60>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/initools/ | ||||
| WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f966900f490>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/initools/ | ||||
| ERROR: Could not find a version that satisfies the requirement INITools (from versions: none) | ||||
| ERROR: No matching distribution found for INITools | ||||
| -- stdout: --------------------
 | ||||
| Created temporary directory: /tmp/pytest-of-mockbuild/pytest-0/test_config_file_override_stac0/workspace/tmp/pip-ephem-wheel-cache-6gj33ens | ||||
| Created temporary directory: /tmp/pytest-of-mockbuild/pytest-0/test_config_file_override_stac0/workspace/tmp/pip-req-tracker-s7_2cwgc | ||||
| Created requirements tracker '/tmp/pytest-of-mockbuild/pytest-0/test_config_file_override_stac0/workspace/tmp/pip-req-tracker-s7_2cwgc' | ||||
| Created temporary directory: /tmp/pytest-of-mockbuild/pytest-0/test_config_file_override_stac0/workspace/tmp/pip-install-_91mh3df | ||||
| Looking in indexes: https://pypi.org/simple/ | ||||
| 1 location(s) to search for versions of INITools: | ||||
| * https://pypi.org/simple/initools/ | ||||
| Getting page https://pypi.org/simple/initools/ | ||||
| Found index url https://pypi.org/simple/ | ||||
| Looking up "https://pypi.org/simple/initools/" in the cache | ||||
| Request header has "max_age" as 0, cache bypassed | ||||
| Starting new HTTPS connection (1): pypi.org:443 | ||||
| Incremented Retry for (url='/simple/initools/'): Retry(total=4, connect=None, read=None, redirect=None, status=None) | ||||
| Starting new HTTPS connection (2): pypi.org:443 | ||||
| Incremented Retry for (url='/simple/initools/'): Retry(total=3, connect=None, read=None, redirect=None, status=None) | ||||
| Starting new HTTPS connection (3): pypi.org:443 | ||||
| Incremented Retry for (url='/simple/initools/'): Retry(total=2, connect=None, read=None, redirect=None, status=None) | ||||
| Starting new HTTPS connection (4): pypi.org:443 | ||||
| Incremented Retry for (url='/simple/initools/'): Retry(total=1, connect=None, read=None, redirect=None, status=None) | ||||
| Starting new HTTPS connection (5): pypi.org:443 | ||||
| Incremented Retry for (url='/simple/initools/'): Retry(total=0, connect=None, read=None, redirect=None, status=None) | ||||
| Starting new HTTPS connection (6): pypi.org:443 | ||||
| Could not fetch URL https://pypi.org/simple/initools/: connection error: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/initools/ (Caused by NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f9669c15b50>: Failed to establish a new connection: [Errno -2] Name or service not known')) - skipping | ||||
| Given no hashes to check 0 links for project 'INITools': discarding no candidates | ||||
| Cleaning up... | ||||
| Removed build tracker '/tmp/pytest-of-mockbuild/pytest-0/test_config_file_override_stac0/workspace/tmp/pip-req-tracker-s7_2cwgc' | ||||
| Exception information: | ||||
| Traceback (most recent call last): | ||||
|   File "/builddir/build/BUILDROOT/python-pip-19.3.1-1.fc32.noarch/usr/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 153, in _main | ||||
|     status = self.run(options, args) | ||||
|   File "/builddir/build/BUILDROOT/python-pip-19.3.1-1.fc32.noarch/usr/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 401, in run | ||||
|     resolver.resolve(requirement_set) | ||||
|   File "/builddir/build/BUILDROOT/python-pip-19.3.1-1.fc32.noarch/usr/lib/python3.8/site-packages/pip/_internal/legacy_resolve.py", line 202, in resolve | ||||
|     self._resolve_one(requirement_set, req) | ||||
|   File "/builddir/build/BUILDROOT/python-pip-19.3.1-1.fc32.noarch/usr/lib/python3.8/site-packages/pip/_internal/legacy_resolve.py", line 368, in _resolve_one | ||||
|     abstract_dist = self._get_abstract_dist_for(req_to_install) | ||||
|   File "/builddir/build/BUILDROOT/python-pip-19.3.1-1.fc32.noarch/usr/lib/python3.8/site-packages/pip/_internal/legacy_resolve.py", line 314, in _get_abstract_dist_for | ||||
|     req.populate_link(self.finder, upgrade_allowed, self.require_hashes) | ||||
|   File "/builddir/build/BUILDROOT/python-pip-19.3.1-1.fc32.noarch/usr/lib/python3.8/site-packages/pip/_internal/req/req_install.py", line 226, in populate_link | ||||
|     self.link = finder.find_requirement(self, upgrade) | ||||
|   File "/builddir/build/BUILDROOT/python-pip-19.3.1-1.fc32.noarch/usr/lib/python3.8/site-packages/pip/_internal/index.py", line 905, in find_requirement | ||||
|     raise DistributionNotFound( | ||||
| pip._internal.exceptions.DistributionNotFound: No matching distribution found for INITools | ||||
| _______________________ test_no_upgrade_unless_requested _______________________ | ||||
| script = <tests.lib.PipTestEnvironment object at 0x7fe950d86070> | ||||
|     def test_no_upgrade_unless_requested(script): | ||||
|         """ | ||||
|         No upgrade if not specifically requested. | ||||
| 
 | ||||
|         """ | ||||
| >       script.pip('install', 'INITools==0.1')
 | ||||
| tests/functional/test_install_upgrade.py:16: | ||||
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | ||||
| self = <tests.lib.PipTestEnvironment object at 0x7fe950d86070> | ||||
| args = ('python', '-m', 'pip', 'install', 'INITools==0.1') | ||||
| kw = {'expect_stderr': True} | ||||
| cwd = Path('/tmp/pytest-of-mockbuild/pytest-0/test_no_upgrade_unless_request0/workspace/scratch') | ||||
| run_from = None, allow_stderr_error = False, allow_stderr_warning = False | ||||
| expect_error = None | ||||
|     def run(self, *args, **kw): | ||||
|         """ | ||||
|         :param allow_stderr_error: whether a logged error is allowed in | ||||
|             stderr.  Passing True for this argument implies | ||||
|             `allow_stderr_warning` since warnings are weaker than errors. | ||||
|         :param allow_stderr_warning: whether a logged warning (or | ||||
|             deprecation message) is allowed in stderr. | ||||
|         :param expect_error: if False (the default), asserts that the command | ||||
|             exits with 0.  Otherwise, asserts that the command exits with a | ||||
|             non-zero exit code.  Passing True also implies allow_stderr_error | ||||
|             and allow_stderr_warning. | ||||
|         :param expect_stderr: whether to allow warnings in stderr (equivalent | ||||
|             to `allow_stderr_warning`).  This argument is an abbreviated | ||||
|             version of `allow_stderr_warning` and is also kept for backwards | ||||
|             compatibility. | ||||
|         """ | ||||
|         if self.verbose: | ||||
|             print('>> running %s %s' % (args, kw)) | ||||
| 
 | ||||
|         cwd = kw.pop('cwd', None) | ||||
|         run_from = kw.pop('run_from', None) | ||||
|         assert not cwd or not run_from, "Don't use run_from; it's going away" | ||||
|         cwd = cwd or run_from or self.cwd | ||||
|         if sys.platform == 'win32': | ||||
|             # Partial fix for ScriptTest.run using `shell=True` on Windows. | ||||
|             args = [str(a).replace('^', '^^').replace('&', '^&') for a in args] | ||||
| 
 | ||||
|         # Remove `allow_stderr_error` and `allow_stderr_warning` before | ||||
|         # calling run() because PipTestEnvironment doesn't support them. | ||||
|         allow_stderr_error = kw.pop('allow_stderr_error', None) | ||||
|         allow_stderr_warning = kw.pop('allow_stderr_warning', None) | ||||
| 
 | ||||
|         # Propagate default values. | ||||
|         expect_error = kw.get('expect_error') | ||||
|         if expect_error: | ||||
|             # Then default to allowing logged errors. | ||||
|             if allow_stderr_error is not None and not allow_stderr_error: | ||||
|                 raise RuntimeError( | ||||
|                     'cannot pass allow_stderr_error=False with ' | ||||
|                     'expect_error=True' | ||||
|                 ) | ||||
|             allow_stderr_error = True | ||||
| 
 | ||||
|         elif kw.get('expect_stderr'): | ||||
|             # Then default to allowing logged warnings. | ||||
|             if allow_stderr_warning is not None and not allow_stderr_warning: | ||||
|                 raise RuntimeError( | ||||
|                     'cannot pass allow_stderr_warning=False with ' | ||||
|                     'expect_stderr=True' | ||||
|                 ) | ||||
|             allow_stderr_warning = True | ||||
| 
 | ||||
|         if allow_stderr_error: | ||||
|             if allow_stderr_warning is not None and not allow_stderr_warning: | ||||
|                 raise RuntimeError( | ||||
|                     'cannot pass allow_stderr_warning=False with ' | ||||
|                     'allow_stderr_error=True' | ||||
|                 ) | ||||
| 
 | ||||
|         # Default values if not set. | ||||
|         if allow_stderr_error is None: | ||||
|             allow_stderr_error = False | ||||
|         if allow_stderr_warning is None: | ||||
|             allow_stderr_warning = allow_stderr_error | ||||
| 
 | ||||
|         # Pass expect_stderr=True to allow any stderr.  We do this because | ||||
|         # we do our checking of stderr further on in check_stderr(). | ||||
|         kw['expect_stderr'] = True | ||||
| >       result = super(PipTestEnvironment, self).run(cwd=cwd, *args, **kw)
 | ||||
| E       AssertionError: Script returned code: 1 | ||||
| tests/lib/__init__.py:586: AssertionError | ||||
| ----------------------------- Captured stdout call -----------------------------
 | ||||
| Script result: python -m pip install INITools==0.1 | ||||
|   return code: 1 | ||||
| -- stderr: --------------------
 | ||||
| WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fd66cc36700>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/initools/ | ||||
| WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fd66cc36c40>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/initools/ | ||||
| WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fd66cc36dc0>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/initools/ | ||||
| WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fd66cc36f40>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/initools/ | ||||
| WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fd66be48100>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/initools/ | ||||
| ERROR: Could not find a version that satisfies the requirement INITools==0.1 (from versions: none) | ||||
| ERROR: No matching distribution found for INITools==0.1 | ||||
| ---
 | ||||
|  tests/functional/test_freeze.py          | 3 +++ | ||||
|  tests/functional/test_install.py         | 1 + | ||||
|  tests/functional/test_install_config.py  | 1 + | ||||
|  tests/functional/test_install_upgrade.py | 1 + | ||||
|  4 files changed, 6 insertions(+) | ||||
| 
 | ||||
| diff --git a/tests/functional/test_freeze.py b/tests/functional/test_freeze.py
 | ||||
| index 546a482..aabb0ca 100644
 | ||||
| --- a/tests/functional/test_freeze.py
 | ||||
| +++ b/tests/functional/test_freeze.py
 | ||||
| @@ -705,6 +705,7 @@ def test_freeze_user(script, virtualenv, data):
 | ||||
|      assert 'simple2' not in result.stdout | ||||
|   | ||||
|   | ||||
| +@pytest.mark.network
 | ||||
|  def test_freeze_path(tmpdir, script, data): | ||||
|      """ | ||||
|      Test freeze with --path. | ||||
| @@ -718,6 +719,7 @@ def test_freeze_path(tmpdir, script, data):
 | ||||
|      _check_output(result.stdout, expected) | ||||
|   | ||||
|   | ||||
| +@pytest.mark.network
 | ||||
|  def test_freeze_path_exclude_user(tmpdir, script, data): | ||||
|      """ | ||||
|      Test freeze with --path and make sure packages from --user are not picked | ||||
| @@ -739,6 +741,7 @@ def test_freeze_path_exclude_user(tmpdir, script, data):
 | ||||
|      _check_output(result.stdout, expected) | ||||
|   | ||||
|   | ||||
| +@pytest.mark.network
 | ||||
|  def test_freeze_path_multiple(tmpdir, script, data): | ||||
|      """ | ||||
|      Test freeze with multiple --path arguments. | ||||
| diff --git a/tests/functional/test_install.py b/tests/functional/test_install.py
 | ||||
| index 0bea054..b816df6 100644
 | ||||
| --- a/tests/functional/test_install.py
 | ||||
| +++ b/tests/functional/test_install.py
 | ||||
| @@ -1274,6 +1274,7 @@ def test_install_no_binary_disables_building_wheels(script, data, with_wheel):
 | ||||
|      assert "Running setup.py install for upper" in str(res), str(res) | ||||
|   | ||||
|   | ||||
| +@pytest.mark.network
 | ||||
|  def test_install_no_binary_builds_pep_517_wheel(script, data, with_wheel): | ||||
|      to_install = data.packages.joinpath('pep517_setup_and_pyproject') | ||||
|      res = script.pip( | ||||
| diff --git a/tests/functional/test_install_config.py b/tests/functional/test_install_config.py
 | ||||
| index bcf83f1..c9c60a2 100644
 | ||||
| --- a/tests/functional/test_install_config.py
 | ||||
| +++ b/tests/functional/test_install_config.py
 | ||||
| @@ -133,6 +133,7 @@ def test_command_line_appends_correctly(script, data):
 | ||||
|      ), 'stdout: {}'.format(result.stdout) | ||||
|   | ||||
|   | ||||
| +@pytest.mark.network
 | ||||
|  def test_config_file_override_stack(script, virtualenv): | ||||
|      """ | ||||
|      Test config files (global, overriding a global config with a | ||||
| diff --git a/tests/functional/test_install_upgrade.py b/tests/functional/test_install_upgrade.py
 | ||||
| index 36b518b..c34a961 100644
 | ||||
| --- a/tests/functional/test_install_upgrade.py
 | ||||
| +++ b/tests/functional/test_install_upgrade.py
 | ||||
| @@ -8,6 +8,7 @@ from tests.lib import assert_all_changes, pyversion
 | ||||
|  from tests.lib.local_repos import local_checkout | ||||
|   | ||||
|   | ||||
| +@pytest.mark.network
 | ||||
|  def test_no_upgrade_unless_requested(script): | ||||
|      """ | ||||
|      No upgrade if not specifically requested. | ||||
| -- 
 | ||||
| 2.20.1 | ||||
| 
 | ||||
| @ -1,20 +1,23 @@ | ||||
| --- /usr/bin/pip3	2018-03-29 15:22:13.000000000 +0200
 | ||||
| +++ pip3	2018-05-04 11:49:08.098821010 +0200
 | ||||
| @@ -4,7 +4,16 @@
 | ||||
| --- /usr/bin/pip3	2019-11-12 17:37:34.793131862 +0100
 | ||||
| +++ pip3	2019-11-12 17:40:42.014107134 +0100
 | ||||
| @@ -2,7 +2,19 @@
 | ||||
|  # -*- coding: utf-8 -*- | ||||
|  import re | ||||
|  import sys | ||||
|   | ||||
| -from pip._internal import main
 | ||||
| -from pip._internal.main import main
 | ||||
| +try:
 | ||||
| +    from pip._internal import main
 | ||||
| +    from pip._internal.main import main
 | ||||
| +except ImportError:
 | ||||
| +    # user has most probably downgraded pip in their home
 | ||||
| +    # so let them run it anyway until ~/.local/bin makes it in front of the PATH
 | ||||
| +    from pip import main
 | ||||
| +else:
 | ||||
| +    # user might also upgraded pip...
 | ||||
| +    if hasattr(main, 'main'):
 | ||||
| +        main = main.main
 | ||||
|   | ||||
| +    try:
 | ||||
| +        # If the user has downgraded pip, the above import will fail.
 | ||||
| +        # Let's try older methods of invoking it:
 | ||||
| +
 | ||||
| +        # pip 19 uses this
 | ||||
| +        from pip._internal import main
 | ||||
| +    except ImportError:
 | ||||
| +        # older pip versions use this
 | ||||
| +        from pip import main
 | ||||
| +
 | ||||
|  if __name__ == '__main__': | ||||
|      sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) | ||||
|      sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) | ||||
|      sys.exit(main()) | ||||
|  | ||||
| @ -1,29 +1,34 @@ | ||||
| commit b6d5da6796801862eb751a93d507c343af0604d6 | ||||
| Author: Victor Stinner <vstinner@redhat.com> | ||||
| Date:   Tue Sep 18 17:13:51 2018 +0200 | ||||
| From 8c58a99221415ca7c3d5ce50dcffefa14e421928 Mon Sep 17 00:00:00 2001 | ||||
| From: Tomas Orsava <torsava@redhat.com> | ||||
| Date: Tue, 12 Nov 2019 17:24:20 +0100 | ||||
| Subject: [PATCH] Subject: Prevent removing of the system packages installed | ||||
|  under /usr/lib | ||||
| 
 | ||||
|     Subject: Prevent removing of the system packages installed under /usr/lib | ||||
| when pip install -U is executed. | ||||
| 
 | ||||
|     when pip install -U is executed. | ||||
| Resolves: rhbz#1550368 | ||||
| 
 | ||||
|     Resolves: rhbz#1550368 | ||||
|      | ||||
|     Co-Authored-By: Michal Cyprian <m.cyprian@gmail.com> | ||||
| Co-Authored-By: Michal Cyprian <m.cyprian@gmail.com> | ||||
| Co-Authored-By: Victor Stinner <vstinner@redhat.com> | ||||
| ---
 | ||||
|  src/pip/_internal/legacy_resolve.py  |  5 ++++- | ||||
|  src/pip/_internal/req/req_install.py |  3 ++- | ||||
|  src/pip/_internal/utils/misc.py      | 11 +++++++++++ | ||||
|  3 files changed, 17 insertions(+), 2 deletions(-) | ||||
| 
 | ||||
| diff --git a/src/pip/_internal/legacy_resolve.py b/src/pip/_internal/legacy_resolve.py
 | ||||
| index 1d9229cb..3088d22d 100644
 | ||||
| index c24158f..bd92287 100644
 | ||||
| --- a/src/pip/_internal/legacy_resolve.py
 | ||||
| +++ b/src/pip/_internal/legacy_resolve.py
 | ||||
| @@ -24,7 +24,7 @@ from pip._internal.exceptions import (
 | ||||
|  from pip._internal.req.constructors import install_req_from_req_string | ||||
| @@ -30,6 +30,7 @@ from pip._internal.exceptions import (
 | ||||
|  ) | ||||
|  from pip._internal.utils.logging import indent_log | ||||
|  from pip._internal.utils.misc import ( | ||||
| -    dist_in_usersite, ensure_dir, normalize_version_info,
 | ||||
| +    dist_in_install_path, dist_in_usersite, ensure_dir, normalize_version_info,
 | ||||
|  ) | ||||
|  from pip._internal.utils.packaging import ( | ||||
|      check_requires_python, get_requires_python, | ||||
| @@ -219,7 +219,9 @@ class Resolver(object):
 | ||||
| +    dist_in_install_path,
 | ||||
|      dist_in_usersite, | ||||
|      ensure_dir, | ||||
|      normalize_version_info, | ||||
| @@ -224,7 +225,9 @@ class Resolver(object):
 | ||||
|          """ | ||||
|          # Don't uninstall the conflict if doing a user install and the | ||||
|          # conflict is not a user install. | ||||
| @ -35,19 +40,18 @@ index 1d9229cb..3088d22d 100644 | ||||
|          req.satisfied_by = None | ||||
|   | ||||
| diff --git a/src/pip/_internal/req/req_install.py b/src/pip/_internal/req/req_install.py
 | ||||
| index f5c93504..1096c397 100644
 | ||||
| index 5a8c0dc..f80ba87 100644
 | ||||
| --- a/src/pip/_internal/req/req_install.py
 | ||||
| +++ b/src/pip/_internal/req/req_install.py
 | ||||
| @@ -27,7 +27,7 @@ from pip._internal.utils.logging import indent_log
 | ||||
|  from pip._internal.utils.marker_files import PIP_DELETE_MARKER_FILENAME | ||||
|  from pip._internal.utils.misc import ( | ||||
|      _make_build_dir, ask_path_exists, backup_dir, call_subprocess, | ||||
| -    display_path, dist_in_site_packages, dist_in_usersite, ensure_dir,
 | ||||
| +    display_path, dist_in_install_path, dist_in_site_packages, dist_in_usersite, ensure_dir,
 | ||||
|      get_installed_version, redact_password_from_url, rmtree, | ||||
|  ) | ||||
|  from pip._internal.utils.packaging import get_metadata | ||||
| @@ -427,7 +427,7 @@ class InstallRequirement(object):
 | ||||
| @@ -39,6 +39,7 @@ from pip._internal.utils.misc import (
 | ||||
|      ask_path_exists, | ||||
|      backup_dir, | ||||
|      display_path, | ||||
| +    dist_in_install_path,
 | ||||
|      dist_in_site_packages, | ||||
|      dist_in_usersite, | ||||
|      ensure_dir, | ||||
| @@ -461,7 +462,7 @@ class InstallRequirement(object):
 | ||||
|                          "lack sys.path precedence to %s in %s" % | ||||
|                          (existing_dist.project_name, existing_dist.location) | ||||
|                      ) | ||||
| @ -57,20 +61,19 @@ index f5c93504..1096c397 100644 | ||||
|          return True | ||||
|   | ||||
| diff --git a/src/pip/_internal/utils/misc.py b/src/pip/_internal/utils/misc.py
 | ||||
| index 61f74dc8..ffa8042c 100644
 | ||||
| index b848263..5b75fed 100644
 | ||||
| --- a/src/pip/_internal/utils/misc.py
 | ||||
| +++ b/src/pip/_internal/utils/misc.py
 | ||||
| @@ -30,7 +30,7 @@ from pip._vendor.six.moves.urllib.parse import unquote as urllib_unquote
 | ||||
|   | ||||
| @@ -28,6 +28,7 @@ from pip._vendor.six.moves.urllib.parse import unquote as urllib_unquote
 | ||||
|  from pip import __version__ | ||||
|  from pip._internal.exceptions import CommandError, InstallationError | ||||
| -from pip._internal.locations import site_packages, user_site
 | ||||
| +from pip._internal.locations import distutils_scheme, site_packages, user_site
 | ||||
|  from pip._internal.utils.compat import ( | ||||
|      WINDOWS, console_to_str, expanduser, stdlib_pkgs, str_to_display, | ||||
|  ) | ||||
| @@ -454,6 +454,16 @@ def dist_in_site_packages(dist):
 | ||||
|      ).startswith(normalize_path(site_packages)) | ||||
|  from pip._internal.exceptions import CommandError | ||||
|  from pip._internal.locations import ( | ||||
| +    distutils_scheme,
 | ||||
|      get_major_minor_version, | ||||
|      site_packages, | ||||
|      user_site, | ||||
| @@ -389,6 +390,16 @@ def dist_in_site_packages(dist):
 | ||||
|      return dist_location(dist).startswith(normalize_path(site_packages)) | ||||
|   | ||||
|   | ||||
| +def dist_in_install_path(dist):
 | ||||
| @ -86,3 +89,6 @@ index 61f74dc8..ffa8042c 100644 | ||||
|  def dist_is_editable(dist): | ||||
|      # type: (Distribution) -> bool | ||||
|      """ | ||||
| -- 
 | ||||
| 2.20.1 | ||||
| 
 | ||||
|  | ||||
| @ -15,40 +15,40 @@ | ||||
| Name:           python3x-%{srcname} | ||||
| # When updating, update the bundled libraries versions bellow! | ||||
| # You can use vendor_meta.sh in the dist git repo | ||||
| Version:        19.2.3 | ||||
| Release:        5%{?dist} | ||||
| Version:        19.3.1 | ||||
| Release:        1%{?dist} | ||||
| Summary:        A tool for installing and managing Python packages | ||||
| 
 | ||||
| # We bundle a lot of libraries with pip, which itself is under MIT license. | ||||
| # Here is the list of the libraries with corresponding licenses: | ||||
| 
 | ||||
| # appdirs: MIT | ||||
| # certifi: MPLv2.0 | ||||
| # chardet: LGPLv2 | ||||
| # colorama: BSD | ||||
| # CacheControl: ASL 2.0 | ||||
| # contextlib2: Python | ||||
| # distlib: Python | ||||
| # distro: ASL 2.0 | ||||
| # html5lib: MIT | ||||
| # six: MIT | ||||
| # colorama: BSD | ||||
| # CacheControl: ASL 2.0 | ||||
| # msgpack-python: ASL 2.0 | ||||
| # lockfile: MIT | ||||
| # progress: ISC | ||||
| # idna: BSD | ||||
| # ipaddress: Python | ||||
| # msgpack: ASL 2.0 | ||||
| # packaging: ASL 2.0 or BSD | ||||
| # pep517: MIT | ||||
| # progress: ISC | ||||
| # pyparsing: MIT | ||||
| # pytoml: MIT | ||||
| # retrying: ASL 2.0 | ||||
| # requests: ASL 2.0 | ||||
| # chardet: LGPLv2 | ||||
| # idna: BSD | ||||
| # urllib3: MIT | ||||
| # certifi: MPLv2.0 | ||||
| # retrying: ASL 2.0 | ||||
| # setuptools: MIT | ||||
| # six: MIT | ||||
| # urllib3: MIT | ||||
| # webencodings: BSD | ||||
| 
 | ||||
| License:        MIT and Python and ASL 2.0 and BSD and ISC and LGPLv2 and MPLv2.0 and (ASL 2.0 or BSD) | ||||
| URL:            http://www.pip-installer.org | ||||
| Source0:        %pypi_source | ||||
| URL:            https://pip.pypa.io/ | ||||
| Source0:        https://github.com/pypa/pip/archive/%{version}/%{srcname}-%{version}.tar.gz | ||||
| 
 | ||||
| BuildArch:      noarch | ||||
| # Exclude i686 arch. Due to a modularity issue it's being added to the | ||||
| @ -64,22 +64,10 @@ BuildRequires:  python38-setuptools-wheel | ||||
| BuildRequires:  python38-wheel-wheel | ||||
| %endif | ||||
| 
 | ||||
| # to get tests: | ||||
| # git clone https://github.com/pypa/pip && cd pip | ||||
| # git checkout $VERSION && tar -czvf ../pip-$VERSION-tests.tar.gz tests/ | ||||
| %if %{with tests} | ||||
| Source1:        pip-%{version}-tests.tar.gz | ||||
| %endif | ||||
| 
 | ||||
| # Themes required to build the docs. | ||||
| %if %{with doc} | ||||
| Source2:        https://github.com/pypa/pypa-docs-theme/archive/%{pypa_theme_commit_hash}.tar.gz | ||||
| Source3:        https://github.com/python/python-docs-theme/archive/2018.2.tar.gz | ||||
| %endif | ||||
| 
 | ||||
| %if %{with tests} | ||||
| # Fix expected output in test to not break with alpha/beta/rc Python versions | ||||
| Patch0:         https://github.com/pypa/pip/pull/6788.patch | ||||
| Source1:        https://github.com/pypa/pypa-docs-theme/archive/%{pypa_theme_commit_hash}.tar.gz | ||||
| Source2:        https://github.com/python/python-docs-theme/archive/2018.2.tar.gz | ||||
| %endif | ||||
| 
 | ||||
| # Downstream only patch | ||||
| @ -99,6 +87,10 @@ Patch3:         remove-existing-dist-only-if-path-conflicts.patch | ||||
| # https://bugzilla.redhat.com/show_bug.cgi?id=1655253 | ||||
| Patch4:         dummy-certifi.patch | ||||
| 
 | ||||
| # Mark tests that need the Internet as network tests so we can skip them | ||||
| # https://github.com/pypa/pip/pull/7359 | ||||
| Patch5:         network-tests.patch | ||||
| 
 | ||||
| # Downstream only patch | ||||
| # Users might have local installations of pip from using | ||||
| # `pip install --user --upgrade pip` on older/newer versions. | ||||
| @ -131,26 +123,26 @@ Packages" or "Pip Installs Python". | ||||
| %global bundled() %{expand: | ||||
| Provides: bundled(python%{1}dist(appdirs)) = 1.4.3 | ||||
| Provides: bundled(python%{1}dist(CacheControl)) = 0.12.5 | ||||
| Provides: bundled(python%{1}dist(certifi)) = 2019.6.16 | ||||
| Provides: bundled(python%{1}dist(certifi)) = 2019.9.11 | ||||
| Provides: bundled(python%{1}dist(chardet)) = 3.0.4 | ||||
| Provides: bundled(python%{1}dist(colorama)) = 0.4.1 | ||||
| Provides: bundled(python%{1}dist(contextlib2)) = 0.6.0 | ||||
| Provides: bundled(python%{1}dist(distlib)) = 0.2.9.post0 | ||||
| Provides: bundled(python%{1}dist(distro)) = 1.4.0 | ||||
| Provides: bundled(python%{1}dist(html5lib)) = 1.0.1 | ||||
| Provides: bundled(python%{1}dist(idna)) = 2.8 | ||||
| Provides: bundled(python%{1}dist(ipaddress)) = 1.0.22 | ||||
| Provides: bundled(python%{1}dist(lockfile)) = 0.12.2 | ||||
| Provides: bundled(python%{1}dist(msgpack)) = 0.6.1 | ||||
| Provides: bundled(python%{1}dist(packaging)) = 19.0 | ||||
| Provides: bundled(python%{1}dist(pep517)) = 0.5.0 | ||||
| Provides: bundled(python%{1}dist(msgpack)) = 0.6.2 | ||||
| Provides: bundled(python%{1}dist(packaging)) = 19.2 | ||||
| Provides: bundled(python%{1}dist(pep517)) = 0.7.0 | ||||
| Provides: bundled(python%{1}dist(progress)) = 1.5 | ||||
| Provides: bundled(python%{1}dist(pyparsing)) = 2.4.0 | ||||
| Provides: bundled(python%{1}dist(pytoml)) = 0.1.20 | ||||
| Provides: bundled(python%{1}dist(pyparsing)) = 2.4.2 | ||||
| Provides: bundled(python%{1}dist(pytoml)) = 0.1.21 | ||||
| Provides: bundled(python%{1}dist(requests)) = 2.22.0 | ||||
| Provides: bundled(python%{1}dist(retrying)) = 1.3.3 | ||||
| Provides: bundled(python%{1}dist(setuptools)) = 41.0.1 | ||||
| Provides: bundled(python%{1}dist(setuptools)) = 41.4.0 | ||||
| Provides: bundled(python%{1}dist(six)) = 1.12.0 | ||||
| Provides: bundled(python%{1}dist(urllib3)) = 1.25.3 | ||||
| Provides: bundled(python%{1}dist(urllib3)) = 1.25.6 | ||||
| Provides: bundled(python%{1}dist(webencodings)) = 0.5.1 | ||||
| } | ||||
| 
 | ||||
| @ -236,29 +228,23 @@ A Python wheel of pip to use with venv. | ||||
| 
 | ||||
| %prep | ||||
| %setup -q -n %{srcname}-%{version} | ||||
| %if %{with tests} | ||||
| tar -xf %{SOURCE1} | ||||
| %endif | ||||
| %if %{with doc} | ||||
| pushd docs/html | ||||
| tar -xf %{SOURCE2} | ||||
| tar -xf %{SOURCE1} | ||||
| mv pypa-docs-theme-%{pypa_theme_commit_hash} pypa | ||||
| tar -xf %{SOURCE3} | ||||
| tar -xf %{SOURCE2} | ||||
| mv python-docs-theme-2018.2 python-docs-theme | ||||
| popd | ||||
| %endif | ||||
| 
 | ||||
| %if %{with tests} | ||||
| %patch0 -p1 | ||||
| %endif | ||||
| %patch1 -p1 | ||||
| %patch2 -p1 | ||||
| %patch3 -p1 | ||||
| %patch4 -p1 | ||||
| %patch5 -p1 | ||||
| 
 | ||||
| # this goes together with patch4 | ||||
| rm src/pip/_vendor/certifi/*.pem | ||||
| sed -i '/\.pem$/d' src/pip.egg-info/SOURCES.txt | ||||
| 
 | ||||
| %if %{with tests} | ||||
| # tests expect wheels in here | ||||
| @ -417,6 +403,11 @@ fi | ||||
| %{python_wheeldir}/%{python_wheelname} | ||||
| 
 | ||||
| %changelog | ||||
| * Thu Apr 23 2020 Lumír Balhar <lbalhar@redhat.com> - 19.3.1 | ||||
| - Rebase to 19.3.1 to enable support for manylinux2014 | ||||
| Resolves: rhbz#1827623 | ||||
| - + some other fixes from Fedora 32 where we have the same version now | ||||
| 
 | ||||
| * Mon Mar 09 2020 Tomas Orsava <torsava@redhat.com> - 19.2.3-5 | ||||
| - Implement the alternatives system for the executables | ||||
| - Resolves: rhbz#1807041 | ||||
| @ -710,4 +701,3 @@ Resolves: rhbz#1406922 | ||||
| - upgrade to 0.6.1 of pip | ||||
| * Mon Aug 31 2009 Peter Halliday <phalliday@excelsiorsystems.net> - 0.4-1 | ||||
| - Initial package | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user