[yum-cvs] yum/yum depsolve.py,1.164,1.165
Jeremy Katz
katzj at linux.duke.edu
Mon Jun 4 20:03:51 UTC 2007
Update of /home/groups/yum/cvs/yum/yum
In directory login1.linux.duke.edu:/tmp/cvs-serv10272/yum
Modified Files:
depsolve.py
Log Message:
* fix case where we ignore a missing dep on a provide as opposed to a package
name.
* only do the transformation to prco format once for the dep
Index: depsolve.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/depsolve.py,v
retrieving revision 1.164
retrieving revision 1.165
diff -u -r1.164 -r1.165
--- depsolve.py 29 May 2007 15:39:45 -0000 1.164
+++ depsolve.py 4 Jun 2007 20:03:49 -0000 1.165
@@ -223,7 +223,7 @@
self.verbose_logger.log(logginglevels.DEBUG_1,
'Removing Package %s', txmbr.po)
- def _processReq(self, dep):
+ def _processReq(self, dep, prcoformat_need):
"""processes a Requires dep from the resolveDeps functions, returns a tuple
of (CheckDeps, missingdep, conflicts, errors) the last item is an array
of error messages"""
@@ -250,15 +250,11 @@
'Skipping package already in Transaction Set: %s', po)
continue
- # slightly more consistency (most of the time)
- prco_flags = rpmUtils.miscutils.flagToString(flags)
- prco_ver = rpmUtils.miscutils.stringToVersion(needversion)
- prcoformat_need = (needname, prco_flags, prco_ver)
self.verbose_logger.log(logginglevels.DEBUG_2,
'Looking for %s as a requirement of %s',
str(prcoformat_need), po)
- if po.checkPrco('requires', (needname, prco_flags, prco_ver)):
+ if po.checkPrco('requires', prcoformat_need):
pkgs.append(po)
if len(pkgs) < 1: # requiring tuple is not in the rpmdb
@@ -849,8 +845,13 @@
depcount += 1
self.verbose_logger.log(logginglevels.DEBUG_2,
'\nDep Number: %d/%d\n', depcount, len(deps))
+
+ prco_flags = rpmUtils.miscutils.flagToString(flags)
+ prco_ver = rpmUtils.miscutils.stringToVersion(needversion)
+ prcoformat_need = (needname, prco_flags, prco_ver)
+
if sense == rpm.RPMDEP_SENSE_REQUIRES: # requires
- (checkdep, missing, conflict, errormsgs) = self._processReq(dep)
+ (checkdep, missing, conflict, errormsgs) = self._processReq(dep, prcoformat_need)
elif sense == rpm.RPMDEP_SENSE_CONFLICTS: # conflicts - this is gonna be short :)
(checkdep, missing, conflict, errormsgs) = self._processConflict(dep)
@@ -870,10 +871,10 @@
# assuming that we already completely resolved their
# problems
for curpkg in self.dcobj.already_seen.keys():
- if curpkg.name == needname:
+ if curpkg.name == needname or \
+ curpkg.po.checkPrco('provides', prcoformat_need):
del(self.dcobj.already_seen[curpkg])
-
missingdep += missing
conflicts += conflict
CheckDeps |= checkdep
More information about the Yum-cvs-commits
mailing list