about summary refs log tree commit diff
path: root/pkgs/misc
diff options
context:
space:
mode:
authorYury G. Kudryashov <urkud.urkud@gmail.com>2012-01-03 18:04:57 +0000
committerYury G. Kudryashov <urkud.urkud@gmail.com>2012-01-03 18:04:57 +0000
commitec3f38712af82cb7cfe3cf7125b3d2628b414526 (patch)
tree033c610d698890c7485bc0c18d41fd9b227c610b /pkgs/misc
parent2bca92e32dc0d5a315c2c82557704eda6fe30f08 (diff)
svn merge /path/to/trunk; svn revert path/to/cmake/default.nix
svn path=/nixpkgs/branches/stdenv-updates/; revision=31249
Diffstat (limited to 'pkgs/misc')
-rw-r--r--pkgs/misc/ghostscript/builder.sh19
-rw-r--r--pkgs/misc/ghostscript/default.nix35
-rw-r--r--pkgs/misc/ghostscript/pstoraster.patch81
3 files changed, 23 insertions, 112 deletions
diff --git a/pkgs/misc/ghostscript/builder.sh b/pkgs/misc/ghostscript/builder.sh
deleted file mode 100644
index 361b7f77f0c6f..0000000000000
--- a/pkgs/misc/ghostscript/builder.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-source $stdenv/setup
-
-preConfigure() {
-    # "ijs" is impure: it contains symlinks to /usr/share/automake etc.!
-    rm -rf ijs/ltmain.sh
-
-    # Don't install stuff in the Cups store path.
-    makeFlagsArray=(CUPSSERVERBIN=$out/lib/cups CUPSSERVERROOT=$out/etc/cups CUPSDATA=$out/share/cups)
-}
-
-installTargets="install install-so install-data install-doc install-man"
-
-postInstall() {
-    for i in $fonts; do
-        (cd $out/share/ghostscript && tar xvfz $i)
-    done
-}
-
-genericBuild
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index 442fb8a0e50d9..ddd51f73f79ed 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libjpeg, libpng, libtiff, zlib, pkgconfig, fontconfig, openssl
+{ stdenv, fetchurl, libjpeg, libpng, libtiff, zlib, pkgconfig, fontconfig, openssl, lcms, freetype
 , x11Support, x11 ? null
 , cupsSupport ? false, cups ? null
 , gnuFork ? true
@@ -28,10 +28,10 @@ let
   };
 
   gnuForkData = rec {
-    name = "ghostscript-8.71.1";
+    name = "ghostscript-9.04.1";
     src = fetchurl {
       url = "mirror://gnu/ghostscript/gnu-${name}.tar.bz2";
-      sha256 = "0vab9905h6sl5s5miai4vhhwdacjlkxqmykfr42x32sr25wjqgvl";
+      sha256 = "0zqa6ggbkdqiszsywgrra4ij0sddlmrfa50bx2mh568qid4ga0a2";
     };
 
     inherit meta;
@@ -56,8 +56,6 @@ in
 stdenv.mkDerivation rec {
   inherit (variant) name src meta;
 
-  builder = ./builder.sh;
-
   fonts = [
     (fetchurl {
       url = mirror://gnu/ghostscript/gnu-gs-fonts-std-6.0.tar.gz;
@@ -70,17 +68,30 @@ stdenv.mkDerivation rec {
     # ... add other fonts here
   ];
 
-  buildInputs = [libjpeg libpng libtiff zlib pkgconfig fontconfig openssl]
-    ++ stdenv.lib.optional x11Support x11
+  buildInputs = [libjpeg libpng libtiff zlib pkgconfig fontconfig openssl lcms]
+    ++ stdenv.lib.optionals x11Support [x11 freetype]
     ++ stdenv.lib.optional cupsSupport cups;
 
-  configureFlags =
-    if x11Support then [ "--with-x" ] else [ "--without-x" ];
-
   CFLAGS = "-fPIC";
+  NIX_LDFLAGS = "-lz -rpath=${freetype}/lib";
+
+  patches = [ ./purity.patch ./urw-font-files.patch ];
 
-  patches = [ ./purity.patch ./urw-font-files.patch ]
-    ++ stdenv.lib.optional gnuFork ./pstoraster.patch;
+  preConfigure = ''
+    # "ijs" is impure: it contains symlinks to /usr/share/automake etc.!
+    rm -rf ijs/ltmain.sh
+
+    # Don't install stuff in the Cups store path.
+    makeFlagsArray=(CUPSSERVERBIN=$out/lib/cups CUPSSERVERROOT=$out/etc/cups CUPSDATA=$out/share/cups)
+  '';
+
+  configureFlags = if x11Support then [ "--with-x" ] else [ "--without-x" ];
 
   doCheck = true;
+
+  postInstall = ''
+    for i in $fonts; do
+      (cd $out/share/ghostscript && tar xvfz $i)
+    done
+  '';
 }
diff --git a/pkgs/misc/ghostscript/pstoraster.patch b/pkgs/misc/ghostscript/pstoraster.patch
deleted file mode 100644
index 465c91e4f19e7..0000000000000
--- a/pkgs/misc/ghostscript/pstoraster.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-Upstream issue: http://bugs.ghostscript.com/show_bug.cgi?id=691108
-e.g. printing a test page prints only black
-
-Patch: https://bugs.archlinux.org/task/18339
-
---- a/cups/gdevcups.c
-+++ b/cups/gdevcups.c
-@@ -975,7 +975,8 @@ cups_map_cmyk(gx_device *pdev,		/* I - Device info */
- 	      frac      k,		/* I - Black value */
- 	      frac      *out)		/* O - Device colors */
- {
--  int	c0, c1, c2, c3;			/* Temporary color values */
-+  int	c0 = 0, c1 = 0,
-+        c2 = 0, c3 = 0;			/* Temporary color values */
-   float	rr, rg, rb,			/* Real RGB colors */
- 	ciex, ciey, ciez,		/* CIE XYZ colors */
- 	ciey_yn,			/* Normalized luminance */
-@@ -2703,9 +2704,13 @@ cups_put_params(gx_device     *pdev,	/* I - Device info */
-   int			color_set;	/* Were the color attrs set? */
-   gdev_prn_space_params	sp;		/* Space parameter data */
-   int			width,		/* New width of page */
--                        height;		/* New height of page */
-+                        height,		/* New height of page */
-+                        colorspace,     /* New color space */
-+                        bitspercolor;   /* New bits per color */
-   static int            width_old = 0,  /* Previous width */
--                        height_old = 0; /* Previous height */
-+                        height_old = 0, /* Previous height */
-+                        colorspace_old = 0,/* Previous color space */
-+                        bitspercolor_old = 0;/* Previous bits per color */
-   ppd_attr_t            *backside = NULL,
-                         *backsiderequiresflippedmargins = NULL;
-   float                 swap;
-@@ -2800,9 +2805,10 @@ cups_put_params(gx_device     *pdev,	/* I - Device info */
-   else if (code == 0) \
-   { \
-     dprintf1("DEBUG: Setting %s to", sname); \
--    for (i = 0; i < count; i ++) \
--      dprintf1(" %d", (unsigned)(arrayval.data[i]));	 \
--      cups->header.name[i] = (unsigned)arrayval.data[i]; \
-+    for (i = 0; i < count; i ++) { \
-+      dprintf1(" %d", (unsigned)(arrayval.data[i])); \
-+      cups->header.name[i] = (unsigned)(arrayval.data[i]); \
-+    } \
-     dprintf("...\n"); \
-   }
- 
-@@ -3243,23 +3249,31 @@ cups_put_params(gx_device     *pdev,	/* I - Device info */
-     }
- #endif /* CUPS_RASTER_SYNCv1 */
- 
-+    colorspace = cups->header.cupsColorSpace;
-+    bitspercolor = cups->header.cupsBitsPerColor;
-+
-    /*
-     * Don't reallocate memory unless the device has been opened...
-     * Also reallocate only if the size has actually changed...
-     */
- 
--    if (pdev->is_open && (width != width_old || height != height_old))
-+    if (pdev->is_open &&
-+	(width != width_old || height != height_old ||
-+	 colorspace != colorspace_old || bitspercolor != bitspercolor_old))
-     {
- 
-       width_old = width;
-       height_old = height;
-+      colorspace_old = colorspace;
-+      bitspercolor_old = bitspercolor;
- 
-      /*
-       * Device is open and size has changed, so reallocate...
-       */
- 
--      dprintf4("DEBUG2: Reallocating memory, [%.0f %.0f] = %dx%d pixels...\n",
--	       pdev->MediaSize[0], pdev->MediaSize[1], width, height);
-+      dprintf6("DEBUG2: Reallocating memory, [%.0f %.0f] = %dx%d pixels, color space: %d, bits per color: %d...\n",
-+	       pdev->MediaSize[0], pdev->MediaSize[1], width, height,
-+	       colorspace, bitspercolor);
- 
-       sp = ((gx_device_printer *)pdev)->space_params;
\ No newline at end of file