From 976accaf576cdeb393ed067b0f9469e605579c82 Mon Sep 17 00:00:00 2001 From: Ivo De Decker Date: Thu, 30 Jan 2020 15:45:28 +0000 Subject: [PATCH] Track uninstallable arch:all packages on non-nobreakall archs When an arch:all binary is uninstallable on a non-nobreakall arch, don't block it, but still mark it as uninstallable, so the autopkgtest policy knows not to schedule tests for it. --- britney2/policies/policy.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/britney2/policies/policy.py b/britney2/policies/policy.py index 203484e..e3c3b0b 100644 --- a/britney2/policies/policy.py +++ b/britney2/policies/policy.py @@ -821,9 +821,6 @@ class DependsPolicy(BasePolicy): binary_u = packages_s_a[pkg_name] pkg_arch = binary_u.architecture - if pkg_arch == 'all' and arch not in self.nobreakall_arches: - continue - if (binary_u.source_version != source_data_srcdist.version): # don't check cruft in unstable continue @@ -850,14 +847,21 @@ class DependsPolicy(BasePolicy): if pkg_id in self.broken_packages: # dependencies can't be satisfied by all the known binaries - - # this certainly won't work + # this certainly won't work... + excuse.add_unsatisfiable_on_arch(arch) + if pkg_arch == 'all' and arch not in self.nobreakall_arches: + # ...but if the binary is arch all on a non-nobreakarch + # all, we don't care + # we still wan't the binary to be listed as uninstallable, + # so the autopkgtest policy knows not to try to run tests + continue verdict = PolicyVerdict.REJECTED_PERMANENTLY excuse.add_verdict_info(verdict, "%s/%s has unsatisfiable dependency" % ( pkg_name, arch)) excuse.addreason("depends") - # TODO does this also need to happen on non-nobreakarch if the - # arch:all packages are uninstallable? - excuse.add_unsatisfiable_on_arch(arch) + + if pkg_arch == 'all' and arch not in self.nobreakall_arches: + continue deps = self.pkg_universe.dependencies_of(pkg_id)