Don't try to build dependency trees for non-existent packages

get_full_tree may be passed an initial package which does not exist in the
target suite, for example because a package declares an obsolete conflict
on a second package which has subsequently been removed.
master
Adam D. Barratt 14 years ago
parent e47201d0f2
commit a81988592a

@ -2132,13 +2132,16 @@ class Britney:
""" """
packages = [pkg] packages = [pkg]
binaries = self.binaries[suite][arch][0] binaries = self.binaries[suite][arch][0]
l = n = 0 if pkg in binaries:
while len(packages) > l: l = n = 0
l = len(packages) while len(packages) > l:
for p in packages[n:]: l = len(packages)
packages.extend([x for x in binaries[p][RDEPENDS] if x not in packages and x in binaries]) for p in packages[n:]:
n = l packages.extend([x for x in binaries[p][RDEPENDS] if x not in packages and x in binaries])
return packages n = l
return packages
else:
return []
def iter_packages(self, packages, selected, hint=False, nuninst=None): def iter_packages(self, packages, selected, hint=False, nuninst=None):
"""Iter on the list of actions and apply them one-by-one """Iter on the list of actions and apply them one-by-one

Loading…
Cancel
Save