[yum-cvs] yum/yum depsolve.py, 1.71, 1.72 transactioninfo.py, 1.24, 1.25

Seth Vidal skvidal at login.linux.duke.edu
Thu Dec 8 08:33:36 UTC 2005


Update of /home/groups/yum/cvs/yum/yum
In directory login:/tmp/cvs-serv4375/yum

Modified Files:
	depsolve.py transactioninfo.py 
Log Message:

depsolve.py:
  - new api for txmbr.setAsDep()
  - fix minor indentation item
  - label some fixmes and potential improvements


Index: depsolve.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/depsolve.py,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -r1.71 -r1.72
--- depsolve.py	16 Nov 2005 03:04:30 -0000	1.71
+++ depsolve.py	8 Dec 2005 08:33:33 -0000	1.72
@@ -391,6 +391,8 @@
     def _requiringFromInstalled(self, requiringPkg, requirement, errorlist):
         """processes the dependency resolution for a dep where the requiring 
            package is installed"""
+        
+        # FIXME - should we think about dealing exclusively in package objects?
            
         (name, arch, epoch, ver, rel) = requiringPkg
         requiringPo = self.getInstalledPackageObject(requiringPkg)
@@ -449,11 +451,16 @@
         self.log(5, 'Mode for pkg providing %s: %s' % (niceformatneed, needmode))
         
         if needmode in ['e']:
-                self.log(5, 'TSINFO: %s package requiring %s marked as erase' %
-                                (requiringPo, needname))
-                txmbr = self.tsInfo.addErase(requiringPo)
-                txmbr.setAsDep(pkgtup = needpkgtup)
-                checkdeps = 1
+            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
         
         if needmode in ['i', 'u']:
             self.doUpdateSetup()
@@ -469,11 +476,14 @@
                 for pkgtup in obslist:
                     po = self.getPackageObject(pkgtup)
                 if po:
-                    for (new, old) in self.up.getObsoletesTuples():
+                    for (new, old) in self.up.getObsoletesTuples(): # FIXME query the obsoleting_list now?
                         if po.pkgtup == new:
                             txmbr = self.tsInfo.addObsoleting(po, requiringPo)
                             self.tsInfo.addObsoleted(requiringPo, po)
-                            txmbr.setAsDep(pkgtup = needpkgtup)
+                            needpo = None
+                            if needpkgtup:
+                                needpo = self.getPackageObject(needpkgtup)
+                            txmbr.setAsDep(po=needpo)
                             self.log(5, 'TSINFO: Obsoleting %s with %s to resolve dep.' % (requiringPo, po))
                             checkdeps = 1
                             return checkdeps, missingdep 
@@ -503,7 +513,11 @@
                 for (new, old) in self.up.getUpdatesTuples():
                     if po.pkgtup == new:
                         txmbr = self.tsInfo.addUpdate(po, requiringPo)
-                        txmbr.setAsDep(pkgtup = needpkgtup)
+                        needpo = None
+                        if needpkgtup:
+                            needpo = self.getPackageObject(needpkgtup)
+                        txmbr.setAsDep(po=needpo)
+                        
                         self.log(5, 'TSINFO: Updating %s to resolve dep.' % po)
                 checkdeps = 1
                 
@@ -641,7 +655,8 @@
         
                 
             
-            
+        # FIXME - why can't we look up in the transaction set for the requiringPkg
+        # and know what needs it that way and provide a more sensible dep structure in the txmbr
         if (best.name, best.arch) in self.rpmdb.getNameArchPkgList():
             self.log(3, 'TSINFO: Marking %s as update for %s' % (best, name))
             txmbr = self.tsInfo.addUpdate(best)

Index: transactioninfo.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/transactioninfo.py,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- transactioninfo.py	8 Dec 2005 08:00:36 -0000	1.24
+++ transactioninfo.py	8 Dec 2005 08:33:33 -0000	1.25
@@ -312,14 +312,14 @@
             val = getattr(self.po, attr)
             setattr(self, attr, val)
 
-    def setAsDep(self, pkgtup=None):
+    def setAsDep(self, po=None):
         """sets the transaction member as a dependency and maps the dep into the
            relationship list attribute"""
         
         self.isDep = 1
         if pkgtup:
-            self.relatedto.append((pkgtup, 'dependson'))
-            self.depends_on.append(pkgtup)
+            self.relatedto.append((po.pkgtup, 'dependson'))
+            self.depends_on.append(po)
 
     def __cmp__(self, other):
         if self.name > other.name:




More information about the Yum-cvs-commits mailing list