---
 yum/depsolve.py |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/yum/depsolve.py b/yum/depsolve.py
index 17b2ce9..eb47587 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -515,8 +515,6 @@ class Depsolve(object):
             if pkgmode in ['i', 'u']:
                 self.verbose_logger.log(logginglevels.DEBUG_2,
                     _('%s already in ts, skipping this one'), pkg)
-                # FIXME: Remove this line, if it is not needed ?
-                # checkdeps = 1
                 self._last_req = pkg
                 return checkdeps, missingdep
 
@@ -527,6 +525,14 @@ class Depsolve(object):
             results = self.update(requiringPo=requiringPo, name=pkg.name,
                                   epoch=pkg.epoch, version=pkg.version,
                                   rel=pkg.rel)
+            #  Note that this does "interesting" things with multilib. We can
+            # have say A.i686 and A.x86_64, and if we hit "A.i686" first,
+            # .update() will actually update "A.x86_64" which will then fail
+            # the pkg == txmbr.po test below, but then they'll be nothing to
+            # update when we get around to A.x86_64 ... so this entire loop
+            # fails.
+            #  Keeping results through the loop and thus. testing each pkg
+            # against all txmbr's from previous runs "fixes" this.
             for txmbr in results:
                 if pkg == txmbr.po:
                     checkdeps = True
@@ -551,7 +557,6 @@ class Depsolve(object):
             return checkdeps, missingdep
         
                 
-            
         # FIXME - why can't we look up in the transaction set for the 
requiringPkg
         # and know what needs it that way and provide a more sensible dep 
structure in the txmbr
         inst = self.rpmdb.searchNevra(name=best.name, arch=best.arch)
@@ -562,6 +567,7 @@ class Depsolve(object):
             txmbr = self.tsInfo.addUpdate(best, inst[0])
             txmbr.setAsDep(po=requiringPo)
             txmbr.reason = "dep"
+            checkdeps = True
             self._last_req = best
         else:
             self.verbose_logger.debug(_('TSINFO: Marking %s as install for 
%s'), best,
-- 
1.7.0.1

_______________________________________________
Yum-devel mailing list
Yum-devel@lists.baseurl.org
http://lists.baseurl.org/mailman/listinfo/yum-devel

Reply via email to