[yum-git] 2 commits - yum/__init__.py yum/rpmsack.py

Seth Vidal skvidal at linux.duke.edu
Mon Mar 24 18:24:08 UTC 2008


 yum/__init__.py |    6 ++----
 yum/rpmsack.py  |    7 ++++++-
 2 files changed, 8 insertions(+), 5 deletions(-)

New commits:
commit 08b247e6541422db41c4c350c5df5b4c38a7f26c
Merge: e1bb34b... 72569b7...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Mon Mar 24 14:19:12 2008 -0400

    Merge branch 'master' of ssh://login.linux.duke.edu/home/groups/yum/git/yum
    
    * 'master' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
       Special workaround for depsolving, load prco data without keeping hdr
      Add buildtime for hacky pkgid

commit e1bb34bd120e4db847f03470d9cde46bf62f90c5
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Mon Mar 24 14:18:51 2008 -0400

    make rpmsack._pkglist return direct from the rpm hdr objects and not
    pass through ReturnPackages() saves us a 1/2 second on any load of the
    pkglist not preceded by a call to returnPackages()

diff --git a/yum/__init__.py b/yum/__init__.py
index bff85b9..d3b63c3 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -536,7 +536,7 @@ class YumBase(depsolve.Depsolve):
                 pass
             else:
                 reposWithGroups.append(repo)
-                
+        
         # now we know which repos actually have groups files.
         overwrite = self.conf.overwrite_groups
         self._comps = comps.Comps(overwrite_groups = overwrite)
@@ -562,10 +562,8 @@ class YumBase(depsolve.Depsolve):
 
         if self._comps.compscount == 0:
             raise Errors.GroupsError, _('No Groups Available in any repository')
-        
-        pkglist = self.rpmdb.simplePkgList()
-        self._comps.compile(pkglist)
 
+        self._comps.compile(self.rpmdb.pkglist)
         self.verbose_logger.debug('group time: %0.3f' % (time.time() - group_st))                
         return self._comps
     
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index a8ad67a..e81b5a0 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -90,6 +90,7 @@ class RPMDBPackageSack(PackageSackBase):
         self._name2pkg = {}
         self._tup2pkg = {}
         self._completely_loaded = False
+        self._simple_pkgtup_list = []
         self.ts = None
 
         self._cache = {
@@ -104,7 +105,11 @@ class RPMDBPackageSack(PackageSackBase):
         '''Getter for the pkglist property. 
         Returns a list of package tuples.
         '''
-        return [po.pkgtup for po in self.returnPackages()]
+        if not self._simple_pkgtup_list:
+            for (hdr, mi) in self._all_packages():
+                self._simple_pkgtup_list.append(self._hdr2pkgTuple(hdr))
+            
+        return self._simple_pkgtup_list
 
     pkglist = property(_get_pkglist, None)
 



More information about the Yum-cvs-commits mailing list