[Bug 1185896] Re: apt makes wrong resolver choice when foreign arch repo included
Steve Langasek
steve.langasek at canonical.com
Tue Sep 3 19:28:26 UTC 2013
> Which leads me to wonder if multiarch-support is actually correct in
being M-A:foreign.
It is, though the reason isn't altogether obvious. The reason it was
made M-A: foreign was to break what was otherwise a dependency loop for
adding foreign architectures: libc6 Depends: libgcc1 Pre-Depends:
multiarch-support Depends: libc6. Since the whole purpose of multiarch-
support was to ensure that libraries for your primary arch were not
disappeared out from underneath the linker during the transition to
multiarch, we don't care about multiarch-support for any except the
primary architecture... you can't possibly install the foreign-arch
multiarch-support package *before* transitioning to multiarch, and if
you do it *afterwards* it no longer matters.
Indeed, now that the transition is complete (since wheezy has released
with multiarch-support), we could update debhelper to no longer add the
multiarch-support Pre-Depends in unstable.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to apt in Ubuntu.
https://bugs.launchpad.net/bugs/1185896
Title:
apt makes wrong resolver choice when foreign arch repo included
Status in “apt” package in Ubuntu:
New
Bug description:
In a fresh raring chroot adding foreign-arch armhf then apt-get installing crossbuild-essential-armhf works fine.
But if a repo arch-qualified for another arch (arm64) is added, and apt-get update run, installing crossbuild-essential-armhf now fails.
The reason for this is not clear. Here is a summary of what I've found so far.
apt-get install crossbuild-essential-armhf
crossbuild-essential-armhf : Depends: dpkg-cross but it is not going to be installed
apt-get install dpkg-cross
dpkg-cross : Depends: libdebian-dpkgcross-perl (= 2.6.9ubuntu2) but it is not going to be installed
apt-get install libdebian-dpkgcross-perl
works, but tries to remove: libidn11 libssl1.0.0 libudev0 multiarch-support wget
(and replace multiarch-support:amd64 with multiarch-support:armhf, which breaks things)
doing apt-get install crossbuild-essential-armhf libdebian-dpkgcross-
perl multiarch-support:amd64 gets apt to do the right thing.
So the question is why is apt prefering the solution of not installing
crossbuild-essential-armhf over the correct solution of installing
crossbuild-essential-armhf libdebian-dpkgcross-perl multiarch-
support:amd64
I did
apt-get -oDebug::pkgProblemResolver=1 install crossbuild-essential-armhf
and got the attached apt-debug file
I've also attached a script log of the session demonstrating that
crossbuild-essential-armhf installs as expected unti l the extra arm64
repo is made available
I think this can be reproduced by doing
sbuild-createchroot for raring on amd64 box
adding this repo to apt config:
deb [arch=arm64] http://people.debian.org/~wookey/bootstrap/ubunturepo/ raring-bootstrap main universe
deb-src http://people.debian.org/~wookey/bootstrap/ubunturepo/ raring-bootstrap main universe
and doing the above tests, as documented in the script log attached
the problem seems to revolve around apt starting by considering
multiarch-support:arm64
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1185896/+subscriptions
More information about the foundations-bugs
mailing list