Bug#712045: ghostscript-cups: colord icc profile not applied
Package: ghostscript-cups
Version: 9.05~dfsg-7
Severity: normal
Tags: upstream patch
Dear Maintainer,
Printing from cups via gstoraster while printer ICC profile is added to colord
results in the following error:
Calling FindDeviceById(<printername>)
Failed to send: org.freedesktop.ColorManager.Failed:device id '<printername>'
does not exists
Failed to get profile filename!
The problem was caused by misspelled printer name. When adding printers to
colord, cups uses names like cups-$PRINTER, while ghostscript-cups just takes
the environment variable $PRINTER. The attached patch fixes the issue.
It is likely that the foomatic-filters package has exactly the same problem but
I'm not using foomatic-filters yet.
Regards,
Alex
-- System Information:
Debian Release: jessie/sid
APT prefers testing
APT policy: (990, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.2.0-4-rt-amd64 (SMP w/4 CPU cores; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages ghostscript-cups depends on:
ii ghostscript 9.05~dfsg-6.3
ii libc6 2.17-3
ii libcomerr2 1.42.5-1.1
ii libcups2 1.6.2-8.1
ii libcupsimage2 1.6.2-8.1
ii libdbus-1-3 1.6.10-1
ii libgcrypt11 1.5.0-5
ii libgnutls26 2.12.23-5
ii libgssapi-krb5-2 1.10.1+dfsg-5
ii libk5crypto3 1.10.1+dfsg-5
ii libkrb5-3 1.10.1+dfsg-5
ii zlib1g 1:1.2.8.dfsg-1
Versions of packages ghostscript-cups recommends:
ii colord 0.1.31-1
ii cups 1.6.2-8.1
ii cups-client 1.6.2-8.1
ghostscript-cups suggests no packages.
-- no debconf information
--- ghostscript-9.05~dfsg.orig/cups/gstoraster.c 2012-02-08 14:48:50.000000000 +0600
+++ ghostscript-9.05~dfsg/cups/gstoraster.c 2013-06-11 22:15:36.000000000 +0600
@@ -600,7 +600,9 @@
fprintf(stderr, "DEBUG: PPD uses qualifier '%s.%s.%s'\n",
qualifier[0], qualifier[1], qualifier[2]);
- icc_profile = colord_get_profile_for_device_id (getenv("PRINTER"),
+
+ snprintf (tmpstr, sizeof(tmpstr), "cups-%s", getenv("PRINTER"));
+ icc_profile = colord_get_profile_for_device_id (tmpstr,
(const char**) qualifier);
/* fall back to the PPD */
Reply to: