[yum-commits] package-cleanup.py

skvidal at osuosl.org skvidal at osuosl.org
Fri Mar 6 17:55:57 UTC 2009


 package-cleanup.py |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

New commits:
commit 249469f0d82a73e5bcb579b877ee3fe90a56ff18
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Fri Mar 6 12:53:51 2009 -0500

    when we clean up kernels make sure that:
    1. we look at kernel-PAE,too
    2. the running kernel coming back from os.uname()[2] matches what we expect (it changed in F10)
    3. if we don't have any kernels installed, it's not an error, it's probably just Xen

diff --git a/package-cleanup.py b/package-cleanup.py
index 9529b68..c7974f7 100755
--- a/package-cleanup.py
+++ b/package-cleanup.py
@@ -284,7 +284,7 @@ def listOrphans(my):
 def getKernels(my):
     """return a list of all installed kernels, sorted newest to oldest"""
     kernlist = []
-    for po in my.rpmdb.searchNevra(name='kernel'):
+    for po in my.rpmdb.searchNevra(name='kernel') + my.rpmdb.searchNevra(name='kernel-PAE'):
         kernlist.append(po.pkgtup)
     kernlist.sort(sortPackages)
     kernlist.reverse()
@@ -294,7 +294,7 @@ def getKernels(my):
 # are no longer installed or to kernel version that are in the removelist
 def getOldKernelDevel(my,kernels,removelist):
     devellist = []
-    for po in my.rpmdb.searchNevra(name='kernel-devel'):
+    for po in my.rpmdb.searchNevra(name='kernel-devel') + my.rpmdb.searchNevra(name='kernel-PAE-devel'):
         # For all kernel-devel packages see if there is a matching kernel
         # in kernels but not in removelist
         tup = po.pkgtup
@@ -346,10 +346,11 @@ def removeKernels(my, count, confirmed, keepdevel):
     # Vanilla kernels dont have a release, only a version
     if '-' in runningkernel:
         (kver,krel) = runningkernel.split('-')
+        if krel.split('.')[-1] == os.uname()[-1]:
+           krel = ".".join(krel.split('.')[:-1])
     else:
         kver = runningkernel
         krel = ""
-    
     remove = kernels[count:]
     toremove = []
     
@@ -361,6 +362,10 @@ def removeKernels(my, count, confirmed, keepdevel):
         else:
             toremove.append(kernel)
     
+    if len(kernels) == 0:
+        print "No kernels to remove."
+        sys.exit(0)
+        
     if len(kernels) - len(toremove) < 1:
         print "Error all kernel rpms are set to be removed"
         sys.exit(100)


More information about the Yum-commits mailing list