[yum-cvs] yum/yum __init__.py,1.217,1.218

Jeremy Katz katzj at linux.duke.edu
Tue Jul 25 14:40:39 UTC 2006


Update of /home/groups/yum/cvs/yum/yum
In directory login1.linux.duke.edu:/tmp/cvs-serv13158/yum

Modified Files:
	__init__.py 
Log Message:
only clean the installed headers/packages as opposed to all (rh#189483 
and others)


Index: __init__.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/__init__.py,v
retrieving revision 1.217
retrieving revision 1.218
diff -u -r1.217 -r1.218
--- __init__.py	12 Jul 2006 18:30:49 -0000	1.217
+++ __init__.py	25 Jul 2006 14:40:36 -0000	1.218
@@ -437,8 +437,7 @@
             raise Errors.YumBaseError, errors
 
         if not self.conf.keepcache:
-            self.cleanHeaders()
-            self.cleanPackages()
+            self.cleanUsedHeadersPackages()
 
         self.plugins.run('posttrans')
         
@@ -820,6 +819,40 @@
             msg = ''
 
         return result, msg
+
+    def cleanUsedHeadersPackages(self):
+        filelist = []
+        for txmbr in self.tsInfo:
+            if txmbr.po.state not in TS_INSTALL_STATES:
+                continue
+            if txmbr.po.repoid == "installed":
+                continue
+            if not self.repos.repos.has_key(txmbr.po.repoid):
+                continue
+            
+            # make sure it's not a local file
+            repo = self.repos.repos[txmbr.po.repoid]
+            local = False
+            for u in repo.baseurl:
+                if u.startswith("file:"):
+                    local = True
+                    break
+                
+            if local:
+                filelist.extend([txmbr.po.localHdr()])
+            else:
+                filelist.extend([txmbr.po.localPkg(), txmbr.po.localHdr()])
+
+        # now remove them
+        for fn in filelist:
+            try:
+                os.unlink(fn)
+            except OSError, e:
+                self.logger.warning('Cannot remove %s', fn)
+                continue
+            else:
+                self.verbose_logger.log(logginglevels.DEBUG_4,
+                    '%s removed', fn)
         
     def cleanHeaders(self):
         filelist = []




More information about the Yum-cvs-commits mailing list