Skip to content
This repository was archived by the owner on Mar 10, 2026. It is now read-only.
This repository was archived by the owner on Mar 10, 2026. It is now read-only.

CUPS uses different get-printer-attributes requests for polling IPP printer capabilities at different places #5484

Description

@tillkamppeter

CUPS generates PPD files for driverless IPP printing at 3 places and at each place it uses a different get-printer-attributes IPP request for obtaining the printer capability info which could lead to different PPD files. The IPP requests differ only by their "requested-attributes" attribute. These are the 3 places:

  1. The lpadmin utility (with "-m everywhere", file systemv/lpadmin.c) supplies the list {"job-template", "printer-defaults", "printer-description", "media-col-database"} as "requested-attributes" attribute.
  2. The scheduler (function create_local_bg_thread() in scheduler/ipp.c) simply uses {"all"}.
  3. The CUPS web interface (get_printer_ppd() function in cgi-bin/admin.c) does not add a "requested-attributes" attribute at all.

In addition, ipptool does not supply a "requested-attributes" attribute (like the web interface) with the old get-printer-attributes.test and uses {"all", "media-col-database"} with the new get-printer-attributes-2.0.test.
I have found out this when trying to find a fix for cups-filters issue #22 for which I got the this pull request. It made the impression that the way I do it in cups-filters (it is the method of lpadmin) is wrong and checked how CUPS actually does it.
What is the "correct" standard-conforming method? CUPS should use this method at every place.

Metadata

Metadata

Assignees

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions