<<

What’s New in CUPS

Paul Danbold and Mike Sweet Apple Inc. CUPS in Mac OS X Approximate Timeline

Jaguar Panther Tiger Leopard 10.2 10.3 10.4 10.5

CUPS CUPS CUPS CUPS 1.1.15 1.1.19 1.1.23 1.3.1

Aug Oct Apr ~Oct 2002 2003 2005 2007 Client-side …

} cupsd

5 -side …

scheduler filters drivers backends

cupsd cgpdftoraster Brother bluetooth cgpdftops Canon firewire … EPSON ipp lpd HP mdns Lexmark pap Ricoh slp Xerox smb … snmp socket … 7 8 139 101413 11 12 13 14 CUPS drivers on Mac OS X …

Filters, Drivers, Backends, Icons Auto-Setup & Supplies Tools

PPD files Utility

ICC Profiles HTML Help

Print dialog plugins Scanner Plugin

15 Leopard vs Tiger CUPS 1.3.1 vs CUPS 1.1.23

• 37% more printers supported in-box • CUPS raster drivers from all mfgs • Improved Print dialog, printer discovery and job monitoring • Software Updates for printer drivers

16 Leopard vs Tiger CUPS 1.3.1 vs CUPS 1.1.23

• Printer sharing now uses • Support for IPv6 & IPv4 • New tools for driver validation

17 CUPS Open Source CUPS Background

• Common UNIX Printing System (CUPS) provides printing services for most operating systems

• Uses the Internet Printing Protocol (IPP)

• Add-on components and developer/user forums on cups.org

• Created by me in 1997 while at Easy Software Products

• Now owned and maintained by Apple Inc.

19 CUPS Licensing (Unchanged)

• Provided under version 2 of the GNU GPL and LGPL, with exceptions for OpenSSL and Apple operating systems – No plans to move to GPL 3

• LGPL applies to the libraries in CUPS – libcups is the “CUPS API” and is used by applications, drivers, and toolkits – libcupsimage is the “CUPS Imaging API” and is used primarily by printer drivers

• GPL applies to everything else

20 CUPS Architecture

• System process called the “scheduler” manages printers and jobs in the background – /usr/sbin/cupsd – Started on-demand by service – Lightweight, single-threaded application that runs helper programs to do long-term or complex tasks such as printing a document – Runs as the “root” user while most helper programs are run as the “lp” user

• Applications communicate with the scheduler using HTTP and IPP

21 CUPS Architecture

GNOME Cocoa Application KDE Application Application

Cocoa GNOME KDE Core Printing GTK+ Qt CUPS API CUPS API CUPS API

CUPS API

Scheduler (cupsd)

22 What’s New in CUPS 1.3

• Over 30 new features since CUPS 1.2

• Many performance improvements

• 100% binary-compatible with previous releases

23 What’s New in CUPS 1.3 Networking Changes

• Kerberos authentication

• More authentication mechanisms for local access

• SNMP printer discovery – Now disabled by default, changes to probing algorithm

• DNS-SD/Bonjour/Zeroconf support – Uses Apple mDNSResponder API, currently for printer sharing only

24 What’s New in CUPS 1.3 Kerberos Authentication

• User credentials automatically passed from client to server for shared printing – Currently only supports a single Kerberos realm – Requires recent version of MIT Kerberos or Heimdal

• Not enabled by default – Enable with one line in /private/etc/cups/cupsd.conf:

DefaultAuthType Negotiate

or just use the web interface…

25 What’s New in Leopard Kerberos Authentication

• Open http://localhost:631/admin

• Check “Use Kerberos authentication”

• Click “Change Settings”

• See FAQ link for detailed setup instructions

26 What’s New in CUPS 1.3 User Changes

• New cupsctl command-line utility – Update cupsd.conf settings without editing it by hand

• Web interface improvements – Improved searching in the on-line help – New Internet/WAN printer sharing check box – New “Find Available Printers” button instead of showing available printers on the admin page – “Set Printer Options” now works with classes and raw queues

27 What’s New in CUPS 1.3 User Changes

• Localization improvements – Many new languages/locales supported – Backends now localized – Sample driver PPDs now multi-language and generated using the CUPS DDK

28 What’s New in CUPS 1.3 Developer Changes

• New Side-channel API – Simple API for both drivers/port monitors and backends – Allows drivers to perform basic device control, synchronization, and status querying – Available functions: soft reset, drain output, get bidirectional support, get status, get device ID

• Pre-filter support – New cupsPreFilter attribute in PPD file – Allows drivers to insert a device-specific filter before the standard one, e.g. to see if a PDF file uses color

29 What’s New in CUPS 1.3 Developer Changes

• New cupsAdminGetServerSettings() and cupsAdminSetServerSettings() functions

• New cupsRemoveDest() and cupsSetDefaultDest() functions

• The http_t structure is now completely private

30 CUPS 1.4 Proposed Changes

• See roadmap on cups.org

• Highlights: – More performance tuning – More printer drivers – Streaming print API – Updated web interface – New PDF filter(s) based on Poppler – New libusb version of USB backend – New banner file format for filter-generated banner pages

31 CUPS 1.4 Proposed Changes

• Submit more ideas/patches using the “Bugs & Features” page on cups.org

• What do you want to see in CUPS 1.4?

32 CUPS Resources

• CUPS web site – http://www.cups.org

• CUPS mailing lists – http://lists.easysw.com (All operating systems) – http://lists.apple.com (Mac OS X printing)

• CUPS Subversion repository – http://svn.easysw.com

33 Q&A TM and © 2007 Apple Computer, Inc. All rights reserved.