Hello community, here is the log from the commit of package file-roller for openSUSE:Factory checked in at 2017-02-21 13:32:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/file-roller (Old) and /work/SRC/openSUSE:Factory/.file-roller.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "file-roller" Changes: -------- --- /work/SRC/openSUSE:Factory/file-roller/file-roller.changes 2016-11-12 14:50:40.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.file-roller.new/file-roller.changes 2017-02-21 13:32:22.412443228 +0100 @@ -1,0 +2,11 @@ +Sun Feb 19 10:59:10 UTC 2017 - zai...@opensuse.org + +- Add file-roller-open-dest-dialog-only-when-using-notify.patch: + Show the 'open destination' dialog only when using --notify and + only for the last extracted archive. +- Add file-roller-libarchive-dont-convert-null-strings.patch: Don't + convert null strings to utf8. +- Add file-roller-fix-crash-after-extracting.patch: Fix a crash + after extracting a file (bgo#778846, boo#1022082). + +------------------------------------------------------------------- New: ---- file-roller-fix-crash-after-extracting.patch file-roller-libarchive-dont-convert-null-strings.patch file-roller-open-dest-dialog-only-when-using-notify.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ file-roller.spec ++++++ --- /var/tmp/diff_new_pack.iPfqlS/_old 2017-02-21 13:32:23.220329263 +0100 +++ /var/tmp/diff_new_pack.iPfqlS/_new 2017-02-21 13:32:23.220329263 +0100 @@ -1,7 +1,7 @@ # # spec file for package file-roller # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -28,6 +28,13 @@ Patch0: file-roller-3.4-change-archiver-priority.patch # PATCH-FEATURE-OPENSUSE file-roller-pkg-match.patch bnc#696530 dims...@opensuse.org -- List package match names for automatic installation using PK. Patch1: file-roller-pkg-match.patch +# PATCH-FIX-UPSTREAM file-roller-libarchive-dont-convert-null-strings.patch zai...@opensuse.org -- Don't convert null strings to utf8 +Patch2: file-roller-libarchive-dont-convert-null-strings.patch +# PATCH-FIX-UPSTREAM file-roller-fix-crash-after-extracting.patch bgo#778846 boo#1022082 zai...@opensuse.org -- Fix a crash after extracting a file +Patch3: file-roller-fix-crash-after-extracting.patch +# PATCH-FIX-UPSTREAM file-roller-open-dest-dialog-only-when-using-notify.patch zai...@opensuse.org -- show the 'open destination' dialog only when using --notify +Patch4: file-roller-open-dest-dialog-only-when-using-notify.patch + # Needed for directory ownership BuildRequires: dbus-1 BuildRequires: fdupes @@ -87,6 +94,9 @@ %setup -q %patch0 %patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 %if !0%{?is_opensuse} translation-update-upstream %endif ++++++ file-roller-fix-crash-after-extracting.patch ++++++ >From a9d765035f5b0786834fa6311e3780788484411a Mon Sep 17 00:00:00 2001 From: Paolo Bacchilega <pao...@src.gnome.org> Date: Sat, 18 Feb 2017 08:54:53 +0100 Subject: fixed crash after extracting a file [bug #778846] --- src/fr-window.c | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/src/fr-window.c b/src/fr-window.c index 3d63fe0..1fd803b 100644 --- a/src/fr-window.c +++ b/src/fr-window.c @@ -6432,7 +6432,7 @@ extract_data_new (FrWindow *window, ExtractData *edata; edata = g_new0 (ExtractData, 1); - edata->window = window; + edata->window = _g_object_ref (window); edata->file_list = _g_string_list_dup (file_list); edata->destination = _g_object_ref (destination); edata->skip_older = skip_older; @@ -6454,6 +6454,7 @@ extract_data_free (ExtractData *edata) _g_string_list_free (edata->file_list); _g_object_unref (edata->destination); + _g_object_unref (edata->window); g_free (edata->base_dir); g_free (edata); @@ -6597,6 +6598,29 @@ _fr_window_archive_extract_from_edata (FrWindow *window, static void _fr_window_ask_overwrite_dialog (OverwriteData *odata); +static OverwriteData * +overwrite_data_new (FrWindow *window) +{ + OverwriteData *odata; + + odata = g_new0 (OverwriteData, 1); + odata->window = _g_object_ref (window); + odata->edata = NULL; + odata->current_file = NULL; + odata->extract_all = FALSE; + + return odata; +} + + +static void +overwrite_data_free (OverwriteData *odata) +{ + _g_object_unref (odata->window); + g_free (odata); +} + + /* remove the file from the list to extract */ static void overwrite_data_skip_current (OverwriteData *odata) @@ -6644,7 +6668,7 @@ overwrite_dialog_response_cb (GtkDialog *dialog, if (do_not_extract) { fr_window_batch_stop (odata->window); - g_free (odata); + overwrite_data_free (odata); return; } @@ -6775,7 +6799,7 @@ _fr_window_ask_overwrite_dialog (OverwriteData *odata) fr_window_dnd_extraction_finished (odata->window, TRUE); } - g_free (odata); + overwrite_data_free (odata); } @@ -6903,8 +6927,7 @@ _fr_window_archive_extract_from_edata_maybe (FrWindow *window, if (edata->overwrite == FR_OVERWRITE_ASK) { OverwriteData *odata; - odata = g_new0 (OverwriteData, 1); - odata->window = window; + odata = overwrite_data_new (window); odata->edata = edata; odata->extract_all = (edata->file_list == NULL) || (g_list_length (edata->file_list) == window->archive->files->len); if (edata->file_list == NULL) -- cgit v0.12 ++++++ file-roller-libarchive-dont-convert-null-strings.patch ++++++ >From 78a608ae8d0058fdf202da5b561c1cbdd937ad99 Mon Sep 17 00:00:00 2001 From: Paolo Bacchilega <pao...@src.gnome.org> Date: Sat, 18 Feb 2017 08:52:54 +0100 Subject: libarchive: don't convert null strings to utf8 --- src/fr-archive-libarchive.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fr-archive-libarchive.c b/src/fr-archive-libarchive.c index 3ac1004..70c07e2 100644 --- a/src/fr-archive-libarchive.c +++ b/src/fr-archive-libarchive.c @@ -321,7 +321,7 @@ _g_error_new_from_archive_error (const char *s) char *msg; GError *error; - msg = g_locale_to_utf8 (s, -1, NULL, NULL, NULL); + msg = (s != NULL) ? g_locale_to_utf8 (s, -1, NULL, NULL, NULL) : NULL; if (msg == NULL) msg = g_strdup ("Fatal error"); error = g_error_new_literal (FR_ERROR, FR_ERROR_COMMAND_ERROR, msg); -- cgit v0.12 ++++++ file-roller-open-dest-dialog-only-when-using-notify.patch ++++++ >From 347a917c0504a9c5ccfd0b8041e40d56ec9bd74a Mon Sep 17 00:00:00 2001 From: Paolo Bacchilega <pao...@src.gnome.org> Date: Sat, 18 Feb 2017 09:24:18 +0100 Subject: show the 'open destination' dialog only when using --notify and only for the last extracted archive --- src/fr-application.c | 13 ++++++++----- src/fr-window.c | 10 ++++++---- src/fr-window.h | 8 +++++--- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/fr-application.c b/src/fr-application.c index 98aac18..025c775 100644 --- a/src/fr-application.c +++ b/src/fr-application.c @@ -296,7 +296,7 @@ handle_method_call (GDBusConnection *connection, g_signal_connect (window, "ready", G_CALLBACK (window_ready_cb), invocation); fr_window_batch_new (FR_WINDOW (window), C_("Window title", "Extract archive")); - fr_window_batch__extract (FR_WINDOW (window), archive, destination); + fr_window_batch__extract (FR_WINDOW (window), archive, destination, use_progress_dialog); fr_window_batch_append_action (FR_WINDOW (window), FR_BATCH_ACTION_QUIT, NULL, NULL); fr_window_batch_start (FR_WINDOW (window)); @@ -322,7 +322,7 @@ handle_method_call (GDBusConnection *connection, g_signal_connect (window, "ready", G_CALLBACK (window_ready_cb), invocation); fr_window_batch_new (FR_WINDOW (window), C_("Window title", "Extract archive")); - fr_window_batch__extract_here (FR_WINDOW (window), archive); + fr_window_batch__extract_here (FR_WINDOW (window), archive, use_progress_dialog); fr_window_batch_append_action (FR_WINDOW (window), FR_BATCH_ACTION_QUIT, NULL, NULL); fr_window_batch_start (FR_WINDOW (window)); @@ -604,13 +604,16 @@ fr_application_command_line (GApplication *application, fr_window_batch_new (FR_WINDOW (window), C_("Window title", "Extract archive")); while ((archive = remaining_args[i++]) != NULL) { - GFile *file; + GFile *file; + gboolean last_archive; file = g_application_command_line_create_file_for_arg (command_line, archive); + last_archive = (remaining_args[i] == NULL); + if (arg_extract_here == 1) - fr_window_batch__extract_here (FR_WINDOW (window), file); + fr_window_batch__extract_here (FR_WINDOW (window), file, arg_notify && last_archive); else - fr_window_batch__extract (FR_WINDOW (window), file, extraction_destination); + fr_window_batch__extract (FR_WINDOW (window), file, extraction_destination, arg_notify && last_archive); g_object_unref (file); } diff --git a/src/fr-window.c b/src/fr-window.c index 1fd803b..bbddde7 100644 --- a/src/fr-window.c +++ b/src/fr-window.c @@ -9819,7 +9819,8 @@ fr_window_batch_get_title (FrWindow *window) void fr_window_batch__extract_here (FrWindow *window, - GFile *archive) + GFile *archive, + gboolean ask_to_open_destination) { g_return_if_fail (window != NULL); g_return_if_fail (archive != NULL); @@ -9837,7 +9838,7 @@ fr_window_batch__extract_here (FrWindow *window, FALSE, FR_OVERWRITE_ASK, FALSE, - _fr_window_get_ask_to_open_destination (window), + ask_to_open_destination, TRUE), (GFreeFunc) extract_data_free); fr_window_batch_append_action (window, @@ -9850,7 +9851,8 @@ fr_window_batch__extract_here (FrWindow *window, void fr_window_batch__extract (FrWindow *window, GFile *archive, - GFile *destination) + GFile *destination, + gboolean ask_to_open_destination) { g_return_if_fail (window != NULL); g_return_if_fail (archive != NULL); @@ -9869,7 +9871,7 @@ fr_window_batch__extract (FrWindow *window, FALSE, FR_OVERWRITE_ASK, FALSE, - _fr_window_get_ask_to_open_destination (window), + ask_to_open_destination, FALSE), (GFreeFunc) extract_data_free); else diff --git a/src/fr-window.h b/src/fr-window.h index 4ea0f4e..7bbffec 100644 --- a/src/fr-window.h +++ b/src/fr-window.h @@ -306,10 +306,12 @@ void fr_window_batch_resume (FrWindow *window); gboolean fr_window_is_batch_mode (FrWindow *window); void fr_window_batch__extract (FrWindow *window, GFile *archive, - GFile *destination); + GFile *destination, + gboolean ask_to_open_destination); void fr_window_batch__extract_here (FrWindow *window, - GFile *archive); -void fr_window_batch__add_files (FrWindow *window, + GFile *archive, + gboolean ask_to_open_destination); +void fr_window_batch__add_files (FrWindow *window, GFile *archive, GList *file_list); void fr_window_destroy_with_error_dialog (FrWindow *window); -- cgit v0.12