overenthusiastic adoption of "Depends: cpp:any" syntax
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libidl (Ubuntu) |
Fix Released
|
High
|
Colin Watson | ||
Precise |
Fix Released
|
High
|
Colin Watson | ||
wine-gecko1.4 (Ubuntu) |
Fix Released
|
High
|
Scott Ritchie | ||
Precise |
Fix Released
|
High
|
Scott Ritchie | ||
wine1.4 (Ubuntu) |
Fix Released
|
High
|
Scott Ritchie | ||
Precise |
Fix Released
|
High
|
Scott Ritchie |
Bug Description
libidl0 0.8.14-0.2ubuntu1 has started using the new "Depends: cpp:any" syntax, and is the only package in the archive currently doing so. The multiarch specification says:
"It is worth noting that existing package management tools will be unable to interpret and satisfy package relationships of this format, even when the desired package is available. Consequently, it is recommended to defer use of such package relationships in the archive for a full release cycle following the package management implementation."
I would argue that the relevant release cycle for Ubuntu should be considered to be the LTS cycle. The version of apt in lucid cannot understand "Depends: cpp:any", as shown here:
<root@
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies.
libidl0: Depends: cpp:any but it is not installable
E: Broken packages
<root@
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
binutils cpp-4.4 cpp-4.6 gcc-4.4 gcc-4.4-base gcc-4.6-base libc-bin libc-dev-bin libc6 libc6-dev libgcc1 libgmp10 libgomp1 libmpc2 libmpfr4 libnih-dbus1 libnih1 libpopt0 libstdc++6 make multiarch-support
pkg-config
Suggested packages:
binutils-doc cpp-doc gcc-4.4-locales gcc-4.6-locales gcc-4.4-multilib libmudflap0-4.4-dev gcc-4.4-doc libgcc1-dbg libgomp1-dbg libmudflap0-dbg libcloog-ppl0 libppl-c2 libppl7 glibc-doc make-doc
The following packages will be REMOVED
libc6-i686
The following NEW packages will be installed
cpp-4.6 gcc-4.6-base libgmp10 libmpc2 libmpfr4 multiarch-support
The following packages will be upgraded:
binutils cpp cpp-4.4 gcc-4.4 gcc-4.4-base libc-bin libc-dev-bin libc6 libc6-dev libgcc1 libgomp1 libnih-dbus1 libnih1 libpopt0 libstdc++6 make pkg-config
17 upgraded, 6 newly installed, 1 to remove and 979 not upgraded.
Need to get 17.8MB/25.1MB of archives.
After this operation, 8,034kB of additional disk space will be used.
Do you want to continue [Y/n]? n
Abort.
(Admittedly, the release upgrader in update-manager has a backport of apt which would avoid this problem, but we generally try to avoid design decisions that *require* using the release upgrader.)
Furthermore, germinate doesn't currently understand this kind of multiarch dependency relationship and it's not straightforward to make it do so while it's still deployed on lucid; so using this before the archive infrastructure is itself upgraded to precise may cause malfunctions such as Task fields not being updated properly, packages not being present on CD images when they should be, and so on.
I understand that it is very convenient in this case, and indeed arguably necessary for multiarch support in libidl; but I don't think we can do it in this particular way until after precise.
tags: | added: multiarch |
Changed in libidl (Ubuntu): | |
importance: | Undecided → High |
Changed in libidl (Ubuntu Precise): | |
assignee: | nobody → Colin Watson (cjwatson) |
Changed in wine-gecko1.4 (Ubuntu Precise): | |
assignee: | nobody → Scott Ritchie (scottritchie) |
I've posted some thoughts on a possible workaround to the Debian bug for introducing multiarch support in libidl:
http:// bugs.debian. org/cgi- bin/bugreport. cgi?bug= 641614