[yum/f18] Fix a depsolver traceback. BZ 920758
Zdeněk Pavlas
zpavlas at fedoraproject.org
Thu Apr 4 16:27:22 UTC 2013
commit 6d0388921c43a851dde1019c5ed30036467c6aa2
Author: Zdenek Pavlas <zpavlas at redhat.com>
Date: Thu Apr 4 18:27:12 2013 +0200
Fix a depsolver traceback. BZ 920758
...20758-keep-installedFileRequires-inc-sync.patch | 34 ++++++++++++++++++++
yum.spec | 7 +++-
2 files changed, 40 insertions(+), 1 deletions(-)
---
diff --git a/BZ-920758-keep-installedFileRequires-inc-sync.patch b/BZ-920758-keep-installedFileRequires-inc-sync.patch
new file mode 100644
index 0000000..c0bc9be
--- /dev/null
+++ b/BZ-920758-keep-installedFileRequires-inc-sync.patch
@@ -0,0 +1,34 @@
+diff -up yum-3.4.3/yum/depsolve.py.old yum-3.4.3/yum/depsolve.py
+--- yum-3.4.3/yum/depsolve.py.old 2013-04-04 18:21:22.477786494 +0200
++++ yum-3.4.3/yum/depsolve.py 2013-04-04 18:22:48.742547795 +0200
+@@ -918,6 +918,9 @@ class Depsolve(object):
+ self._last_req = None
+ self.pkgSack.delPackage(otxmbr.po)
+ self.up.delPackage(otxmbr.pkgtup)
++ # Update the cache and recheck file requires
++ (self.installedFileRequires or {}).pop(otxmbr.pkgtup, None)
++ CheckRemoves = True
+
+ if CheckDeps:
+ if self.dsCallback: self.dsCallback.restartLoop()
+@@ -1177,10 +1180,10 @@ class Depsolve(object):
+
+ # get file requirements from new packages
+ for txmbr in self._tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
++ files = []
+ for name, flag, evr in txmbr.po.requires:
+ if name.startswith('/'):
+- pt = txmbr.po.pkgtup
+- self.installedFileRequires.setdefault(pt, []).append(name)
++ files.append(name)
+ # check if file requires was already unresolved in update
+ if name in self.installedUnresolvedFileRequires:
+ already_broken = False
+@@ -1194,6 +1197,7 @@ class Depsolve(object):
+ nfileRequires.add(name)
+ fileRequires.add(name)
+ reverselookup.setdefault(name, []).append(txmbr.po.pkgtup)
++ self.installedFileRequires[txmbr.po.pkgtup] = files
+
+ todel = []
+ for fname in self.installedFileProviders:
diff --git a/yum.spec b/yum.spec
index 53f8e96..01ba845 100644
--- a/yum.spec
+++ b/yum.spec
@@ -18,7 +18,7 @@
Summary: RPM package installer/updater/manager
Name: yum
Version: 3.4.3
-Release: 53%{?dist}
+Release: 54%{?dist}
License: GPLv2+
Group: System Environment/Base
Source0: http://yum.baseurl.org/download/3.4/%{name}-%{version}.tar.gz
@@ -37,6 +37,7 @@ Patch23: BZ-885139-not-enough-arguments.patch
Patch24: BZ-908870-MD-files-bad.patch
Patch25: BZ-870691-repos-with-no-url.patch
Patch26: BZ-927240-fix-package-download-and-verify.patch
+Patch27: BZ-920758-keep-installedFileRequires-inc-sync.patch
URL: http://yum.baseurl.org/
BuildArchitectures: noarch
@@ -156,6 +157,7 @@ Install this package if you want auto yum updates nightly via cron.
%patch24 -p1
%patch25 -p1
%patch26 -p1
+%patch27 -p1
%patch1 -p1
%build
@@ -331,6 +333,9 @@ exit 0
%endif
%changelog
+* Thu Apr 4 2013 Zdenek Pavlas <zpavlas at redhat.com> - 3.4.3-54
+- Fix a depsolver traceback. BZ 920758
+
* Mon Mar 25 2013 Zdenek Pavlas <zpavlas at redhat.com> - 3.4.3-53
- fix getPackage() calling verifyLocalPkg() too early
- downloadPkgs(): skip duplicated packages, issue warning.
More information about the scm-commits
mailing list