[yum-cvs] yum/yum depsolve.py,1.161,1.162
Jeremy Katz
katzj at linux.duke.edu
Tue Apr 24 19:45:21 UTC 2007
Update of /home/groups/yum/cvs/yum/yum
In directory login1.linux.duke.edu:/tmp/cvs-serv8654/yum
Modified Files:
depsolve.py
Log Message:
checking conflicts is good for us (rh#237599)
Index: depsolve.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/depsolve.py,v
retrieving revision 1.161
retrieving revision 1.162
diff -u -r1.161 -r1.162
--- depsolve.py 19 Apr 2007 07:43:09 -0000 1.161
+++ depsolve.py 24 Apr 2007 19:45:19 -0000 1.162
@@ -949,6 +949,29 @@
break
if not found:
member.setAsDep(txmbr.po)
+
+ for conflict in txmbr.po.returnPrco('conflicts'):
+ (r, f, v) = conflict
+ txmbrs = self.tsInfo.matchNaevr(name=r)
+ for tx in self.tsInfo.getMembersWithState(output_states = TS_INSTALL_STATES):
+ if tx.name != r and r not in tx.po.provides_names:
+ continue
+ if tx.po.checkPrco('provides', (r, f, v)):
+ ret.append( ((txmbr.name, txmbr.version, txmbr.release),
+ (r, version_tuple_to_string(v)), flags[f],
+ None, rpm.RPMDEP_SENSE_CONFLICTS) )
+
+ inst = self.rpmdb.whatProvides(r, None, None)
+ for pkgtup in inst:
+ txmbrs = self.tsInfo.getMembersWithState(pkgtup,
+ TS_REMOVE_STATES)
+ if not txmbrs:
+ po = self.getInstalledPackageObject(pkgtup)
+ if po.checkPrco('provides', (r, f, v)):
+ ret.append( ((txmbr.name, txmbr.version, txmbr.release),
+ (r, version_tuple_to_string(v)), flags[f],
+ None, rpm.RPMDEP_SENSE_CONFLICTS) )
+
return ret
def _checkRemove(self, txmbr):
More information about the Yum-cvs-commits
mailing list