[yum-cvs] yum/depsolve.py yum/__init__.py yum/rpmsack.py

Tim Lauridsen timlau at linux.duke.edu
Thu Oct 4 10:07:12 UTC 2007


 yum/__init__.py |    9 +--------
 yum/depsolve.py |   23 +++++++++--------------
 yum/rpmsack.py  |    1 -
 3 files changed, 10 insertions(+), 23 deletions(-)

New commits:
commit 901a3bef4b34e5c25faa275953f9d233791fa025
Author: Tim Lauridsen <tla at rasmil.dk>
Date:   Thu Oct 4 12:06:16 2007 +0200

    patches by ffesti
    * use package objects in the cheaterlookup instead of pkgtups
    * move from whatProvides to getProvides in returnInstalledPackagesByDep

diff --git a/yum/__init__.py b/yum/__init__.py
index f27b4bf..6189ee8 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1745,7 +1745,6 @@ class YumBase(depsolve.Depsolve):
         """Pass in a generic [build]require string and this function will 
            pass back the installed packages it finds providing that dep."""
         
-        results = []
         # parse the string out
         #  either it is 'dep (some operator) e:v-r'
         #  or /file/dep
@@ -1764,14 +1763,8 @@ class YumBase(depsolve.Depsolve):
                 if not SYMBOLFLAGS.has_key(flagsymbol):
                     raise Errors.YumBaseError, 'Invalid version flag'
                 depflags = SYMBOLFLAGS[flagsymbol]
-                
-        pkglist = self.rpmdb.whatProvides(depname, depflags, depver)
-        
-        for pkgtup in pkglist:
-            results.append(self.getInstalledPackageObject(pkgtup))
         
-        return results
-
+        return self.rpmdb.getProvides(depname, depflags, depver).keys()
 
     def _bestPackageFromList(self, pkglist):
         """take list of package objects and return the best package object.
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 06ddc7a..5da8810 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -273,21 +273,21 @@ class Depsolve(object):
         
         if self.cheaterlookup.has_key((needname, needflags, needversion)):
             self.verbose_logger.log(logginglevels.DEBUG_2, 'Needed Require has already been looked up, cheating')
-            cheater_tup = self.cheaterlookup[(needname, needflags, needversion)]
-            providers = [cheater_tup]
+            cheater_po = self.cheaterlookup[(needname, needflags, needversion)]
+            providers = [cheater_po]
         
         elif self.rpmdb.installed(name=needname):
             txmbrs = self.tsInfo.matchNaevr(name=needname)
             for txmbr in txmbrs:
-                providers.append(txmbr.pkgtup)
+                providers.append(txmbr.po)
 
         else:
             self.verbose_logger.log(logginglevels.DEBUG_2, 'Needed Require is not a package name. Looking up: %s', niceformatneed)
-            providers = self.rpmdb.whatProvides(needname, needflags, needversion)
+            providers = self.rpmdb.getProvides(needname, needflags, needversion)
             
-        for insttuple in providers:
-            inst_str = '%s.%s %s:%s-%s' % insttuple
-            (i_n, i_a, i_e, i_v, i_r) = insttuple
+        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
             self.verbose_logger.log(logginglevels.DEBUG_2,
                 'Potential Provider: %s', inst_str)
             thismode = self.tsInfo.getMode(name=i_n, arch=i_a, 
@@ -303,13 +303,8 @@ class Depsolve(object):
                             
             if thismode is not None:
                 needmode = thismode
-                if self.rpmdb.installed(name=i_n, arch=i_a, ver=i_v, 
-                                        epoch=i_e, rel=i_r):
-                    needpo = self.rpmdb.searchPkgTuple(insttuple)[0]
-                else:
-                    needpo = self.getPackageObject(insttuple)
 
-                self.cheaterlookup[(needname, needflags, needversion)] = insttuple
+                self.cheaterlookup[(needname, needflags, needversion)] = inst_po
                 self.verbose_logger.log(logginglevels.DEBUG_2, 'Mode is %s for provider of %s: %s',
                     needmode, niceformatneed, inst_str)
                 break
@@ -321,7 +316,7 @@ class Depsolve(object):
             self.verbose_logger.log(logginglevels.DEBUG_2, 'TSINFO: %s package requiring %s marked as erase',
                 requiringPo, needname)
             txmbr = self.tsInfo.addErase(requiringPo)
-            txmbr.setAsDep(po=needpo)
+            txmbr.setAsDep(po=inst_po)
             checkdeps = 1
         
         if needmode in ['i', 'u']:
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index fb11b50..7bd94e6 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -392,7 +392,6 @@ class RPMDBPackageSack(PackageSackBase):
         if name[0] =='/':
             morepkgs = self.searchFiles(name)
             pkgs.extend(morepkgs)
-        
         if flags == 0:
             flags = None
         if type(version) is types.StringType:



More information about the Yum-cvs-commits mailing list