summary refs log tree commit diff
path: root/pkgs/misc
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2015-07-26 15:50:59 +0200
committerVladimír Čunát <vcunat@gmail.com>2015-07-26 16:04:17 +0200
commit3465ffa8b0543d5c845c9f3a49689c41eca0ddc3 (patch)
treeaa2621046a646b973548cd23fecf03cd0d081846 /pkgs/misc
parenta951f11021c547421691a52bc01da4e6d35efa62 (diff)
downloadnixpkgs-3465ffa8b0543d5c845c9f3a49689c41eca0ddc3.tar
nixpkgs-3465ffa8b0543d5c845c9f3a49689c41eca0ddc3.tar.gz
nixpkgs-3465ffa8b0543d5c845c9f3a49689c41eca0ddc3.tar.bz2
nixpkgs-3465ffa8b0543d5c845c9f3a49689c41eca0ddc3.tar.lz
nixpkgs-3465ffa8b0543d5c845c9f3a49689c41eca0ddc3.tar.xz
nixpkgs-3465ffa8b0543d5c845c9f3a49689c41eca0ddc3.tar.zst
nixpkgs-3465ffa8b0543d5c845c9f3a49689c41eca0ddc3.zip
ghostscript: reduce size significantly, /cc #8990
- Don't use static bin/gs.
- Split docs into a separate output.
- Split fonts into another derivation, so they're not reinstalled when
  something changes.
- Drop --disable-sse2
  https://github.com/NixOS/nixpkgs/commit/e723c512c#commitcomment-12361078
- Some cleanups.
Diffstat (limited to 'pkgs/misc')
-rw-r--r--pkgs/misc/ghostscript/default.nix77
1 files changed, 45 insertions, 32 deletions
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index c521e156f8e..fe86577bb7b 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -7,26 +7,43 @@
 
 assert x11Support -> x11 != null;
 assert cupsSupport -> cups != null;
+let
+  version = "9.15";
+  sha256 = "0p1isp6ssfay141klirn7n9s8b546vcz6paksfmksbwy0ljsypg6";
+
+  fonts = stdenv.mkDerivation {
+    name = "ghostscript-fonts";
+
+    srcs = [
+      (fetchurl {
+        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";
+        sha256 = "1cxaah3r52qq152bbkiyj2f7dx1rf38vsihlhjmrvzlr8v6cqil1";
+      })
+      # ... add other fonts here
+    ];
+
+    installPhase = ''
+      mkdir "$out"
+      mv -v * "$out/"
+    '';
+  };
 
+in
 stdenv.mkDerivation rec {
-  name = "ghostscript-9.15";
+  name = "ghostscript-${version}";
 
   src = fetchurl {
     url = "http://downloads.ghostscript.com/public/${name}.tar.bz2";
-    sha256 = "0p1isp6ssfay141klirn7n9s8b546vcz6paksfmksbwy0ljsypg6";
+    inherit sha256;
   };
 
-  fonts = [
-    (fetchurl {
-      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";
-      sha256 = "1cxaah3r52qq152bbkiyj2f7dx1rf38vsihlhjmrvzlr8v6cqil1";
-    })
-    # ... add other fonts here
-  ];
+  patches = [ ./urw-font-files.patch ];
+
+  outputs = [ "out" "doc" ];
 
   enableParallelBuilding = true;
 
@@ -40,12 +57,16 @@ stdenv.mkDerivation rec {
     # [] # maybe sometimes jpeg2000 support
     ;
 
-  patches = [ ./urw-font-files.patch ];
-
   makeFlags = [ "cups_serverroot=$(out)" "cups_serverbin=$(out)/lib/cups" ];
 
+  preConfigure = ''
+    rm -rf jpeg libpng zlib jasper expat tiff lcms{,2} jbig2dec openjpeg freetype cups/libs
+
+    sed "s@if ( test -f \$(INCLUDE)[^ ]* )@if ( true )@; s@INCLUDE=/usr/include@INCLUDE=/no-such-path@" -i base/unix-aux.mak
+  '';
+
   configureFlags =
-    [ "--with-system-libtiff" "--disable-sse2"
+    [ "--with-system-libtiff"
       "--enable-dynamic"
       (if x11Support then "--with-x" else "--without-x")
       (if cupsSupport then "--enable-cups" else "--disable-cups")
@@ -53,25 +74,17 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  installTargets="install soinstall";
-
-  #CFLAGS = "-fPIC";
-  #NIX_LDFLAGS =
-  #  "-lz -rpath${ if stdenv.isDarwin then " " else "="}${freetype}/lib";
-
-  preConfigure = ''
-    rm -rf jpeg libpng zlib jasper expat tiff lcms{,2} jbig2dec openjpeg freetype cups/libs
-
-    sed "s@if ( test -f \$(INCLUDE)[^ ]* )@if ( true )@; s@INCLUDE=/usr/include@INCLUDE=/no-such-path@" -i base/unix-aux.mak
-  '';
+  # don't build/install statically linked bin/gs
+  buildFlags = "so";
+  installTargets="soinstall";
 
   postInstall = ''
-    # ToDo: web says the fonts should be already included
-    for i in $fonts; do
-      (cd $out/share/ghostscript && tar xvfz $i)
-    done
+    ln -s gsc "$out"/bin/gs
+
+    mkdir -p "$doc/share/ghostscript/${version}"
+    mv "$out/share/ghostscript/${version}"/{doc,examples} "$doc/share/ghostscript/${version}/"
 
-    rm -rf $out/lib/cups/filter/{gstopxl,gstoraster}
+    ln -s "${fonts}" "$out/share/ghostscript/fonts"
   '';
 
   meta = {