[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