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