What's New in CUPS 1.3 Kerberos Authentication
Total Page:16
File Type:pdf, Size:1020Kb
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 Server-side … scheduler filters drivers backends cupsd cgpdftoraster Brother bluetooth cgpdftops Canon firewire … EPSON ipp GutenPrint lpd HP mdns Lexmark pap Ricoh slp Xerox smb … snmp socket usb … 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 printer 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 Bonjour • 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 launchd 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..