Bug#666889: Problem with this transition, leading to gnome-shell segfault on login
On Sat, May 05, 2012 at 06:21:29AM +0200, Michael Biebl wrote:
> On 05.05.2012 06:04, Josh Triplett wrote:
> > Something seems to have gone wrong with this transition. I currently
> > have a set of packages installed that satisfy all dependency/conflict
> > relationships, but that causes gnome-shell to segfault on start:
> > [HOLD, DEPENDENCIES] gir1.2-clutter-1.0:amd64
> > [HOLD, DEPENDENCIES] libclutter-1.0-0:amd64
> > [HOLD, DEPENDENCIES] libclutter-gtk-1.0-0:amd64
> > [HOLD, DEPENDENCIES] libmutter0:amd64
> > [HOLD, DEPENDENCIES] mutter-common:amd64
> > [INSTALL, DEPENDENCIES] libcogl9:amd64
> > [UPGRADE] libcogl-pango0:amd64 1.8.2-1 -> 1.10.2-2
> > [UPGRADE] gir1.2-cogl-1.0:amd64 1.8.2-1 -> 1.10.2-2
> > [UPGRADE] gir1.2-coglpango-1.0:amd64 1.8.2-1 -> 1.10.2-2
> > [UPGRADE] gir1.2-gtkclutter-1.0:amd64 1.0.4-1 -> 1.2.0-2
> > Note that I didn't upgrade the clutter packages because it Breaks:
> > libcogl5, and umpteen other packages depend on libcogl5. Thus, I expect
> > that many other people may end up with the same set of installed
> > packages, and have their session completely fail to start.
> Right, the problem is, that you've made a partial upgrade and
> gnome-shell hasn't been recompiled yet.
> As a result gnome-shell tries to load both libcogl9 (via
> libcogl-pango0_1.10.2-2 and gir1.2-cogl*_1.10.2-2) and libcogl5, which
> results in the crash.
> I see three different solutions, which all suck in their own way:
> a/ Make gir1.2-coglpango-1.0, gir1.2-cogl-1.0 and libcogl-pango0 break
This seems like the best choice of the three you mentioned. Anything
using any of those and linking against libcogl5 will break, and "Breaks:
libcogl5" seems like the best available proxy for "Breaks: everything
depending on libcogl5 and this package".
The more optimal but more difficult alternative: figure out all packages
currently depending on libcogl5 and previous versions of the GNOME
introspection bits, and declare a versioned breaks against all of them.
> b/ Make libcogl9 break libcogl5
I don't think this one makes sense; those two libraries work fine on the
same system as long as nothing loads both of them.
> c/ Make libcogl9 break libclutter-1.0-0 << 1.10
I don't think this one makes sense either, though it comes closer.
- Josh Triplett