summaryrefslogtreecommitdiff
path: root/gnu/packages/ghostscript.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ghostscript.scm')
-rw-r--r--gnu/packages/ghostscript.scm98
1 files changed, 61 insertions, 37 deletions
diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm
index 3b74a96966..ae689925e1 100644
--- a/gnu/packages/ghostscript.scm
+++ b/gnu/packages/ghostscript.scm
@@ -7,7 +7,8 @@
;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -57,7 +58,9 @@
(sha256 (base32
"083xisy6z01zhm7p7rgk4bx9d6zlr8l20qkfv1g29ylnhgwzvij8"))))
(build-system gnu-build-system)
- (inputs `(("libjpeg" ,libjpeg)
+ (arguments
+ `(#:configure-flags '("--disable-static")))
+ (inputs `(("libjpeg" ,libjpeg-turbo)
("libtiff" ,libtiff)
("zlib" ,zlib)))
(synopsis "Little CMS, a small-footprint colour management engine")
@@ -84,6 +87,25 @@ Consortium standard (ICC), approved as ISO 15076-1.")
(sha256 (base32
"0zhcx67afb6b5r936w5jmaydj3ks8zh83n9rm5sv3m3k8q8jib1q"))))
(build-system gnu-build-system)
+ (native-inputs
+ `(("automake" ,automake))) ; For up to date 'config.guess' and 'config.sub'.
+ (arguments
+ `(#:configure-flags '("--disable-static")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-configure
+ (lambda* (#:key inputs native-inputs #:allow-other-keys)
+ ;; Replace outdated config.sub and config.guess:
+ (for-each (lambda (file)
+ (install-file
+ (string-append (assoc-ref
+ (or native-inputs inputs) "automake")
+ "/share/automake-"
+ ,(version-major+minor
+ (package-version automake))
+ "/" file) "."))
+ '("config.sub" "config.guess"))
+ #t)))))
(synopsis "Library for handling paper sizes")
(description
"The paper library and accompanying files are intended to provide a simple
@@ -137,13 +159,7 @@ printing, and psresize, for adjusting page sizes.")
(define-public ghostscript
(package
(name "ghostscript")
- (version "9.27")
-
- ;; The problems addressed by GHOSTSCRIPT/FIXED are not security-related,
- ;; but they have a significant impact on usability, hence this graft.
- ;; TODO: Ungraft on next update cycle.
- (replacement ghostscript/fixed)
-
+ (version "9.51")
(source
(origin
(method url-fetch)
@@ -153,7 +169,7 @@ printing, and psresize, for adjusting page sizes.")
"/ghostscript-" version ".tar.xz"))
(sha256
(base32
- "06dnj0mxyaryfbwlsjwaqf847w91w2h8f108kxxcc41nrnx1y3zw"))
+ "0wdpcq9lq19v8an8xs28cgg7vfzb23f1j12m9p2wdnwa1vwk64by"))
(patches (search-patches "ghostscript-no-header-creationdate.patch"
"ghostscript-no-header-id.patch"
"ghostscript-no-header-uuid.patch"))
@@ -186,6 +202,10 @@ printing, and psresize, for adjusting page sizes.")
(string-append "ZLIBDIR="
(assoc-ref %build-inputs "zlib") "/include")
"--enable-dynamic"
+ "--disable-compile-inits"
+ (string-append "--with-fontpath="
+ (assoc-ref %build-inputs "gs-fonts")
+ "/share/fonts/type1/ghostscript")
,@(if (%current-target-system)
'(;; Specify the native compiler, which is used to build 'echogs'
@@ -213,10 +233,6 @@ printing, and psresize, for adjusting page sizes.")
(substitute* "base/gscdef.c"
(("GS_DOCDIR")
"\"~/.guix-profile/share/doc/ghostscript\""))
- ;; The docdir default changed in 9.23 and a compatibility
- ;; symlink was added from datadir->docdir. Remove it.
- (substitute* "base/unixinst.mak"
- (("ln -s \\$\\(DESTDIR\\)\\$\\(docdir\\).*") ""))
#t))
(add-after 'configure 'patch-config-files
(lambda _
@@ -224,7 +240,31 @@ printing, and psresize, for adjusting page sizes.")
(("/bin/sh") (which "sh")))
#t))
,@(if (%current-target-system)
- `((add-after 'configure 'add-native-lz
+ `((add-after 'unpack 'define-ARCH_MAX_SIZE_T
+ (lambda _
+ ;; XXX: arch_autoconf.h is missing the recent addition of
+ ;; ARCH_MAX_SIZE_T. Just add it here based on the definition
+ ;; in "base/genarch.c". This can likely be removed for
+ ;; Ghostscript > 9.51.
+ (substitute* "arch/arch_autoconf.h.in"
+ (("#define ARCH_MAX_ULONG.*" all)
+ (string-append all "\n"
+ "#define ARCH_MAX_SIZE_T "
+ "((size_t)~0L + (size_t)0)\n")))
+ #t))
+ (add-before 'configure 'do-not-fail-without-native-freetype
+ (lambda _
+ ;; The configure script recurses to build the native tools.
+ ;; They are built with --disable-freetype, which was made a
+ ;; hard error in 9.51, causing a build failure because a
+ ;; native freetype is not detected. Just ignore the check
+ ;; because it's not needed for these auxiliary tools.
+ (substitute* "configure"
+ (("as_fn_error \\$\\? \"(No usable Freetype.*found)\".*" all msg)
+ (string-append "$as_echo \"$as_me:${as_lineno-$LINENO}: "
+ "WARNING: " msg "\"\n")))
+ #t))
+ (add-after 'configure 'add-native-lz
(lambda _
;; Add missing '-lz' for native tools such as 'mkromfs'.
(substitute* "Makefile"
@@ -249,6 +289,7 @@ printing, and psresize, for adjusting page sizes.")
#t))))))
(native-inputs
`(("perl" ,perl)
+ ("pkg-config" ,pkg-config) ;needed for freetype
("python" ,python-wrapper)
("tcl" ,tcl)
@@ -256,12 +297,14 @@ printing, and psresize, for adjusting page sizes.")
;; these libraries.
,@(if (%current-target-system)
`(("zlib/native" ,zlib)
- ("libjpeg/native" ,libjpeg))
+ ("libjpeg/native" ,libjpeg-turbo))
'())))
(inputs
- `(("freetype" ,freetype)
+ `(("fontconfig" ,fontconfig)
+ ("freetype" ,freetype)
+ ("gs-fonts" ,gs-fonts)
("jbig2dec" ,jbig2dec)
- ("libjpeg" ,libjpeg)
+ ("libjpeg" ,libjpeg-turbo)
("libpaper" ,libpaper)
("libpng" ,libpng)
("libtiff" ,libtiff)
@@ -275,25 +318,6 @@ output file formats and printers.")
(home-page "https://www.ghostscript.com/")
(license license:agpl3+)))
-(define ghostscript/fixed
- ;; This adds the Freetype dependency (among other things), which fixes the
- ;; rendering issues described in <https://issues.guix.gnu.org/issue/34877>.
- (package/inherit
- ghostscript
- (arguments
- (substitute-keyword-arguments (package-arguments ghostscript)
- ((#:configure-flags flags ''())
- `(append (list "--disable-compile-inits"
- (string-append "--with-fontpath="
- (assoc-ref %build-inputs "gs-fonts")
- "/share/fonts/type1/ghostscript"))
- ,flags))))
- (native-inputs `(("pkg-config" ,pkg-config) ;needed for freetype
- ,@(package-native-inputs ghostscript)))
- (inputs `(("gs-fonts" ,gs-fonts)
- ("fontconfig" ,fontconfig)
- ,@(package-inputs ghostscript)))))
-
(define-public ghostscript/x
(package/inherit ghostscript
(name (string-append (package-name ghostscript) "-with-x"))