[ Short version for the impatient - I'd like to make britney require all architectures to be built in t-p-u before paying any attention to an "approve" hint ]
Hi, For as long as I can remember, the advice for adding "approve" hints to migrate packages from t-p-u to testing has been "make sure the t-p-u package has built on all architectures first, otherwise the remaining architectures won't get built". This was predicated on the assumption that the source version would be removed from t-p-u either automatically or semi-automatically once it had migrated to testing; so far as I can see, this is not currently the case and I'm told that with the current buildd trigger code the missing architectures should continue to be built so long as the source remains in t-p-u. However, adding an "approve" hint before all the architectures are available still seems to have some issues. As a test, I took a set of britney data from a couple of days ago, before gnucash/tpu migrated, and added the new source to the testing Sources file; a britney run using that data failed to migrate any of the binary packages, claiming that they would all become uninstallable (for reasons I haven't spent too long investigating, possibly related to gnucash's dependency on arch:all gnucash-common). As a consequence of all of the above, I'd like to propose modifying the semantics of "approve" so that the hint can be added straight away and the t-p-u package only becomes a valid candidate once it's available on all the architectures on which it exists in testing; the attached patch does so. Regards, Adam
--- /srv/release.debian.org/britney/code/b1/update_out/update_out.py 2010-09-15 14:00:07.000000000 +0000 +++ update_out/update_out.py 2010-09-18 17:37:25.000000000 +0000 @@ -544,6 +544,30 @@ else: updatecand = 0 + if suite: + # o-o-d checks for t-p-u + for arch in arches: + # If the package isn't in testing or the testing + # package produces no packages on this architecture, + # then it can't be out-of-date. We assume that if + # the t-p-u package has produced any binaries for + # this architecture then it is ok + + if not orig.is_present(src) or \ + (len(orig.binaries(src, arch)) == 0) or \ + (len(new.binaries(src, arch)) > 0): + continue + + text = "Not yet built on <a href=\"http://buildd.debian.org/build.php?arch=%s&pkg=%s&ver=%s&suite=testing\" target=\"_blank\">%s</a>" % (urllib.quote(arch), urllib.quote(src), urllib.quote(srcv), arch) + + if arch in fuckedarches: + text = text + " (but %s isn't keeping up," % \ + (arch) + " so never mind)" + else: + updatecand = 0 + + exc.addhtml(text) + pkgs = { src: ["source"] } anybins = 0 for arch in arches:

