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 <maintai...@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.undh...@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.undh...@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.undh...@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.undh...@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.undh...@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
signature.asc
Description: Digital signature