[cups-devel] [MOD] STR #4725: cupsGetPPD3() function of CUPS library tries to load PPD from IPP printer and not from the CUPS queue

Till Kamppeter noreply at cups.org
Fri Oct 2 19:38:07 PDT 2015


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

DO NOT REPLY TO THIS MESSAGE.  INSTEAD, POST ANY RESPONSES TO THE LINK BELOW.

[STR New]

Since CUPS 2.1.0 the PPD files of the local print queues in /etc/cups/ppd/
are not world-readable any more as CUPS' default permissions for config
files get correctly applied.

This makes desktop applications run by a normal user and calling the
cupsGetPPD3() function of CUPS library (or any cupsGetPPD*() function as
they all call cupsGetPPD3()) not being able to directly load the PPD file
from /etc/cups/ppd/ and so we get a fallback to load the PPD through cupsd
by loading the URL

http://localhost:631/printers/<queue name>.ppd

This works correctly as long as the device URI of the printer is not an
ipp://... one (IPP network printer or IPP-over-USB printer with ippusbxd).
In case of an ipp://... URI the function seems to try to download the PPD
from the printer and not from the CUPS server on which the print queue
resides. This looks like that the function here uses the device URI of the
printer and not the printer URI of the CUPS queue.

I found out this by trying to open the printer properties dialog in
system-config-printer (right-click on printer icon then choose "Properties"
in menu). For printers with usb://... or hp://... (HPLIP) URIs this works,
but for my printers with ipp://... URIs it takes some time
(printer-internal timeout) and then I got an error message telling that the
printer properties could not be loaded:

Unable to get queue details. Treating queue as raw.

The printer was an IPP-over-USB printer using ippusbxd with the URI

ipp://localhost:60000/ipp/print?isippoverusb=true&serial=BR54BFB02C05XK&vid=03f0&pid=c211&procid=1184

and running ippusbxd in debug mode I could see that cupsGetPPD3() was
trying to load the following URI:

http://localhost:60000/ipp/print?isippoverusb=true&serial=BR54BFB02C05XK&vid=03f0&pid=c211&procid=1184.ppd

which naturally did not lead to the PPD file of the CUPS queue to be
loaded.

If you have a native IPP printer you could observer the network
communication with appropriate software (Wireshark?).

Another consequence is that the print dialog of the Chromium browser does
not show PPD options for print queues with ipp://... URIs.

I did not test ipps://... print queues.

Link: https://www.cups.org/str.php?L4725
Version: 2.1.0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJWDz+PAAoJENujp6sI12IjMFoP/ihO8AYNIHK1tJnvtIxZs40v
AZfpYmzubQxDht1FBkRicdtdVCXeNeGv/n4N23lVQOG5c3BNfuWpO2xNtVRemB9F
ymYsn9SfA3A2cxAw1Mnbjri2kVJJCggl7HkG2hH2DNIxPk6nvnpgV6zKLkWQzZba
SK/QjDBz4bKtx8jZMhZXc4R/ZWVIcQ39zQH/OFVrUaSwMs9Dd1glNvuGWgm5o/jj
P4f9qJddpwzEqFy3AzxhF6D2gwX7WohyPOXpSMMtbM4SsIY5NcUwkVKcyqzhgHjG
rUdhJ/3DTww4Di7FEqtyWKzmqF7kdD4DdL5xbhmA71L7Sqo0DDNNcvc21a1xGD0u
vjsul+qsXTdL6IS0h0JqIE3FAtTLNsZLAXhWKwGRJjhvZ5OxFK3OPF4lB6Gk3tpu
v0kRHP1om97ubLuhwXhkSWNG6+UJbQNBJu5bVNIFjcfMuO6GIt7J/OSPS7stxElp
IHzCHrpqBIgf03FklJxLH6s0U6HnJt958+Oiv45rAvnby8C6HMmHHDemqxDYPDD3
RVQtPbhcAt4McRrC2qBpZCg6wpUseiYLGi15CreEG1AkgO8K1nRvwuQt8tX7ysF0
PRWx19LKnM+tucivj6ZtvU8dRYw+bKqboy6s8xMg8w69KZDjViZHeq8VGESMgEM4
iBvJEJIvjpJLwOOU9Im5
=FUqA
-----END PGP SIGNATURE-----




More information about the cups-devel mailing list