[yum-cvs] yum/yum __init__.py,1.288,1.289
Seth Vidal
skvidal at linux.duke.edu
Tue Feb 27 05:32:13 UTC 2007
Update of /home/groups/yum/cvs/yum/yum
In directory login1.linux.duke.edu:/tmp/cvs-serv3712/yum
Modified Files:
__init__.py
Log Message:
- small speed improvements to doPackageLists()
- some minor changes to _getSacks()
Index: __init__.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/__init__.py,v
retrieving revision 1.288
retrieving revision 1.289
diff -u -r1.288 -r1.289
--- __init__.py 23 Feb 2007 07:30:18 -0000 1.288
+++ __init__.py 27 Feb 2007 05:32:11 -0000 1.289
@@ -356,38 +356,40 @@
if self._pkgSack:
return self._pkgSack
-
+
if self._pkgSack and thisrepo is None:
self.verbose_logger.log(logginglevels.DEBUG_4,
'skipping reposetup, pkgsack exists')
return self._pkgSack
-
+
if thisrepo is None:
repos = self.repos.listEnabled()
else:
repos = self.repos.findRepos(thisrepo)
-
+
self.verbose_logger.debug('Setting up Package Sacks')
if not archlist:
archlist = rpmUtils.arch.getArchList()
-
+
archdict = {}
for arch in archlist:
archdict[arch] = 1
-
+
self.repos.getPackageSack().setCompatArchs(archdict)
self.repos.populateSack(which=repos)
self._pkgSack = self.repos.getPackageSack()
+ #FIXME - this is not very fast
self.excludePackages()
- self.pkgSack.excludeArchs(archlist)
-
+ self._pkgSack.excludeArchs(archlist)
+
+ #FIXME - this could be faster, too.
for repo in repos:
self.excludePackages(repo)
self.includePackages(repo)
self.plugins.run('exclude')
- self.pkgSack.buildIndexes()
-
+ self._pkgSack.buildIndexes()
+
return self._pkgSack
@@ -1003,7 +1005,6 @@
# list all packages - those installed and available, don't 'think about it'
if pkgnarrow == 'all':
- inst = self.rpmdb.simplePkgList()
for po in self.rpmdb:
installed.append(po)
@@ -1011,10 +1012,10 @@
avail = self.pkgSack.returnPackages()
else:
avail = self.pkgSack.returnNewestByNameArch()
-
+
+ self.rpmdb._make_header_dict()
for pkg in avail:
- pkgtup = (pkg.name, pkg.arch, pkg.epoch, pkg.version, pkg.release)
- if pkgtup not in inst:
+ if not self.rpmdb._header_dict.has_key(pkg.pkgtup):
available.append(pkg)
# produce the updates list of tuples
@@ -1035,22 +1036,22 @@
# installed only
elif pkgnarrow == 'installed':
- for po in self.rpmdb:
- installed.append(po)
+ installed = self.rpmdb.returnPackages()
# available in a repository
elif pkgnarrow == 'available':
- inst = self.rpmdb.simplePkgList()
+
if self.conf.showdupesfromrepos:
avail = self.pkgSack.returnPackages()
else:
avail = self.pkgSack.returnNewestByNameArch()
-
+
+ self.rpmdb._make_header_dict()
for pkg in avail:
- pkgtup = (pkg.name, pkg.arch, pkg.epoch, pkg.version, pkg.release)
- if pkgtup not in inst:
+ if not self.rpmdb._header_dict.has_key(pkg.pkgtup):
available.append(pkg)
+
# not in a repo but installed
elif pkgnarrow == 'extras':
# we must compare the installed set versus the repo set
More information about the Yum-cvs-commits
mailing list