dpkg: confused about installation status of Multi-Arch: foreign packages configured in the current run?
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
dpkg (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: dpkg
Received this error on an upgrade in natty:
Setting up libx11-data (2:1.4.2-1ubuntu3) ...
Setting up libx11-6 (2:1.4.2-1ubuntu3) ...
Setting up libx11-dev (2:1.4.2-1ubuntu3) ...
dpkg: dependency problems prevent configuration of libx11-6:i386:
libx11-6:i386 depends on libx11-data.
dpkg: error processing libx11-6:i386 (--configure):
dependency problems - leaving unconfigured
Setting up libx11-xcb1 (2:1.4.2-1ubuntu3) ...
dpkg: dependency problems prevent configuration of libx11-xcb1:i386:
libx11-xcb1:i386 depends on libx11-6; however:
Package libx11-6:i386 is not configured yet.
dpkg: error processing libx11-xcb1:i386 (--configure):
dependency problems - leaving unconfigured
While I've seen other errors which were attributable to apt trying to configure packages out of order, this seems to be a clear case of dpkg not knowing that libx11-data is installed (or not recognizing that it's multi-arch: foreign and satisfies the dependency of libx11-6:i386).
I don't have detailed logs of how dpkg was invoked, but it seems like it should be easy to reproduce.
ProblemType: Bug
DistroRelease: Ubuntu 11.04
Package: dpkg 1.16.0~ubuntu6
ProcVersionSign
Uname: Linux 2.6.38-8-generic x86_64
Architecture: amd64
Date: Sun Apr 10 01:53:19 2011
InstallationMedia: Ubuntu 10.04.1 LTS "Lucid Lynx" - Release amd64 (20100816.1)
ProcEnviron:
LANGUAGE=en_US:en
PATH=(custom, user)
LANG=en_US.UTF-8
SHELL=/bin/bash
SourcePackage: dpkg
UpgradeStatus: Upgraded to natty on 2011-03-24 (16 days ago)
Related branches
tags: | added: patch |
Changed in dpkg (Ubuntu): | |
status: | New → Fix Committed |
Thanks for the report. Indeed it was easy to reproduce, a bit less easy to fix even though it's a one line patch.
The problem was that when the configuration is not immediately possible, clientdata->istobe is reset to itb_installnew and in some places I use that information to decide whether I want to look at "available" or "installed" in terms of package information. But that assumption only holds true during early installation (i.e. unpack) and not during configuration.
So in the end, I might do some further refactoring to get rid of that not-so-good assumption.