diff options
-rw-r--r-- | libre/file-roller-libre/PKGBUILD | 29 | ||||
-rw-r--r-- | libre/file-roller-libre/bug708854.patch | 92 | ||||
-rw-r--r-- | libre/file-roller-libre/bug709035.patch | 43 |
3 files changed, 153 insertions, 11 deletions
diff --git a/libre/file-roller-libre/PKGBUILD b/libre/file-roller-libre/PKGBUILD index 5c6865833..8289eb471 100644 --- a/libre/file-roller-libre/PKGBUILD +++ b/libre/file-roller-libre/PKGBUILD @@ -1,20 +1,17 @@ -# $Id: PKGBUILD 193443 2013-08-20 09:36:30Z jgc $ +# $Id: PKGBUILD 195293 2013-09-30 08:01:47Z jgc $ # Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Contributor: Jan de Groot <jgc@archlinux.org> _pkgname=file-roller pkgname=file-roller-libre -pkgver=3.8.4 -pkgrel=1 -pkgdesc="Create and modify archives, with unar recommendation included and nonfree unace recommendation removed" +pkgver=3.10.0 +pkgrel=2 +pkgdesc="Create and modify archives, with unar support included and nonfree unace recommendation removed" arch=('i686' 'x86_64' 'mips64el') license=('GPL') -depends=('desktop-file-utils' 'gtk3' 'hicolor-icon-theme' 'dconf' 'libarchive' 'file' 'json-glib' 'libnotify') +depends=('desktop-file-utils' 'gtk3' 'hicolor-icon-theme' 'dconf' 'libarchive' 'file' 'json-glib' 'libnotify' 'p7zip' 'unar') makedepends=('intltool' 'gnome-doc-utils' 'pkg-config' 'libnautilus-extension' 'itstool' 'docbook-xsl') -optdepends=('unar: the free RAR uncompression utility' - 'zip: creates PKZIP-compatible .zip files' - 'p7zip: 7zip compression utility' - 'arj: ARJ archiver') +optdepends=('lrzip: lrzip archive support') groups=('gnome-extra') provides=("$_pkgname=$pkgver") replaces=("$_pkgname") @@ -22,8 +19,18 @@ conflicts=("$_pkgname") options=('!libtool' '!emptydirs') install=file-roller.install url="http://www.gnome.org" -source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver::3}/$_pkgname-$pkgver.tar.xz) -sha256sums=('3615bc41bbe28030d16ee414a8f5f9a3e37f745733c39032ef1559a06be3eea8') +source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver%.*}/$_pkgname-$pkgver.tar.xz + bug708854.patch + bug709035.patch) +sha256sums=('d889bb9904146e5715c082aa9a6d96b0606a066ba2bf05fbfb7030f2bf274f13' + 'a8f4e856924b6b78e47cc134c723d1d93119f90ec9ab69dd0b59ec8a934688ba' + '59f07968b720ccd9c70e6232b2bfcaa3cf9298d6ce48be4882154d69cbe7a909') + +prepare() { + cd $_pkgname-$pkgver + patch -Np1 -i ../bug708854.patch + patch -Np1 -i ../bug709035.patch +} build() { cd $_pkgname-$pkgver diff --git a/libre/file-roller-libre/bug708854.patch b/libre/file-roller-libre/bug708854.patch new file mode 100644 index 000000000..6a5591a59 --- /dev/null +++ b/libre/file-roller-libre/bug708854.patch @@ -0,0 +1,92 @@ +From d3ce6fe6964857c89212ab1a5a7aaa052d93c584 Mon Sep 17 00:00:00 2001 +From: Aleksander Morgado <aleksander@lanedo.com> +Date: Thu, 26 Sep 2013 16:06:21 +0000 +Subject: 7z: allow extracting/opening/adding files prefixed with '@' + +7z uses '@' to specify a listfile; i.e. a file with a list of files to add or +extract. Therefore, if working with single files (e.g. open, add or extract a +single file from the archive), the filenames need to be escaped with '!' and +specified with '-i'. It is ok to mix files specified with '-i' and the ones +given after the archive filename. + +E.g. instead of: + 7z x -bd -y -o/tmp/.fr-2z9FXz -- HS04603.ZIP @HS04603.PDF + +it should be: + 7z x -bd -y -o/tmp/.fr-2z9FXz -i!@HS04603.PDF -- HS04603.ZIP + +https://bugzilla.gnome.org/show_bug.cgi?id=708854 +--- +diff --git a/src/fr-command-7z.c b/src/fr-command-7z.c +index f2e70a6..a9d15fd 100644 +--- a/src/fr-command-7z.c ++++ b/src/fr-command-7z.c +@@ -375,11 +375,20 @@ fr_command_7z_add (FrCommand *command, + if (from_file != NULL) + fr_process_add_arg_concat (command->process, "-i@", from_file, NULL); + ++ if (from_file == NULL) ++ for (scan = file_list; scan; scan = scan->next) ++ /* Files prefixed with '@' need to be handled specially */ ++ if (g_str_has_prefix (scan->data, "@")) ++ fr_process_add_arg_concat (command->process, "-i!", scan->data, NULL); ++ + fr_process_add_arg (command->process, "--"); + fr_process_add_arg (command->process, command->filename); ++ + if (from_file == NULL) + for (scan = file_list; scan; scan = scan->next) +- fr_process_add_arg (command->process, scan->data); ++ /* Skip files prefixed with '@', already added */ ++ if (!g_str_has_prefix (scan->data, "@")) ++ fr_process_add_arg (command->process, scan->data); + + fr_process_end_command (command->process); + } +@@ -409,11 +418,20 @@ fr_command_7z_delete (FrCommand *command, + if (from_file != NULL) + fr_process_add_arg_concat (command->process, "-i@", from_file, NULL); + ++ if (from_file == NULL) ++ for (scan = file_list; scan; scan = scan->next) ++ /* Files prefixed with '@' need to be handled specially */ ++ if (g_str_has_prefix (scan->data, "@")) ++ fr_process_add_arg_concat (command->process, "-i!", scan->data, NULL); ++ + fr_process_add_arg (command->process, "--"); + fr_process_add_arg (command->process, command->filename); ++ + if (from_file == NULL) + for (scan = file_list; scan; scan = scan->next) +- fr_process_add_arg (command->process, scan->data); ++ /* Skip files prefixed with '@', already added */ ++ if (!g_str_has_prefix (scan->data, "@")) ++ fr_process_add_arg (command->process, scan->data); + + fr_process_end_command (command->process); + } +@@ -463,11 +481,21 @@ fr_command_7z_extract (FrCommand *command, + if (from_file != NULL) + fr_process_add_arg_concat (command->process, "-i@", from_file, NULL); + ++ if (from_file == NULL) ++ for (scan = file_list; scan; scan = scan->next) ++ /* Files prefixed with '@' need to be handled specially */ ++ if (g_str_has_prefix (scan->data, "@")) ++ fr_process_add_arg_concat (command->process, "-i!", scan->data, NULL); ++ ++ + fr_process_add_arg (command->process, "--"); + fr_process_add_arg (command->process, command->filename); ++ + if (from_file == NULL) + for (scan = file_list; scan; scan = scan->next) +- fr_process_add_arg (command->process, scan->data); ++ /* Skip files prefixed with '@', already added */ ++ if (!g_str_has_prefix (scan->data, "@")) ++ fr_process_add_arg (command->process, scan->data); + + fr_process_end_command (command->process); + } +-- +cgit v0.9.2 diff --git a/libre/file-roller-libre/bug709035.patch b/libre/file-roller-libre/bug709035.patch new file mode 100644 index 000000000..f82e33f30 --- /dev/null +++ b/libre/file-roller-libre/bug709035.patch @@ -0,0 +1,43 @@ +From d05bdc3b60d928f1f40338208419f0ffa41195f6 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 42673df..44aaad2 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 |