summary refs log tree commit diff
path: root/pkgs/misc
diff options
context:
space:
mode:
authorAndreas Rammhold <andreas@rammhold.de>2018-10-06 00:47:49 +0200
committerGitHub <noreply@github.com>2018-10-06 00:47:49 +0200
commit938d98ebd5aec21faeb81919d9cda846f730d551 (patch)
treedaf5eec35543e30da95fafa06c3c5a9a577044d8 /pkgs/misc
parent3f65f1098296f1491d2db083a4c4b547a352c757 (diff)
parent9a57e00a365c20362b14dca8577d099fddc93194 (diff)
downloadnixlib-938d98ebd5aec21faeb81919d9cda846f730d551.tar
nixlib-938d98ebd5aec21faeb81919d9cda846f730d551.tar.gz
nixlib-938d98ebd5aec21faeb81919d9cda846f730d551.tar.bz2
nixlib-938d98ebd5aec21faeb81919d9cda846f730d551.tar.lz
nixlib-938d98ebd5aec21faeb81919d9cda846f730d551.tar.xz
nixlib-938d98ebd5aec21faeb81919d9cda846f730d551.tar.zst
nixlib-938d98ebd5aec21faeb81919d9cda846f730d551.zip
Merge pull request #47937 from flokli/ghostscript-icc-profile-validation
ghostscript: include icc profile validation patch
Diffstat (limited to 'pkgs/misc')
-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 1e3b6024b01c..b554676f7756 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 000000000000..c2b6f91cb30d
--- /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