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 <adam@adam-barratt.org.uk>
debian
Adam D. Barratt 10 years ago
parent d51fa09c75
commit 09f7ab83cf

@ -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

Loading…
Cancel
Save