summary refs log tree commit diff
path: root/pkgs/misc/ghostscript
diff options
context:
space:
mode:
authorEdmund Wu <fangkazuto@gmail.com>2018-09-06 17:52:39 -0400
committerFlorian Klink <flokli@flokli.de>2018-10-05 23:20:00 +0200
commit9a57e00a365c20362b14dca8577d099fddc93194 (patch)
treee8d880149e037a9026caeb0dd288f56b56f2d6f6 /pkgs/misc/ghostscript
parent5bba9f3906c7a3070da290331aa232f38851a50d (diff)
downloadnixpkgs-9a57e00a365c20362b14dca8577d099fddc93194.tar
nixpkgs-9a57e00a365c20362b14dca8577d099fddc93194.tar.gz
nixpkgs-9a57e00a365c20362b14dca8577d099fddc93194.tar.bz2
nixpkgs-9a57e00a365c20362b14dca8577d099fddc93194.tar.lz
nixpkgs-9a57e00a365c20362b14dca8577d099fddc93194.tar.xz
nixpkgs-9a57e00a365c20362b14dca8577d099fddc93194.tar.zst
nixpkgs-9a57e00a365c20362b14dca8577d099fddc93194.zip
ghostscript: include icc profile validation patch
See https://github.com/apple/cups/issues/5394

closes #47193, #46216

source url
http://git.ghostscript.com/?p=ghostpdl.git;a=patch;h=bc3df0773fcc
contains invalid characters, which is why we don't fetchpatch.

(cherry picked from commit 2aa750694e2e0d77bf14e3145c4999b6bcee25b0)
Diffstat (limited to 'pkgs/misc/ghostscript')
-rw-r--r--pkgs/misc/ghostscript/default.nix1
-rw-r--r--pkgs/misc/ghostscript/icc-profile-validation.patch78
2 files changed, 79 insertions, 0 deletions
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index 54ad3262275..f9c322b082a 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
+    ./icc-profile-validation.patch
     ./urw-font-files.patch
     ./doc-no-ref.diff
   ];
diff --git a/pkgs/misc/ghostscript/icc-profile-validation.patch b/pkgs/misc/ghostscript/icc-profile-validation.patch
new file mode 100644
index 00000000000..c2b6f91cb30
--- /dev/null
+++ b/pkgs/misc/ghostscript/icc-profile-validation.patch
@@ -0,0 +1,78 @@
+From bc3df0773fccf4b4906a3e59652ad646ea0fee91 Mon Sep 17 00:00:00 2001
+From: Chris Liddell <chris.liddell@artifex.com>
+Date: Tue, 4 Sep 2018 17:01:08 +0100
+Subject: [PATCH] For ICC profile validation, have cups id iteself as DeviceN
+
+Give the range of color spaces and models that cups supports, we can't
+reasonably provide (or expect others to provide) output ICC profiles for all
+cases.
+
+For the purpose of profile validation, have it claim to be DeviceN and benefit
+from the extra tolerance in profiles allowed for that class of device.
+---
+ cups/gdevcups.c  | 15 ++++++++++++++-
+ devices/devs.mak |  2 +-
+ 2 files changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/cups/gdevcups.c b/cups/gdevcups.c
+index c1574f8..decd8eb 100644
+--- a/cups/gdevcups.c
++++ b/cups/gdevcups.c
+@@ -70,6 +70,7 @@
+ #include "std.h"                /* to stop stdlib.h redefining types */
+ #include "gdevprn.h"
+ #include "gsparam.h"
++#include "gxdevsop.h"
+ #include "arch.h"
+ #include "gsicc_manage.h"
+
+@@ -252,6 +253,7 @@ private int cups_put_params(gx_device *, gs_param_list *);
+ private int cups_set_color_info(gx_device *);
+ private dev_proc_sync_output(cups_sync_output);
+ private prn_dev_proc_get_space_params(cups_get_space_params);
++private int cups_spec_op(gx_device *dev_, int op, void *data, int datasize);
+
+ #ifdef dev_t_proc_encode_color
+ private cm_map_proc_gray(cups_map_gray);
+@@ -392,7 +394,7 @@ private gx_device_procs	cups_procs =
+    NULL,				/* push_transparency_state */
+    NULL,				/* pop_transparency_state */
+    NULL,                                /* put_image */
+-
++   cups_spec_op
+ };
+
+ #define prn_device_body_copies(dtype, procs, dname, w10, h10, xdpi, ydpi, lo, to, lm, bm, rm, tm, ncomp, depth, mg, mc, dg, dc, print_pages)\
+@@ -5927,6 +5929,17 @@ cups_print_planar(gx_device_printer *pdev,
+   return (0);
+ }
+
++private int
++cups_spec_op(gx_device *dev_, int op, void *data, int datasize)
++{
++    /* Although not strictly DeviceN, the range of color models
++       this device supports presets similar issues.
++     */
++    if (op == gxdso_supports_devn) {
++        return true;
++    }
++    return gx_default_dev_spec_op(dev_, op, data, datasize);
++}
+
+ /*
+  */
+diff --git a/devices/devs.mak b/devices/devs.mak
+index c85604c..e8654e5 100644
+--- a/devices/devs.mak
++++ b/devices/devs.mak
+@@ -1860,7 +1860,7 @@ $(DD)pwgraster.dev : $(lcups_dev) $(lcupsi_dev) $(cups_) $(GDEV) \
+ 	$(ADDMOD) $(DD)pwgraster -include $(lcups_dev)
+ 	$(ADDMOD) $(DD)pwgraster -include $(lcupsi_dev)
+
+-$(DEVOBJ)gdevcups.$(OBJ) : $(LCUPSSRCDIR)$(D)gdevcups.c $(std_h) $(DEVS_MAK) $(MAKEDIRS)
++$(DEVOBJ)gdevcups.$(OBJ) : $(LCUPSSRCDIR)$(D)gdevcups.c $(std_h) $(gxdevsop_h) $(DEVS_MAK) $(MAKEDIRS)
+ 	$(CUPS_CC) $(DEVO_)gdevcups.$(OBJ) $(C_) $(CFLAGS) $(CUPSCFLAGS) \
+ 	    $(I_)$(GLSRC) \
+ 	    $(I_)$(DEVSRC) \
+--
+2.9.1