build-dep -a armhf pulls in dbus:armhf

Bug #1246067 reported by Michał Sawicz
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
apparmor (Ubuntu)
Medium
Unassigned

Bug Description

Having tried:

apt-get build-dep --arch armhf unity8

Resulted in dbus:armhf being pulled in instead of dbus:amd64, which fails in postinst:

/var/lib/dpkg/info/dbus.postinst: 28: /var/lib/dpkg/info/dbus.postinst: dbus-uuidgen: not found
dpkg: error processing dbus (--configure):
 subprocess installed post-installation script returned error exit status 127

ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: apt 0.9.9.1~ubuntu3
ProcVersionSignature: Ubuntu 3.11.0-12.19-generic 3.11.3
Uname: Linux 3.11.0-12-generic x86_64
NonfreeKernelModules: nvidia wl
ApportVersion: 2.12.6-0ubuntu1
Architecture: amd64
Date: Tue Oct 29 13:53:46 2013
MarkForUpload: True
SourcePackage: apt
UpgradeStatus: No upgrade log present (probably fresh install)

Related branches

Revision history for this message
Michał Sawicz (saviq) wrote :
summary: - build-dep with dbus-test-runner under --arch armhf pulled in dbus:armhf
+ build-dep --arch armhf pulls in dbus:armhf
Revision history for this message
Steve Langasek (vorlon) wrote : Re: build-dep --arch armhf pulls in dbus:armhf

This apparently comes in as a dependency of libusermetricsoutput1:armhf. dbus itself is Multi-Arch: foreign, so apt is meant to prefer the native version.

Steve Langasek (vorlon)
Changed in apt (Ubuntu):
status: New → Triaged
Revision history for this message
David Kalnischkies (donkult) wrote :

[ There is no --arch option. Its either -a or --host-architecture. If it would be --arch, it would mean build-architecture.]

I said this earlier already: This is a problem of not having enough/correct information. For APT "Multi-Arch: foreign" means that it can use a package from any architecture. It might be that it should prefer native, but taking a foreign architecture like "armhf" is just as valid dependency-wise. Its M-A:foreign after all and "armhf" is a foreign architecture.

What you want instead is to say: "While I want to install (M-A:same) packages for this architecture (e.g. to cross-build for it) I want APT (and co) to ignore the "Multi-Arch: foreign" flag on it as it can't actually satisfy dependencies of packages from another architecture (e.g. I can't execute binaries from it).

Preferring native (which code-wise would be pretty hard in most cases) might paper over this problem in cross-building, but a user could very well just "apt-get install dbus:armhf" on the very same system and it will work (not later on).

Michał Sawicz (saviq)
summary: - build-dep --arch armhf pulls in dbus:armhf
+ build-dep -a armhf pulls in dbus:armhf
Revision history for this message
Steve Langasek (vorlon) wrote :

Seems this tracks back to libapparmor1 not being Multi-Arch: same yet, so apt finds the only solution that lets dbus be installed. no bug in apt, just a change that we need to make to apparmor packaging.

affects: apt (Ubuntu) → apparmor (Ubuntu)
Changed in apparmor (Ubuntu):
assignee: nobody → Steve Langasek (vorlon)
importance: Undecided → Medium
Michał Sawicz (saviq)
Changed in apparmor (Ubuntu):
status: Triaged → In Progress
assignee: Steve Langasek (vorlon) → Michał Sawicz (saviq)
Michał Sawicz (saviq)
Changed in apparmor (Ubuntu):
assignee: Michał Sawicz (saviq) → nobody
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package apparmor - 2.8.0-0ubuntu33

---------------
apparmor (2.8.0-0ubuntu33) trusty; urgency=low

  * Convert to dh.
  * Bump to debhelper compat level 9 for multiarch support.
  * Mark libapparmor1, libapparmor-dev Multi-Arch: same. LP: #1246067.
 -- Steve Langasek <email address hidden> Thu, 31 Oct 2013 13:23:57 -0700

Changed in apparmor (Ubuntu):
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers