Bug#776696: please update GTK+3 in Jessie to the latest 3.14.x bugfix release

Ruben Undheim ruben.undheim at gmail.com
Mon Aug 17 14:09:45 UTC 2015


On Mon, Aug 17, 2015 at 04:24:27PM +0300, Vlad Orlov wrote:
> Hi,
> 
> Yes, good idea in case they won't agree to import the whole latest bugfix
> release. Speaking of that, it would be really nice to have at least a little
> feedback from the team...

I've now added 5 of the bug fixes. I consider 3 of them critically important,
while 2 of them are "annoying" (maybe we should update the priority on the bugs
to reflect it as well).


I've added a justification for why the bugfixes should be applied to Jessie in
the patch descriptions.

The source debdiff looks like this:


diff -Nru gtk+3.0-3.14.5/debian/changelog gtk+3.0-3.14.5/debian/changelog
--- gtk+3.0-3.14.5/debian/changelog	2014-11-11 18:55:48.000000000 +0100
+++ gtk+3.0-3.14.5/debian/changelog	2015-08-17 15:58:35.000000000 +0200
@@ -1,3 +1,16 @@
+gtk+3.0 (3.14.5-1+deb8u1) jessie; urgency=medium
+
+  [ Ruben Undheim ]
+  * Added patches for three serious bugs:
+    - debian/patches/074_fix_freeze_while_resume_events.patch (Closes: #787419)
+    - debian/patches/075_fontchoose_crash_bugfix.patch (Closes: #748469)
+    - debian/patches/076_treeview_dont_create_overly_large.patch (Closes: #788002)
+  * Added patches for two annoying bugs:
+    - debian/patches/080_gtk_print_bugfix.patch (Closes: #771205)
+    - debian/patches/081_fix_huge_icons.patch (Closes: #773135)
+
+ -- maintainer <maintainer at email.com>  Mon, 17 Aug 2015 09:53:13 +0200
+
 gtk+3.0 (3.14.5-1) unstable; urgency=medium
 
   * New upstream bugfix release.
diff -Nru gtk+3.0-3.14.5/debian/patches/074_fix_freeze_while_resume_events.patch gtk+3.0-3.14.5/debian/patches/074_fix_freeze_while_resume_events.patch
--- gtk+3.0-3.14.5/debian/patches/074_fix_freeze_while_resume_events.patch	1970-01-01 01:00:00.000000000 +0100
+++ gtk+3.0-3.14.5/debian/patches/074_fix_freeze_while_resume_events.patch	2015-08-17 15:58:35.000000000 +0200
@@ -0,0 +1,59 @@
+Description: This patch fixes a bug causing gtk applications to freeze
+ every now and then.
+ .
+ It deserves to be applied in Jessie because it will and have caused users
+ to lose their work. One common consequence of the bug is that all open
+ gnome-terminal instances may suddenly crash at the same time.
+Author: Ruben Undheim <ruben.undheim at gmail.com>
+Bug-Debian: https://bugs.debian.org/787419
+Origin: upstream
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=742636
+Last-Update: 2015-08-17
+
+Index: gtk+3.0-3.14.5/gdk/gdkinternals.h
+===================================================================
+--- gtk+3.0-3.14.5.orig/gdk/gdkinternals.h
++++ gtk+3.0-3.14.5/gdk/gdkinternals.h
+@@ -240,6 +240,7 @@ struct _GdkWindow
+   guint in_update : 1;
+   guint geometry_dirty : 1;
+   guint event_compression : 1;
++  guint frame_clock_events_paused : 1;
+
+   /* The GdkWindow that has the impl, ref:ed if another window.
+    * This ref is required to keep the wrapper of the impl window alive
+Index: gtk+3.0-3.14.5/gdk/gdkwindow.c
+===================================================================
+--- gtk+3.0-3.14.5.orig/gdk/gdkwindow.c
++++ gtk+3.0-3.14.5/gdk/gdkwindow.c
+@@ -10603,6 +10603,8 @@ gdk_window_flush_events (GdkFrameClock *
+   _gdk_display_pause_events (display);
+
+   gdk_frame_clock_request_phase (clock, GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS);
++
++  window->frame_clock_events_paused = TRUE;
+ }
+
+ static void
+@@ -10629,6 +10631,8 @@ gdk_window_resume_events (GdkFrameClock
+
+   display = gdk_window_get_display (window);
+   _gdk_display_unpause_events (display);
++
++  window->frame_clock_events_paused = FALSE;
+ }
+
+ static void
+@@ -10661,6 +10665,9 @@ gdk_window_set_frame_clock (GdkWindow
+
+   if (window->frame_clock)
+     {
++     if (window->frame_clock_events_paused)
++       gdk_window_resume_events (window->frame_clock, G_OBJECT (window));
++
+       g_signal_handlers_disconnect_by_func (G_OBJECT (window->frame_clock),
+                                             G_CALLBACK (gdk_window_flush_events),
+                                             window);
+
+
+
diff -Nru gtk+3.0-3.14.5/debian/patches/075_fontchoose_crash_bugfix.patch gtk+3.0-3.14.5/debian/patches/075_fontchoose_crash_bugfix.patch
--- gtk+3.0-3.14.5/debian/patches/075_fontchoose_crash_bugfix.patch	1970-01-01 01:00:00.000000000 +0100
+++ gtk+3.0-3.14.5/debian/patches/075_fontchoose_crash_bugfix.patch	2015-08-17 15:37:20.000000000 +0200
@@ -0,0 +1,81 @@
+Description: Backporting a fix for a bug which makes the font chooser
+ crash GTK applications in certain circumstances.
+ .
+ It deserves to be applied in Jessie because all GTK programs using a font
+ chooser may suddenly crash completely apparently out of nowhere.
+Author: Ruben Undheim <ruben.undheim at gmail.com>
+Bug-Debian: https://bugs.debian.org/748469
+Origin: upstream
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=750211
+Last-Update: 2015-08-17
+
+Index: gtk+3.0-3.14.5/gtk/gtkfontchooserwidget.c
+===================================================================
+--- gtk+3.0-3.14.5.orig/gtk/gtkfontchooserwidget.c	2014-11-09 18:57:30.000000000 +0100
++++ gtk+3.0-3.14.5/gtk/gtkfontchooserwidget.c	2015-08-17 09:41:29.508643739 +0200
+@@ -377,34 +377,25 @@
+ tree_model_get_font_description (GtkTreeModel *model,
+                                  GtkTreeIter  *iter)
+ {
+-  PangoFontDescription *desc;
++  PangoFontDescription *desc, *face_desc;
+   PangoFontFace *face;
+-  GtkTreeIter child_iter;
+ 
+   gtk_tree_model_get (model, iter,
+                       FONT_DESC_COLUMN, &desc,
+                       -1);
+-  if (desc != NULL)
++
++  if (pango_font_description_get_set_fields (desc) != 0)
+     return desc;
+ 
+   gtk_tree_model_get (model, iter,
+                       FACE_COLUMN, &face,
+                       -1);
+-  desc = pango_font_face_describe (face);
++  face_desc = pango_font_face_describe (face);
+   g_object_unref (face);
+-  
+-  if (GTK_IS_TREE_MODEL_FILTER (model))
+-    {
+-      gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (model),
+-                                                        &child_iter,
+-                                                        iter);
+-      iter = &child_iter;
+-      model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model));
+-    }
+ 
+-  gtk_list_store_set (GTK_LIST_STORE (model), iter,
+-                      FONT_DESC_COLUMN, desc,
+-                      -1);
++  pango_font_description_merge (desc, face_desc, TRUE);
++
++  pango_font_description_free (face_desc);
+ 
+   return desc;
+ }
+@@ -643,19 +634,23 @@
+ 
+       for (j = 0; j < n_faces; j++)
+         {
++          PangoFontDescription *empty_font_desc;
+           const gchar *face_name;
+ 
+           face_name = pango_font_face_get_face_name (faces[j]);
+ 
+           family_and_face = g_strconcat (fam_name, " ", face_name, NULL);
++          empty_font_desc = pango_font_description_new ();
+ 
+           gtk_list_store_insert_with_values (list_store, &iter, -1,
+                                              FAMILY_COLUMN, families[i],
+                                              FACE_COLUMN, faces[j],
++                                             FONT_DESC_COLUMN, empty_font_desc,
+                                              PREVIEW_TITLE_COLUMN, family_and_face,
+                                              -1);
+ 
+           g_free (family_and_face);
++          pango_font_description_free (empty_font_desc);
+         }
+ 
+       g_free (faces);
diff -Nru gtk+3.0-3.14.5/debian/patches/076_treeview_dont_create_overly_large.patch gtk+3.0-3.14.5/debian/patches/076_treeview_dont_create_overly_large.patch
--- gtk+3.0-3.14.5/debian/patches/076_treeview_dont_create_overly_large.patch	1970-01-01 01:00:00.000000000 +0100
+++ gtk+3.0-3.14.5/debian/patches/076_treeview_dont_create_overly_large.patch	2015-08-17 15:32:03.000000000 +0200
@@ -0,0 +1,26 @@
+Description: Backport of fix for a bug that causes crashes with programs
+ such as easytag.
+ .
+ It deserves to be applied in Jessie because it makes several programs
+ suddenly crash apparently out of nowhere.
+Author: Ruben Undheim <ruben.undheim at gmail.com>
+Bug-Debian: https://bugs.debian.org/788002
+Origin: upstream
+Bug: https://bugzilla.redhat.com/show_bug.cgi?id=1163579
+Last-Update: 2015-08-17
+
+Index: gtk+3.0/gtk/gtktreeview.c
+===================================================================
+--- gtk+3.0.orig/gtk/gtktreeview.c	2015-08-17 09:57:38.613296608 +0200
++++ gtk+3.0/gtk/gtktreeview.c	2015-08-17 10:46:42.893021554 +0200
+@@ -5576,8 +5576,8 @@
+ 
+       view_rect.x = 0;
+       view_rect.y = gtk_tree_view_get_effective_header_height (tree_view);
+-      view_rect.width = gdk_window_get_width (tree_view->priv->bin_window);
+-      view_rect.height = gdk_window_get_height (tree_view->priv->bin_window);
++      view_rect.width = gtk_widget_get_allocated_width (widget);
++      view_rect.height = gtk_widget_get_allocated_height (widget) - view_rect.y;
+ 
+       gdk_window_get_position (tree_view->priv->bin_window, &canvas_rect.x, &canvas_rect.y);
+       canvas_rect.y = -gtk_adjustment_get_value (tree_view->priv->vadjustment);
diff -Nru gtk+3.0-3.14.5/debian/patches/080_gtk_print_bugfix.patch gtk+3.0-3.14.5/debian/patches/080_gtk_print_bugfix.patch
--- gtk+3.0-3.14.5/debian/patches/080_gtk_print_bugfix.patch	1970-01-01 01:00:00.000000000 +0100
+++ gtk+3.0-3.14.5/debian/patches/080_gtk_print_bugfix.patch	2015-08-17 15:36:44.000000000 +0200
@@ -0,0 +1,53 @@
+Description: Backporting a fix for a bug which cause trouble with scaling and
+ landscape printing in GTK applications.
+ .
+ It deserves to be applied in Jessie because it makes it impossible to print
+ PDF documents in landscape mode from evince.
+Author: Ruben Undheim <ruben.undheim at gmail.com>
+Bug-Debian: https://bugs.debian.org/771205
+Origin: upstream
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=740742
+Last-Update: 2015-08-17
+
+Index: gtk+3.0-3.14.5/gtk/gtkprintoperation.c
+===================================================================
+--- gtk+3.0-3.14.5.orig/gtk/gtkprintoperation.c	2014-11-06 19:58:35.000000000 +0100
++++ gtk+3.0-3.14.5/gtk/gtkprintoperation.c	2015-08-17 09:35:13.640110877 +0200
+@@ -2488,17 +2488,22 @@
+   cr = gtk_print_context_get_cairo_context (print_context);
+   
+   cairo_save (cr);
+-  if (priv->manual_scale != 1.0 && priv->manual_number_up <= 1)
+-    cairo_scale (cr,
+-		 priv->manual_scale,
+-		 priv->manual_scale);
+   
+   if (priv->manual_orientation)
+     _gtk_print_context_rotate_according_to_orientation (print_context);
+   else
+     _gtk_print_context_reverse_according_to_orientation (print_context);
+ 
+-  if (priv->manual_number_up > 1)
++  if (priv->manual_number_up <= 1)
++    {
++      if (!priv->use_full_page)
++        _gtk_print_context_translate_into_margin (print_context);
++      if (priv->manual_scale != 1.0)
++        cairo_scale (cr,
++                     priv->manual_scale,
++                     priv->manual_scale);
++    }
++  else
+     {
+       GtkPageOrientation  orientation;
+       GtkPageSetup       *page_setup;
+@@ -2678,9 +2683,6 @@
+           cairo_rotate (cr, - G_PI / 2);
+         }
+     }
+-  else
+-    if (!priv->use_full_page)
+-      _gtk_print_context_translate_into_margin (print_context);
+   
+   priv->page_drawing_state = GTK_PAGE_DRAWING_STATE_DRAWING;
+ 
diff -Nru gtk+3.0-3.14.5/debian/patches/081_fix_huge_icons.patch gtk+3.0-3.14.5/debian/patches/081_fix_huge_icons.patch
--- gtk+3.0-3.14.5/debian/patches/081_fix_huge_icons.patch	1970-01-01 01:00:00.000000000 +0100
+++ gtk+3.0-3.14.5/debian/patches/081_fix_huge_icons.patch	2015-08-17 15:58:35.000000000 +0200
@@ -0,0 +1,36 @@
+Description: Backporting a fix for a bug which cause trouble with icon sizes
+ in GTK applications
+ .
+ It deserves to be applied in Jessie mainly because it is quite annoying and
+ the fix is very small and hence little chance of any regression.
+Author: Ruben Undheim <ruben.undheim at gmail.com>
+Bug-Debian: https://bugs.debian.org/773135
+Origin: upstream
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=741259
+Last-Update: 2015-08-17
+
+Index: gtk-bugfix/gtk/deprecated/gtkimagemenuitem.c
+===================================================================
+--- gtk-bugfix.orig/gtk/deprecated/gtkimagemenuitem.c
++++ gtk-bugfix/gtk/deprecated/gtkimagemenuitem.c
+@@ -1099,6 +1099,8 @@ gtk_image_menu_item_set_image (GtkImageM
+                 "no-show-all", TRUE,
+                 NULL);
+ 
++  gtk_image_set_pixel_size (GTK_IMAGE (image), 16);
++
+   g_object_notify (G_OBJECT (image_menu_item), "image");
+ }
+ 
+Index: gtk-bugfix/gtk/gtkmodelmenuitem.c
+===================================================================
+--- gtk-bugfix.orig/gtk/gtkmodelmenuitem.c
++++ gtk-bugfix/gtk/gtkmodelmenuitem.c
+@@ -199,6 +199,7 @@ gtk_model_menu_item_set_icon (GtkModelMe
+       GtkWidget *image;
+ 
+       image = gtk_image_new_from_gicon (icon, GTK_ICON_SIZE_MENU);
++      gtk_image_set_pixel_size (GTK_IMAGE (image), 16);
+       gtk_box_pack_start (GTK_BOX (child), image, FALSE, FALSE, 0);
+       gtk_widget_show (image);
+     }
diff -Nru gtk+3.0-3.14.5/debian/patches/series gtk+3.0-3.14.5/debian/patches/series
--- gtk+3.0-3.14.5/debian/patches/series	2014-11-11 18:54:35.000000000 +0100
+++ gtk+3.0-3.14.5/debian/patches/series	2015-08-17 15:58:35.000000000 +0200
@@ -12,3 +12,8 @@
 061_multiarch_module_fallback.patch
 071_fix-installation-of-HTML-images.patch
 reftest-known-fail.patch
+074_fix_freeze_while_resume_events.patch
+075_fontchoose_crash_bugfix.patch
+076_treeview_dont_create_overly_large.patch
+080_gtk_print_bugfix.patch
+081_fix_huge_icons.patch




Does it look ok? Any missing bugs that also deserve to be fixed now?

We need people testing the fixed version since I've only been able to
properly test #787419 and #748469 with and without the fix.

Best regards,
Ruben
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-gnome-maintainers/attachments/20150817/743dc1e7/attachment-0001.sig>


More information about the pkg-gnome-maintainers mailing list