diff options
-rw-r--r-- | libre/file-roller/PKGBUILD | 15 | ||||
-rw-r--r-- | libre/file-roller/git-fixes.patch | 330 |
2 files changed, 341 insertions, 4 deletions
diff --git a/libre/file-roller/PKGBUILD b/libre/file-roller/PKGBUILD index 424689c32..76f534643 100644 --- a/libre/file-roller/PKGBUILD +++ b/libre/file-roller/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 225971 2014-11-10 23:29:29Z heftig $ +# $Id: PKGBUILD 231590 2015-02-15 17:41:18Z foutrelis $ # Maintainer (Arch): Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Contributor (Arch): Jan de Groot <jgc@archlinux.org> pkgname=file-roller pkgver=3.14.2 -pkgrel=1.parabola1 +pkgrel=2.parabola1 pkgdesc="Create and modify archives, with unar support included and nonfree unace recommendation removed" arch=('i686' 'x86_64' 'mips64el') license=('GPL') @@ -17,8 +17,15 @@ conflicts=("${pkgname}-libre" "${pkgname}-parabola") options=('!emptydirs') install=file-roller.install url="http://www.gnome.org" -source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver:0:4}/$pkgname-$pkgver.tar.xz) -sha256sums=('1815e736715afe8c0f3fbda41c76c07289220d4855345f779c632adf5e074e50') +source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver:0:4}/$pkgname-$pkgver.tar.xz + git-fixes.patch) +sha256sums=('1815e736715afe8c0f3fbda41c76c07289220d4855345f779c632adf5e074e50' + 'd884ef16b2ce1e11967b7a14a34c164158c7008b3dc59e754b3478017696f5f9') + +prepare() { + cd $pkgname-$pkgver + patch -Np1 -i ../git-fixes.patch +} build() { cd $pkgname-$pkgver diff --git a/libre/file-roller/git-fixes.patch b/libre/file-roller/git-fixes.patch new file mode 100644 index 000000000..5b430d137 --- /dev/null +++ b/libre/file-roller/git-fixes.patch @@ -0,0 +1,330 @@ +From 64d7dad289f494ab2a8475ec73bbd7b27ccb4afb Mon Sep 17 00:00:00 2001 +From: Lasse Liehu <lasse.liehu@gmail.com> +Date: Sat, 15 Nov 2014 12:32:54 +0200 +Subject: [PATCH 1/5] Finnish translation update + +--- + po/fi.po | 7 ++----- + 1 file changed, 2 insertions(+), 5 deletions(-) + +diff --git a/po/fi.po b/po/fi.po +index 31678a5..8c9c700 100644 +--- a/po/fi.po ++++ b/po/fi.po +@@ -14,7 +14,7 @@ msgstr "" + "Project-Id-Version: file-roller\n" + "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=file-" + "roller&keywords=I18N+L10N&component=general\n" +-"POT-Creation-Date: 2014-09-06 04:49+0000\n" ++"POT-Creation-Date: 2014-11-07 05:38+0000\n" + "PO-Revision-Date: 2014-09-06 17:05+0300\n" + "Last-Translator: Jiri Grönroos <jiri.gronroos+l10n@iki.fi>\n" + "Language-Team: suomi <gnome-fi-laatu@lists.sourceforge.net>\n" +@@ -53,7 +53,6 @@ msgid "bzip archives (.tar.bz, .tbz)" + msgstr "bzip-arkistot (.tar.bz, .tbz)" + + #: ../data/org.gnome.FileRoller.appdata.xml.in.h:6 +-#| msgid "Zip (.zip)" + msgid "zip archives (.zip)" + msgstr "zip-arkistot (.zip)" + +@@ -463,7 +462,7 @@ msgstr "" + "Ilkka Tuohela , 2005-2009\n" + "Pauli Virtanen, 2003-2004\n" + "\n" +-"http://gnome.fi/" ++"https://l10n.gnome.org/teams/fi/" + + #: ../src/fr-archive.c:1845 + msgid "You don't have the right permissions." +@@ -1122,7 +1121,6 @@ msgid "_About" + msgstr "Ti_etoja" + + #: ../src/ui/ask-password.ui.h:2 +-#| msgid "_Ok" + msgid "_OK" + msgstr "_OK" + +@@ -1135,7 +1133,6 @@ msgid "Delete" + msgstr "Poista" + + #: ../src/ui/delete.ui.h:3 +-#| msgid "Delete" + msgid "_Delete" + msgstr "_Poista" + +-- +2.3.0 + + +From 3d9bfa9677960c1c03d795c1d5e849fc1ac4e18d Mon Sep 17 00:00:00 2001 +From: Paolo Bacchilega <paobac@src.gnome.org> +Date: Sun, 15 Feb 2015 11:52:55 +0100 +Subject: [PATCH 2/5] Deleting all files does not work + +only happens when the archive is modified with libarchive + +[bug #738178] +--- + src/fr-archive-libarchive.c | 24 +++++++++++++++++------- + 1 file changed, 17 insertions(+), 7 deletions(-) + +diff --git a/src/fr-archive-libarchive.c b/src/fr-archive-libarchive.c +index 8770f8a..6909b8a 100644 +--- a/src/fr-archive-libarchive.c ++++ b/src/fr-archive-libarchive.c +@@ -1641,6 +1641,7 @@ fr_archive_libarchive_add_files (FrArchive *archive, + + typedef struct { + GHashTable *files_to_remove; ++ gboolean remove_all_files; + int n_files_to_remove; + } RemoveData; + +@@ -1648,7 +1649,8 @@ typedef struct { + static void + remove_data_free (RemoveData *remove_data) + { +- g_hash_table_unref (remove_data->files_to_remove); ++ if (remove_data->files_to_remove != NULL) ++ g_hash_table_unref (remove_data->files_to_remove); + g_free (remove_data); + } + +@@ -1662,7 +1664,7 @@ _remove_files_begin (SaveData *save_data, + + fr_archive_progress_set_total_files (load_data->archive, remove_data->n_files_to_remove); + fr_archive_progress_set_total_bytes (load_data->archive, +- FR_ARCHIVE_LIBARCHIVE (load_data->archive)->priv->uncompressed_size); ++ FR_ARCHIVE_LIBARCHIVE (load_data->archive)->priv->uncompressed_size); + } + + +@@ -1676,6 +1678,9 @@ _remove_files_entry_action (SaveData *save_data, + WriteAction action; + const char *pathname; + ++ if (remove_data->remove_all_files) ++ return WRITE_ACTION_SKIP_ENTRY; ++ + action = WRITE_ACTION_WRITE_ENTRY; + pathname = archive_entry_pathname (w_entry); + if (g_hash_table_lookup (remove_data->files_to_remove, pathname) != NULL) { +@@ -1701,12 +1706,17 @@ fr_archive_libarchive_remove_files (FrArchive *archive, + GList *scan; + + remove_data = g_new0 (RemoveData, 1); +- remove_data->files_to_remove = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); +- remove_data->n_files_to_remove = 0; +- for (scan = file_list; scan; scan = scan->next) { +- g_hash_table_insert (remove_data->files_to_remove, g_strdup (scan->data), GINT_TO_POINTER (1)); +- remove_data->n_files_to_remove++; ++ remove_data->remove_all_files = (file_list == NULL); ++ if (! remove_data->remove_all_files) { ++ remove_data->files_to_remove = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); ++ remove_data->n_files_to_remove = 0; ++ for (scan = file_list; scan; scan = scan->next) { ++ g_hash_table_insert (remove_data->files_to_remove, g_strdup (scan->data), GINT_TO_POINTER (1)); ++ remove_data->n_files_to_remove++; ++ } + } ++ else ++ remove_data->n_files_to_remove = archive->files->len; + + _fr_archive_libarchive_save (archive, + FALSE, +-- +2.3.0 + + +From e503d9556a3ab05133616f4718cce9f2324432df Mon Sep 17 00:00:00 2001 +From: Paolo Bacchilega <paobac@src.gnome.org> +Date: Sun, 15 Feb 2015 10:20:48 +0100 +Subject: [PATCH 3/5] Dragging a file to desktop doesn't work + +[bug #479351] +--- + src/fr-window.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/fr-window.c b/src/fr-window.c +index fd1beb0..f7492e9 100644 +--- a/src/fr-window.c ++++ b/src/fr-window.c +@@ -4228,6 +4228,7 @@ static char * + get_xds_atom_value (GdkDragContext *context) + { + char *ret; ++ int len; + + g_return_val_if_fail (context != NULL, NULL); + g_return_val_if_fail (gdk_drag_context_get_source_window (context) != NULL, NULL); +@@ -4235,9 +4236,12 @@ get_xds_atom_value (GdkDragContext *context) + if (gdk_property_get (gdk_drag_context_get_source_window (context), + XDS_ATOM, TEXT_ATOM, + 0, MAX_XDS_ATOM_VAL_LEN, +- FALSE, NULL, NULL, NULL, ++ FALSE, NULL, NULL, &len, + (unsigned char **) &ret)) ++ { ++ ret[len] = '\0'; + return ret; ++ } + + return NULL; + } +-- +2.3.0 + + +From a18cdd2da3d6bc69223acc20b772c71dc9cda01f Mon Sep 17 00:00:00 2001 +From: Paolo Bacchilega <paobac@src.gnome.org> +Date: Sun, 15 Feb 2015 13:28:34 +0100 +Subject: [PATCH 4/5] Extracting (by drag & drop) causes an error when the + mouse is hovering Chromium + +[bug #735857] +--- + src/fr-window.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/src/fr-window.c b/src/fr-window.c +index f7492e9..4075792 100644 +--- a/src/fr-window.c ++++ b/src/fr-window.c +@@ -4515,10 +4515,15 @@ fr_window_file_list_drag_data_get (FrWindow *window, + g_return_val_if_fail (uri != NULL, FALSE); + + destination = g_file_new_for_uri (uri); +- destination_folder = g_file_get_parent (destination); ++ if (destination == NULL) ++ return FALSE; + ++ destination_folder = g_file_get_parent (destination); + g_object_unref (destination); + ++ if (destination_folder == NULL) ++ return FALSE; ++ + /* check whether the extraction can be performed in the destination + * folder */ + +-- +2.3.0 + + +From 7ea8f58268f68c48b2b7e9e49c02335ad3a9964e Mon Sep 17 00:00:00 2001 +From: Paolo Bacchilega <paobac@src.gnome.org> +Date: Sun, 15 Feb 2015 17:48:23 +0100 +Subject: [PATCH 5/5] Cannot delete files from password protected 7zip + archives + + [bug #618909] +--- + src/fr-command-7z.c | 6 +----- + src/fr-command.c | 4 ++++ + src/fr-window.c | 26 +++++++++++++++++++++++++- + src/fr-window.h | 1 + + 4 files changed, 31 insertions(+), 6 deletions(-) + +diff --git a/src/fr-command-7z.c b/src/fr-command-7z.c +index 809717f..e6e8258 100644 +--- a/src/fr-command-7z.c ++++ b/src/fr-command-7z.c +@@ -424,11 +424,7 @@ fr_command_7z_delete (FrCommand *command, + if (g_str_has_prefix (scan->data, "@")) + fr_process_add_arg_concat (command->process, "-i!", scan->data, NULL); + +- if (archive->encrypt_header +- && fr_archive_is_capable_of (archive, FR_ARCHIVE_CAN_ENCRYPT_HEADER)) +- { +- add_password_arg (command, FR_ARCHIVE (command)->password, FALSE); +- } ++ add_password_arg (command, FR_ARCHIVE (command)->password, FALSE); + + fr_process_add_arg (command->process, "--"); + fr_process_add_arg (command->process, command->filename); +diff --git a/src/fr-command.c b/src/fr-command.c +index 69436de..f4d0af6 100644 +--- a/src/fr-command.c ++++ b/src/fr-command.c +@@ -632,6 +632,10 @@ _fr_command_load_complete (XferData *xfer_data, + * original name */ + if (archive->multi_volume) + fr_archive_change_name (archive, FR_COMMAND (archive)->filename); ++ ++ /* the header is encrypted if the load is successful and the password is not void */ ++ archive->encrypt_header = (xfer_data->password != NULL) && (*xfer_data->password != '\0'); ++ + fr_archive_update_capabilities (archive); + } + else +diff --git a/src/fr-window.c b/src/fr-window.c +index 4075792..779bf0b 100644 +--- a/src/fr-window.c ++++ b/src/fr-window.c +@@ -6195,6 +6195,9 @@ fr_window_archive_add_dropped_items (FrWindow *window, + } + + ++/* -- fr_window_archive_remove -- */ ++ ++ + static void + archive_remove_ready_cb (GObject *source_object, + GAsyncResult *result, +@@ -6214,10 +6217,26 @@ void + fr_window_archive_remove (FrWindow *window, + GList *file_list) + { ++ GList *new_file_list; ++ ++ new_file_list = _g_string_list_dup (file_list); ++ fr_window_set_current_batch_action (window, ++ FR_BATCH_ACTION_REMOVE, ++ new_file_list, ++ (GFreeFunc) _g_string_list_free); ++ + _archive_operation_started (window, FR_ACTION_DELETING_FILES); ++ ++ g_object_set (window->archive, ++ "compression", window->priv->compression, ++ "encrypt-header", window->priv->encrypt_header, ++ "password", window->priv->password, ++ "volume-size", window->priv->volume_size, ++ NULL); ++ + fr_window_clipboard_remove_file_list (window, file_list); + fr_archive_remove (window->archive, +- file_list, ++ new_file_list, + window->priv->compression, + window->priv->cancellable, + archive_remove_ready_cb, +@@ -9162,6 +9181,11 @@ fr_window_exec_batch_action (FrWindow *window, + fr_window_archive_add_dropped_items (window, (GList *) action->data); + break; + ++ case FR_BATCH_ACTION_REMOVE: ++ debug (DEBUG_INFO, "[BATCH] REMOVE\n"); ++ fr_window_archive_remove (window, (GList *) action->data); ++ break; ++ + case FR_BATCH_ACTION_OPEN: + debug (DEBUG_INFO, "[BATCH] OPEN\n"); + +diff --git a/src/fr-window.h b/src/fr-window.h +index 0aabaf6..13a48a4 100644 +--- a/src/fr-window.h ++++ b/src/fr-window.h +@@ -54,6 +54,7 @@ typedef enum { + FR_BATCH_ACTION_LOAD, + FR_BATCH_ACTION_OPEN, + FR_BATCH_ACTION_ADD, ++ FR_BATCH_ACTION_REMOVE, + FR_BATCH_ACTION_EXTRACT, + FR_BATCH_ACTION_EXTRACT_HERE, + FR_BATCH_ACTION_EXTRACT_INTERACT, +-- +2.3.0 + |