Bug#612958: apt and dpkg configured separately for multiarch?
Steve Langasek <firstname.lastname@example.org> writes:
> On Wed, Feb 16, 2011 at 04:30:31PM +0100, Goswin von Brederlow wrote:
>> This needs some redesign I'm afraid. Specifically in combination with
>> There are 4 kinds of architectures:
>> 1) the native arch (the prefered arch)
>> 2) foreign archs directly supported by the cpu
>> 3) foreign archs supported by emulator (use as last resort)
>> 4) cross-compile arch (don't install binaries from there, only libs)
>> 1-3 is just a matter of preference, affect only apt and can be
>> configured using pining. But for 4 the Packages file needs to be
>> filtered and dpkg should require extra force to install a binary package
>> for that arch.
> I disagree that there's anything special about the cross-compile case. This
> is just another level of preference; packages for the cross-compile arch
> should be pulled in only when explicitly requested, which in the context of
> build-dependencies they obviously will be. There's no need to complicate
> the configuration interface, pinning handles this as well as it does the
> other cases.
> If you actually wind up pulling in binaries in the process, <shrug> - the
> package has broken build-dependencies. Fix that - don't overengineer the
> preferences interface declaration.
So lets say a new debianutils is uploaded with a bug and turns out
uninstallable. The amd64 and i386 archs usualy get updates first while
the poor armel buildds lags somewhat behind. Situation then is that bash
is uninstallable on amd64/i386 but fine on armel.
Now someone does apt-get update; apt-get dist-upgrade. He has an ancient
bash installed and something depends on a newer bash version (so
something explicitly pulls in the newer version). Since bash is
Multi-Arch: foreign his ancient amd64 bash gets replaced by the newer
armel bash. Now that will be fun.
I would feel a whole lot better if apt would only have Multi-Arch: same
packages for armel. And dpkg should complain about wrong architecture
trying to install armel packages without Multi-Arch: same.
That is not something preferences can filter. But it is easy to filter
if there are two ways to declare foreign architectures in the config.