[Bug 1185896] Re: apt makes wrong resolver choice when foreign arch repo included

Wookey wookey at wookware.org
Thu May 30 17:18:39 UTC 2013


It's unclear to me exactly what's going wrong here, but the fact that
multiarch-support:arm64 is being considered by the resolver seems wrong,
when the native arch is amd64 and the foreign arch is armhf. Should it
not be filtered out?

Should this package even appear in the apt cache? (maybe that is OK -
the package file was downloaded)

This simpler command also makes apt install the correct things:
apt-get install crossbuild-essential-armhf multiarch-support

attached is the debug output from running that in case it helps.


** Attachment added: "apt debug resolver output in working case"
   https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1185896/+attachment/3690718/+files/apt-debug-working

-- 
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