On my CUPS server, I've connected a Dymo 400 labelwriter. For some reason, while printing labels perfectly, I just can't get the imagetoraster filter to stop "crashing" with the following error:
ERROR: Unable to write raster data to driver!
So I fixed this the dirty way. I downloaded the CUPS Source RPM from CentOS. I installed it to /usr/src/redhat using the command rpm -i cups-1.4.2-35.el6.src.rpm. In the directory SOURCES, I added a file named geeklab.patch containing:
--- cups-1.4.2/filter/imagetoraster.c 2009-06-05 23:38:52.000000000 +0200 +++ cups-1.4.2/filter/imagetoraster.cpatched 2011-10-21 11:18:28.427271405 +0200 @@ -1197,7 +1197,7 @@ fputs(_("ERROR: Unable to write raster data to driver!\n"), stderr); cupsImageClose(img); - exit(1); + exit(0); } } } @@ -1293,7 +1293,7 @@ fputs(_("ERROR: Unable to write raster data to driver!\n"), stderr); cupsImageClose(img); - exit(1); + exit(0); } /* @@ -1333,7 +1333,7 @@ fputs(_("ERROR: Unable to write raster data to driver!\n"), stderr); cupsImageClose(img); - exit(1); + exit(0); } } } |
Then I added to the spec:
Patch700: geeklab.patch
after the line that starts with Patch100:
and %patch700 -p1 -b .geeklab just after the line that starts with %patch100
Now you can use the regular rpmbuild commands to build packages:
rpmbuild -bs <specname> to build a new SRPM
rpmbuild -ba <specname> to build a new SRPM and binary RPMs
I personally prefer the first, as I mostly use mock to build clean destination RPMs.