Bug#704230: apt considers packages with Architecture: all as being of the native architecture
Hi!
On Sat, 2013-03-30 at 20:11:11 +0200, Mikko Rasa wrote:
> On 30.03.2013 03:51, Daniel Hartwig wrote:
> > On 30 March 2013 06:33, Mikko Rasa<tdb@tdb.fi> wrote:
> > > Some background: I'm migrating my home server to new hardware and considering
> > > changing the OS to 64-bit as well. Since apt now supports multiarch, I thought
> > > I'd do this by installing a 64-bit kernel first and then updating userspace bit
> > > by bit as necessary and as time permits. Unfortunately, reality turned out to
> > > be much more complicated.
> >
> > Cross-grading an entire system is not a documented or supported
> > procedure. You could possibly still proceed as you intended, if you
> > are adventurous. It will take some encouraging of dpkg (lots of
> > ‘--force-FOO’) and you will not receive support for the procedure
> > here.
> > > If a package with Architecture: all depends on a package with a specific
> > > architecture, then that dependency can't be fulfilled by a foreign package.
> >
> > <https://wiki.ubuntu.com/MultiarchSpec#Dependencies_involving_Architecture:_all_packages>
> >
> > As above, this is by design. The developers are aware of the
> > highlighted dependency handling and the desire to perhaps move away
> > from it eventually. I am therefore prone to closing this as
> > not-a-bug, the difficultly in cross-grading a system is neither apts
> > or dpkgs fault, they handle the situation correctly.
> Perhaps it could be implemented as a configuration option to begin
> with, and change the default later?
Well, dpkg *does* have native support for cross-grading, see the last
section in the announcement mail [0], apt does not though. That does not
mean the current package metadata will allow this in all cases. I guess
that wiki page might be outdated in other places too, for example
cross-multiarch compilation is supported too, but I've not checked the
page in detail.
[0] <https://lists.debian.org/debian-devel-announce/2012/03/msg00005.html>
> I managed to put together a Python script which changes the
> architecture of an installed Debian system from i386 to amd64. I
> didn't even need to use any --force; processing packages in correct
> order by dependencies is enough, since dpkg does less dependency
> checks than apt. It's not perfect, but it left me with only about
> two dozen broken packages to be fixed by hand, as opposed to the
> several hundreds I encountered when trying to do this manually.
If dpkg fails on some packages, one issue might be because they are
not yet properly marked with a Multi-Arch field, as noted also in the
announcement mail.
Thanks,
Guillem
Reply to: