Comment 4 for bug 948294

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

This bug is caused by the recent package split of libgconf2-4 into libgconf-2-4 and gconf-service. This upgrade includes a Breaks: on the old version of libgconf2-4 by libgconf-2-4, which ensures that libgconf2-4 is deconfigured before libgconf-2-4 is unpacked on upgrade. However, this does *not* ensure that gconf2 is deconfigured when the new libgconf-2-4 or libgconf2-4 is unpacked, so its trigger may still fire, even though the files it relies on are either no longer on disk (if libgconf2-4 has been unpacked without libgconf-2-4) or not where they're expected (if libgconf-2-4 is unpacked without gconf-service).

We need to ensure that the gconf2 trigger is *only* called under the following circumstances:

 * new libgconf2-4 not yet unpacked, new libgconf-2-4 not yet unpacked
 * new libgconf-2-4 unpacked, new gconf-service unpacked

To achieve this, we can have the new libgconf-2-4 and libgconf2-4 packages both declare a Breaks on the old gconf2 version. This forces gconf2 to be deconfigured when either of these new packages is unpacked, and remain deconfigured until both libgconf-2-4 and gconf-service are configured (since gconf2 already has a dependency on both of them).