[yum-git] 2 commits - yum/depsolve.py yum/sqlitesack.py

James Antill james at linux.duke.edu
Wed Mar 19 20:16:43 UTC 2008


 yum/depsolve.py   |    7 -------
 yum/sqlitesack.py |   16 ++++++++++++++--
 2 files changed, 14 insertions(+), 9 deletions(-)

New commits:
commit ac595e8f08df33816295e756b95aa08a3761c45d
Author: James Antill <james at and.org>
Date:   Wed Mar 19 16:15:45 2008 -0400

    Drop stuff when we see no arch. Drop key2pkg in dropCachedData/close

diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 478f887..a58c8f0 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -291,6 +291,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
             del self._memoize_provides
         if hasattr(self, 'pkgobjlist'):
             del self.pkgobjlist
+        self._key2pkg = {}
         self._search_cache = {
             'provides' : { },
             'requires' : { },
@@ -335,6 +336,10 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
     def _delAllPackages(self, repo):
         """ Exclude all packages from the repo. """
         self._all_excludes[repo] = True
+        if repo in self.excludes:
+            del self.excludes[repo]
+        if repo in self._key2pkg:
+            del self._key2pkg[repo]
 
     def _excluded(self, repo, pkgId):
         if repo in self._all_excludes:
commit 7c302d2d7aa21b903e06c7e19356b192a4184a27
Author: James Antill <james at and.org>
Date:   Wed Mar 19 15:37:53 2008 -0400

     Remove DepCheck() as it's unused.
     Don't double cache data in _search_cache().
     Skip provides from unused repos.

diff --git a/yum/depsolve.py b/yum/depsolve.py
index 15b9277..af42d52 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -635,9 +635,6 @@ class Depsolve(object):
         if not len(self.tsInfo):
             return (0, [_('Success - empty transaction')])
 
-        # holder object for things from the check
-        if not hasattr(self, '_dcobj'):
-            self._dcobj = DepCheck()
         self.po_with_problems = set()
         self._working_po = None
         self.tsInfo.resetResolved(hard=False)
@@ -786,8 +783,6 @@ class Depsolve(object):
             self.verbose_logger.log(logginglevels.DEBUG_2, _("looking for %s as a requirement of %s"), req, txmbr)
             provs = self.tsInfo.getProvides(*req)
             if not provs:
-                reqtuple = (req[0], version_tuple_to_string(req[2]), flags[req[1]])
-                self._dcobj.addRequires(txmbr.po, [reqtuple])
                 ret.append( (txmbr.po, (req[0], flags[req[1]], version_tuple_to_string(req[2]))) )
                 continue
 
@@ -823,8 +818,6 @@ class Depsolve(object):
             for pkg, hits in self.tsInfo.getRequires(*prov).iteritems():
                 for rn, rf, rv in hits:
                     if not self.tsInfo.getProvides(rn, rf, rv):
-                        reqtuple = (rn, version_tuple_to_string(rv), flags[rf])
-                        self._dcobj.addRequires(pkg, [reqtuple])
                         ret.append( (pkg, (rn, flags[rf], version_tuple_to_string(rv))) )
         return ret
 
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 80f916a..478f887 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -647,8 +647,10 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
         # Requires is the biggest hit, pre-loading provides actually hurts
         if prcotype != 'requires':
             primarydb_items = self.primarydb.items()
+            preload = False
         else:
             primarydb_items = []
+            preload = True
             memoize = self._search_get_memoize(prcotype)
             for (rep,cache) in self.primarydb.items():
                 if rep in self._all_excludes:
@@ -665,6 +667,9 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
                     result[self._packageByKey(rep, pkgKey)] = hits
 
         for (rep,cache) in primarydb_items:
+            if rep in self._all_excludes:
+                continue
+
             cur = cache.cursor()
             executeSQL(cur, "select * from %s where name=?" % prcotype,
                        (name,))
@@ -682,7 +687,8 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
                 result[self._packageByKey(rep, pkgKey)] = hits
 
         if prcotype != 'provides' or name[0] != '/':
-            self._search_cache[prcotype][req] = result
+            if not preload:
+                self._search_cache[prcotype][req] = result
             return result
 
         if not misc.re_primary_filename(name):
@@ -690,7 +696,8 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
             # search the files.xml file info
             for pkg in self.searchFiles(name, strict=True):
                 result[pkg] = [(name, None, None)]
-            self._search_cache[prcotype][req] = result
+            if not preload:
+                self._search_cache[prcotype][req] = result
             return result
 
         # If it is a filename, search the primary.xml file info



More information about the Yum-cvs-commits mailing list