[yum-cvs] yum/depsolve.py

Jeremy Katz katzj at linux.duke.edu
Fri Oct 12 13:33:01 UTC 2007


 yum/depsolve.py |   11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

New commits:
commit 71f4aa6339f25792a8e5f3eabb63fa93b8237b88
Author: Jeremy Katz <katzj at redhat.com>
Date:   Fri Oct 12 09:30:40 2007 -0400

    fix requirements moving to new packages when a package is obsoleted

diff --git a/yum/depsolve.py b/yum/depsolve.py
index d3a8575..3f0f962 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -283,7 +283,7 @@ class Depsolve(object):
         else:
             self.verbose_logger.log(logginglevels.DEBUG_2, 'Needed Require is not a package name. Looking up: %s', niceformatneed)
             providers = self.rpmdb.getProvides(needname, needflags, needversion)
-            
+
         for inst_po in providers:
             inst_str = '%s.%s %s:%s-%s' % inst_po.pkgtup
             (i_n, i_a, i_e, i_v, i_r) = inst_po.pkgtup
@@ -299,7 +299,14 @@ class Depsolve(object):
             if thismode is None and i_n not in self.conf.exactarchlist:
                 # check for mode by just the name
                 thismode = self.tsInfo.getMode(name=i_n)
-                            
+
+            # if this package is being obsoleted, it's just like if it's
+            # being upgraded as far as checking for other providers
+            if thismode is None:
+                if filter(lambda x: x.obsoleted_by,
+                          self.tsInfo.matchNaevr(i_n, i_a, i_e, i_v, i_r)):
+                    thismode = 'u'
+
             if thismode is not None:
                 needmode = thismode
 



More information about the Yum-cvs-commits mailing list