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


Reply via email to