From 147ed75d9c9520085542b9bdeadaf80a1f6a0f44 Mon Sep 17 00:00:00 2001 From: "jkeating@reducto.boston.redhat.com" <> Date: Wed, 24 Jan 2007 16:27:28 -0500 Subject: [PATCH] Rework the depsolving just a bit We get a list out of the yum function, so treat it as a list, don't just pick the first package. --- pypungi/gather.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/pypungi/gather.py b/pypungi/gather.py index 332dd23e..6b60f03f 100755 --- a/pypungi/gather.py +++ b/pypungi/gather.py @@ -42,7 +42,7 @@ class Gather(yum.YumBase): self.srpmlist = [] def _provideToPkg(self, req): #this is stolen from Anaconda - best = None + bestlist = None (r, f, v) = req satisfiers = [] @@ -52,13 +52,13 @@ class Gather(yum.YumBase): # care of the case that we select, eg, kernel-smp and then # have something which requires kernel if self.tsInfo.getMembers(po.pkgtup): - return po + return [po] if po not in satisfiers: satisfiers.append(po) if satisfiers: - best = self.bestPackagesFromList(satisfiers)[0] - return best + bestlist = self.bestPackagesFromList(satisfiers) + return bestlist return None def getPackageDeps(self, po): @@ -82,14 +82,15 @@ class Gather(yum.YumBase): if req in provs: continue - dep = self._provideToPkg(req) - if dep is None: + deps = self._provideToPkg(req) + if deps is None: self.logger.warning("Unresolvable dependency %s in %s" % (r, po.name)) continue - if not pkgresults.has_key(dep): - pkgresults[dep] = None - self.tsInfo.addInstall(dep) + for dep in deps: + if not pkgresults.has_key(dep): + pkgresults[dep] = None + self.tsInfo.addInstall(dep) return pkgresults.keys()