unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] Add zathura and friends.
@ 2015-03-01 22:55 Paul van der Walt
  2015-03-01 23:01 ` David Thompson
  0 siblings, 1 reply; 2+ messages in thread
From: Paul van der Walt @ 2015-03-01 22:55 UTC (permalink / raw)
  To: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 344 bytes --]

Hello Guix,

This patch adds zathura, the minimalistic pdf viewer, and plugins for
pdf, ps, djvu, cb (comic book, apparently). I've also packaged
DjVuLibre.

Zathura needed to be patched to accept an environment variable for
finding aforementioned plugins.

I hope this patch is reasonable -- it became a little monstrous.

Good $timeOfDay,
p.

[-- Attachment #2: 0001-gnu-Add-zathura-zathura-djvu-zathura-ps-zathura-pdf-.patch --]
[-- Type: text/x-diff, Size: 14768 bytes --]

From c39f3443c96ce28127028264de431670ce9b3964 Mon Sep 17 00:00:00 2001
From: Paul van der Walt <paul@denknerd.org>
Date: Sun, 1 Mar 2015 23:47:42 +0100
Subject: [PATCH] gnu: Add zathura, zathura-djvu, zathura-ps,
 zathura-pdf-poppler, djvulibre.

* gnu-system.am: Add zathura-plugindir-environment-variable.patch.
* gnu/packages/patches/zathura-plugindir-environment-variable.patch: Patch
  zathura to respect ZATHURA_PLUGIN_DIR environment variable.
* gnu/packages/pdf.scm (djvulibre): New variable.
* gnu/packages/pdf.scm (zathura): New variable.
* gnu/packages/pdf.scm (zathura-pdf-poppler): New variable.
* gnu/packages/pdf.scm (zathura-ps): New variable.
* gnu/packages/pdf.scm (zathura-cb): New variable.
* gnu/packages/pdf.scm (zathura-djvu): New variable.
---
 gnu-system.am                                      |   4 +-
 .../zathura-plugindir-environment-variable.patch   |  44 ++++
 gnu/packages/pdf.scm                               | 267 +++++++++++++++++++++
 3 files changed, 313 insertions(+), 2 deletions(-)
 create mode 100644 gnu/packages/patches/zathura-plugindir-environment-variable.patch

diff --git a/gnu-system.am b/gnu-system.am
index e42e89a..5dda73a 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -550,8 +550,8 @@ dist_patch_DATA =						\
   gnu/packages/patches/xf86-video-trident-remove-mibstore.patch	\
   gnu/packages/patches/xf86-video-vmware-glibc-2.20.patch	\
   gnu/packages/patches/xfce4-panel-plugins.patch		\
-  gnu/packages/patches/xmodmap-asprintf.patch
-
+  gnu/packages/patches/xmodmap-asprintf.patch                   \
+  gnu/packages/patches/zathura-plugindir-environment-variable.patch
 MISC_DISTRO_FILES = gnu/packages/javac.in
 
 bootstrapdir = $(guilemoduledir)/gnu/packages/bootstrap
diff --git a/gnu/packages/patches/zathura-plugindir-environment-variable.patch b/gnu/packages/patches/zathura-plugindir-environment-variable.patch
new file mode 100644
index 0000000..4c7d116
--- /dev/null
+++ b/gnu/packages/patches/zathura-plugindir-environment-variable.patch
@@ -0,0 +1,44 @@
+From f41ea6573185ec326870004e579354e5dd829672 Mon Sep 17 00:00:00 2001
+From: Paul van der Walt <paul@denknerd.org>
+Date: Sun, 1 Mar 2015 22:57:43 +0100
+Subject: [PATCH] Search for Zathura plugins (for reading different file
+ formats) in the environment variable ZATHURA_PLUGIN_DIR. Command line option
+ -p still takes precedence.
+
+Patch by Paul van der Walt <paul@denknerd.org>.
+---
+ zathura/zathura.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/zathura/zathura.c b/zathura/zathura.c
+index 589dd28..d3c9887 100644
+--- a/zathura/zathura.c
++++ b/zathura/zathura.c
+@@ -413,12 +413,24 @@ zathura_set_plugin_dir(zathura_t* zathura, const char* dir)
+   g_return_if_fail(zathura != NULL);
+   g_return_if_fail(zathura->plugins.manager != NULL);
+ 
++  // Get the new environment variable, if any.
++  const gchar* envvar_plugin_dir = g_getenv("ZATHURA_PLUGIN_DIR");
++
+   if (dir != NULL) {
++    // This bit sets the plugin dir from command-line.
+     girara_list_t* paths = girara_split_path_array(dir);
+     GIRARA_LIST_FOREACH(paths, char*, iter, path)
+     zathura_plugin_manager_add_dir(zathura->plugins.manager, path);
+     GIRARA_LIST_FOREACH_END(paths, char*, iter, path);
+     girara_list_free(paths);
++  } else if (envvar_plugin_dir != NULL) {
++    // Set plugins dir to the contents of environment variable
++    // ZATHURA_PLUGIN_DIR.
++    girara_list_t* paths = girara_split_path_array(envvar_plugin_dir);
++    GIRARA_LIST_FOREACH(paths, char*, iter, path)
++    zathura_plugin_manager_add_dir(zathura->plugins.manager, path);
++    GIRARA_LIST_FOREACH_END(paths, char*, iter, path);
++    girara_list_free(paths);
+   } else {
+ #ifdef ZATHURA_PLUGINDIR
+     girara_list_t* paths = girara_split_path_array(ZATHURA_PLUGINDIR);
+-- 
+2.3.1
+
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 7b4f2ab..b76b006 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014, 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,6 +29,9 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages databases)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages backup)
   #:use-module (gnu packages lesstif)
   #:use-module (gnu packages image)
   #:use-module (gnu packages pkg-config)
@@ -143,6 +147,269 @@
    (license license:gpl3) ; or gpl2, but not gpl2+
    (home-page "http://www.foolabs.com/xpdf/")))
 
+
+(define-public girara
+  (package
+    (name "girara")
+    (version "0.2.3")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "https://pwmt.org/projects/girara/download/girara-"
+                              version ".tar.gz"))
+              (sha256
+               (base32
+                "1phfmqp8y17zcy9yi6pm2f80x8ldbk60iswpm4bmjz5217jwqzxh"))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (arguments
+     `(#:make-flags
+       `(,(string-append "PREFIX=" (assoc-ref %outputs "out"))
+         "COLOR=0" "CC=gcc")
+       #:test-target "test"
+       #:phases
+       (alist-delete
+        'check
+        (alist-delete
+         'configure
+         %standard-phases))))
+    (inputs `(("gtk+" ,gtk+)
+              ("glib" ,glib)
+              ("gettext" ,gnu-gettext)))
+    (build-system gnu-build-system)
+    (home-page "https://pwmt.org/projects/girara/")
+    (synopsis "library for minimalistic gtk+3 user interfaces")
+    (description "girara is a library that implements a user interface that
+focuses on simplicity and minimalism. Currently based on GTK+, a
+cross-platform widget toolkit, it provides an interface that focuses on three
+main components: A so-called view widget that represents the actual
+application, an input bar that is used to execute commands of the
+application and the status bar which provides the user with current
+information. girara was designed to replace and enhance the user interface
+that is used by zathura and jumanji and other features that those applications
+share.")
+    (license license:zlib)))
+
+(define-public zathura-cb
+  (package
+    (name "zathura-cb")
+    (version "0.1.4")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "https://pwmt.org/projects/zathura-cb/download/zathura-cb-"
+                              version ".tar.gz"))
+              (sha256
+               (base32
+                "09ln4fpjxmhcq6cw1ka7mdkmca36gyd4gzrynbw3waz0ri0b277j"))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       `(,(string-append "DESTDIR=" (assoc-ref %outputs "out"))
+          "PLUGINDIR=/lib/zathura" "CC=gcc")
+       #:phases
+       (alist-delete
+        'check
+        (alist-delete
+         'configure
+         %standard-phases))))
+    (home-page "https://pwmt.org/projects/zathura-cb/")
+    (synopsis "Comic book support for zathura (libarchive backend)")
+    (description "The zathura-cb plugin adds comic book support to zathura
+using libarchive.")
+    (propagated-inputs
+     `(("girara" ,girara)))
+    (inputs
+     `(("libarchive" ,libarchive)
+       ("gtk+" ,gtk+)
+       ("zathura" ,(package (inherit zathura)
+                            (inputs (alist-delete "zathura-cb"
+                                                  (package-inputs zathura)))))))
+    (license license:zlib)))
+
+(define-public zathura-ps
+  (package
+    (name "zathura-ps")
+    (version "0.2.2")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "https://pwmt.org/projects/zathura-ps/download/zathura-ps-"
+                              version ".tar.gz"))
+              (sha256
+               (base32
+                "1a6ps5v1wk18qvslbkjln6w8wfzzr6fi13ls96vbdc03vdhn4m76"))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       `(,(string-append "DESTDIR=" (assoc-ref %outputs "out"))
+          "PLUGINDIR=/lib/zathura" "CC=gcc")
+       #:phases
+       (alist-delete
+        'check
+        (alist-delete
+         'configure
+         %standard-phases))))
+    (home-page "https://pwmt.org/projects/zathura-ps/")
+    (synopsis "PS support for zathura (libspectre backend)")
+    (description "The zathura-ps plugin adds PS support to zathura
+using libspectre.")
+    (propagated-inputs
+     `(("girara" ,girara)))
+    (inputs
+     `(("libspectre" ,libspectre)
+       ("gtk+" ,gtk+)
+       ("zathura" ,(package (inherit zathura)
+                            (inputs (alist-delete "zathura-ps"
+                                                  (package-inputs zathura)))))))
+    (license license:zlib)))
+
+(define-public zathura-djvu
+  (package
+    (name "zathura-djvu")
+    (version "0.2.4")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "https://pwmt.org/projects/zathura-djvu/download/zathura-djvu-"
+                              version ".tar.gz"))
+              (sha256
+               (base32
+                "1g1lafmrjbx0xv7fljdmyqxx0k334sq4q6jy4a0q5xfrgz0bh45c"))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       `(,(string-append "DESTDIR=" (assoc-ref %outputs "out"))
+          "PLUGINDIR=/lib/zathura" "CC=gcc")
+       #:phases
+       (alist-delete
+        'check
+        (alist-delete
+         'configure
+         %standard-phases))))
+    (home-page "https://pwmt.org/projects/zathura-djvu/")
+    (synopsis "DjVu support for zathura (DjVuLibre backend)")
+    (description "The zathura-djvu plugin adds DjVu support to zathura
+using the DjVuLibre library.")
+    (propagated-inputs
+     `(("girara" ,girara)))
+    (inputs
+     `(("djvulibre" ,djvulibre)
+       ("gtk+" ,gtk+)
+       ("zathura" ,(package (inherit zathura)
+                            (inputs (alist-delete "zathura-djvu"
+                                                  (package-inputs zathura)))))))
+    (license license:zlib)))
+
+(define-public zathura-pdf-poppler
+  (package
+    (name "zathura-pdf-poppler")
+    (version "0.2.5")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "https://pwmt.org/projects/zathura-pdf-poppler/download/zathura-pdf-poppler-"
+                              version ".tar.gz"))
+              (sha256
+               (base32
+                "1b0chsds8iwjm4g629p6a67nb6wgra65pw2vvngd7g35dmcjgcv0"))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       `(,(string-append "DESTDIR=" (assoc-ref %outputs "out"))
+          "PLUGINDIR=/lib/zathura" "CC=gcc")
+       #:phases
+       (alist-delete
+        'check
+        (alist-delete
+         'configure
+         %standard-phases))))
+    (home-page "https://pwmt.org/projects/zathura-pdf-poppler/")
+    (synopsis "PDF support for zathura (poppler backend)")
+    (description "The zathura-pdf-poppler plugin adds PDF support to zathura
+by using the poppler rendering engine.")
+    (propagated-inputs
+     `(("girara" ,girara)))
+    (inputs
+     `(("poppler" ,poppler)
+       ("gtk+" ,gtk+)
+       ("zathura" ,(package (inherit zathura)
+                            (inputs (alist-delete "zathura-pdf-poppler"
+                                                  (package-inputs zathura)))))
+       ("cairo" ,cairo)))
+    (license license:zlib)))
+
+(define-public zathura
+  (package
+    (name "zathura")
+    (version "0.3.2")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "https://pwmt.org/projects/zathura/download/zathura-"
+                              version ".tar.gz"))
+              (sha256
+               (base32
+                "1qk5s7cyqp4l673yhma5igk9g24p5jyqyy81fdk7q7xjqlym19px"))
+              (patches
+               (list
+                (search-patch "zathura-plugindir-environment-variable.patch")))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "ZATHURA_PLUGIN_DIR")
+            (files '("lib/zathura")))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       `(,(string-append "PREFIX=" (assoc-ref %outputs "out"))
+         "CC=gcc" "COLOR=0")
+       #:phases
+       (alist-delete
+        'check
+        (alist-delete
+         'configure
+         %standard-phases))))
+    (home-page "https://pwmt.org/projects/zathura/")
+    (synopsis "Lightweight keyboard-driven PDF viewer")
+    (description "zathura is a highly customizable and functional document
+viewer. It provides a minimalistic and space saving interface as well as an
+easy usage that mainly focuses on keyboard interaction.")
+    (inputs `(("glib" ,glib)
+              ("girara" ,girara)
+              ("gettext" ,gnu-gettext)
+              ("sqlite" ,sqlite)
+              ("gtk+" ,gtk+)))
+    (license license:zlib)))
+
+(define-public djvulibre
+  (package
+    (name "djvulibre")
+    (version "3.5.27")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/djvulibre/djvulibre-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0psh3zl9dj4n4r3lx25390nx34xz0bg0ql48zdskhq354ljni5p6"))))
+    (build-system gnu-build-system)
+    (home-page "http://djvu.sourceforge.net/")
+    (synopsis "DjVuLibre is a GPL implementation of DjVu, a document format.")
+    (description "DjVuLibre is an open source (GPL'ed) implementation of DjVu,
+including viewers, browser plugins, decoders, simple encoders, and
+utilities.")
+    (license license:gpl2)))
+
 (define-public podofo
   (package
     (name "podofo")
-- 
2.3.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] Add zathura and friends.
  2015-03-01 22:55 [PATCH] Add zathura and friends Paul van der Walt
@ 2015-03-01 23:01 ` David Thompson
  0 siblings, 0 replies; 2+ messages in thread
From: David Thompson @ 2015-03-01 23:01 UTC (permalink / raw)
  To: Paul van der Walt, Guix-devel

Paul van der Walt <paul@denknerd.org> writes:

> From c39f3443c96ce28127028264de431670ce9b3964 Mon Sep 17 00:00:00 2001
> From: Paul van der Walt <paul@denknerd.org>
> Date: Sun, 1 Mar 2015 23:47:42 +0100
> Subject: [PATCH] gnu: Add zathura, zathura-djvu, zathura-ps,
>  zathura-pdf-poppler, djvulibre.
>
> * gnu-system.am: Add zathura-plugindir-environment-variable.patch.
> * gnu/packages/patches/zathura-plugindir-environment-variable.patch: Patch
>   zathura to respect ZATHURA_PLUGIN_DIR environment variable.
> * gnu/packages/pdf.scm (djvulibre): New variable.
> * gnu/packages/pdf.scm (zathura): New variable.
> * gnu/packages/pdf.scm (zathura-pdf-poppler): New variable.
> * gnu/packages/pdf.scm (zathura-ps): New variable.
> * gnu/packages/pdf.scm (zathura-cb): New variable.
> * gnu/packages/pdf.scm (zathura-djvu): New variable.

Could you break this into one commit per package?  Thanks!

-- 
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-03-01 23:01 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-01 22:55 [PATCH] Add zathura and friends Paul van der Walt
2015-03-01 23:01 ` David Thompson

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).