Bug#868360: cups-filters-core-drivers: driverless sets bizarre 600x2 resolution
On Sun 16 Jul 2017 at 14:38:44 +0000, brian m. carlson wrote:
> On Sun, Jul 16, 2017 at 12:34:05AM +0100, Brian Potkin wrote:
> > On Sat 15 Jul 2017 at 19:40:04 +0000, brian m. carlson wrote:
> > > * Validate data. Nobody is going to print a two-pixel raster image, and
> > > cups should not accept it as a valid (and in this case, the only
> > > valid) option.
> >
> > cups and cupsfilters have both accepted and fixed past bugs in their
> > implementation of driverless printing. In some cases cups has made
> > allowances for deficiencies in a manufacturer's implementaion of IPP
> > Everywhere. But where does it end?
> >
> > Assuming this is a firmware bug, doesn't the vendor (who after all is
> > using a well defined standard) have the reponsibility, especially if
> > the issue is drawn to their attention by an affected user? If AirPrint
> > was involved you could well imagine they would jump to it.
>
> I have put in a support request with them. However, I have no way to
> prove that this actually affects AirPrint, as I don't have any modern
> Apple devices. I'm pretty sure my alternative is going to be returning
> the printer.
>
> I will say that cups is clearly accepting invalid data. How can a
> printer have a resolution of 600 dpi and only accept 600x2 raster
> images? If the printer returned 600x-1 resolution, would cups accept
> that as well?
It would interesting to know Brother's response.
> > > * Use the printer resolution instead of the PWG resolution when
> > > generating raster images. At the very least, these should be
> > > resolution options for configuration in addition to the PWG
> > > resolution.
> >
> > Surely the printer resolution is what is returned by an IPP query?
> > Either that, or it is in a supplied PPD.
>
> The printer resolution is indeed returned in an IPP query, as you'll see
> in the data provided. However, cups only accepts the PWG raster format
> resolution and ignores the printer resolution. If the driverless
> printing option provided all three resolution options (600 dpi, 600x2400
> dpi, and 600x2 dpi), it would be easy to simply configure the printer to
> use one of the other options as a default.
>
> I do view this aspect as a bug in cups. I should be able to pick any
> resolution that the printer supports.
When it generates a PPD cups-browsed does fill in missing essential
options with defaults. Whether it corrects values for attributes (or
whether it is seen as desirable to do so) I do not know.
> The vendor does not supply a plain PPD for Linux. They provide a
> proprietary driver. While that may work for my x86 machines, that will
> not work for my ARM, MIPS, or PowerPC machines.
> I made a suggestion on -user a week or two ago about this issue but no
> response came back. I will repeat it here:
>
> The PPD in /etc/cups/ppd has a line beginning *cupsFilter:..... .
> Alter the line to read
>
> *cupsFilter: "application/vnd.cups-raster 50 rastertohp"
>
> Restart cups and do
>
> lp -d <queue_name> /etc/nsswitch
>
> That file prints out perfectly on my PCL/PCLX capable LaserJet. (I
> used a Brother PPD, with the altered line, for your printer).
>
>I am unsure about "50" in the *cupsFilter: line. "0" might be better.
--
Brian.
Reply to: