Since the deprecation and partial removal of i386 it is more and more
common that we miss out on packages on i386.
As of today cjwatson changed the sample run we generally look at
to use amd64 by default but for the final component mismatch it will
still seed all architectures as can be seen in the joint log at [1].
It will be helpful to see on a given error line which architecture
triggered a given Unknown dependency without scrolling up/down to check
which sub-run that is.
Before:
? Unknown server-ship package: lftp
? Unknown dependency default-mta by logcheck
After:
? Unknown package lftp for seed supported-misc-servers on arch i386
? Unknown dependency default-mta by logcheck on arch i386
Both kind of warnings turned out to be often misleading as one would
usually have checked amd64 and wondered as things clearly were there.
Some of these are needed during the clean target (e.g.
python3-setuptools), and since germinate builds no
architecture-dependent packages it isn't worth maintaining these lists
separately.
Fix overpruning of build-deps of mixed-arch packages with no-follow-b-d-all
If an arch: any package depends on an arch: all package from the same
source, and no-follow-build-depends-all is set, germinate traverses the
dependency to the arch: all package, adds it to the list of sources for
the seed, but then seeing that this is an arch: all binary, does not
recurse to the build-dependencies. When we pop the stack back to the
arch: any binary package, the source is already in the seed and we fail to
traverse the build-deps.
Fix this by handling the no-follow-build-depends-all case before adding
the package to the seed.