Iain Lane 3ddac110c6 suiteloader: Handle arch-all packages properly when merging binaries
In 'partial source' mode, which we use in Ubuntu, we merge the target
(release pocket) with the source (proposed), so that proposed-migration
has a view of the complete state of the archive when it is migrating.

This merging must not be done when a package has been built in the
source suite. If it is done incorrectly, proposed-migration will see the
previous binary packages as existing when they should not.

We have code to handle this already, but it's wrong in the case of
arch:all binaries. This comes up in two ways

  - If a source package builds *only* arch:all binaries, it is not
    expected that builds will be created on arches other than the one
    which builds arch:all packages (amd64 currently). If that is built
    then the package is complete, we shouldn't merge any old binaries
    such as dropped arch:all ones from the target.
  - Relatedly, if other non-arch-all packages exist, an arch:all package
    isn't an indication that a build has taken place on other arches
    than the all buildd arch.

Fixing both of these stops old binaries being merged into a new source
when it's been built and arch:all packages are involved.
2021-02-25 11:47:44 +00:00
..
2020-04-01 16:37:56 +00:00
2020-04-01 16:37:56 +00:00