[yum-commits] 2 commits - repoclosure.py

skvidal at osuosl.org skvidal at osuosl.org
Mon Aug 31 19:06:31 UTC 2009


 repoclosure.py |   22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

New commits:
commit 3d0b04ac02969c710ea28c6a565af5d1ced41fd7
Merge: 14f5a96... 1a20407...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Mon Aug 31 14:50:16 2009 -0400

    Merge branch 'master' of ssh://yum.baseurl.org/srv/projects/yum/git/yum-utils
    
    * 'master' of ssh://yum.baseurl.org/srv/projects/yum/git/yum-utils:
      If epoch is none we still want to use version in repoclosure.

commit 14f5a964c121eb942751747ac4587cd9d371dd8f
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Mon Aug 31 14:49:23 2009 -0400

    make sure we make the list of pkgs to look at based on the latest
    pkgsack - complete with pkg deletions of the obsoletes

diff --git a/repoclosure.py b/repoclosure.py
index 54e233b..19ad0c2 100755
--- a/repoclosure.py
+++ b/repoclosure.py
@@ -29,6 +29,7 @@ import yum.Errors
 from yum.misc import getCacheDir
 from optparse import OptionParser
 import rpmUtils.arch
+import rpmUtils.updates
 from yum.constants import *
 from yum.packageSack import ListPackageSack
 
@@ -114,13 +115,26 @@ class RepoClosure(yum.YumBase):
     def getBrokenDeps(self, newest=False):
         unresolved = {}
         resolved = {}
+        pkgs = self.pkgSack
         if newest:
             pkgs = self.pkgSack.returnNewestByNameArch()
-        else:
-            pkgs = self.pkgSack
+            mypkgSack = ListPackageSack(pkgs)
+            pkgtuplist = mypkgSack.simplePkgList()
+            
+            # toss out any of the obsoleted pkgs so we can't depsolve with them
+            self.up = rpmUtils.updates.Updates([], pkgtuplist)
+            self.up.rawobsoletes = mypkgSack.returnObsoletes()
+            for pkg in pkgs:
+                fo = self.up.checkForObsolete([pkg.pkgtup])
+                if fo:
+                    print "ignoring obsolete pkg %s" % pkg
+                    for i in fo[pkg.pkgtup]:
+                        print i
+                    self.pkgSack.delPackage(pkg)
 
-        mypkgSack = ListPackageSack(pkgs)
-        pkgtuplist = mypkgSack.simplePkgList()
+            # we've deleted items so remake the pkgs
+            pkgs = self.pkgSack.returnNewestByNameArch()
+            pkgtuplist = mypkgSack.simplePkgList()
         
         if self.builddeps:
             pkgs = filter(lambda x: x.arch == 'src', pkgs)


More information about the Yum-commits mailing list