overenthusiastic adoption of "Depends: cpp:any" syntax

Bug #931388 reported by Colin Watson
10
This bug affects 1 person
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@sarantium(lucid-upgrade) ~># apt-get install libidl0
  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@sarantium(lucid-upgrade) ~># apt-get install cpp
  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.

Colin Watson (cjwatson)
tags: added: multiarch
Changed in libidl (Ubuntu):
importance: Undecided → High
Revision history for this message
Colin Watson (cjwatson) wrote :

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

Revision history for this message
Steve Langasek (vorlon) wrote :

I agree with Colin's analysis. Unfortunately this looks problematic for precise.

(Why does a library depend on cpp anyway? Maybe that's an underlying bug?)

Changed in libidl (Ubuntu):
status: New → Triaged
Revision history for this message
Scott Ritchie (scottritchie) wrote :

wine1.4 also does this, but I think that's the only package in the archive. I'll use the workaround posted.

Changed in wine1.4 (Ubuntu):
assignee: nobody → Scott Ritchie (scottritchie)
importance: Undecided → High
status: New → Triaged
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package wine1.4 - 1.4~rc5-0ubuntu2

---------------
wine1.4 (1.4~rc5-0ubuntu2) precise; urgency=low

  * Remerge Loic's change, got lost earlier (LP: #934849)
  * debian/control:
    - Reintroduce hard-dependency on wine1.4-i386 (LP: #934854)
    - wine1.4-i386 breaks/replaces wine1.2, wine1.3 (LP: #939394)
    - wine1.4-amd64 breaks/replaces wine1.2, wine1.3
    - Avoid use of depends: wine1.4:any and instead use a workaround
      that should satisfy Lucid's primitive apt (LP: #931388)
    - Remove extraneous homepage and priority optional tags
    - Add Pre-Depends: ${misc:Pre-Depends} to all packages
 -- Scott Ritchie <email address hidden> Sat, 25 Feb 2012 20:54:03 -0800

Changed in wine1.4 (Ubuntu):
status: Triaged → Fix Released
Colin Watson (cjwatson)
Changed in libidl (Ubuntu Precise):
assignee: nobody → Colin Watson (cjwatson)
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package libidl - 0.8.14-0.2ubuntu2

---------------
libidl (0.8.14-0.2ubuntu2) precise; urgency=low

  * The "Depends: cpp:any" syntax cannot be used until after Ubuntu 12.04
    LTS. Introduce a new libidl-common binary package as a workaround for
    the time being, which exists only to depend on cpp (LP: #931388).
 -- Colin Watson <email address hidden> Tue, 13 Mar 2012 11:39:30 +0000

Changed in libidl (Ubuntu Precise):
status: Triaged → Fix Released
Revision history for this message
Colin Watson (cjwatson) wrote :

Scott, you missed one:

  Package: wine-gecko1.4
  Version: 1.4.0-0ubuntu1
  Recommends: wine1.4:any

Albeit only a Recommends, but my understanding is that it's still a parser error ... can we use the wine1.4-common workaround here too?

Changed in wine-gecko1.4 (Ubuntu Precise):
status: New → Triaged
importance: Undecided → High
tags: added: rls-mgr-p-tracking
Changed in wine-gecko1.4 (Ubuntu Precise):
assignee: nobody → Scott Ritchie (scottritchie)
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package wine-gecko1.4 - 1.4.0-0ubuntu2

---------------
wine-gecko1.4 (1.4.0-0ubuntu2) precise; urgency=low

  * Avoid use of Recommends: wine1.4:any (LP: #931388)
 -- Scott Ritchie <email address hidden> Mon, 26 Mar 2012 23:18:20 -0700

Changed in wine-gecko1.4 (Ubuntu Precise):
status: Triaged → Fix Released
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.