summaryrefslogtreecommitdiff
path: root/community/mate-file-archiver
diff options
context:
space:
mode:
Diffstat (limited to 'community/mate-file-archiver')
-rw-r--r--community/mate-file-archiver/PKGBUILD51
-rw-r--r--community/mate-file-archiver/fr-rpm-bsdtar.patch60
-rw-r--r--community/mate-file-archiver/mate-file-archiver.install13
3 files changed, 124 insertions, 0 deletions
diff --git a/community/mate-file-archiver/PKGBUILD b/community/mate-file-archiver/PKGBUILD
new file mode 100644
index 000000000..33bf4e4d3
--- /dev/null
+++ b/community/mate-file-archiver/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 104212 2014-01-16 17:08:48Z flexiondotorg $
+# Maintainer : Martin Wimpress <code@flexion.org>
+# Contributor: Giovanni "Talorno" Ricciardi <kar98k.sniper@gmail.com>
+# Contributor: Alessio Sergi <asergi at archlinux dot us>
+# Contributor: Xpander <xpander0@gmail.com>
+# Contributor: hekel <hekel(at)archlinux.info>
+
+pkgname=mate-file-archiver
+pkgver=1.6.0
+pkgrel=7
+pkgdesc="Archive manipulator for MATE"
+url="http://mate-desktop.org"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('bzip2' 'desktop-file-utils' 'gtk2' 'gzip' 'libarchive'
+ 'mate-file-manager' 'tar')
+makedepends=('mate-common' 'mate-doc-utils' 'perl-xml-parser')
+optdepends=('unrar: for RAR uncompression'
+'zip: for ZIP archives' 'unzip: for ZIP archives'
+'p7zip: 7zip compression utility' 'arj: for ARJ archives'
+'unace: extraction tool for the proprietary ace archive format')
+options=('!emptydirs')
+groups=('mate-extra')
+source=("http://pub.mate-desktop.org/releases/1.6/${pkgname}-${pkgver}.tar.xz"
+ fr-rpm-bsdtar.patch)
+sha1sums=('c7df115b532a14fb7be193113da32cda4a2218e8'
+ '219b05a979bf6f249aaae27964f02345fd81168d')
+install=${pkgname}.install
+
+prepare() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # This patch 'depends' on libarchive
+ patch -Np1 -i "${srcdir}/fr-rpm-bsdtar.patch"
+}
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./autogen.sh \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/${pkgname} \
+ --disable-static \
+ --disable-scrollkeeper \
+ --disable-packagekit
+ mate-doc-prepare --force
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/mate-file-archiver/fr-rpm-bsdtar.patch b/community/mate-file-archiver/fr-rpm-bsdtar.patch
new file mode 100644
index 000000000..93a783176
--- /dev/null
+++ b/community/mate-file-archiver/fr-rpm-bsdtar.patch
@@ -0,0 +1,60 @@
+This makes Engrampa use bsdtar to extract .RPM packages instead of using cpio.
+It is useful on systems that do not have cpio or RPM/YUM
+This patch was created for Arch Linux, however should work on any system that has bsdtar capable of handling cpio archives.
+
+------------------+
+ rpm2cpio.c | 2 +-
+ fr-command-rpm.c | 8 ++++----
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+Index: src/commands/rpm2cpio.c
+================================
+--- mate-file-archiver-1.6.0/src/commands/rpm2cpio.c 2013-03-31
++++ mate-file-archiver-1.6.0/src/commands/rpm2cpio.c 2013-07-26
+@@ -128,7 +128,7 @@
+ archive_command = "bzip2 -dc";
+ fclose (stream);
+
+- command = g_strdup_printf ("sh -c \"dd if=%s ibs=%u skip=1 2>/dev/null | %s | cpio %s\"", g_shell_quote (filename), offset, archive_command, cpio_args->str);
++ command = g_strdup_printf ("sh -c \"dd if=%s ibs=%u skip=1 2>/dev/null | %s | bsdtar %s\"", g_shell_quote (filename), offset, archive_command, cpio_args->str);
+
+ return system (command);
+ }
+Index: src/fr-command-rpm.c
+================================
+--- mate-file-archiver-1.6.0/src/fr-command-rpm.c 2013-03-31
++++ mate-file-archiver-1.6.0/src/fr-command-rpm.c 2013-07-26
+@@ -175,7 +175,7 @@
+
+ fr_process_begin_command (comm->process, "sh");
+ fr_process_add_arg (comm->process, "-c");
+- fr_process_add_arg_concat (comm->process, PRIVEXECDIR "rpm2cpio ", comm->e_filename, " -itv", NULL);
++ fr_process_add_arg_concat (comm->process, PRIVEXECDIR "rpm2cpio ", comm->e_filename, " -tvf -", NULL);
+ fr_process_end_command (comm->process);
+ fr_process_start (comm->process);
+ }
+@@ -200,7 +200,7 @@
+
+ cmd = g_string_new (PRIVEXECDIR "rpm2cpio ");
+ g_string_append (cmd, comm->e_filename);
+- g_string_append (cmd, " -idu ");
++ g_string_append (cmd, " -xf - ");
+ for (scan = file_list; scan; scan = scan->next) {
+ char *filename = g_shell_quote (scan->data);
+ g_string_append (cmd, filename);
+@@ -233,7 +233,7 @@
+ FrCommandCap capabilities;
+
+ capabilities = FR_COMMAND_CAN_ARCHIVE_MANY_FILES;
+- if (is_program_available ("cpio", check_command))
++ if (is_program_available ("bsdtar", check_command))
+ capabilities |= FR_COMMAND_CAN_READ;
+
+ return capabilities;
+@@ -244,7 +244,7 @@
+ fr_command_rpm_get_packages (FrCommand *comm,
+ const char *mime_type)
+ {
+- return PACKAGES ("cpio,rpm");
++ return PACKAGES ("bsdtar,rpm");
+ }
diff --git a/community/mate-file-archiver/mate-file-archiver.install b/community/mate-file-archiver/mate-file-archiver.install
new file mode 100644
index 000000000..bf6781f93
--- /dev/null
+++ b/community/mate-file-archiver/mate-file-archiver.install
@@ -0,0 +1,13 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas/
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}