BuildDependsPolicy: handle old python3-apt

Very old versions, such as that run on the Ubuntu archive machine, don't
have the arch parameter.

Handle that by setting APT::Architecture instead
ubuntu/dry-run
Iain Lane 5 years ago committed by Iain Lane
parent 9523425cb2
commit 07b9c517c8

@ -298,6 +298,7 @@ class Britney(object):
# initialize the apt_pkg back-end
apt_pkg.init()
apt_pkg.init_config()
# parse the command line arguments
self._policy_engine = PolicyEngine()

@ -1074,7 +1074,14 @@ class BuildDependsPolicy(BasePolicy):
arch_results[arch] = BuildDepResult.OK
# for every dependency block (formed as conjunction of disjunction)
for block_txt in deps.split(','):
block = parse_src_depends(block_txt, False, arch)
try:
block = parse_src_depends(block_txt, False, arch)
except TypeError:
# old python3-apt didn't have the third argument
native_arch = apt_pkg.config["APT::Architecture"]
apt_pkg.config["APT::Architecture"] = arch
block = parse_src_depends(block_txt, False)
apt_pkg.config["APT::Architecture"] = native_arch
# Unlike regular dependencies, some clauses of the Build-Depends(-Arch|-Indep) can be
# filtered out by (e.g.) architecture restrictions. We need to cope with this while
# keeping block_txt and block aligned.

Loading…
Cancel
Save