[yum-cvs] yum/yum __init__.py, 1.150, 1.151 transactioninfo.py, 1.22, 1.23

Seth Vidal skvidal at login.linux.duke.edu
Mon Nov 21 02:25:53 UTC 2005


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

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

do ts check for the updatable package already being obsoleted


Index: __init__.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/__init__.py,v
retrieving revision 1.150
retrieving revision 1.151
diff -u -r1.150 -r1.151
--- __init__.py	20 Nov 2005 09:15:28 -0000	1.150
+++ __init__.py	21 Nov 2005 02:25:50 -0000	1.151
@@ -1699,11 +1699,10 @@
                # in that order
                # all along checking to make sure we:
                 # don't update something that's already been obsoleted
-                # update to the newesr version we can
-                # don't mark anything for update more than once
-        
+            
+            
             for installed_pkg in instpkgs:
-                if self.up.obsoleted_dict.has_key(installed_pkg.pkgtup):
+                if self.up.obsoleted_dict.has_key(installed_pkg.pkgtup) and self.conf.obsoletes:
                     obsoleting = self.up.obsoleted_dict[installed_pkg.pkgtup][0]
                     obsoleting_pkg = self.getPackageObject(obsoleting)
                     # FIXME check for what might be in there here
@@ -1714,19 +1713,23 @@
             for available_pkg in availpkgs:
                 if self.up.updating_dict.has_key(available_pkg.pkgtup):
                     updated = self.up.updating_dict[available_pkg.pkgtup][0]
-                    hdr = self.rpmdb.returnHeaderByTuple(updated)[0]
-                    updated_pkg =  YumInstalledPackage(hdr)
-                    # FIXME, check for what might already be in the tsInfo
-                    txmbr = self.tsInfo.addUpdate(available_pkg, updated_pkg)
-                    tx_return.append(txmbr)
+                    if self.tsInfo.isObsoleted(updated):
+                        self.log(5, 'Not Updating Package that is already obsoleted: %s.%s %s:%s-%s' % updated)
+                    else:
+                        hdr = self.rpmdb.returnHeaderByTuple(updated)[0]
+                        updated_pkg =  YumInstalledPackage(hdr)
+                        txmbr = self.tsInfo.addUpdate(available_pkg, updated_pkg)
+                        tx_return.append(txmbr)
                     
             for installed_pkg in instpkgs:
                 if self.up.updatesdict.has_key(installed_pkg.pkgtup):
                     updating = self.up.updatesdict[installed_pkg.pkgtup][0]
                     updating_pkg = self.getPackageObject(updating)
-                    # FIXME, check for what might already be in the tsInfo
-                    txmbr = self.tsInfo.addUpdate(updating_pkg, installed_pkg)
-                    tx_return.append(txmbr)
+                    if self.tsInfo.isObsoleted(installed_pkg.pkgtup):
+                        self.log(5, 'Not Updating Package that is already obsoleted: %s.%s %s:%s-%s' % installed_pkg.pkgtup)
+                    else:
+                        txmbr = self.tsInfo.addUpdate(updating_pkg, installed_pkg)
+                        tx_return.append(txmbr)
 
         return tx_return
         

Index: transactioninfo.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/transactioninfo.py,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- transactioninfo.py	27 Oct 2005 05:34:02 -0000	1.22
+++ transactioninfo.py	21 Nov 2005 02:25:50 -0000	1.23
@@ -143,6 +143,15 @@
         
         return 0
 
+    def isObsoleted(self, pkgtup):
+        """true if the pkgtup is marked to be obsoleted"""
+        if self.exists(pkgtup):
+            for txmbr in self.getMembers(pkgtup=pkgtup):
+                if txmbr.output_state == TS_OBSOLETED:
+                    return True
+        
+        return False
+                
     def makelists(self):
         """returns lists of transaction Member objects based on mode:
            updated, installed, erased, obsoleted, depupdated, depinstalled




More information about the Yum-cvs-commits mailing list