If we do resolveDeps() a second time, then if we failed make sure we do a
authorJames Antill <james@and.org>
Thu, 5 Mar 2009 05:42:32 +0000 (00:42 -0500)
committerJames Antill <james@and.org>
Thu, 5 Mar 2009 05:44:37 +0000 (00:44 -0500)
full check the second time through. Otherwise we'll miss conflicts
unless we get new ones.

yum/__init__.py
yum/depsolve.py

index 5acadca..d74d2f1 100644 (file)
@@ -688,7 +688,7 @@ class YumBase(depsolve.Depsolve):
         self.plugins.run('postresolve', rescode=rescode, restring=restring)
         
         if self.tsInfo.changed:
-            (rescode, restring) = self.resolveDeps()
+            (rescode, restring) = self.resolveDeps(rescode == 1)
         if self.tsInfo.pkgSack is not None: # rm Transactions don't have pkgSack
             self.tsInfo.pkgSack.dropCachedData()
         self.rpmdb.dropCachedData()
index 97f2b3f..9024957 100644 (file)
@@ -668,7 +668,7 @@ class Depsolve(object):
         p.print_stats(20)
         return rc
 
-    def resolveDeps(self):
+    def resolveDeps(self, full_check=True):
 
         if not len(self.tsInfo):
             return (0, [_('Success - empty transaction')])
@@ -679,8 +679,8 @@ class Depsolve(object):
         self.tsInfo.resetResolved(hard=False)
 
         CheckDeps = True
-        CheckRemoves = False
-        CheckInstalls = False
+        CheckRemoves = full_check
+        CheckInstalls = full_check
 
         missingdep = 0
         errors = []