Package: release.debian.org Severity: normal Tags: jessie User: release.debian....@packages.debian.org Usertags: pu
Hi, gtk+3.0 in Jessie is affected by several quite serious bugs. 3 of them are so serious that they from time to time cause users losing their work. There has been a request to update gtk+3 to the latest 3.14.x bugfix release [1], but since this probably is unlikely to be accepted (??), we have now rather collected the most important bugs and made patches of them to create a +deb8u1 release. The source debdiff for this is added to the bottom of this bug report. Since the pkg-gnome maintainers do not seem to be as affected by this as others, we (the sufferers) were vaguely encouraged to get in contact with the Stable Release Team ourself (See [2]), and then come back to the maintainers if we have negotiated acceptance with you. The package has been tested before and after the fix and the results can be found here: [3]. The package was of course built and tested in Jessie (not sid). The plan is to tell the maintainers about the outcome of this request, so that they can do the necessary steps to tweak the changelog entry and get the package uploaded. The three first bugs (#787419, #748469, #788002) are (in my opinion) extremely important to get fixed in Jessie. Justification for why they should go into Jessie has been added to the Description field of every patch file. The last bug (#773135) is not that important, but still very useful to get in since the package anyway will be updated. Please let us know if we should skip that and only keep the first three. All the bugs have of course already been fixed upstream and in sid. Let us know if there is anything else we should do to help out. Thanks for your attention. Best regards, Ruben Undheim [1] https://bugs.debian.org/776696 [2] http://lists.alioth.debian.org/pipermail/pkg-gnome-maintainers/2015-August/121106.html [3] http://lists.alioth.debian.org/pipermail/pkg-gnome-maintainers/2015-August/121138.html The source debdiff is as follows: 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 20:20:06.000000000 +0200 @@ -1,3 +1,15 @@ +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 patch for one annoying bug: + - 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 20:20:06.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 20:20:06.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 20:20:06.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/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 20:20:06.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 20:20:06.000000000 +0200 @@ -12,3 +12,7 @@ 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 +081_fix_huge_icons.patch
signature.asc
Description: Digital signature