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
wip/linux-policy
Iain Lane 5 years ago committed by Iain Lane
parent 02492f070b
commit c201c000ee

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

@ -1059,7 +1059,14 @@ class BuildDependsPolicy(BasePolicy):
# for every dependency block (formed as conjunction of disjunction) # for every dependency block (formed as conjunction of disjunction)
for block_txt in deps.split(','): 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 # 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 # filtered out by (e.g.) architecture restrictions. We need to cope with this while
# keeping block_txt and block aligned. # keeping block_txt and block aligned.

Loading…
Cancel
Save