diff --git a/0001-Hold-ref-to-menus-stored-in-app.patch b/0001-Hold-ref-to-menus-stored-in-app.patch new file mode 100644 index 0000000..c5f8714 --- /dev/null +++ b/0001-Hold-ref-to-menus-stored-in-app.patch @@ -0,0 +1,61 @@ +From 98efe189a8a39216de1807d009d4ae5a099eddd0 Mon Sep 17 00:00:00 2001 +From: Jesse van den Kieboom +Date: Mon, 30 Jun 2014 19:19:48 +0200 +Subject: [PATCH] Hold ref to menus stored in app + +--- + gedit/gedit-app.c | 26 +++++++++++++++++++++----- + 1 file changed, 21 insertions(+), 5 deletions(-) + +diff --git a/gedit/gedit-app.c b/gedit/gedit-app.c +index ed08a75..0704623 100644 +--- a/gedit/gedit-app.c ++++ b/gedit/gedit-app.c +@@ -421,6 +421,22 @@ load_accels (void) + } + } + ++static gpointer ++get_builder_object_ref (GtkBuilder *builder, ++ const gchar *name) ++{ ++ gpointer ret; ++ ++ ret = gtk_builder_get_object (builder, name); ++ ++ if (ret != NULL) ++ { ++ g_object_ref_sink (ret); ++ } ++ ++ return ret; ++} ++ + static void + gedit_app_startup (GApplication *application) + { +@@ -493,16 +509,16 @@ gedit_app_startup (GApplication *application) + appmenu = G_MENU_MODEL (gtk_builder_get_object (builder, "appmenu")); + gtk_application_set_app_menu (GTK_APPLICATION (application), appmenu); + +- app->priv->window_menu = G_MENU_MODEL (gtk_builder_get_object (builder, "gear_menu_withappmenu")); ++ app->priv->window_menu = G_MENU_MODEL (get_builder_object_ref (builder, "gear_menu_withappmenu")); + } + else + { +- app->priv->window_menu = G_MENU_MODEL (gtk_builder_get_object (builder, "gear_menu_noappmenu")); ++ app->priv->window_menu = G_MENU_MODEL (get_builder_object_ref (builder, "gear_menu_noappmenu")); + } + +- app->priv->notebook_menu = G_MENU_MODEL (gtk_builder_get_object (builder, "notebook_menu")); +- app->priv->tab_width_menu = G_MENU_MODEL (gtk_builder_get_object (builder, "tab_width_menu")); +- app->priv->line_col_menu = G_MENU_MODEL (gtk_builder_get_object (builder, "line_col_menu")); ++ app->priv->notebook_menu = G_MENU_MODEL (get_builder_object_ref (builder, "notebook_menu")); ++ app->priv->tab_width_menu = G_MENU_MODEL (get_builder_object_ref (builder, "tab_width_menu")); ++ app->priv->line_col_menu = G_MENU_MODEL (get_builder_object_ref (builder, "line_col_menu")); + } + + g_object_unref (builder); +-- +2.0.1 + diff --git a/gedit.spec b/gedit.spec index 80146e2..40d3b6a 100644 --- a/gedit.spec +++ b/gedit.spec @@ -23,7 +23,7 @@ Summary: Text editor for the GNOME desktop Name: gedit Epoch: 2 Version: 3.13.2 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and GFDL Group: Applications/Editors #VCS: git:git://git.gnome.org/gedit @@ -34,6 +34,9 @@ URL: http://projects.gnome.org/gedit/ Requires(post): desktop-file-utils >= %{desktop_file_utils_version} Requires(postun): desktop-file-utils >= %{desktop_file_utils_version} +# Backported upstream fix for a crash with gtk+ 3.13.4 +Patch1: 0001-Hold-ref-to-menus-stored-in-app.patch + Patch4: gedit-disable-python3.patch BuildRequires: gnome-common @@ -100,6 +103,7 @@ Install gedit-devel if you want to write plugins for gedit. %prep %setup -q +%patch1 -p1 %if !%{with_python3} %patch4 -p1 -b .disable-python @@ -208,6 +212,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas >&/dev/null || : %{_datadir}/vala/ %changelog +* Tue Jul 15 2014 Kalev Lember - 2:3.13.2-2 +- Backport a fix for a crash at startup with gtk3 3.13.4 + * Tue Jun 24 2014 Richard Hughes - 2:3.13.2-1 - Update to 3.13.2