[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