From 17153d1816780f8c20f9be5478452d229d16471d Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Mon, 15 Jan 2018 22:06:55 +0100 Subject: [PATCH] gnu: Add fgallery. * gnu/packages/graphics.scm (fgallery): New variable. --- gnu/packages/graphics.scm | 88 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index c47455c21e..af9c7a3c96 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis ;;; Copyright © 2017 Ben Woodcroft ;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2018 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,12 +42,16 @@ #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages documentation) + #:use-module (gnu packages ghostscript) #:use-module (gnu packages haskell) #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) #:use-module (gnu packages python) #:use-module (gnu packages flex) #:use-module (gnu packages fonts) #:use-module (gnu packages fontutils) + #:use-module (gnu packages perl) + #:use-module (gnu packages pdf) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate #:use-module (gnu packages compression) @@ -686,3 +691,86 @@ your terminal. It comes bundled with predefined styles: (define-public python2-pastel (package-with-python2 python-pastel)) + +(define-public fgallery + (package + (name "fgallery") + (version "1.8.2") + (source (origin + (method url-fetch) + (uri + (string-append + "http://www.thregr.org/~wavexx/software/fgallery/releases/" + "fgallery-" version ".zip")) + (sha256 + (base32 + "18wlvqbxcng8pawimbc8f2422s8fnk840hfr6946lzsxr0ijakvf")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin/")) + (share (string-append out "/share/fgallery")) + (man (string-append out "/share/man/man1")) + (perl5lib (getenv "PERL5LIB")) + (script (string-append share "/fgallery"))) + (define (bin-directory input-name) + (string-append (assoc-ref inputs input-name) "/bin")) + + (mkdir-p man) + (copy-file "fgallery.1" (string-append man "/fgallery.1")) + + (mkdir-p share) + (copy-recursively "." share) + + ;; fgallery copies files from store when it is run. The + ;; read-only permissions from the store directories will cause + ;; fgallery to fail. Do not preserve file attributes when + ;; copying files to prevent it. + (substitute* script + (("'cp'") + "'cp', '--no-preserve=all'")) + + (mkdir-p bin) + (symlink script (string-append out "/bin/fgallery")) + + (wrap-program script + `("PATH" ":" prefix + ,(map bin-directory '("imagemagick" + "lcms" + "fbida" + "libjpeg" + "zip" + "jpegoptim" + "pngcrush" + "p7zip"))) + `("PERL5LIB" ":" prefix (,perl5lib))) + #t)))))) + (native-inputs + `(("unzip" ,unzip))) + ;; TODO: Add missing optional dependency: facedetect. + (inputs + `(("imagemagick" ,imagemagick) + ("lcms" ,lcms) + ("fbida" ,fbida) + ("libjpeg" ,libjpeg) + ("zip" ,zip) + ("perl" ,perl) + ("perl-cpanel-json-xs" ,perl-cpanel-json-xs) + ("perl-image-exiftool" ,perl-image-exiftool) + ("jpegoptim" ,jpegoptim) + ("pngcrush" ,pngcrush) + ("p7zip" ,p7zip))) + (home-page "http://www.thregr.org/~wavexx/software/fgallery/") + (synopsis "Static photo gallery generator") + (description + "FGallery is a static, JavaScript photo gallery generator with minimalist +look. The result can be uploaded on any web server without additional +requirements.") + (license license:gpl2+)))