gnu: Add 'ghostscript-gs' and 'ghostscript-gs-with-x'.
authorLudovic Courtès <ludo@gnu.org>
Mon, 25 Jul 2016 09:36:51 +0000 (11:36 +0200)
committerLudovic Courtès <ludo@gnu.org>
Mon, 25 Jul 2016 09:36:51 +0000 (11:36 +0200)
* gnu/packages/ghostscript.scm (ghostscript-wrapper): New procedure.
(ghostscript-gs, ghostscript-gs/x): New variables.

gnu/packages/ghostscript.scm

index 417f47e..f013a73 100644 (file)
@@ -33,7 +33,8 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
-  #:use-module (guix build-system gnu))
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system trivial))
 
 (define-public lcms
   (package
@@ -198,6 +199,40 @@ output file formats and printers.")
               ("libxt" ,libxt)
               ,@(package-inputs ghostscript)))))
 
+(define (ghostscript-wrapper name ghostscript)
+  ;; Return a GHOSTSCRIPT wrapper that provides the 'gs' command.
+  ;; See <https://lists.gnu.org/archive/html/guix-devel/2016-07/msg00987.html>.
+  (package
+    (name name)
+    (version (package-version ghostscript))
+    (source #f)
+    (build-system trivial-build-system)
+    (inputs `(("ghostscript" ,ghostscript)))
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder (begin
+                   (use-modules (guix build utils))
+
+                   (let* ((out (assoc-ref %outputs "out"))
+                          (bin (string-append out "/bin"))
+                          (gs  (assoc-ref %build-inputs "ghostscript")))
+                     (mkdir-p bin)
+                     (with-directory-excursion bin
+                       (symlink (string-append gs "/bin/gsc") "gs")
+                       #t)))))
+    (synopsis "Wrapper providing Ghostscript's 'gs' command")
+    (description
+     "This package provides the @command{gs} command, which used to be
+provided by Ghostscript itself and no longer is.")
+    (license (package-license ghostscript))
+    (home-page (package-home-page ghostscript))))
+
+(define-public ghostscript-gs
+  (ghostscript-wrapper "ghostscript-gs" ghostscript))
+
+(define-public ghostscript-gs/x
+  (ghostscript-wrapper "ghostscript-gs-with-x" ghostscript/x))
+
 (define-public ijs
   (package
    (name "ijs")