[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: