!4 update to 20.1.1

Merge pull request !4 from 靳智敏/master
This commit is contained in:
openeuler-ci-bot 2020-07-30 15:55:12 +08:00 committed by Gitee
commit c26de7fbb8
9 changed files with 171 additions and 247 deletions

View File

@ -1,89 +0,0 @@
diff -ru pip-18.0/src/pip/_internal/commands/install.py pip-18.0_patched/src/pip/_internal/commands/install.py
--- pip-18.0/src/pip/_internal/commands/install.py 2018-07-20 06:10:48.000000000 +0200
+++ pip-18.0_patched/src/pip/_internal/commands/install.py 2018-07-23 16:49:39.085357813 +0200
@@ -110,6 +110,14 @@
default=None,
help="Installation prefix where lib, bin and other top-level "
"folders are placed")
+ cmd_opts.add_option(
+ '--strip-file-prefix',
+ dest='strip_file_prefix',
+ metavar='prefix',
+ default=None,
+ help="Strip given prefix from script paths in wheel RECORD."
+ )
+
cmd_opts.add_option(cmdoptions.build_dir())
@@ -345,6 +353,7 @@
pycompile=options.compile,
warn_script_location=warn_script_location,
use_user_site=options.use_user_site,
+ strip_file_prefix=options.strip_file_prefix,
)
lib_locations = get_lib_location_guesses(
diff -ru pip-18.0/src/pip/_internal/req/req_install.py pip-18.0_patched/src/pip/_internal/req/req_install.py
--- pip-18.0/src/pip/_internal/req/req_install.py 2018-07-22 07:14:20.000000000 +0200
+++ pip-18.0_patched/src/pip/_internal/req/req_install.py 2018-07-23 16:51:51.115943214 +0200
@@ -514,7 +514,7 @@
def move_wheel_files(self, wheeldir, root=None, home=None, prefix=None,
warn_script_location=True, use_user_site=False,
- pycompile=True):
+ pycompile=True, strip_file_prefix=None):
move_wheel_files(
self.name, self.req, wheeldir,
user=use_user_site,
@@ -524,6 +524,7 @@
pycompile=pycompile,
isolated=self.isolated,
warn_script_location=warn_script_location,
+ strip_file_prefix=strip_file_prefix,
)
# Things valid for sdists
@@ -924,7 +925,7 @@
def install(self, install_options, global_options=None, root=None,
home=None, prefix=None, warn_script_location=True,
- use_user_site=False, pycompile=True):
+ use_user_site=False, pycompile=True, strip_file_prefix=None):
global_options = global_options if global_options is not None else []
if self.editable:
self.install_editable(
@@ -939,6 +940,7 @@
self.source_dir, root=root, prefix=prefix, home=home,
warn_script_location=warn_script_location,
use_user_site=use_user_site, pycompile=pycompile,
+ strip_file_prefix=strip_file_prefix,
)
self.install_succeeded = True
return
diff -ru pip-18.0/src/pip/_internal/wheel.py pip-18.0_patched/src/pip/_internal/wheel.py
--- pip-18.0/src/pip/_internal/wheel.py 2018-07-17 10:26:00.000000000 +0200
+++ pip-18.0_patched/src/pip/_internal/wheel.py 2018-07-23 16:52:57.749238655 +0200
@@ -206,7 +206,7 @@
def move_wheel_files(name, req, wheeldir, user=False, home=None, root=None,
pycompile=True, scheme=None, isolated=False, prefix=None,
- warn_script_location=True):
+ warn_script_location=True, strip_file_prefix=None):
"""Install a wheel"""
if not scheme:
@@ -507,7 +507,12 @@
writer.writerow(row)
for f in generated:
digest, length = rehash(f)
- writer.writerow((normpath(f, lib_dir), digest, length))
+ final_path = normpath(f, lib_dir)
+ if strip_file_prefix and final_path.startswith(strip_file_prefix):
+ final_path = os.path.join(os.sep,
+ os.path.relpath(final_path, strip_file_prefix))
+ writer.writerow((final_path, digest, length))
+
for f in installed:
writer.writerow((installed[f], '', ''))
shutil.move(temp_record, record)

View File

@ -1,15 +1,27 @@
From 09bf87d33141a5c06a1d410839d162262baa16c4 Mon Sep 17 00:00:00 2001
From: Tomas Hrnciar <thrnciar@redhat.com>
Date: Sun, 26 Apr 2020 21:38:44 +0200
Subject: [PATCH] Dummy certifi patch
---
src/pip/_vendor/certifi/core.py | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/src/pip/_vendor/certifi/core.py b/src/pip/_vendor/certifi/core.py diff --git a/src/pip/_vendor/certifi/core.py b/src/pip/_vendor/certifi/core.py
index eab9d1d..30db215 100644 index 56b52a3c..e99043f0 100644
--- a/src/pip/_vendor/certifi/core.py --- a/src/pip/_vendor/certifi/core.py
+++ b/src/pip/_vendor/certifi/core.py +++ b/src/pip/_vendor/certifi/core.py
@@ -19,9 +19,7 @@ class DeprecatedBundleWarning(DeprecationWarning): @@ -21,9 +21,7 @@ except ImportError:
def where(): def where():
- f = os.path.dirname(__file__) - f = os.path.dirname(__file__)
- -
- return os.path.join(f, 'cacert.pem') - return os.path.join(f, "cacert.pem")
+ return '/etc/pki/tls/certs/ca-bundle.crt' + return '/etc/pki/tls/certs/ca-bundle.crt'
def old_where(): def contents():
--
2.23.0

View File

@ -1,31 +1,51 @@
diff -ru pip-18.0/src/pip/_internal/commands/install.py pip-18.0_patched/src/pip/_internal/commands/install.py From 74bb5d26e232493de43adfa1f4b42b66fd701294 Mon Sep 17 00:00:00 2001
--- pip-18.0/src/pip/_internal/commands/install.py 2018-07-20 06:10:48.000000000 +0200 From: Tomas Hrnciar <thrnciar@redhat.com>
+++ pip-18.0_patched/src/pip/_internal/commands/install.py 2018-07-31 12:15:43.777317780 +0200 Date: Sun, 26 Apr 2020 13:52:24 +0200
@@ -5,6 +5,8 @@ Subject: [PATCH] Downstream only patch
import operator
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 70bda2e2..1e750ae1 100644
--- a/src/pip/_internal/commands/install.py
+++ b/src/pip/_internal/commands/install.py
@@ -13,6 +13,8 @@ import operator
import os import os
import shutil import shutil
import site
+import sys +import sys
+from os import path +from os import path
from optparse import SUPPRESS_HELP from optparse import SUPPRESS_HELP
from pip._vendor import pkg_resources from pip._vendor import pkg_resources
@@ -205,6 +207,18 @@ @@ -241,6 +243,23 @@ class InstallCommand(RequirementCommand):
def run(self, options, args): raise CommandError("Can not combine '--user' and '--target'")
cmdoptions.check_install_build_global(options)
cmdoptions.check_install_build_global(options)
+
+ def is_venv(): + def is_venv():
+ return hasattr(sys, 'real_prefix') or \ + return (hasattr(sys, 'real_prefix') or
+ (hasattr(sys, 'base_prefix') and sys.base_prefix != sys.prefix) + (hasattr(sys, 'base_prefix') and
+ sys.base_prefix != sys.prefix))
+ +
+ # Check whether we have root privileges and aren't in venv/virtualenv + # Check whether we have root privileges and aren't in venv/virtualenv
+ if os.getuid() == 0 and not is_venv(): + if os.getuid() == 0 and not is_venv() and not options.root_path:
+ command = path.basename(sys.argv[0])
+ if command == "__main__.py":
+ command = path.basename(sys.executable) + " -m pip"
+ logger.warning( + logger.warning(
+ "WARNING: Running pip install with root privileges is " + "Running pip install with root privileges is "
+ "generally not a good idea. Try `%s install --user` instead." + "generally not a good idea. Try `%s install --user` instead."
+ % path.basename(sys.argv[0]) + % command
+ ) + )
+ +
upgrade_strategy = "to-satisfy-only" upgrade_strategy = "to-satisfy-only"
if options.upgrade: if options.upgrade:
upgrade_strategy = options.upgrade_strategy upgrade_strategy = options.upgrade_strategy
--
2.23.0

Binary file not shown.

BIN
pip-20.1.1.tar.gz Normal file

Binary file not shown.

View File

@ -0,0 +1,27 @@
--- /usr/bin/pip3 2019-11-12 17:37:34.793131862 +0100
+++ pip3 2019-11-12 17:40:42.014107134 +0100
@@ -2,7 +2,23 @@
# -*- coding: utf-8 -*-
import re
import sys
-from pip._internal.cli.main import main
+
+try:
+ from pip._internal.cli.main import main
+except ImportError:
+ try:
+ from pip._internal.main import main
+ except ImportError:
+ 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.exit(main())

View File

@ -1,16 +0,0 @@
--- /usr/bin/pip3 2018-03-29 15:22:13.000000000 +0200
+++ pip3 2018-05-04 11:49:08.098821010 +0200
@@ -4,7 +4,12 @@
import re
import sys
-from pip._internal import main
+try:
+ from pip._internal 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
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])

View File

@ -6,31 +6,20 @@
pip is the package installer for Python. You can use pip to install packages from the Python Package Index and other indexes. pip is the package installer for Python. You can use pip to install packages from the Python Package Index and other indexes.
%global bashcompdir %(b=$(pkg-config --variable=completionsdir bash-completion 2>/dev/null); echo ${b:-%{_sysconfdir}/bash_completion.d}) %global bashcompdir %(b=$(pkg-config --variable=completionsdir bash-completion 2>/dev/null); echo ${b:-%{_sysconfdir}/bash_completion.d})
Name: python-%{srcname} Name: python-%{srcname}
Version: 18.0 Version: 20.1.1
Release: 12 Release: 1
Summary: A tool for installing and managing Python packages Summary: A tool for installing and managing Python packages
License: MIT and Python and ASL 2.0 and BSD and ISC and LGPLv2 and MPLv2.0 and (ASL 2.0 or 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 URL: http://www.pip-installer.org
Source0: https://files.pythonhosted.org/packages/source/p/%{srcname}/%{srcname}-%{version}.tar.gz Source0: https://files.pythonhosted.org/packages/source/p/%{srcname}/%{srcname}-%{version}.tar.gz
BuildArch: noarch BuildArch: noarch
Patch0: allow-stripping-given-prefix-from-wheel-RECORD-files.patch Patch1: emit-a-warning-when-running-with-root-privileges.patch
Patch1: remove-existing-dist-only-if-path-conflicts.patch Patch2: remove-existing-dist-only-if-path-conflicts.patch
Patch2: emit-a-warning-when-running-with-root-privileges.patch Patch3: dummy-certifi.patch
Patch6000: dummy-certifi.patch Source1: pip-allow-different-versions.patch
Source1: pip-allow-older-versions.patch
%description %{_description} %description %{_description}
%if %{with python2}
%package -n python2-%{srcname}
Summary: %{summary}
BuildRequires: python2-devel python2-setuptools ca-certificates
Requires: python2-setuptools ca-certificates
BuildRequires: python2-pip python2-wheel
%{?python_provide:%python_provide python2-%{srcname}}
%description -n python2-%{srcname} %{_description}
%endif
%package -n python%{python3_pkgversion}-%{srcname} %package -n python%{python3_pkgversion}-%{srcname}
Summary: %{summary} Summary: %{summary}
BuildRequires: python%{python3_pkgversion}-devel python%{python3_pkgversion}-setuptools bash-completion ca-certificates BuildRequires: python%{python3_pkgversion}-devel python%{python3_pkgversion}-setuptools bash-completion ca-certificates
@ -51,85 +40,56 @@ A Python wheel of pip to use with venv
%prep %prep
%autosetup -n %{srcname}-%{version} -p1 %autosetup -n %{srcname}-%{version} -p1
# this goes together with patch4
rm src/pip/_vendor/certifi/*.pem
# tests expect wheels in here
ln -s %{python_wheeldir} tests/data/common_wheels
sed -i -e 's/csv23/csv/g' tests/lib/wheel.py
%build %build
%if %{with python2}
%py2_build
%endif
%py3_build_wheel %py3_build_wheel
%install %install
%py3_install_wheel %{python_wheelname} %{__python3} dist/%{python_wheelname}/pip install \
rm %{buildroot}%{_bindir}/pip --root %{buildroot} \
%if %{with python2} --no-deps \
%py2_install_wheel %{python_wheelname} --no-cache-dir \
%endif --no-index \
--ignore-installed \
--find-links dist \
'pip==%{version}'
for PIP in %{buildroot}%{_bindir}/pip*; do for PIP in %{buildroot}%{_bindir}/pip*; do
patch -p1 $PIP < %{SOURCE1} patch -p1 $PIP < %{SOURCE1}
done done
mkdir -p %{buildroot}%{bashcompdir} mkdir -p %{buildroot}%{bashcompdir}
%if %{with python2}
PYTHONPATH=%{buildroot}%{python2_sitelib} \
%{buildroot}%{_bindir}/pip completion --bash \
> %{buildroot}%{bashcompdir}/pip
%endif
PYTHONPATH=%{buildroot}%{python3_sitelib} \ PYTHONPATH=%{buildroot}%{python3_sitelib} \
%{buildroot}%{_bindir}/pip3 completion --bash \ %{buildroot}%{_bindir}/pip completion --bash \
> %{buildroot}%{bashcompdir}/pip3 > %{buildroot}%{bashcompdir}/pip3
pips2=pip
pips3=pip3 sed -i -e "s/^\\(complete.*\\) pip\$/\\1 pip pip{,-}{3,%{python3_version}}/" \
for pip in %{buildroot}%{_bindir}/pip*; do
pip=$(basename $pip)
case $pip in
%if %{with python2}
pip2*)
pips2="$pips2 $pip"
ln -s pip %{buildroot}%{bashcompdir}/$pip
;;
%endif
pip3?*)
pips3="$pips3 $pip"
ln -s pip3 %{buildroot}%{bashcompdir}/$pip
;;
esac
done
sed -i -e "s/^\\(complete.*\\) pip\$/\\1 $pips3/" \
-e s/_pip_completion/_pip3_completion/ \ -e s/_pip_completion/_pip3_completion/ \
%{buildroot}%{bashcompdir}/pip3 %{buildroot}%{bashcompdir}/pip3
%if %{with python2}
sed -i -e "s/^\\(complete.*\\) pip\$/\\1 $pips2/" \
%{buildroot}%{bashcompdir}/pip
%endif
%if %{with python2} ln -s ./pip%{python3_version} %{buildroot}%{_bindir}/pip-%{python3_version}
echo rpm > %{buildroot}%{python2_sitelib}/pip-%{version}.dist-info/INSTALLER ln -s ./pip-%{python3_version} %{buildroot}%{_bindir}/pip-3
%endif
echo rpm > %{buildroot}%{python3_sitelib}/pip-%{version}.dist-info/INSTALLER echo rpm > %{buildroot}%{python3_sitelib}/pip-%{version}.dist-info/INSTALLER
mkdir -p %{buildroot}%{python_wheeldir} mkdir -p %{buildroot}%{python_wheeldir}
install -p dist/%{python_wheelname} -t %{buildroot}%{python_wheeldir} install -p dist/%{python_wheelname} -t %{buildroot}%{python_wheeldir}
%if %{with python2}
%files -n python2-%{srcname}
%license LICENSE.txt
%{_bindir}/pip
%{_bindir}/pip2
%{_bindir}/pip%{python2_version}
%{python2_sitelib}/pip*
%dir %{bashcompdir}
%{bashcompdir}/pip
%{bashcompdir}/pip2*
%dir %(dirname %{bashcompdir})
%endif
%files -n python%{python3_pkgversion}-%{srcname} %files -n python%{python3_pkgversion}-%{srcname}
%license LICENSE.txt %license LICENSE.txt
%{_bindir}/pip
%{_bindir}/pip3 %{_bindir}/pip3
%{_bindir}/pip-3
%{_bindir}/pip%{python3_version} %{_bindir}/pip%{python3_version}
%{_bindir}/pip-%{python3_version}
%{python3_sitelib}/pip* %{python3_sitelib}/pip*
%dir %{bashcompdir} %dir %{bashcompdir}
%{bashcompdir}/pip3* %{bashcompdir}/pip3*
@ -144,6 +104,9 @@ install -p dist/%{python_wheelname} -t %{buildroot}%{python_wheeldir}
%{python_wheeldir}/%{python_wheelname} %{python_wheeldir}/%{python_wheelname}
%changelog %changelog
* Tue Jul 28 2020 jinzhimin<jinzhimin2@huawei.com> - 20.1.1-1
- update to 20.1.1
* Thu Feb 20 2020 chengquan3<chengquan3@huawei.com> - 18.0-12 * Thu Feb 20 2020 chengquan3<chengquan3@huawei.com> - 18.0-12
- Type:bugfix - Type:bugfix
- ID:NA - ID:NA

View File

@ -1,51 +1,55 @@
commit b6d5da6796801862eb751a93d507c343af0604d6 From d381c59fdc15949c4dc293bd92bbccb60289a703 Mon Sep 17 00:00:00 2001
Author: Victor Stinner <vstinner@redhat.com> From: Tomas Hrnciar <thrnciar@redhat.com>
Date: Tue Sep 18 17:13:51 2018 +0200 Date: Sun, 26 Apr 2020 21:19:03 +0200
Subject: [PATCH] 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: Victor Stinner <vstinner@redhat.com>
Co-Authored-By: Michal Cyprian <m.cyprian@gmail.com> ---
src/pip/_internal/req/req_install.py | 3 ++-
src/pip/_internal/resolution/legacy/resolver.py | 5 ++++-
src/pip/_internal/utils/misc.py | 11 +++++++++++
3 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/src/pip/_internal/req/req_install.py b/src/pip/_internal/req/req_install.py diff --git a/src/pip/_internal/req/req_install.py b/src/pip/_internal/req/req_install.py
index 8e91ecb..9beb100 100644 index 3b28209b..d14217e9 100644
--- a/src/pip/_internal/req/req_install.py --- a/src/pip/_internal/req/req_install.py
+++ b/src/pip/_internal/req/req_install.py +++ b/src/pip/_internal/req/req_install.py
@@ -36,7 +36,7 @@ from pip._internal.utils.hashes import Hashes @@ -38,6 +38,7 @@ from pip._internal.utils.misc import (
from pip._internal.utils.logging import indent_log ask_path_exists,
from pip._internal.utils.misc import ( backup_dir,
_make_build_dir, ask_path_exists, backup_dir, call_subprocess, display_path,
- display_path, dist_in_site_packages, dist_in_usersite, ensure_dir, + dist_in_install_path,
+ display_path, dist_in_install_path, dist_in_site_packages, dist_in_usersite, ensure_dir, dist_in_site_packages,
get_installed_version, is_installable_dir, read_text_file, rmtree, dist_in_usersite,
) get_installed_version,
from pip._internal.utils.setuptools_build import SETUPTOOLS_SHIM @@ -444,7 +445,7 @@ class InstallRequirement(object):
@@ -503,7 +503,7 @@ class InstallRequirement(object): "lack sys.path precedence to {} in {}".format(
"lack sys.path precedence to %s in %s" % existing_dist.project_name, existing_dist.location)
(existing_dist.project_name, existing_dist.location)
) )
- else: - else:
+ elif dist_in_install_path(existing_dist): + elif dist_in_install_path(existing_dist):
self.conflicts_with = existing_dist self.should_reinstall = True
return True else:
if self.editable and self.satisfied_by:
diff --git a/src/pip/_internal/resolve.py b/src/pip/_internal/resolve.py diff --git a/src/pip/_internal/resolution/legacy/resolver.py b/src/pip/_internal/resolution/legacy/resolver.py
index 8480e48..b118098 100644 index cdb44d19..52e122c6 100644
--- a/src/pip/_internal/resolve.py --- a/src/pip/_internal/resolution/legacy/resolver.py
+++ b/src/pip/_internal/resolve.py +++ b/src/pip/_internal/resolution/legacy/resolver.py
@@ -20,7 +20,7 @@ from pip._internal.exceptions import ( @@ -33,6 +33,7 @@ from pip._internal.resolution.base import BaseResolver
) from pip._internal.utils.compatibility_tags import get_supported
from pip._internal.req.req_install import InstallRequirement
from pip._internal.utils.logging import indent_log from pip._internal.utils.logging import indent_log
-from pip._internal.utils.misc import dist_in_usersite, ensure_dir from pip._internal.utils.misc import dist_in_usersite, normalize_version_info
+from pip._internal.utils.misc import dist_in_install_path, dist_in_usersite, ensure_dir +from pip._internal.utils.misc import dist_in_install_path
from pip._internal.utils.packaging import check_dist_requires_python from pip._internal.utils.packaging import (
check_requires_python,
logger = logging.getLogger(__name__) get_requires_python,
@@ -123,7 +123,9 @@ class Resolver(object): @@ -203,7 +204,9 @@ class Resolver(BaseResolver):
""" """
# Don't uninstall the conflict if doing a user install and the # Don't uninstall the conflict if doing a user install and the
# conflict is not a user install. # conflict is not a user install.
@ -53,24 +57,23 @@ index 8480e48..b118098 100644
+ if ((not self.use_user_site + if ((not self.use_user_site
+ or dist_in_usersite(req.satisfied_by)) + or dist_in_usersite(req.satisfied_by))
+ and dist_in_install_path(req.satisfied_by)): + and dist_in_install_path(req.satisfied_by)):
req.conflicts_with = req.satisfied_by req.should_reinstall = True
req.satisfied_by = None req.satisfied_by = None
diff --git a/src/pip/_internal/utils/misc.py b/src/pip/_internal/utils/misc.py diff --git a/src/pip/_internal/utils/misc.py b/src/pip/_internal/utils/misc.py
index 3236af6..e60287b 100644 index 09031825..3c064f8f 100644
--- a/src/pip/_internal/utils/misc.py --- a/src/pip/_internal/utils/misc.py
+++ b/src/pip/_internal/utils/misc.py +++ b/src/pip/_internal/utils/misc.py
@@ -32,7 +32,7 @@ from pip._internal.compat import ( @@ -29,6 +29,7 @@ from pip._vendor.six.moves.urllib.parse import unquote as urllib_unquote
from pip._internal.exceptions import CommandError, InstallationError from pip import __version__
from pip._internal.exceptions import CommandError
from pip._internal.locations import ( from pip._internal.locations import (
running_under_virtualenv, site_packages, user_site, virtualenv_no_global, + distutils_scheme,
- write_delete_marker_file, get_major_minor_version,
+ write_delete_marker_file, distutils_scheme, site_packages,
) user_site,
@@ -400,6 +401,16 @@ def dist_in_site_packages(dist):
if PY2: return dist_location(dist).startswith(normalize_path(site_packages))
@@ -324,6 +324,16 @@ def dist_in_site_packages(dist):
).startswith(normalize_path(site_packages))
+def dist_in_install_path(dist): +def dist_in_install_path(dist):
@ -84,5 +87,9 @@ index 3236af6..e60287b 100644
+ +
+ +
def dist_is_editable(dist): def dist_is_editable(dist):
"""Is distribution an editable install?""" # type: (Distribution) -> bool
for path_item in sys.path: """
--
2.23.0