This wiki contains information related to the Cups and System-config-printing provided with Fedora.
The version of cups provided with Fedora is cups-1.4 and following are the features in general, Though there are about number of changes
- The web-interface has been given a new look , using php-cgi and not php.
* THESE ARE TWO SEPARATE THINGS: THE PHP-CGI SWITCH IS JUST A SMALL BUG FIX - Tim
- The new interface provides more improvements to add and modify printer configuration
- The Administration page provides more advanced operations like share, unshare, provides list of backends to choose from
* THE ADVANCED OPTIONS ARE CHOICE OF PROTOCOLS FOR SHARING, MAX CLIENTS, JOB HISTORY ETC - Tim
- CUPS now conforms to the draft IPP/2.0 and IPP/2.1 specifications
- CUPS supports the operation of downloading of files from print job using the "CUPS-Get-Document Operation"
- The scheduler and backend discovery interface support a device-location attribute where we can specify the location of the printer
- Support of hold jobs and releasing of jobs on hold
* THIS IS NOT NEW
- CUPS now uses "Bonjour (DNS-SD)" providing mDNS(multicast DNS) which supports Bonjour-based printer discovery
- Scheduler now supports "authenticated" policy, So that certain actions can be authenticated. Example: The print queues created
can set "authenticated"policy using "OpPolicy" parameter in printers.conf, so that jobs can be submitted only after successful authentication.
- the default LogLevel is now "warn" instead of "info"
- The scheduler now supports a DefaultPaperSize directive to override the default paper size defined by the locale or libpaper configuration
- New ErrorPolicy "retry-current-job" is added, that retries the current job immediately
- Scheduler supports SSLOptions Directive in cupsd.conf which specifies the network address and port to Listen for secure connections
- Scheduler now supports new "FatalErrors" Directive to determine which kind of errors are fatal, The following kind of errors are currently recognized
none, all, browse, config (configuration syntax errors), log (log file creation errors), permissions (file permission errors ex: certifcate files and keys)
- Scheduler now passes hostname from the job was submitted as "job-originating-host-name" to filters and backends
Ex: /var/log/cups/error_log: [Job 3] argv="job-uuid=urn:uuid:b9dd0f4f-5cec-3e25-49b2-09105a802370 job-originating-host-name=dhcp7-229.test.example.com"
- Scheduler now includes CUPS_FILETYPE, PRINTER_INFO, and PRINTER_LOCATION environment variables that is passed to filter or backend
CUPS_FILETYPE which tells the type of the file being printed: "job-sheet" for banner page and "document" for regular print PRINTER_INFO which specifies the description of the printer PRINTER_LOCATION specifies the Location of the printer
- USB printer support; the usb backend now uses libusb when available to allow it to better work with third-party scanning and printing solutions.
* NO, WE HAVEN'T ENABLED THAT IN FEDORA - Tim
- the cupsPJLDisplay PPD attribute controls the PJL commands used to display the current user and job on the printer.
- new generic PostScript and PCL drivers provide improved support for laser printers, the CUPS DDK drivers offer support for many HP DesignJet printers
and new label drivers offer support for Seiko and Tharo label printers.
- A new CUPS command file filter for PostScript printers provides auto-configuration, self-test page, and status and supply level reporting functions.
- The CUPS DDK is now a standard part of CUPS.
- the standard image filters now support image files larger than 2GB.
- the bundled banner ("job-sheets") pages are now generated using a new banner filter provides easier customization and better support for UTF-8 text.
- the pdftops filter has been replaced with a wrapper program that runs the Xpdf, poppler, or Ghostscript PDF to PostScript utilities.
* IN FEDORA IT IS CONFIGURED TO USE POPPLER - Tim
In this release, system-config-printer uses PolicyKit to control access to restricted CUPS functionality. The following functions are controlled via PolicyKit policies currently:
- add/remove/edit local printers
- add/remove/edit remote printers
- add/remove/edit classes
- enable/disable printer
- set printer as default printer
- get/set server settings
- restart/cancel/edit a job owned by another user
- restart/cancel/edit a job