extras-repoclosure rc-modified,1.15,1.16

Michael Schwendt (mschwendt) fedora-extras-commits at redhat.com
Fri Jan 19 20:34:20 UTC 2007


Author: mschwendt

Update of /cvs/fedora/extras-repoclosure
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv14419

Modified Files:
	rc-modified 
Log Message:
insert a hack to skip out-of-date pkgs after a noarch<->arch switch


Index: rc-modified
===================================================================
RCS file: /cvs/fedora/extras-repoclosure/rc-modified,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- rc-modified	19 Jan 2007 20:05:26 -0000	1.15
+++ rc-modified	19 Jan 2007 20:34:18 -0000	1.16
@@ -94,7 +94,13 @@
     def getBrokenDeps(self, newest=False):
         unresolved = {}
         resolved = {}
+        newpkgtuplist = []
         if newest:
+            pkgs = []
+            for l in self.pkgSack.returnNewestByName():
+                pkgs.extend(l)
+            newestpkgtuplist = ListPackageSack(pkgs).simplePkgList()
+
             pkgs = self.pkgSack.returnNewestByNameArch()
         else:
             pkgs = self.pkgSack
@@ -119,6 +125,19 @@
             except:
                 pass
 
+            def isnotnewest(pkg):
+                # Handle noarch<->arch switches in package updates, so any
+                # old nevra returned by returnNewestByNameArch() are skipped.
+                # TODO: There must be a more elegant/convenient way.
+                if (pkg.pkgtup[1] == 'noarch'):
+                    if (pkg.pkgtup not in newestpkgtuplist):
+                        return True
+                else:
+                    for p in self.pkgSack.returnNewestByName(pkg.pkgtup[0]):
+                        if (p.pkgtup[1] == 'noarch') and (p.pkgtup in newestpkgtuplist):
+                            return True
+                return False
+
             for (req, flags, (reqe, reqv, reqr)) in pkg.returnPrco('requires'):
                 if req.startswith('rpmlib'): continue # ignore rpmlib deps
             
@@ -131,6 +150,8 @@
                     pass
             
                 if len(resolve_sack) < 1:
+                    if newest and isnotnewest(pkg):
+                        break
                     if not unresolved.has_key(pkg):
                         unresolved[pkg] = []
                     unresolved[pkg].append((req, flags, ver))




More information about the scm-commits mailing list