summary refs log tree commit diff
path: root/pkgs/misc/ghostscript/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/misc/ghostscript/default.nix')
-rw-r--r--pkgs/misc/ghostscript/default.nix42
1 files changed, 26 insertions, 16 deletions
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index ac171b2ff814..79f367446033 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, libjpeg, libpng, libtiff, zlib, pkgconfig, fontconfig, openssl, lcms, freetype
+{ stdenv, fetchurl, libjpeg, libpng, libtiff, zlib, pkgconfig, fontconfig, openssl
+, lcms2, freetype, libpaper, jbig2dec, expat, libiconvOrEmpty
 , x11Support, x11 ? null
 , cupsSupport ? false, cups ? null
 , gnuFork ? true
@@ -8,7 +9,7 @@ assert x11Support -> x11 != null;
 assert cupsSupport -> cups != null;
 
 let
-  meta = {
+  meta_common = {
     homepage = "http://www.gnu.org/software/ghostscript/";
     description = "GNU Ghostscript, a PostScript interpreter";
 
@@ -34,25 +35,28 @@ let
       sha256 = "0zqa6ggbkdqiszsywgrra4ij0sddlmrfa50bx2mh568qid4ga0a2";
     };
 
-    inherit meta;
+    meta = meta_common;
     patches = [ ./purity.patch ];
   };
 
-  mainlineSrc = {
-    name = "ghostscript-9.05";
+  mainlineSrc = rec {
+    name = "ghostscript-9.06";
     src = fetchurl {
-      url = "http://downloads.ghostscript.com/public/ghostscript-9.05.tar.bz2";
-      sha256 = "1b6fi76x6pn9dmr9k9lh8kimn968dmh91k824fmm59d5ycm22h8g";
+      url = "http://downloads.ghostscript.com/public/${name}.tar.bz2";
+      sha256 = "014f10rxn4ihvcr1frby4szd1jvkrwvmdhnbivpp55c9fssx3b05";
     };
-    meta = meta // {
+    meta = meta_common // {
       homepage = "http://www.ghostscript.com/";
       description = "GPL Ghostscript, a PostScript interpreter";
     };
 
     preConfigure = ''
-      rm -R libpng jpeg lcms tiff freetype
+      rm -R libpng jpeg lcms{,2} tiff freetype jbig2dec expat jasper openjpeg
+
+      substituteInPlace base/unix-aux.mak --replace "INCLUDE=/usr/include" "INCLUDE=/no-such-path"
+      sed "s@if ( test -f \$(INCLUDE)[^ ]* )@if ( true )@" -i base/unix-aux.mak
     '';
-    patches = [ ./purity-9.05.patch ];
+    patches = [];
   };
 
   variant = if gnuFork then gnuForkSrc else mainlineSrc;
@@ -64,8 +68,8 @@ stdenv.mkDerivation rec {
 
   fonts = [
     (fetchurl {
-      url = "mirror://gnu/ghostscript/gnu-gs-fonts-std-6.0.tar.gz";
-      sha256 = "1lxr1y52r26qjif8kdqkfhsb5llakdcx3f5b9ppdyn59bb83ivsc";
+      url = "mirror://sourceforge/gs-fonts/ghostscript-fonts-std-8.11.tar.gz";
+      sha256 = "00f4l10xd826kak51wsmaz69szzm2wp8a41jasr4jblz25bg7dhf";
     })
     (fetchurl {
       url = "mirror://gnu/ghostscript/gnu-gs-fonts-other-6.0.tar.gz";
@@ -74,9 +78,14 @@ stdenv.mkDerivation rec {
     # ... add other fonts here
   ];
 
-  buildInputs = [libjpeg libpng libtiff zlib pkgconfig fontconfig openssl lcms]
-    ++ stdenv.lib.optionals x11Support [x11 freetype]
-    ++ stdenv.lib.optional cupsSupport cups;
+  buildInputs = [
+    libjpeg libpng libtiff zlib pkgconfig fontconfig openssl lcms2
+    libpaper jbig2dec expat
+  ] ++ stdenv.lib.optionals x11Support [x11 freetype]
+    ++ stdenv.lib.optional cupsSupport cups
+    ++ libiconvOrEmpty
+    # [] # maybe sometimes jpeg2000 support
+    ;
 
   CFLAGS = "-fPIC";
   NIX_LDFLAGS =
@@ -92,7 +101,7 @@ stdenv.mkDerivation rec {
     makeFlagsArray=(CUPSSERVERBIN=$out/lib/cups CUPSSERVERROOT=$out/etc/cups CUPSDATA=$out/share/cups)
   '' + stdenv.lib.optionalString (variant ? preConfigure) variant.preConfigure;
 
-  configureFlags =
+  configureFlags = [ "--with-system-libtiff" ] ++
     (if x11Support then [ "--with-x" ] else [ "--without-x" ]) ++
     (if cupsSupport then [ "--enable-cups" "--with-install-cups" ] else [ "--disable-cups" ]);
 
@@ -100,6 +109,7 @@ stdenv.mkDerivation rec {
 
   installTargets="install soinstall";
 
+  # ToDo: web says the fonts should be already included
   postInstall = ''
     for i in $fonts; do
       (cd $out/share/ghostscript && tar xvfz $i)