gnu: upower: Enable GObject introspection.
[jackhill/guix/guix.git] / gnu / packages / ghostscript.scm
index f902670..818072a 100644 (file)
@@ -1,8 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29,6 +29,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages tcl)
+  #:use-module (gnu packages xorg)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -129,8 +130,16 @@ printing, and psresize, for adjusting page sizes.")
             (sha256
              (base32
               "0q4jj41p0qbr4mgcc9q78f5zs8cm1g57wgryhsm2yq4lfslm3ib1"))
-            (patches (list (search-patch "ghostscript-runpath.patch")))))
+            (patches (map search-patch '("ghostscript-CVE-2015-3228.patch"
+                                         "ghostscript-runpath.patch")))
+            (modules '((guix build utils)))
+            (snippet
+             ;; Honor --docdir.
+             '(substitute* "Makefile.in"
+                (("^docdir=.*$") "docdir = @docdir@\n")
+                (("^exdir=.*$") "exdir = $(docdir)/examples\n")))))
    (build-system gnu-build-system)
+   (outputs '("out" "doc"))                  ;16 MiB of HTML/PS doc + examples
    (inputs `(("freetype" ,freetype)
              ("lcms" ,lcms)
              ("libjpeg-8" ,libjpeg-8)
@@ -152,6 +161,14 @@ printing, and psresize, for adjusting page sizes.")
                        (("/bin/sh") (which "bash")))
                      (substitute* "base/unixhead.mak"
                        (("/bin/sh") (which "bash")))))
+        (add-after 'configure 'remove-doc-reference
+                   (lambda _
+                     ;; Don't retain a reference to the 'doc' output in 'gs'.
+                     ;; The only use of this definition is in the output of
+                     ;; 'gs --help', so this change is fine.
+                     (substitute* "base/gscdef.c"
+                       (("GS_DOCDIR")
+                        "\"~/.guix-profile/share/doc/ghostscript\""))))
         (add-after 'build 'build-so
                    (lambda _
                      (zero? (system* "make" "so"))))
@@ -167,6 +184,13 @@ output file formats and printers.")
    (license license:agpl3+)
    (home-page "http://www.gnu.org/software/ghostscript/")))
 
+(define-public ghostscript/x
+  (package (inherit ghostscript)
+    (name (string-append (package-name ghostscript) "-with-x"))
+    (inputs `(("libxext" ,libxext)
+              ("libxt" ,libxt)
+              ,@(package-inputs ghostscript)))))
+
 (define-public ijs
   (package
    (name "ijs")