summaryrefslogtreecommitdiff
path: root/libre/evince-libre
diff options
context:
space:
mode:
Diffstat (limited to 'libre/evince-libre')
-rw-r--r--libre/evince-libre/PKGBUILD51
-rw-r--r--libre/evince-libre/evince.install13
-rw-r--r--libre/evince-libre/libarchive.patch91
3 files changed, 155 insertions, 0 deletions
diff --git a/libre/evince-libre/PKGBUILD b/libre/evince-libre/PKGBUILD
new file mode 100644
index 000000000..ab6b40d82
--- /dev/null
+++ b/libre/evince-libre/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 210357 2014-04-14 17:00:49Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+
+_pkgname=evince
+pkgname=evince-libre
+pkgver=3.12.1
+pkgrel=1
+pkgdesc="Document viewer (PDF, Postscript, djvu, tiff, dvi, XPS, SyncTex support with gedit, comics books (cbr,cbz,cb7 and cbt)), with libarchive support"
+url="https://wiki.gnome.org/Apps/Evince"
+arch=(i686 x86_64 mips64el)
+license=(GPL)
+replaces=$_pkgname
+conflicts=$_pkgname
+provides=$_pkgname=$pkgver
+depends=(gtk3 libgxps libspectre gsfonts poppler-glib djvulibre gnome-icon-theme t1lib libsecret desktop-file-utils dconf gsettings-desktop-schemas)
+makedepends=(itstool libnautilus-extension texlive-bin intltool gobject-introspection docbook-xsl python)
+optdepends=('texlive-bin: DVI support'
+ 'gvfs: bookmark support and session saving'
+ 'p7zip: cbz and cb7 compressed comic books'
+ 'tar: cbt compressed comic books'
+ 'libarchive: cbr compressed comic books')
+groups=(gnome)
+install=evince.install
+options=('!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver:0:4}/$_pkgname-$pkgver.tar.xz
+ libarchive.patch)
+sha256sums=('ef22cc29a7cbe70d2e7ce8c0b5b7ee774187ea69f3ae49a64c6d4a91559ef137'
+ '023f01f40c5efb8bf245d97067b3ef1da74f96a0bc53e53eb3d990d6c29b9e5e')
+prepare() {
+ cd $_pkgname-$pkgver
+ patch -Np1 -i ../libarchive.patch
+}
+
+build() {
+ cd $_pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --libexecdir=/usr/lib/evince \
+ --disable-static --enable-nautilus \
+ --enable-pdf --enable-tiff \
+ --enable-djvu --enable-dvi \
+ --enable-t1lib --enable-comics \
+ --disable-scrollkeeper --disable-schemas-compile \
+ --enable-introspection
+ make
+}
+
+package() {
+ cd $_pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/libre/evince-libre/evince.install b/libre/evince-libre/evince.install
new file mode 100644
index 000000000..1571179ca
--- /dev/null
+++ b/libre/evince-libre/evince.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/evince-libre/libarchive.patch b/libre/evince-libre/libarchive.patch
new file mode 100644
index 000000000..f86908267
--- /dev/null
+++ b/libre/evince-libre/libarchive.patch
@@ -0,0 +1,91 @@
+diff --git a/backend/comics/comics-document.c b/backend/comics/comics-document.c
+index a135a74..380cb54 100644
+--- a/backend/comics/comics-document.c
++++ b/backend/comics/comics-document.c
+@@ -54,8 +54,7 @@
+
+ typedef enum
+ {
+- RARLABS,
+- GNAUNRAR,
++ LIBARCHIVE,
+ UNZIP,
+ P7ZIP,
+ TAR
+@@ -107,11 +106,8 @@ typedef struct {
+ } ComicBookDecompressCommand;
+
+ static const ComicBookDecompressCommand command_usage_def[] = {
+- /* RARLABS unrar */
+- {"%s p -c- -ierr --", "%s vb -c- -- %s", NULL , FALSE, NO_OFFSET},
+-
+- /* GNA! unrar */
+- {NULL , "%s t %s" , "%s -xf %s %s" , FALSE, NO_OFFSET},
++ /* libarchive */
++ {NULL , "%s tf %s" , "%s xf %s %s" , FALSE, NO_OFFSET},
+
+ /* unzip */
+ {"%s -p -C --" , "%s %s" , NULL , TRUE , OFFSET_ZIP},
+@@ -282,7 +278,7 @@ comics_generate_command_lines (ComicsDocument *comics_document,
+ if (comics_document->dir == NULL)
+ return FALSE;
+
+- /* unrar-free can't create directories, but ev_mkdtemp already created the dir */
++ /* libarchive can't create directories on rar support, but ev_mkdtemp already created the dir */
+
+ comics_document->decompress_tmp =
+ g_strdup_printf (command_usage_def[type].decompress_tmp,
+@@ -321,51 +317,10 @@ comics_check_decompress_command (gchar *mime_type,
+
+ if (!strcmp (mime_type, "application/x-cbr") ||
+ !strcmp (mime_type, "application/x-rar")) {
+- /* The RARLAB provides a no-charge proprietary (freeware)
+- * decompress-only client for Linux called unrar. Another
+- * option is a GPLv2-licensed command-line tool developed by
+- * the Gna! project. Confusingly enough, the free software RAR
+- * decoder is also named unrar. For this reason we need to add
+- * some lines for disambiguation. Sorry for the added the
+- * complexity but it's life :)
+- * Finally, some distributions, like Debian, rename this free
+- * option as unrar-free.
+- * */
+- comics_document->selected_command =
+- g_find_program_in_path ("unrar");
+- if (comics_document->selected_command) {
+- /* We only use std_err to avoid printing useless error
+- * messages on the terminal */
+- success =
+- g_spawn_command_line_sync (
+- comics_document->selected_command,
+- &std_out, &std_err,
+- &retval, &err);
+- if (!success) {
+- g_propagate_error (error, err);
+- g_error_free (err);
+- return FALSE;
+- /* I don't check retval status because RARLAB unrar
+- * doesn't have a way to return 0 without involving an
+- * operation with a file*/
+- } else if (WIFEXITED (retval)) {
+- if (g_strrstr (std_out,"freeware") != NULL)
+- /* The RARLAB freeware client */
+- comics_document->command_usage = RARLABS;
+- else
+- /* The Gna! free software client */
+- comics_document->command_usage = GNAUNRAR;
+-
+- g_free (std_out);
+- g_free (std_err);
+- return TRUE;
+- }
+- }
+- /* The Gna! free software client with Debian naming convention */
+ comics_document->selected_command =
+- g_find_program_in_path ("unrar-free");
++ g_find_program_in_path ("bsdtar");
+ if (comics_document->selected_command) {
+- comics_document->command_usage = GNAUNRAR;
++ comics_document->command_usage = LIBARCHIVE;
+ return TRUE;
+ }
+