diff --git a/britney.py b/britney.py index f3bd159..4a2f82c 100755 --- a/britney.py +++ b/britney.py @@ -1355,6 +1355,8 @@ class Britney(object): update_candidate = False excuse.addreason("arch") excuse.addreason("arch-%s" % arch) + excuse.addreason("build-arch") + excuse.addreason("build-arch-%s" % arch) excuse.addhtml(text) @@ -1363,6 +1365,7 @@ class Britney(object): pkgs = {src: ["source"]} for arch in self.options.architectures: oodbins = {} + uptodatebins = False # for every binary package produced by this source in the suite for this architecture for pkg in sorted(x.split("/")[0] for x in self.sources[suite][src][BINARIES] if x.endswith("/"+arch)): if pkg not in pkgs: pkgs[pkg] = [] @@ -1373,11 +1376,15 @@ class Britney(object): pkgsv = binary_u[SOURCEVER] # if it wasn't built by the same source, it is out-of-date + # it there is at least one binary which is up-to-date, there + # is a build on this arch if not same_source(source_u[VERSION], pkgsv): if pkgsv not in oodbins: oodbins[pkgsv] = [] oodbins[pkgsv].append(pkg) continue + else: + uptodatebins = True # if the package is architecture-dependent or the current arch is `nobreakall' # find unsatisfied dependencies for the binary package @@ -1394,9 +1401,14 @@ class Britney(object): oodtxt = oodtxt + "%s (from %s)" % \ (", ".join(sorted(oodbins[v])), urllib.quote(arch), urllib.quote(src), urllib.quote(v), v) - text = "out of date on %s: %s" % \ - (urllib.quote(arch), urllib.quote(src), urllib.quote(source_u[VERSION]), arch, oodtxt) + if uptodatebins: + text = "old binaries left on %s: %s" % \ + (urllib.quote(arch), urllib.quote(src), urllib.quote(source_u[VERSION]), arch, oodtxt) + else: + text = "missing build on %s: %s" % \ + (urllib.quote(arch), urllib.quote(src), urllib.quote(source_u[VERSION]), arch, oodtxt) if arch in self.options.fucked_arches.split(): text = text + " (but %s isn't keeping up, so nevermind)" % (arch) @@ -1404,6 +1416,12 @@ class Britney(object): update_candidate = False excuse.addreason("arch") excuse.addreason("arch-%s" % arch) + if uptodatebins: + excuse.addreason("cruft-arch") + excuse.addreason("cruft-arch-%s" % arch) + else: + excuse.addreason("build-arch") + excuse.addreason("build-arch-%s" % arch) if self.date_now != self.dates[src][1]: excuse.addhtml(text)