[yum-cvs] yum/yum depsolve.py,1.73,1.74
Jeremy Katz
katzj at linux.duke.edu
Wed Dec 14 18:25:36 UTC 2005
Update of /home/groups/yum/cvs/yum/yum
In directory login1.linux.duke.edu:/tmp/cvs-serv1874/yum
Modified Files:
depsolve.py
Log Message:
better fix for #175647 -- find the package object once and allow it to be
either installed or from the sacks. tested with
a) yum update libgcj on a system where updating gcj would break deps
b) yum update gnome-vfs2 where there are things depending on gnome-vfs2
c) yum remove gnome-vfs2
The only case I didn't check was the obsoletes case, but it looks like
the right thing should happen
Index: depsolve.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/depsolve.py,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -r1.73 -r1.74
--- depsolve.py 14 Dec 2005 03:55:07 -0000 1.73
+++ depsolve.py 14 Dec 2005 18:25:34 -0000 1.74
@@ -408,7 +408,7 @@
# if it is then we need to find out what is being done to it and act accordingly
rpmdbNames = self.rpmdb.getNamePkgList()
needmode = None # mode in the transaction of the needed pkg (if any)
- needpkgtup = None
+ needpo = None
providers = []
if self.cheaterlookup.has_key((needname, needflags, needversion)):
@@ -442,7 +442,10 @@
if thismode is not None:
needmode = thismode
- needpkgtup = insttuple
+ try:
+ needpo = self.getInstalledPackageObject(insttuple)
+ except KeyError:
+ needpo = self.getPackageObject(insttuple)
self.cheaterlookup[(needname, needflags, needversion)] = insttuple
self.log(5, 'Mode is %s for provider of %s: %s' %
(needmode, niceformatneed, inst_str))
@@ -454,11 +457,6 @@
self.log(5, 'TSINFO: %s package requiring %s marked as erase' %
(requiringPo, needname))
txmbr = self.tsInfo.addErase(requiringPo)
-
- needpo = None
- if needpkgtup:
- needpo = self.getInstalledPackageObject(needpkgtup)
-
txmbr.setAsDep(po=needpo)
checkdeps = 1
@@ -480,9 +478,6 @@
if po.pkgtup == new:
txmbr = self.tsInfo.addObsoleting(po, requiringPo)
self.tsInfo.addObsoleted(requiringPo, po)
- needpo = None
- if needpkgtup:
- needpo = self.getInstalledPackageObject(needpkgtup)
txmbr.setAsDep(po=needpo)
self.log(5, 'TSINFO: Obsoleting %s with %s to resolve dep.' % (requiringPo, po))
checkdeps = 1
@@ -513,11 +508,7 @@
for (new, old) in self.up.getUpdatesTuples():
if po.pkgtup == new:
txmbr = self.tsInfo.addUpdate(po, requiringPo)
- needpo = None
- if needpkgtup:
- needpo = self.getInstalledPackageObject(needpkgtup)
txmbr.setAsDep(po=needpo)
-
self.log(5, 'TSINFO: Updating %s to resolve dep.' % po)
checkdeps = 1
More information about the Yum-cvs-commits
mailing list