From 09f7ab83cf0b706e133ed269c070fa2f05034306 Mon Sep 17 00:00:00 2001 From: "Adam D. Barratt" Date: Sun, 21 Sep 2014 15:50:50 +0000 Subject: [PATCH] Don't remove arch:all binaries when migrating *pu binNMUs As part of a migration, we remove all the existing binaries built by the source (possibly on a particular architecture) from testing; this includes architecture-independent binary packages. However, when a binNMU is in *pu, only the arch-dependent binary pakcages are present. As a result, after the migration the architecture-independent packages are no longer present in testing. This usually isn't a practical problem, as dak will re-add them when it generates the packages files. It is, however, wrong and will break if a source migration is tempted during the same run as (and after) the *pu binary migration happened. The simple fix is to not remove the architecture-independent packages when performing such migrations. Signed-off-by: Adam D. Barratt --- britney.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/britney.py b/britney.py index 18c99bc..2a29969 100755 --- a/britney.py +++ b/britney.py @@ -1894,7 +1894,17 @@ class Britney(object): for p in ( bin for bin in bins if bin not in smoothbins ): binary, parch = p.split("/") version = binaries_t[parch][0][binary][VERSION] - rms.add((binary, version, parch)) + # if this is a binary migration from *pu, only the arch:any + # packages will be present. ideally dak would also populate + # the arch-indep packages, but as that's not the case we + # must keep them around; they will not be re-added by the + # migration so will end up missing from testing + if migration_architecture != 'source' and \ + suite != 'unstable' and \ + binaries_t[parch][0][binary][ARCHITECTURE] == 'all': + continue + else: + rms.add((binary, version, parch)) # single binary removal; used for clearing up after smooth # updates but not supported as a manual hint