Source: gtk2-engines-murrine
Version: 0.98.1.1-5
Severity: important
Tags: jessie stretch sid patch
Control: affects -1 mousepad gimp geany xfce4-panel xfce4-settings


Due to a problem in the Murrine engine, using bitmap fonts and Murrine-based 
themes
at the same time might lead to crash of various GTK+2 apps. This problem was 
around
for about 3-4 years, or maybe even more.

Steps to reproduce:

1. Have Xfce installed.
2. Install gtk2-engines-murrine and murrine-themes packages.
3. Install some package with bitmap fonts, for example, xfonts-terminus.
4. Run xfce4-appearance-settings and select some Murrine-based theme, for 
example,
   Greybird or Murrine-Light.
5. Switch to the Fonts tab and select some bitmap font, for example, Terminus.
6. Exit xfce4-appearance-settings.

Now some GTK+2 apps will crash right on start with the following error message:

../../../../src/cairo-scaled-font.c:459: _cairo_scaled_glyph_page_destroy: 
Assertion `!scaled_font->cache_frozen' failed.

I found out it's reproducible with mousepad, gimp, geany. With some 
Murrine-based themes,
like Greybird, it's also reproducible with xfce4-panel and Xfce's configuration 
apps:
xfce4-appearance-settings [1], xfce4-mouse-settings, xfce4-session-settings, 
etc.

I was able to find the proposed solution at [2] and made a patch which fixes 
the issue.
So far, the crashes have disappeared, and no any regressions have been found.

The debdiff with the patch is in the attachment. It can be applied in Stable, 
Testing
and Unstable, since the version of gtk2-engines-murrine is the same in all of 
them.

------------------------

[1] In this nasty case you'll probably want to reset the font via the console 
tool:
    xfconf-query -c xsettings -p /Gtk/FontName -r

[2] https://bugs.freedesktop.org/show_bug.cgi?id=78787#c9
diff -Nru gtk2-engines-murrine-0.98.1.1/debian/changelog 
gtk2-engines-murrine-0.98.1.1/debian/changelog
--- gtk2-engines-murrine-0.98.1.1/debian/changelog      2012-03-27 
22:10:31.000000000 +0400
+++ gtk2-engines-murrine-0.98.1.1/debian/changelog      2016-04-01 
11:35:03.000000000 +0300
@@ -1,3 +1,12 @@
+gtk2-engines-murrine (0.98.1.1-5.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * pango_cairo_update_layout.patch: new patch. Fixes crashes of
+    various apps when bitmap font like Terminus is used as default
+    system font.
+
+ -- Vlad Orlov <mon...@inbox.ru>  Fri, 01 Apr 2016 11:34:43 +0300
+
 gtk2-engines-murrine (0.98.1.1-5) unstable; urgency=low
 
   * debian/control:
diff -Nru 
gtk2-engines-murrine-0.98.1.1/debian/patches/pango_cairo_update_layout.patch 
gtk2-engines-murrine-0.98.1.1/debian/patches/pango_cairo_update_layout.patch
--- 
gtk2-engines-murrine-0.98.1.1/debian/patches/pango_cairo_update_layout.patch    
    1970-01-01 03:00:00.000000000 +0300
+++ 
gtk2-engines-murrine-0.98.1.1/debian/patches/pango_cairo_update_layout.patch    
    2016-04-01 11:37:55.000000000 +0300
@@ -0,0 +1,12 @@
+Index: gtk2-engines-murrine-0.98.1.1/src/murrine_style.c
+===================================================================
+--- gtk2-engines-murrine-0.98.1.1.orig/src/murrine_style.c
++++ gtk2-engines-murrine-0.98.1.1/src/murrine_style.c
+@@ -2153,6 +2153,7 @@ murrine_style_draw_layout (GtkStyle
+               cairo_t *cr; 
+               cr = murrine_begin_paint (window, area); 
+               cairo_translate (cr, x+xos, y+yos); 
++              pango_cairo_update_layout (cr, layout);
+               pango_cairo_layout_path (cr, layout);
+               murrine_set_color_rgba (cr, &temp, 0.5);
+               cairo_stroke (cr);
diff -Nru gtk2-engines-murrine-0.98.1.1/debian/patches/series 
gtk2-engines-murrine-0.98.1.1/debian/patches/series
--- gtk2-engines-murrine-0.98.1.1/debian/patches/series 2012-03-25 
16:22:45.000000000 +0400
+++ gtk2-engines-murrine-0.98.1.1/debian/patches/series 2016-04-01 
11:35:25.000000000 +0300
@@ -1,3 +1,4 @@
 01_fix-linking-pixman.patch
 02_fix-linking-lm.patch
 03_glib-single-include.patch
+pango_cairo_update_layout.patch

Reply via email to