Sophie

Sophie

distrib > Fedora > 18 > x86_64 > media > updates-src > by-pkgid > eae5262e2ef560393cec5a40be700a92 > files > 6

yum-3.4.3-54.fc18.src.rpm

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: