summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-arch/file-roller/files')
-rw-r--r--app-arch/file-roller/files/file-roller-3.8.4-extract-failure.patch43
-rw-r--r--app-arch/file-roller/files/file-roller-3.8.4-ignore-errors.patch40
-rw-r--r--app-arch/file-roller/files/file-roller-3.8.4-modifications-time.patch186
-rw-r--r--app-arch/file-roller/files/file-roller-3.8.4-rar-5.patch246
4 files changed, 0 insertions, 515 deletions
diff --git a/app-arch/file-roller/files/file-roller-3.8.4-extract-failure.patch b/app-arch/file-roller/files/file-roller-3.8.4-extract-failure.patch
deleted file mode 100644
index fa9d68d2b7bd..000000000000
--- a/app-arch/file-roller/files/file-roller-3.8.4-extract-failure.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 40d2c298a7b938a974fe83b609293348a7d59bbd Mon Sep 17 00:00:00 2001
-From: Paolo Bacchilega <paobac@src.gnome.org>
-Date: Sun, 29 Sep 2013 16:30:29 +0000
-Subject: libarchive: fixed failure when extracting some tar archives
-
-do not try to restore the creation time;
-do not set the G_FILE_ATTRIBUTE_TIME_CREATED_USEC attribute
-
-[bug #709035]
----
-diff --git a/src/fr-archive-libarchive.c b/src/fr-archive-libarchive.c
-index 37e3008..e465fe8 100644
---- a/src/fr-archive-libarchive.c
-+++ b/src/fr-archive-libarchive.c
-@@ -428,15 +428,8 @@ _g_file_info_create_from_entry (struct archive_entry *entry,
-
- /* times */
-
-- if (archive_entry_ctime_is_set (entry)) {
-- g_file_info_set_attribute_uint64 (info, G_FILE_ATTRIBUTE_TIME_CREATED, archive_entry_ctime (entry));
-- g_file_info_set_attribute_uint32 (info, G_FILE_ATTRIBUTE_TIME_CREATED_USEC, archive_entry_ctime_nsec (entry));
-- }
--
-- if (archive_entry_mtime_is_set (entry)) {
-+ if (archive_entry_mtime_is_set (entry))
- g_file_info_set_attribute_uint64 (info, G_FILE_ATTRIBUTE_TIME_MODIFIED, archive_entry_mtime (entry));
-- g_file_info_set_attribute_uint32 (info, G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC, archive_entry_mtime_nsec (entry));
-- }
-
- /* username */
-
-@@ -529,7 +522,8 @@ restore_modification_time (GHashTable *created_folders,
-
- info = g_file_info_new ();
- g_file_info_set_attribute_uint64 (info, G_FILE_ATTRIBUTE_TIME_MODIFIED, g_file_info_get_attribute_uint64 (original_info, G_FILE_ATTRIBUTE_TIME_MODIFIED));
-- g_file_info_set_attribute_uint32 (info, G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC, g_file_info_get_attribute_uint32 (original_info, G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC));
-+ if (g_file_info_get_attribute_status (original_info, G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC) == G_FILE_ATTRIBUTE_STATUS_SET)
-+ g_file_info_set_attribute_uint32 (info, G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC, g_file_info_get_attribute_uint32 (original_info, G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC));
- result = _g_file_set_attributes_from_info (file, info, cancellable, error);
-
- g_object_unref (info);
---
-cgit v0.9.2
diff --git a/app-arch/file-roller/files/file-roller-3.8.4-ignore-errors.patch b/app-arch/file-roller/files/file-roller-3.8.4-ignore-errors.patch
deleted file mode 100644
index 712ba7497001..000000000000
--- a/app-arch/file-roller/files/file-roller-3.8.4-ignore-errors.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 80c36ae3c84dce8716eb5b74ddb8c73da5824f13 Mon Sep 17 00:00:00 2001
-From: Paolo Bacchilega <paobac@src.gnome.org>
-Date: Fri, 11 Oct 2013 19:38:27 +0000
-Subject: ignore errors when setting file attributes
-
-[bug #709932]
----
-diff --git a/src/fr-archive-libarchive.c b/src/fr-archive-libarchive.c
-index 44aaad2..19c5a1d 100644
---- a/src/fr-archive-libarchive.c
-+++ b/src/fr-archive-libarchive.c
-@@ -751,7 +751,7 @@ extract_archive_thread (GSimpleAsyncResult *result,
- GFileInfo *info;
-
- info = _g_file_info_create_from_entry (entry, extract_data);
-- _g_file_set_attributes_from_info (file, info, cancellable, &load_data->error);
-+ _g_file_set_attributes_from_info (file, info, cancellable, NULL);
- g_hash_table_insert (created_folders, g_object_ref (file), g_object_ref (info));
-
- g_object_unref (info);
-@@ -774,7 +774,7 @@ extract_archive_thread (GSimpleAsyncResult *result,
- if (r != ARCHIVE_EOF)
- load_data->error = g_error_new_literal (FR_ERROR, FR_ERROR_COMMAND_ERROR, archive_error_string (a));
- else
-- _g_file_set_attributes_from_entry (file, entry, extract_data, cancellable, &load_data->error);
-+ _g_file_set_attributes_from_entry (file, entry, extract_data, cancellable, NULL);
- break;
-
- case AE_IFLNK:
-@@ -805,7 +805,7 @@ extract_archive_thread (GSimpleAsyncResult *result,
- }
-
- if (load_data->error == NULL)
-- restore_modification_time (created_folders, cancellable, &load_data->error);
-+ restore_modification_time (created_folders, cancellable, NULL);
-
- if ((load_data->error == NULL) && (r != ARCHIVE_EOF))
- load_data->error = g_error_new_literal (FR_ERROR, FR_ERROR_COMMAND_ERROR, archive_error_string (a));
---
-cgit v0.9.2
diff --git a/app-arch/file-roller/files/file-roller-3.8.4-modifications-time.patch b/app-arch/file-roller/files/file-roller-3.8.4-modifications-time.patch
deleted file mode 100644
index d6c7baa882fe..000000000000
--- a/app-arch/file-roller/files/file-roller-3.8.4-modifications-time.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-From 4bf8552f8e60c8d4ec65e360451c6998198052db Mon Sep 17 00:00:00 2001
-From: Paolo Bacchilega <paobac@src.gnome.org>
-Date: Wed, 04 Sep 2013 10:02:11 +0000
-Subject: libarchive: restore the folders modification time correctly
-
-when honoring the skip_older and overwrite flags ignore the
-directories created during the extraction process.
-
-[bug #697756]
----
-diff --git a/src/fr-archive-libarchive.c b/src/fr-archive-libarchive.c
-index 3b73c48..37e3008 100644
---- a/src/fr-archive-libarchive.c
-+++ b/src/fr-archive-libarchive.c
-@@ -33,6 +33,7 @@
- #include "file-utils.h"
- #include "fr-error.h"
- #include "fr-archive-libarchive.h"
-+#include "gio-utils.h"
- #include "glib-utils.h"
- #include "typedefs.h"
-
-@@ -547,6 +548,7 @@ extract_archive_thread (GSimpleAsyncResult *result,
- LoadData *load_data;
- GHashTable *checked_folders;
- GHashTable *created_folders;
-+ GHashTable *folders_created_during_extraction;
- struct archive *a;
- struct archive_entry *entry;
- int r;
-@@ -556,6 +558,7 @@ extract_archive_thread (GSimpleAsyncResult *result,
-
- checked_folders = g_hash_table_new_full (g_file_hash, (GEqualFunc) g_file_equal, g_object_unref, NULL);
- created_folders = g_hash_table_new_full (g_file_hash, (GEqualFunc) g_file_equal, g_object_unref, g_object_unref);
-+ folders_created_during_extraction = g_hash_table_new_full (g_file_hash, (GEqualFunc) g_file_equal, g_object_unref, NULL);
- fr_archive_progress_set_total_files (load_data->archive, extract_data->n_files_to_extract);
-
- a = archive_read_new ();
-@@ -590,11 +593,14 @@ extract_archive_thread (GSimpleAsyncResult *result,
- archive_read_data_skip (a);
- continue;
- }
-+
- file = g_file_get_child (extract_data->destination, relative_path);
-
- /* honor the skip_older and overwrite options */
-
-- if (extract_data->skip_older || ! extract_data->overwrite) {
-+ if ((g_hash_table_lookup (folders_created_during_extraction, file) == NULL)
-+ && (extract_data->skip_older || ! extract_data->overwrite))
-+ {
- GFileInfo *info;
-
- info = g_file_query_info (file,
-@@ -652,7 +658,18 @@ extract_archive_thread (GSimpleAsyncResult *result,
- && (g_hash_table_lookup (checked_folders, parent) == NULL)
- && ! g_file_query_exists (parent, cancellable))
- {
-- if (g_file_make_directory_with_parents (parent, cancellable, &load_data->error)) {
-+ if (! _g_file_make_directory_with_parents (parent,
-+ folders_created_during_extraction,
-+ cancellable,
-+ &local_error))
-+ {
-+ if (! g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_EXISTS))
-+ load_data->error = local_error;
-+ else
-+ g_clear_error (&local_error);
-+ }
-+
-+ if (load_data->error == NULL) {
- GFile *grandparent;
-
- grandparent = g_object_ref (parent);
-@@ -736,7 +753,7 @@ extract_archive_thread (GSimpleAsyncResult *result,
- load_data->error = g_error_copy (local_error);
- g_error_free (local_error);
- }
-- else {
-+ if (load_data->error == NULL) {
- GFileInfo *info;
-
- info = _g_file_info_create_from_entry (entry, extract_data);
-@@ -803,6 +820,7 @@ extract_archive_thread (GSimpleAsyncResult *result,
- if (load_data->error != NULL)
- g_simple_async_result_set_from_error (result, load_data->error);
-
-+ g_hash_table_unref (folders_created_during_extraction);
- g_hash_table_unref (created_folders);
- g_hash_table_unref (checked_folders);
- archive_read_free (a);
-diff --git a/src/gio-utils.c b/src/gio-utils.c
-index 9d9f708..b317694 100644
---- a/src/gio-utils.c
-+++ b/src/gio-utils.c
-@@ -1483,3 +1483,73 @@ _g_file_load_buffer_finish (GFile *file,
-
- return TRUE;
- }
-+
-+
-+static gboolean
-+_g_file_make_directory_and_add_to_created_folders (GFile *file,
-+ GHashTable *created_folders,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ gboolean result;
-+
-+ result = g_file_make_directory (file, cancellable, error);
-+ if (result && (g_hash_table_lookup (created_folders, file) == NULL))
-+ g_hash_table_insert (created_folders, g_object_ref (file), GINT_TO_POINTER (1));
-+
-+ return result;
-+}
-+
-+
-+gboolean
-+_g_file_make_directory_with_parents (GFile *file,
-+ GHashTable *created_folders,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ GError *local_error = NULL;
-+ GFile *work_file = NULL;
-+ GList *list = NULL, *l;
-+
-+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
-+
-+ _g_file_make_directory_and_add_to_created_folders (file, created_folders, cancellable, &local_error);
-+ if ((local_error == NULL) || (local_error->code != G_IO_ERROR_NOT_FOUND)) {
-+ if (local_error != NULL)
-+ g_propagate_error (error, local_error);
-+ return local_error == NULL;
-+ }
-+
-+ work_file = g_object_ref (file);
-+ while ((local_error != NULL) && (local_error->code == G_IO_ERROR_NOT_FOUND)) {
-+ GFile *parent_file;
-+
-+ parent_file = g_file_get_parent (work_file);
-+ if (parent_file == NULL)
-+ break;
-+
-+ g_clear_error (&local_error);
-+ _g_file_make_directory_and_add_to_created_folders (parent_file, created_folders, cancellable, &local_error);
-+
-+ g_object_unref (work_file);
-+ work_file = g_object_ref (parent_file);
-+
-+ if ((local_error != NULL) && (local_error->code == G_IO_ERROR_NOT_FOUND))
-+ list = g_list_prepend (list, parent_file); /* Transfer ownership of ref */
-+ else
-+ g_object_unref (parent_file);
-+ }
-+
-+ for (l = list; (local_error == NULL) && (l != NULL); l = l->next)
-+ _g_file_make_directory_and_add_to_created_folders ((GFile *) l->data, created_folders, cancellable, &local_error);
-+
-+ _g_object_unref (work_file);
-+ _g_object_list_unref (list);
-+
-+ if (local_error != NULL) {
-+ g_propagate_error (error, local_error);
-+ return FALSE;
-+ }
-+
-+ return _g_file_make_directory_and_add_to_created_folders (file, created_folders, cancellable, error);
-+}
-diff --git a/src/gio-utils.h b/src/gio-utils.h
-index f784c41..0d7dd3c 100644
---- a/src/gio-utils.h
-+++ b/src/gio-utils.h
-@@ -177,5 +177,10 @@ gboolean _g_file_load_buffer_finish (GFile *file,
- char **buffer,
- gsize *buffer_size,
- GError **error);
-+gboolean _g_file_make_directory_with_parents
-+ (GFile *file,
-+ GHashTable *created_folders,
-+ GCancellable *cancellable,
-+ GError **error);
-
- #endif /* _GIO_UTILS_H */
---
-cgit v0.9.2
diff --git a/app-arch/file-roller/files/file-roller-3.8.4-rar-5.patch b/app-arch/file-roller/files/file-roller-3.8.4-rar-5.patch
deleted file mode 100644
index 73168e8b5982..000000000000
--- a/app-arch/file-roller/files/file-roller-3.8.4-rar-5.patch
+++ /dev/null
@@ -1,246 +0,0 @@
-From 065550880248b6a66c2fa3143adc0962d0473283 Mon Sep 17 00:00:00 2001
-From: Alexandre Rostovtsev <tetromino@gentoo.org>
-Date: Sun, 8 Sep 2013 19:02:10 -0400
-Subject: [PATCH] rar: add support for rar-5.00
-
-https://bugzilla.gnome.org/show_bug.cgi?id=707568
----
- src/fr-command-rar.c | 153 +++++++++++++++++++++++++++++++++++++--------------
- src/fr-command-rar.h | 3 +-
- 2 files changed, 115 insertions(+), 41 deletions(-)
-
-diff --git a/src/fr-command-rar.c b/src/fr-command-rar.c
-index b67db1f..938bf8c 100644
---- a/src/fr-command-rar.c
-+++ b/src/fr-command-rar.c
-@@ -84,6 +84,82 @@ mktime_from_string (char *date_s,
- return mktime (&tm);
- }
-
-+/* Sample rar-5 listing output:
-+
-+RAR 5.00 beta 8 Copyright (c) 1993-2013 Alexander Roshal 22 Aug 2013
-+Trial version Type RAR -? for help
-+
-+Archive: test.rar
-+Details: RAR 4
-+
-+ Attributes Size Packed Ratio Date Time Checksum Name
-+----------- --------- -------- ----- -------- ----- -------- ----
-+ -rw-r--r-- 453 304 67% 05-09-13 09:55 56DA5EF3 loremipsum.txt
-+----------- --------- -------- ----- -------- ----- -------- ----
-+ 453 304 67% 1
-+
-+ *
-+ * Sample rar-4 listing output:
-+ *
-+
-+RAR 4.20 Copyright (c) 1993-2012 Alexander Roshal 9 Jun 2012
-+Trial version Type RAR -? for help
-+
-+Archive test.rar
-+
-+Pathname/Comment
-+ Size Packed Ratio Date Time Attr CRC Meth Ver
-+-------------------------------------------------------------------------------
-+ loremipsum.txt
-+ 453 304 67% 05-09-13 09:55 -rw-r--r-- 56DA5EF3 m3b 2.9
-+-------------------------------------------------------------------------------
-+ 1 453 304 67%
-+
-+ */
-+
-+static void
-+parse_name_field (char *line,
-+ FrCommandRar *rar_comm)
-+{
-+ const char *name_field;
-+ FileData *fdata;
-+
-+ rar_comm->fdata = fdata = file_data_new ();
-+
-+ /* read file name. */
-+
-+ fdata->encrypted = (line[0] == '*') ? TRUE : FALSE;
-+
-+ if (rar_comm->rar4_odd_line)
-+ name_field = line + 1;
-+ else
-+ /* rar-5 output adds trailing spaces to short file names :( */
-+ name_field = g_strchomp (_g_str_get_last_field (line, 8));
-+
-+ if (*name_field == '/') {
-+ fdata->full_path = g_strdup (name_field);
-+ fdata->original_path = fdata->full_path;
-+ }
-+ else {
-+ fdata->full_path = g_strconcat ("/", name_field, NULL);
-+ fdata->original_path = fdata->full_path + 1;
-+ }
-+
-+ fdata->link = NULL;
-+ fdata->path = _g_path_remove_level (fdata->full_path);
-+}
-+
-+static gboolean
-+attr_field_is_dir (const char *attr_field,
-+ FrCommandRar *rar_comm)
-+{
-+ if ((attr_field[0] == 'd') ||
-+ (rar_comm->rar5 && attr_field[3] == 'D') ||
-+ (!rar_comm->rar5 && attr_field[1] == 'D'))
-+ return TRUE;
-+
-+ return FALSE;
-+}
-
- static void
- process_line (char *line,
-@@ -92,14 +168,18 @@ process_line (char *line,
- FrCommand *comm = FR_COMMAND (data);
- FrCommandRar *rar_comm = FR_COMMAND_RAR (comm);
- char **fields;
-- const char *name_field;
-
- g_return_if_fail (line != NULL);
-
- if (! rar_comm->list_started) {
-- if (strncmp (line, "--------", 8) == 0) {
-+ if (strncmp (line, "Details:", 8) == 0) {
-+ rar_comm->rar5 = TRUE;
-+ return;
-+ }
-+ else if (strncmp (line, "--------", 8) == 0) {
- rar_comm->list_started = TRUE;
-- rar_comm->odd_line = TRUE;
-+ if (! rar_comm->rar5)
-+ rar_comm->rar4_odd_line = TRUE;
- }
- else if (strncmp (line, "Volume ", 7) == 0)
- FR_ARCHIVE (comm)->multi_volume = TRUE;
-@@ -111,24 +191,43 @@ process_line (char *line,
- return;
- }
-
-- if (! rar_comm->odd_line) {
-- FileData *fdata;
-+ if (rar_comm->rar4_odd_line || rar_comm->rar5)
-+ parse_name_field (line, rar_comm);
-+
-+ if (! rar_comm->rar4_odd_line) {
-+ FileData *fdata;
-+ const char *size_field, *ratio_field, *date_field, *time_field, *attr_field;
-
- fdata = rar_comm->fdata;
-
- /* read file info. */
-
- fields = _g_str_split_line (line, 6);
-+ if (rar_comm->rar5) {
-+ size_field = fields[1];
-+ ratio_field = fields[3];
-+ date_field = fields[4];
-+ time_field = fields[5];
-+ attr_field = fields[0];
-+ }
-+ else {
-+ size_field = fields[0];
-+ ratio_field = fields[2];
-+ date_field = fields[3];
-+ time_field = fields[4];
-+ attr_field = fields[5];
-+ }
- if (g_strv_length (fields) < 6) {
- /* wrong line format, treat this line as a filename line */
- g_strfreev (fields);
- file_data_free (rar_comm->fdata);
- rar_comm->fdata = NULL;
-- rar_comm->odd_line = TRUE;
-+ rar_comm->rar4_odd_line = TRUE;
-+ parse_name_field (line, rar_comm);
- }
- else {
-- if ((strcmp (fields[2], "<->") == 0)
-- || (strcmp (fields[2], "<--") == 0))
-+ if ((strcmp (ratio_field, "<->") == 0)
-+ || (strcmp (ratio_field, "<--") == 0))
- {
- /* ignore files that span more volumes */
-
-@@ -136,10 +235,10 @@ process_line (char *line,
- rar_comm->fdata = NULL;
- }
- else {
-- fdata->size = g_ascii_strtoull (fields[0], NULL, 10);
-- fdata->modified = mktime_from_string (fields[3], fields[4]);
-+ fdata->size = g_ascii_strtoull (size_field, NULL, 10);
-+ fdata->modified = mktime_from_string (date_field, time_field);
-
-- if ((fields[5][1] == 'D') || (fields[5][0] == 'd')) {
-+ if (attr_field_is_dir (attr_field, rar_comm)) {
- char *tmp;
-
- tmp = fdata->full_path;
-@@ -155,7 +254,7 @@ process_line (char *line,
- }
- else {
- fdata->name = g_strdup (_g_path_get_basename (fdata->full_path));
-- if (fields[5][0] == 'l')
-+ if (attr_field[0] == 'l')
- fdata->link = g_strdup (_g_path_get_basename (fdata->full_path));
- }
-
-@@ -167,34 +266,8 @@ process_line (char *line,
- }
- }
-
-- if (rar_comm->odd_line) {
-- FileData *fdata;
--
-- rar_comm->fdata = fdata = file_data_new ();
--
-- /* read file name. */
--
-- fdata->encrypted = (line[0] == '*') ? TRUE : FALSE;
--
-- name_field = line + 1;
--
-- if (*name_field == '/') {
-- fdata->full_path = g_strdup (name_field);
-- fdata->original_path = fdata->full_path;
-- }
-- else {
-- fdata->full_path = g_strconcat ("/", name_field, NULL);
-- fdata->original_path = fdata->full_path + 1;
-- }
--
-- fdata->link = NULL;
-- fdata->path = _g_path_remove_level (fdata->full_path);
-- }
-- else {
--
-- }
--
-- rar_comm->odd_line = ! rar_comm->odd_line;
-+ if (! rar_comm->rar5)
-+ rar_comm->rar4_odd_line = ! rar_comm->rar4_odd_line;
- }
-
-
-diff --git a/src/fr-command-rar.h b/src/fr-command-rar.h
-index d60e422..09ed270 100644
---- a/src/fr-command-rar.h
-+++ b/src/fr-command-rar.h
-@@ -42,7 +42,8 @@ struct _FrCommandRar
- FrCommand __parent;
-
- gboolean list_started;
-- gboolean odd_line;
-+ gboolean rar4_odd_line;
-+ gboolean rar5;
- FileData *fdata;
- };
-
---
-1.8.3.2
-