apt doesn't handle multi-arched provides properly

Bug #1130707 reported by Chow Loong Jin
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
apt (Ubuntu)
New
Undecided
Unassigned

Bug Description

  affects ubuntu/apt
  subscribe jpugh
  subscribe dpitkin
  subscribe sarvatt
  subscribe slangasek
  subscribe

When installing steam:i386 in a fresh amd64 Ubuntu 12.04.2 installation, apt-get
chooses to forcibly uninstall the entire X11 stack.

The dependencies in question are:
 - steam:i386 depends on libgl1-mesa-{glx,dri}
 - libgl1-mesa-{glx,dri}-lts-quantal:amd64 are installed
 - libgl1-mesa-{glx,dri}-lts-quantal:i386 are not installed
 - libgl1-mesa-{glx,dri}:i386 are not installed.
 - libgl1-mesa-{glx,dri}-lts-quantal Provides: libgl1-mesa-{glx,dri}
 - libgl1-mesa-{glx,dri}-lts-quantal Conflicts: libgl1-mesa-{glx,dri}

PROBLEM:
Facing this situation, when apt-get is told to install steam:i386, it chooses to
install libgl1-mesa-{glx,dri}:i386 instead of
libgl1-mesa-{glx,dri}-lts-quantal:i386 (which can satisfy the dependency due to
the Provides field being set appropriately). This forces
libgl1-mesa-{glx,dri}:amd64 to be uninstalled due to the conflicts relationship
as mentioned above.

Conversely, if libgl1-mesa-{glx,dri}-lts-quantal:i386 is already installed,
apt-get install steam:i386 does the right thing.

Amending steam:i386 to depend on libgl1-mesa-{glx,dri}-lts-quantal |
libgl1-mesa-{glx,dri}-lts-quantal fixes the issue for those with the LTS
Enablement Stack installed, but causes this bug to manifest on systems on the
older stack. Reversing the order of the packages in the bar dependency (foo |
foo-lts-quantal) also doesn't work.

[1] https://wiki.ubuntu.com/Kernel/LTSEnablementStack

--
Kind regards,
Loong Jin

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.