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