From a559985515f9df70131478e5e6df059bcf3a0e9537b558a81dc4ba5814a68df1 Mon Sep 17 00:00:00 2001 From: Vincent Untz Date: Tue, 11 Oct 2011 06:53:35 +0000 Subject: [PATCH] Accepting request 87323 from home:vuntz:branches:GNOME:Factory Fix crash outside of GNOME (+ test supersede on bs) OBS-URL: https://build.opensuse.org/request/show/87323 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/file-roller?expand=0&rev=114 --- file-roller-no-crash-without-nautilus.patch | 69 +++++++++++++++++++++ file-roller.changes | 6 ++ file-roller.spec | 3 + 3 files changed, 78 insertions(+) create mode 100644 file-roller-no-crash-without-nautilus.patch diff --git a/file-roller-no-crash-without-nautilus.patch b/file-roller-no-crash-without-nautilus.patch new file mode 100644 index 0000000..96aac40 --- /dev/null +++ b/file-roller-no-crash-without-nautilus.patch @@ -0,0 +1,69 @@ +commit 0b579ad93f99133e6d92af08a36a3d5693edad5f +Author: Vincent Untz +Date: Mon Oct 10 09:12:59 2011 +0200 + + Do not crash if nautilus schema is not present + + A lot of users use file-roller in non-GNOME environments, where nautilus + is not installed. We don't want to crash in that case as we only need + the nautilus schema to determine if we use single-click vs double-click. + + https://bugzilla.gnome.org/show_bug.cgi?id=649094 + +diff --git a/src/fr-window.c b/src/fr-window.c +index 743c8fe..0357b68 100644 +--- a/src/fr-window.c ++++ b/src/fr-window.c +@@ -4642,6 +4642,9 @@ is_single_click_policy (FrWindow *window) + char *value; + gboolean result; + ++ if (!window->priv->settings_nautilus) ++ return FALSE; ++ + value = g_settings_get_string (window->priv->settings_nautilus, NAUTILUS_CLICK_POLICY); + result = (value != NULL) && (strncmp (value, "single", 6) == 0); + g_free (value); +@@ -5425,6 +5428,8 @@ fr_window_construct (FrWindow *window) + GtkToolItem *open_recent_tool_item; + GtkWidget *menu_item; + GError *error = NULL; ++ const char * const *schemas; ++ const char *schema; + + /* data common to all windows. */ + +@@ -5441,7 +5446,15 @@ fr_window_construct (FrWindow *window) + window->priv->settings_ui = g_settings_new (FILE_ROLLER_SCHEMA_UI); + window->priv->settings_general = g_settings_new (FILE_ROLLER_SCHEMA_GENERAL); + window->priv->settings_dialogs = g_settings_new (FILE_ROLLER_SCHEMA_DIALOGS); +- window->priv->settings_nautilus = g_settings_new (NAUTILUS_SCHEMA); ++ ++ /* Only use the nautilus schema if it's installed */ ++ schemas = g_settings_list_schemas(); ++ for (; *schemas != NULL; schemas++) { ++ if (g_strcmp0 (*schemas, NAUTILUS_SCHEMA) == 0) { ++ window->priv->settings_nautilus = g_settings_new (NAUTILUS_SCHEMA); ++ break; ++ } ++ } + + /* Create the application. */ + +@@ -6045,10 +6058,12 @@ fr_window_construct (FrWindow *window) + "changed::" PREF_LISTING_USE_MIME_ICONS, + G_CALLBACK (pref_use_mime_icons_changed), + window); +- g_signal_connect (window->priv->settings_nautilus, +- "changed::" NAUTILUS_CLICK_POLICY, +- G_CALLBACK (pref_click_policy_changed), +- window); ++ ++ if (window->priv->settings_nautilus) ++ g_signal_connect (window->priv->settings_nautilus, ++ "changed::" NAUTILUS_CLICK_POLICY, ++ G_CALLBACK (pref_click_policy_changed), ++ window); + + /* Give focus to the list. */ + diff --git a/file-roller.changes b/file-roller.changes index 666688e..d16372d 100644 --- a/file-roller.changes +++ b/file-roller.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Oct 10 09:08:10 UTC 2011 - vuntz@opensuse.org + +- Add file-roller-no-crash-without-nautilus.patch: do not crash if + nautilus is not installed. Fix bnc#722863. + ------------------------------------------------------------------- Mon Sep 26 19:31:25 UTC 2011 - vuntz@opensuse.org diff --git a/file-roller.spec b/file-roller.spec index 82c8f9d..1a1f62b 100644 --- a/file-roller.spec +++ b/file-roller.spec @@ -25,6 +25,8 @@ Summary: An Archive Manager for GNOME Url: http://fileroller.sourceforge.net Group: Productivity/Archiving/Compression Source: http://download.gnome.org/sources/file-roller/3.2/%{name}-%{version}.tar.bz2 +# PATCH-FIX-UPSTREAM file-roller-no-crash-without-nautilus.patch bgo#649094 bnc#722863 vuntz@opensuse.org -- Do not crash if nautilus gsettings schemas are not installed +Patch0: file-roller-no-crash-without-nautilus.patch # Needed for directory ownership BuildRequires: dbus-1 BuildRequires: fdupes @@ -90,6 +92,7 @@ This package contains a plugin to integrate File Roller into Nautilus. %prep %setup -q translation-update-upstream +%patch0 -p1 %build %configure\