From e26bc2381803944220d258faf4bda5c71f18a85f Mon Sep 17 00:00:00 2001 From: Niels Thykier Date: Sat, 24 Dec 2011 00:41:24 +0100 Subject: [PATCH] Constant propagate "strict" variable Signed-off-by: Niels Thykier --- britney.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/britney.py b/britney.py index 006489d..8a1435c 100755 --- a/britney.py +++ b/britney.py @@ -960,7 +960,7 @@ class Britney: return 0 - def get_dependency_solvers(self, block, arch, distribution, strict=False): + def get_dependency_solvers(self, block, arch, distribution): """Find the packages which satisfy a dependency block This method returns the list of packages which satisfy a dependency @@ -990,11 +990,9 @@ class Britney: for prov in binaries[1].get(name, []): if prov not in binaries[0]: continue package = binaries[0][prov] - # check the versioned dependency (if present) - # TODO: this is forbidden by the debian policy, which says that versioned - # dependencies on virtual packages are never satisfied. The old britney - # does it and we have to go with it, but at least a warning should be raised. - if op == '' and version == '' or not strict and apt_pkg.check_dep(package[VERSION], op, version): + # A provides only satisfies an unversioned dependency + # (per Policy Manual ยง7.5) + if op == '' and version == '': packages.append(prov) return (len(packages) > 0, packages) @@ -1016,7 +1014,6 @@ class Britney: # local copies for better performances parse_depends = apt_pkg.parse_depends get_dependency_solvers = self.get_dependency_solvers - strict = True # not self.options.compatible # analyze the dependency fields (if present) for type_key, type in ((PREDEPENDS, 'Pre-Depends'), (DEPENDS, 'Depends')): @@ -1026,7 +1023,7 @@ class Britney: # for every block of dependency (which is formed as conjunction of disconjunction) for block, block_txt in zip(parse_depends(binary_u[type_key]), binary_u[type_key].split(',')): # if the block is satisfied in testing, then skip the block - solved, packages = get_dependency_solvers(block, arch, 'testing', strict=strict) + solved, packages = get_dependency_solvers(block, arch, 'testing') if solved: for p in packages: if p not in self.binaries[suite][arch][0]: continue @@ -1034,7 +1031,7 @@ class Britney: continue # check if the block can be satisfied in unstable, and list the solving packages - solved, packages = get_dependency_solvers(block, arch, suite, strict=strict) + solved, packages = get_dependency_solvers(block, arch, suite) packages = [self.binaries[suite][arch][0][p][SOURCE] for p in packages] # if the dependency can be satisfied by the same source package, skip the block: