GLib 2.29 vs Gtk 3.0 instability



hi,

I recently introduced a change into the GLib unstable branch that causes
all applications using Gtk 3.0 to crash:

  http://git.gnome.org/browse/glib/commit/?id=d6c30e1766c975dd79e6f252d73c6c0581b64b01

The reason for the crash is this code in gtkthemingengine.c, added a
year ago:

  /* FIXME: hack hack hack, replacing pspec->name to include namespace */
  name = g_strdup_printf ("-%s-%s", name_space, pspec->name);
  g_free (pspec->name);
  pspec->name = name;

When I switched GParamSpec to consistently intern all strings, most of
the theming engines were hit quite badly by this bug (since the code was
attempting to g_free() interned strings).

A workaround was committed to the master branch of Gtk+ very shortly
after the problem was discovered:

  http://git.gnome.org/browse/gtk+/commit/?id=7741f5a09a841c4dc93727b990defc303510ed2c

The workaround is incompatible with the old version of GLib, which is
okay since Gtk master branch already depends on new GLib for unrelated
reasons.

Sébastien Bacher pointed out that people who install new GLib versions
onto systems using the existing Gtk 3.0 stable series will still be
affected by the bug.  We want to avoid this situation.

Since any changes to the stable series cannot introduce a dependency on
an unstable GLib, I modified the workaround to check the GLib version
and do the appropriate thing.  I applied the fix to the gtk-3-0 branch:

  http://git.gnome.org/browse/gtk+/commit/?h=gtk-3-0&id=98513a02a234b65d962bf771a886d435ab1946ca

This patched version of Gtk 3.0 should work fine against both the old
and new GLib versions, thus avoiding the "upgraded GLib" issue without
introducing a new GLib dependency.

I intended to make a point release on the Gtk 3.0 stable branch
yesterday but there are some other issues currently blocking that
release for the time being.  One will happen soon.  It is requested that
all distributors package this release as an update to their stable
series, or at least apply the patch above.  This will save your users
from crashes if they attempt to upgrade their GLib.

Sorry for the bumpy ride.

Cheers



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]