Accepting request 459017 from GNOME:Next
Add upstream bug fix patches OBS-URL: https://build.opensuse.org/request/show/459017 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/file-roller?expand=0&rev=235
This commit is contained in:
parent
eb8d740298
commit
a9a4ddd6f2
92
file-roller-fix-crash-after-extracting.patch
Normal file
92
file-roller-fix-crash-after-extracting.patch
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
From a9d765035f5b0786834fa6311e3780788484411a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Paolo Bacchilega <paobac@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
|
||||||
|
|
25
file-roller-libarchive-dont-convert-null-strings.patch
Normal file
25
file-roller-libarchive-dont-convert-null-strings.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
From 78a608ae8d0058fdf202da5b561c1cbdd937ad99 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Paolo Bacchilega <paobac@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
|
||||||
|
|
119
file-roller-open-dest-dialog-only-when-using-notify.patch
Normal file
119
file-roller-open-dest-dialog-only-when-using-notify.patch
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
From 347a917c0504a9c5ccfd0b8041e40d56ec9bd74a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Paolo Bacchilega <paobac@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
|
||||||
|
|
@ -1,3 +1,14 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Feb 19 10:59:10 UTC 2017 - zaitor@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).
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Nov 11 10:19:11 UTC 2016 - dimstar@opensuse.org
|
Fri Nov 11 10:19:11 UTC 2016 - dimstar@opensuse.org
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package file-roller
|
# 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
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -28,6 +28,13 @@ Source: http://download.gnome.org/sources/file-roller/3.22/%{name}-%{ver
|
|||||||
Patch0: file-roller-3.4-change-archiver-priority.patch
|
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.
|
# 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
|
Patch1: file-roller-pkg-match.patch
|
||||||
|
# PATCH-FIX-UPSTREAM file-roller-libarchive-dont-convert-null-strings.patch zaitor@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 zaitor@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 zaitor@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
|
# Needed for directory ownership
|
||||||
BuildRequires: dbus-1
|
BuildRequires: dbus-1
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
@ -87,6 +94,9 @@ contained in the archive, and extract files from the archive.
|
|||||||
%setup -q
|
%setup -q
|
||||||
%patch0
|
%patch0
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
%patch3 -p1
|
||||||
|
%patch4 -p1
|
||||||
%if !0%{?is_opensuse}
|
%if !0%{?is_opensuse}
|
||||||
translation-update-upstream
|
translation-update-upstream
|
||||||
%endif
|
%endif
|
||||||
|
Loading…
Reference in New Issue
Block a user