summaryrefslogtreecommitdiff
path: root/libre/file-roller
diff options
context:
space:
mode:
Diffstat (limited to 'libre/file-roller')
-rw-r--r--libre/file-roller/PKGBUILD36
-rw-r--r--libre/file-roller/bug708854.patch92
-rw-r--r--libre/file-roller/bug709035.patch43
-rw-r--r--libre/file-roller/file-roller.install13
-rw-r--r--libre/file-roller/rePKGBUILD26
5 files changed, 210 insertions, 0 deletions
diff --git a/libre/file-roller/PKGBUILD b/libre/file-roller/PKGBUILD
new file mode 100644
index 000000000..937f02cba
--- /dev/null
+++ b/libre/file-roller/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 213482 2014-05-23 23:43:56Z heftig $
+# Maintainer (Arch): Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor (Arch): Jan de Groot <jgc@archlinux.org>
+
+pkgname=file-roller
+pkgver=3.12.2
+pkgrel=1.parabola1
+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' 'p7zip' 'unar')
+makedepends=('intltool' 'gnome-doc-utils' 'pkg-config' 'libnautilus-extension' 'itstool' 'docbook-xsl')
+optdepends=('lrzip: lrzip archive support')
+groups=('gnome-extra')
+replaces=("${pkgname}-libre" "${pkgname}-parabola")
+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=('0677be6618dba609eae2d76420e8a5a8d9a414bcec654e7b71e65b941764eacf')
+
+build() {
+ cd $pkgname-$pkgver
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/file-roller \
+ --localstatedir=/var --disable-static \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/libre/file-roller/bug708854.patch b/libre/file-roller/bug708854.patch
new file mode 100644
index 000000000..6a5591a59
--- /dev/null
+++ b/libre/file-roller/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/bug709035.patch b/libre/file-roller/bug709035.patch
new file mode 100644
index 000000000..f82e33f30
--- /dev/null
+++ b/libre/file-roller/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
diff --git a/libre/file-roller/file-roller.install b/libre/file-roller/file-roller.install
new file mode 100644
index 000000000..8b17fa3d4
--- /dev/null
+++ b/libre/file-roller/file-roller.install
@@ -0,0 +1,13 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/libre/file-roller/rePKGBUILD b/libre/file-roller/rePKGBUILD
new file mode 100644
index 000000000..a83d218f1
--- /dev/null
+++ b/libre/file-roller/rePKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Nicolás Reynolds <fauno@kiwwwi.com.ar>
+source PKGBUILD
+#CARCH=x86_64
+unset build package md5sums source
+_repo=extra # Put the repo here
+_mirror=http://mirrors.kernel.org/archlinux # Put mirror here
+source=(PKGBUILD
+ "${_mirror}/${_repo}/os/${CARCH}/${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT"
+ # files for pkg modifications below this line
+ )
+options=(!strip)
+
+build() {
+ cd "${srcdir}/"
+ rm .{INSTALL,PKGINFO}
+ # put actions for package modifications below this line
+
+}
+
+package() {
+ find ${srcdir} -maxdepth 1 -type l -delete
+ cp -a ${srcdir}/* ${pkgdir}
+}
+
+
+# vim:set ts=2 sw=2 et: