diff --git a/0aee48ff1fbc0d60cd973c6929d9afb2bc32b839.patch b/0aee48ff1fbc0d60cd973c6929d9afb2bc32b839.patch new file mode 100644 index 0000000000000000000000000000000000000000..75332a578b59df5436f274e752c45383cf625219 --- /dev/null +++ b/0aee48ff1fbc0d60cd973c6929d9afb2bc32b839.patch @@ -0,0 +1,34 @@ +diff --git a/news/9117.bugfix.rst b/news/9117.bugfix.rst +new file mode 100644 +index 0000000000..7991dac7d0 +--- /dev/null ++++ b/news/9117.bugfix.rst +@@ -0,0 +1,2 @@ ++New resolver: The "Requirement already satisfied" log is not printed only once ++for each package during resolution. +diff --git a/src/pip/_internal/resolution/resolvelib/factory.py b/src/pip/_internal/resolution/resolvelib/factory.py +index c723d343bf..b4c7bf1135 100644 +--- a/src/pip/_internal/resolution/resolvelib/factory.py ++++ b/src/pip/_internal/resolution/resolvelib/factory.py +@@ -96,6 +96,8 @@ def __init__( + + self._link_candidate_cache = {} # type: Cache[LinkCandidate] + self._editable_candidate_cache = {} # type: Cache[EditableCandidate] ++ self._installed_candidate_cache = { ++ } # type: Dict[str, AlreadyInstalledCandidate] + + if not ignore_installed: + self._installed_dists = { +@@ -117,7 +119,11 @@ def _make_candidate_from_dist( + template, # type: InstallRequirement + ): + # type: (...) -> Candidate +- base = AlreadyInstalledCandidate(dist, template, factory=self) ++ try: ++ base = self._installed_candidate_cache[dist.key] ++ except KeyError: ++ base = AlreadyInstalledCandidate(dist, template, factory=self) ++ self._installed_candidate_cache[dist.key] = base + if extras: + return ExtrasCandidate(base, extras) + return base diff --git a/python-pip.spec b/python-pip.spec index 3d035b59a33f24b5c58f6925acf4d9cb6a79f840..fbedc815ed2b18208eaeff64029dfa129c99b4da 100644 --- a/python-pip.spec +++ b/python-pip.spec @@ -6,7 +6,7 @@ pip is the package installer for Python. You can use pip to install packages fro %global bashcompdir %(b=$(pkg-config --variable=completionsdir bash-completion 2>/dev/null); echo ${b:-%{_sysconfdir}/bash_completion.d}) Name: python-%{srcname} Version: 20.2.2 -Release: 3 +Release: 4 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) URL: http://www.pip-installer.org @@ -16,6 +16,7 @@ Patch1: allow-stripping-given-prefix-from-wheel-RECORD-files.patch Patch2: emit-a-warning-when-running-with-root-privileges.patch Patch3: remove-existing-dist-only-if-path-conflicts.patch Patch6000: dummy-certifi.patch +Patch6001: 0aee48ff1fbc0d60cd973c6929d9afb2bc32b839.patch Source10: pip-allow-older-versions.patch %description %{_description} @@ -112,6 +113,9 @@ install -p dist/%{python_wheelname} -t %{buildroot}%{python_wheeldir} %{python_wheeldir}/%{python_wheelname} %changelog +* 20201212055849756634 patch-tracking 20.2.2-4 +- append patch file of upstream repository from <0aee48ff1fbc0d60cd973c6929d9afb2bc32b839> to <0aee48ff1fbc0d60cd973c6929d9afb2bc32b839> + * Wed Nov 4 2020 wangjie -20.2.2-3 - Type:NA - ID:NA @@ -161,4 +165,4 @@ install -p dist/%{python_wheelname} -t %{buildroot}%{python_wheeldir} - DESC: Synchronize a patch * Mon Sep 23 2019 openEuler Buildteam - 18.0-6 -- Package init +- Package init \ No newline at end of file