[yum-cvs] yum/yum __init__.py, 1.83, 1.84 depsolve.py, 1.55, 1.56 packages.py, 1.34, 1.35 transactioninfo.py, 1.11, 1.12
Seth Vidal
skvidal at login.linux.duke.edu
Mon Feb 14 06:00:22 UTC 2005
Update of /home/groups/yum/cvs/yum/yum
In directory login:/tmp/cvs-serv2762/yum
Modified Files:
__init__.py depsolve.py packages.py transactioninfo.py
Log Message:
- added in Terje's new patch for the rpm callback
- setup some background for some items in transactioninfo.py - specifically
storing the package object in the transaction member object.
- made pkgtup an attribute of every package object rather than a callable
method.
Index: __init__.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/__init__.py,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -r1.83 -r1.84
--- __init__.py 11 Feb 2005 09:10:54 -0000 1.83
+++ __init__.py 14 Feb 2005 06:00:20 -0000 1.84
@@ -271,12 +271,6 @@
def buildTransaction(self):
"""go through the packages in the transaction set, find them in the
packageSack or rpmdb, and pack up the ts accordingly"""
- #FIXME - dup this function out into cli.py to add callbacks for
- # the depresolution process
- # callbacks should be:
- # - each package added to ts
- # - each dep processed
- # - each restart of dep resolution loop
(rescode, restring) = self.resolveDeps()
return rescode, restring
@@ -435,7 +429,7 @@
return 0
ylp = YumLocalPackage(self.read_ts, fo)
- if ylp.pkgtup() != po.pkgtup():
+ if ylp.pkgtup != po.pkgtup:
if raiseError:
raise URLGrabError(-1, 'Package does not match intended download')
else:
@@ -528,7 +522,7 @@
yip = YumInstalledPackage(hdr) # we're using YumInstalledPackage b/c
# it takes headers <shrug>
- if yip.pkgtup() != po.pkgtup():
+ if yip.pkgtup != po.pkgtup:
if raiseError:
raise URLGrabError(-1, 'Header does not match intended download')
else:
@@ -726,7 +720,7 @@
removed+=1
msg = '%d metadata files removed' % removed
return 0, [msg]
-
+
def sortPkgObj(self, pkg1 ,pkg2):
"""sorts a list of package tuples by name"""
if pkg1.name > pkg2.name:
@@ -735,7 +729,7 @@
return 0
else:
return -1
-
+
def doPackageLists(self, pkgnarrow='all'):
"""generates lists of packages, un-reduced, based on pkgnarrow option"""
@@ -815,7 +809,7 @@
avail = self.pkgSack.simplePkgList()
for hdr in self.rpmdb.getHdrList():
po = YumInstalledPackage(hdr)
- if po.pkgtup() not in avail:
+ if po.pkgtup not in avail:
extras.append(po)
# obsoleting packages (and what they obsolete)
@@ -1054,7 +1048,7 @@
# look it up in the self.localPackages first:
for po in self.localPackages:
- if po.pkgtup() == pkgtup:
+ if po.pkgtup == pkgtup:
return po
pkgs = self.pkgSack.searchNevra(name=n, arch=a, epoch=e, ver=v, rel=r)
Index: depsolve.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/depsolve.py,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -r1.55 -r1.56
--- depsolve.py 11 Feb 2005 06:45:44 -0000 1.55
+++ depsolve.py 14 Feb 2005 06:00:20 -0000 1.56
@@ -268,7 +268,7 @@
hdrs = self.rpmdb.returnHeaderByTuple(pkgtuple)
for hdr in hdrs:
po = packages.YumInstalledPackage(hdr)
- if self.tsInfo.exists(po.pkgtup()):
+ if self.tsInfo.exists(po.pkgtup):
self.log(7, 'Skipping package already in Transaction Set: %s' % po)
continue
if niceformatneed in po.requiresList():
@@ -308,7 +308,7 @@
for po in pkgs:
# if one of them is (name, arch) already in the tsInfo somewhere,
# pop it out of the list
- (n,a,e,v,r) = po.pkgtup()
+ (n,a,e,v,r) = po.pkgtup
thismode = self.tsInfo.getMode(name=n, arch=a)
if thismode is not None:
self.log(5, ' %s already in ts %s, skipping' % (po, thismode))
@@ -335,7 +335,7 @@
requirementTuple = (needname, flags, needversion)
- CheckDeps, missingdep = self._requiringFromInstalled(requiringPkg.pkgtup(), requirementTuple, errormsgs)
+ CheckDeps, missingdep = self._requiringFromInstalled(requiringPkg.pkgtup, requirementTuple, errormsgs)
return (CheckDeps, missingdep, conflicts, errormsgs)
@@ -404,18 +404,18 @@
pkgs = self.pkgSack.returnNewestByName(name)
archs = []
for pkg in pkgs:
- (n,a,e,v,r) = pkg.pkgtup()
+ (n,a,e,v,r) = pkg.pkgtup
archs.append(a)
a = rpmUtils.arch.getBestArchFromList(archs)
po = self.pkgSack.returnNewestByNameArch((n,a))
else:
po = self.pkgSack.returnNewestByNameArch((name,arch))
- if po.pkgtup() not in uplist:
+ if po.pkgtup not in uplist:
po = None
if po:
for (new, old) in self.up.getUpdatesTuples():
- if po.pkgtup() == new:
+ if po.pkgtup == new:
updated_pkg = packages.YumInstalledPackage(self.rpmdb.returnHeaderByTuple(old)[0])
txmbr = self.tsInfo.addUpdate(po, updated_pkg)
txmbr.setAsDep()
@@ -476,7 +476,7 @@
# get rid of things that are already in the rpmdb - b/c it's pointless to use them here
for pkg in provSack.returnPackages():
- if pkg.pkgtup() in self.rpmdb.getPkgList(): # is it already installed?
+ if pkg.pkgtup in self.rpmdb.getPkgList(): # is it already installed?
self.log(5, '%s is in providing packages but it is already installed, removing.' % pkg)
provSack.delPackage(pkg)
continue
@@ -488,7 +488,7 @@
tspkgs = []
if not self.allowedMultipleInstalls(pkg):
- (n, a, e, v, r) = pkg.pkgtup()
+ (n, a, e, v, r) = pkg.pkgtup
# from ts
tspkgs = self.tsInfo.matchNaevr(name=pkg.name, arch=pkg.arch)
@@ -521,7 +521,7 @@
# iterate the provSack briefly, if we find the package is already in the
# tsInfo then just skip this run
for pkg in provSack.returnPackages():
- (n,a,e,v,r) = pkg.pkgtup()
+ (n,a,e,v,r) = pkg.pkgtup
pkgmode = self.tsInfo.getMode(name=n, arch=a, epoch=e, ver=v, rel=r)
if pkgmode in ['i', 'u']:
self.doUpdateSetup()
@@ -545,7 +545,7 @@
elif len(newest) == 1:
best = newest[0]
- if best.pkgtup() in self.rpmdb.getPkgList(): # is it already installed?
+ if best.pkgtup in self.rpmdb.getPkgList(): # is it already installed?
missingdep = 1
checkdeps = 0
msg = 'Missing Dependency: %s is needed by package %s' % (needname, name)
@@ -609,13 +609,13 @@
pkgs = self.pkgSack.returnNewestByName(confname)
archs = []
for pkg in pkgs:
- (n,a,e,v,r) = pkg.pkgtup()
+ (n,a,e,v,r) = pkg.pkgtup
archs.append(a)
a = rpmUtils.arch.getBestArchFromList(archs)
po = self.pkgSack.returnNewestByNameArch((n,a))
else:
po = self.pkgSack.returnNewestByNameArch((confname,confarch))
- if po.pkgtup() not in uplist:
+ if po.pkgtup not in uplist:
po = None
if po:
Index: packages.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/packages.py,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- packages.py 20 Jan 2005 06:59:18 -0000 1.34
+++ packages.py 14 Feb 2005 06:00:20 -0000 1.35
@@ -140,7 +140,7 @@
return returnlist
def bestPackage(pkg1, pkg2):
- """compares two packages (assumes the names are the same), and returns
+ """compares two package tuples (assumes the names are the same), and returns
the one with the best version and the best arch, the sorting is:
for compatible arches, the highest version is best so:
foo-1.1-1.i686 is better than foo-1.1-1.i386 on an i686 machine
@@ -178,6 +178,7 @@
self.epoch = self.doepoch()
self.version = self.tagByName('version')
self.release = self.tagByName('release')
+ self.pkgtup = self._pkgtup()
self.repoid = 'installed'
self.summary = self.tagByName('summary')
self.description = self.tagByName('description')
@@ -191,7 +192,7 @@
val = '%s - %s:%s-%s.%s' % (self.name, self.epoch, self.version,
self.release, self.arch)
return val
-
+
def tagByName(self, tag):
data = self.hdr[tag]
return data
@@ -214,6 +215,7 @@
def returnLocalHeader(self):
return self.hdr
+
def getProvidesNames(self):
"""returns a list of providesNames"""
@@ -241,7 +243,7 @@
return reqlist
- def pkgtup(self):
+ def _pkgtup(self):
return (self.name, self.arch, self.epoch, self.version, self.release)
def size(self):
@@ -291,9 +293,12 @@
self.release = self.tagByName('release')
self.summary = self.tagByName('summary')
self.description = self.tagByName('description')
+ self.pkgtup = self._pkgtup()
-
+ def _pkgtup(self):
+ return (self.name, self.arch, self.epoch, self.version, self.release)
+
def localPkg(self):
return self.localpath
@@ -316,11 +321,12 @@
self.release = self.returnSimple('release')
self.arch = self.returnSimple('arch')
self.repoid = self.returnSimple('repoid')
+ self.pkgtup = self._pkgtup()
def size(self):
return self.returnSimple('packagesize')
- def pkgtup(self):
+ def _pkgtup(self):
return self.returnPackageTuple()
def printVer(self):
Index: transactioninfo.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/transactioninfo.py,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- transactioninfo.py 30 Jan 2005 19:05:24 -0000 1.11
+++ transactioninfo.py 14 Feb 2005 06:00:20 -0000 1.12
@@ -177,7 +177,8 @@
takes a packages object and returns a TransactionMember Object"""
txmbr = TransactionMember()
- txmbr.pkgtup = po.pkgtup()
+ txmbr.po = po
+ txmbr.pkgtup = po.pkgtup
txmbr.current_state = 'repo'
txmbr.output_state = 'installing'
txmbr.ts_state = 'u'
@@ -196,7 +197,8 @@
takes a packages object and returns a TransactionMember Object"""
txmbr = TransactionMember()
- txmbr.pkgtup = po.pkgtup()
+ txmbr.po = po
+ txmbr.pkgtup = po.pkgtup
txmbr.current_state = 'repo'
txmbr.output_state = 'installing'
txmbr.ts_state = 'i'
@@ -216,7 +218,8 @@
takes a packages object and returns a TransactionMember Object"""
txmbr = TransactionMember()
- txmbr.pkgtup = po.pkgtup()
+ txmbr.po = po
+ txmbr.pkgtup = po.pkgtup
txmbr.current_state = 'installed'
txmbr.output_state = 'erasing'
txmbr.ts_state = 'e'
@@ -234,7 +237,8 @@
takes a packages object and returns a TransactionMember Object"""
txmbr = TransactionMember()
- txmbr.pkgtup = po.pkgtup()
+ txmbr.po = po
+ txmbr.pkgtup = po.pkgtup
txmbr.current_state = 'repo'
txmbr.output_state = 'updating'
txmbr.ts_state = 'u'
@@ -245,7 +249,7 @@
txmbr.rel = po.release
txmbr.repoid = po.repoid
if oldpo:
- txmbr.relatedto.append((oldpo.pkgtup(), 'updates'))
+ txmbr.relatedto.append((oldpo.pkgtup, 'updates'))
self.add(txmbr)
return txmbr
@@ -254,7 +258,8 @@
takes a packages object and returns a TransactionMember Object"""
txmbr = TransactionMember()
- txmbr.pkgtup = po.pkgtup()
+ txmbr.po = po
+ txmbr.pkgtup = po.pkgtup
txmbr.current_state = 'repo'
txmbr.output_state = 'obsoleting'
txmbr.ts_state = 'u'
@@ -264,7 +269,7 @@
txmbr.ver = po.version
txmbr.rel = po.release
txmbr.repoid = po.repoid
- txmbr.relatedto.append((oldpo.pkgtup(), 'obsoletes'))
+ txmbr.relatedto.append((oldpo.pkgtup, 'obsoletes'))
self.add(txmbr)
return txmbr
@@ -273,7 +278,8 @@
takes a packages object and returns a TransactionMember Object"""
txmbr = TransactionMember()
- txmbr.pkgtup = po.pkgtup()
+ txmbr.po = po
+ txmbr.pkgtup = po.pkgtup
txmbr.current_state = 'installed'
txmbr.output_state = 'obsoleted'
txmbr.ts_state = None
@@ -283,7 +289,7 @@
txmbr.ver = po.version
txmbr.rel = po.release
txmbr.repoid = po.repoid
- txmbr.relatedto.append((obsoleting_po.pkgtup(), 'obsoletedby'))
+ txmbr.relatedto.append((obsoleting_po.pkgtup, 'obsoletedby'))
self.add(txmbr)
return txmbr
@@ -294,6 +300,7 @@
def __init__(self):
# holders for data
+ self.po = None # package object
self.pkgtup = None # package tuple
self.current_state = None # where the package currently is (repo, installed)
self.ts_state = None # what state to put it into in the transaction set
More information about the Yum-cvs-commits
mailing list