From d1cf7116da493c6f4271331924094a4e85959498 Mon Sep 17 00:00:00 2001 From: "Adam D. Barratt" Date: Sun, 3 Mar 2013 17:23:38 +0000 Subject: [PATCH] Don't remove arch:all packages when migrating binNMUs via *pu A binNMU does not rebuild architecture:all packages. For migrations via unstable this is not a problem as the packages corresponding to the source upload are still present. However, for *pu migrations, the set of packages considered only includes architecture-specific packages. In order to avoid installability issues with packages in testing which depend on the arch:all packages, we leave the existing arch:all packages in testing and only consider the arch-specific packages for migration. Signed-off-by: Adam D. Barratt --- britney.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/britney.py b/britney.py index 4e567ce..6007e6f 100755 --- a/britney.py +++ b/britney.py @@ -1846,7 +1846,16 @@ class Britney(object): # first, build a list of eligible binaries for p in source[BINARIES]: binary, parch = p.split("/") - if item.architecture != 'source' and parch != item.architecture: continue + if item.architecture != 'source': + # for a binary migration, binaries should not be removed: + # - unless they are for the correct architecture + if parch != item.architecture: continue + # - if they are arch:all and the migration is via *pu, + # as the packages will not have been rebuilt and the + # source suite will not contain them + if binaries[parch][0][binary][ARCHITECTURE] == 'all' and \ + item.suite != 'unstable': + continue # do not remove binaries which have been hijacked by other sources if binaries[parch][0][binary][SOURCE] != item.package: continue bins.append(p)