summary refs log tree commit diff
path: root/gnu/packages/ghostscript.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ghostscript.scm')
-rw-r--r--gnu/packages/ghostscript.scm57
1 files changed, 48 insertions, 9 deletions
diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm
index ff5a6a04f4..f013a734e5 100644
--- a/gnu/packages/ghostscript.scm
+++ b/gnu/packages/ghostscript.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -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
@@ -156,7 +157,8 @@ printing, and psresize, for adjusting page sizes.")
         ("python" ,python-wrapper)
         ("tcl" ,tcl)))
    (arguments
-    `(#:phases
+    `(#:disallowed-references ("doc")
+      #:phases
       (modify-phases %standard-phases
         (add-after 'configure 'patch-config-files
                    (lambda _
@@ -172,12 +174,15 @@ printing, and psresize, for adjusting page sizes.")
                      (substitute* "base/gscdef.c"
                        (("GS_DOCDIR")
                         "\"~/.guix-profile/share/doc/ghostscript\""))))
-        (add-after 'build 'build-so
-                   (lambda _
-                     (zero? (system* "make" "so"))))
-        (add-after 'install 'install-so
-                   (lambda _
-                     (zero? (system* "make" "install-so")))))))
+        (replace 'build
+          (lambda _
+            ;; Build 'libgs.so', but don't build the statically-linked 'gs'
+            ;; binary (saves 18 MiB).
+            (zero? (system* "make" "so" "-j"
+                            (number->string (parallel-job-count))))))
+        (replace 'install
+          (lambda _
+            (zero? (system* "make" "soinstall")))))))
    (synopsis "PostScript and PDF interpreter")
    (description
     "Ghostscript is an interpreter for the PostScript language and the PDF
@@ -194,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")