Hello all,
I'm trying to get my printer (Samsung CLP500) working with CUPS/SpliX.
I'm on 5.2/i386 release (generic) but I seem to get the same issue on a
clean install of snapshot 22 Jan with updated packages.
On the 5.2 release build I'm using ghostscript-9.05, cups1.5.3p5,
gstoraster-1.04p0 and splix2.0.0p6; plus the clp500.ppd, .cms and .cms2
files from the SpliX build/site.
When I try to print a simple plain text file the CUPS script hangs at
The rasterisation stage; and by running the filter pipeline (texttops,
pstops, pstoraster ...) manually I can see that ghostscript segfaults
when called by gstoraster.
Following shows a gstoraster session with a build of gs from ports with
DEBUG and CUPSDEBUG2, followed by a gdb backtrace on the gs core dump
using unstripped versions of gs and libgs.
It looks like cups_set_color_info() is called with one device pointer
(0x8423b034) and then there's a get/put_params() with a different one
(0x882eb034). Is this normal? The second one segfaults when
gsicc_set_device_profile tries to write its icc profile. I'm guessing
there may be a missing call to gsicc_init_device_profile_struct() or
something like that...
I've had a trawl through the patches on git.ghostscript.com since the
release of 9.05, but I can't see anything directly relevant.
Thanks in advance for any help or suggestions.
MARTIN
===== gstoraster session =====
$ echo $PPD
/usr/local/share/cups/model/samsung/clp500.ppd
$ /usr/local/libexec/cups/filter/gstoraster 1 martin '' 1 '' <pstops.ps
gstoraster.ras
Segmentation fault (core dumped)
NOTICE:DEBUG2: cups_get_params(0x8423b034, 0xcfbfa90c)
NOTICE:DEBUG2: before gdev_prn_get_params()
NOTICE:DEBUG2: after gdev_prn_get_params()
NOTICE:DEBUG2: Leaving cups_get_params()
NOTICE:DEBUG2: cv[0]=0 -> 77b4e62600000000
NOTICE:DEBUG2: cups_open(0x8423b034)
NOTICE:INFO: Start rendering...
INFO: Start rendering...
NOTICE:INFO: Processing page 1...
INFO: Processing page 1...
NOTICE:DEBUG2: cups_set_color_info(0x8423b034)
NOTICE:DEBUG2: cups->EncodeLUT[0] = 0
NOTICE:DEBUG2: cups->EncodeLUT[32768] = 1
NOTICE:DEBUG2: cups->EncodeLUT[0] = 0
NOTICE:DEBUG2: cups->EncodeLUT[65535] = 1
NOTICE:DEBUG: num_components = 1, depth = 1
DEBUG: num_components = 1, depth = 1
NOTICE:DEBUG: cupsColorSpace = 3, cupsColorOrder = 0
NOTICE:DEBUG: cupsBitsPerPixel = 1, cupsBitsPerColor = 1
NOTICE:DEBUG: max_gray = 1, dither_grays = 2
NOTICE:DEBUG: max_color = 0, dither_colors = 0
DEBUG2: cups_get_params(0x882eb034, 0xcfbd97cc)
DEBUG2: before gdev_prn_get_params()
DEBUG2: after gdev_prn_get_params()
DEBUG2: Leaving cups_get_params()
DEBUG2: cups_put_params(0x882eb034, 0xcfbd97d4)
DEBUG2: cups_set_color_info(0x882eb034)
DEBUG2: cups->EncodeLUT[0] = 0
DEBUG2: cups->EncodeLUT[32768] = 1
DEBUG2: cups->EncodeLUT[0] = 0
DEBUG2: cups->EncodeLUT[65535] = 1
DEBUG: num_components = 1, depth = 1
DEBUG: cupsColorSpace = 3, cupsColorOrder = 0
DEBUG: cupsBitsPerPixel = 1, cupsBitsPerColor = 1
DEBUG: max_gray = 1, dither_grays = 2
DEBUG: max_color = 0, dither_colors = 0
ERROR: Ghostscript exited with value 0
$
===== backtrace from ghostscript core dump =====
$ gdb gs gs.core
GNU gdb 6.3
[...]
#0 0x1c156470 in gsicc_set_device_profile (pdev=0x882eb034,
mem=0x865db680, file_name=0x3c001697 "default_gray.icc",
pro_enum=gsDEFAULTPROFILE) at ./base/gsicc_manage.c:1132
1132 pdev->icc_struct->device_profile[pro_enum] =
icc_profile;
(gdb) bt
#0 0x1c156470 in gsicc_set_device_profile (pdev=0x882eb034,
mem=0x865db680, file_name=0x3c001697 "default_gray.icc",
pro_enum=gsDEFAULTPROFILE) at ./base/gsicc_manage.c:1132
#1 0x1c2ccc13 in cups_set_color_info ()
#2 0x1c2ce0cd in cups_put_params ()
#3 0x1c2ea98c in gs_putdeviceparams (dev=0x882eb034, plist=0xcfbd97d4)
at ./base/gsdparam.c:479
#4 0x1c0d8dd3 in zputdeviceparams (i_ctx_p=0x821832c0) at
./psi/zdevice.c:407
#5 0x1c09d8df in do_call_operator (op_proc=0x1c0d8c40
<zputdeviceparams>, i_ctx_p=0x821832c0) at ./psi/interp.c:84
#6 0x1c09f8b6 in gs_call_interp (pi_ctx_p=0x865db06c, pref=Variable
"pref" is not available.
) at ./psi/interp.c:1163
#7 0x1c0a1902 in gs_interpret (pi_ctx_p=0x865db06c, pref=0xcfbda504,
user_errors=1, pexit_code=0xcfbda514, perror_object=0xcfbda50c) at
./psi/interp.c:448
#8 0x1c093234 in gs_main_interpret (minst=Variable "minst" is not
available.
) at ./psi/imain.c:239
#9 0x1c09434f in gs_main_init2aux (minst=0x865db018) at
./psi/imain.c:536
#10 0x1c0944d1 in gs_main_init2 (minst=0x865db018) at ./psi/imain.c:306
#11 0x1c0950c3 in runarg (minst=0x865db018, pre=0x3c03bd19 "",
arg=0x86050818 "/var/tmp/gsprolog.30053.ps", post=0x3c00a0fe
".runfile", options=Variable "options" is not available.
) at ./psi/imainarg.c:810
#12 0x1c095362 in argproc (minst=0x865db018, arg=0xcfbdba14
"/var/tmp/gsprolog.30053.ps") at ./psi/imainarg.c:757
#13 0x1c096cec in gs_main_init_with_args (minst=0x865db018, argc=14,
argv=0xcfbdb8c8) at ./psi/imainarg.c:224
#14 0x1c00f34c in main (argc=14, argv=0xcfbdb8c8) at ./psi/gs.c:94
(gdb)