diff --git a/file-roller-revertfix-fr_application_local.patch b/file-roller-revertfix-fr_application_local.patch new file mode 100644 index 0000000..400a79c --- /dev/null +++ b/file-roller-revertfix-fr_application_local.patch @@ -0,0 +1,60 @@ +From b78272c758a7f1835471e3804d1e9340e69bd2a3 Mon Sep 17 00:00:00 2001 +From: Paolo Bacchilega +Date: Thu, 15 Sep 2016 10:36:53 +0200 +Subject: Revert "Fix fr_application_local_command_line memory leak" + +This reverts commit 1139c1a6bc1707fdb64e8baa824d19b83c4ff835. + +The commit introduce a bug that prevent opening other archives +when a file-roller window is already open. + +Steps to reproduce the bug: + +* open a Nautilus window +* click on an archive -> file-roller shows the archive content correctly +* click on another archive (without closing the first file-roller window) -> the new file-roller window is +empty +--- + src/fr-application.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/src/fr-application.c b/src/fr-application.c +index 43e8e20..a2442d5 100644 +--- a/src/fr-application.c ++++ b/src/fr-application.c +@@ -644,19 +644,21 @@ fr_application_local_command_line (GApplication *application, + char ***arguments, + int *exit_status) + { ++ char **local_argv; + int local_argc; + GOptionContext *context; + GError *error = NULL; + gboolean handled_locally = FALSE; + +- local_argc = g_strv_length (*arguments); ++ local_argv = g_strdupv (*arguments); ++ local_argc = g_strv_length (local_argv); + +- program_argv0 = *arguments[0]; ++ program_argv0 = local_argv[0]; + *exit_status = 0; + + context = fr_application_create_option_context (); + g_option_context_set_ignore_unknown_options (context, TRUE); +- if (! g_option_context_parse (context, &local_argc, arguments, &error)) { ++ if (! g_option_context_parse (context, &local_argc, &local_argv, &error)) { + *exit_status = EXIT_FAILURE; + g_critical ("Failed to parse arguments: %s", error->message); + g_clear_error (&error); +@@ -669,6 +671,7 @@ fr_application_local_command_line (GApplication *application, + } + + g_option_context_free (context); ++ g_strfreev (local_argv); + + return handled_locally; + } +-- +cgit v0.12 + diff --git a/file-roller.changes b/file-roller.changes index 675fff5..f8b02aa 100644 --- a/file-roller.changes +++ b/file-roller.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Sep 29 07:41:53 UTC 2016 - zaitor@opensuse.org + +- Add file-roller-revertfix-fr_application_local.patch: Allow + multiple windows of file-roller (bgo#772148). + ------------------------------------------------------------------- Mon Sep 19 18:16:27 UTC 2016 - zaitor@opensuse.org diff --git a/file-roller.spec b/file-roller.spec index 67054ac..707a8ef 100644 --- a/file-roller.spec +++ b/file-roller.spec @@ -28,6 +28,8 @@ Source: http://download.gnome.org/sources/file-roller/3.22/%{name}-%{ver Patch0: file-roller-3.4-change-archiver-priority.patch # PATCH-FEATURE-OPENSUSE file-roller-pkg-match.patch bnc#696530 dimstar@opensuse.org -- List package match names for automatic installation using PK. Patch1: file-roller-pkg-match.patch +# PATCH-FIX-UPSTREAM file-roller-revertfix-fr_application_local.patch bgo#772148 zaitor@opensuse.org -- Allow multiple windows of file-roller. +Patch2: file-roller-revertfix-fr_application_local.patch # Needed for directory ownership BuildRequires: dbus-1 BuildRequires: fdupes @@ -87,6 +89,7 @@ contained in the archive, and extract files from the archive. %setup -q %patch0 %patch1 -p1 +%patch2 -p1 %if !0%{?is_opensuse} translation-update-upstream %endif