While we do not currently plan to backport this, we are requesting patch/micro release binding in the event that management requests this of us. Template Version: @(#)onepager.txt 1.35 07/11/07 SMI Copyright 2007 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: CUPS 1.3.6 1.2. Name of Document Author/Supplier: Author: Norm Jacobs 1.3. Date of This Document: 02/11/2007 4. Technical Description Summary This project creates a mechanism that allows delivery of and selection between more than one print system on Solaris. This project integrates CUPS 1.3.6 into Solaris This project seeks micro/patch binding. Details CUPS The open source operating system world has begun a fairly rapid convergence on CUPS as the default print service. In the last couple of years, CUPS has become the default print service on virtually all Linux distributions, *BSD distributions, and MacOS/X. This convergence fuels and has been fueled by wide adoption of CUPS APIs in desktop applications and toolkits. Additionally, it's imaging format and printer driver interfaces have been recently adopted by a number of printer vendors and 3rd party printer driver projects for supporting non Microsoft platforms. At it's core CUPS contains a scheduler that uses the Internet Print Protocol (IPP) as it's means of communicating with client applications and/or systems. IPP allows for, but does not require, authentication of the requester and encryption during transport. It also provides an expanded set of standard operations and attributes allowing a rich set capability and data when operating with other IPP based print services like those in the more recent Windows platforms. As mentioned previously, CUPS includes application level interfaces that have been rapidly adopted by many key open source applications and toolkits. These interfaces can be broken down into "convenience" calls for applications with very limited need from the print service, "ppd" calls for processing and interpreting PPD file data representing printer capabilities, and "lower-level" calls for applications with more specialized needs from the print service like asynchronous operation. The CUPS community has stated that they intend on maintaining backward compatibility in minor relases moving forward for the libcups interfaces. As a result of this and requests from 3rd parties, the Linux Foundation has begun to integrate portions of the "convenience" and "ppd" calls into LSB 3.2 and expect to include more of these interfaces in subsequent versions of the LSB. On the back-end, CUPS includes interfaces to process it's own annotated raster image format. Support for this format and these interfaces is integrated into GhostScript and other key open source print driver technology. Additionally, several printer vendors either support or have begun to use these interfaces to support their printers on open source platforms. Like the application interfaces, the CUPS community intends to maintain backward compatibility and these interfaces are included in the LSB 3.2. Additionally, CUPS supplies assorted APIs and other interfaces for integration of filtering, communication, and notification support. Finally, CUPS includes an RFC1179 (LPD protocol) listening service, printer (device) enumeration support, print queue advertisement and discovery support, and a web-based management interface. CUPS/LP Solaris's LP based print service supplies something similar to the CUPS interfaces and capabilities, however much of the LP based support is not as complete and not as widely adopted or integrated with other open source technologies. While CUPS supplies some features and interfaces lacking in the LP based print service on Solaris at this time, CUPS lacks some features and support in Solaris that would make it suitable as the only choice of print service on Solaris. At a higher level, it is lacking integration with facilities like RBAC, NIS/NIS+ naming, and support for trusted printing. It is also lacking support for some of the LP based features like pre-printed media (forms). As a result of this, in the short-term, we intend on retaining the current LP based print service and also integrating CUPS into Solaris allowing customers to choose the service that best suits their needs. Ultimately, we intend on working with the CUPS community to make better use of Solaris features and enhance it to include support it lacks so that we can simply replace the LP based print service. Multiple Services We intend on introducing a new interface print-service(1m) to allow customers to choose their active print system. This interface will provide five functions. * Allow setting of the active print service, optionally migrating basic print queue configuration from the old service to the new service. * Report the active print service. * Export basic print queue configuration from the active print service. * Import basic print queue configuration into the active print service. * When called under another name, redirect to the named command under the active print service. Initially, the default "active" service will be "lp". Once users gain more of an opportunity to become familiar with it and it has evolved to better support our users, CUPS will be made the default service. We will be re-evaluating this in 6 months. Because the current LP based service includes IPP and RFC1179 listening services, the corresponding CUPS based service will be marked as incompatible in their smf(5) service definitions. A more complete enumeration of interfaces follows in the interfaces section of this proposal, as well as in the cups-interfaces.txt attachment. Additionally, draft man pages for libcups(3), libcupsimage(3), and print-service(1m) are bundled with the proposal. Since cups makes use of OpenSSL, I am in the process of requesting a contract to use those interfaces. Interfaces Exported Interfaces Interface Classification Comment --------- -------------- ------- svc:/application/cups/scheduler Committed core CUPS scheduler service svc:/application/cups/in-lpd Committed rfc-1179 listener service solaris.smf.manage.cups Committed service management authorizations solaris.smf.value.cups Committed service management authorizations tcp/631 Committed IPP service tcp/515 Committed RFC-1179 service udp/631 Committed CUPS browse protocol SUNWpcu Packaging /usr/bin/cancel=../sbin/print-service Committed PSARC 1993/348 /usr/bin/lp=../sbin/print-service Committed PSARC 1993/348 /usr/bin/lpq=../sbin/print-service Committed PSARC 1993/348 /usr/bin/lpr=../sbin/print-service Committed PSARC 1993/348 /usr/bin/lprm=../sbin/print-service Committed PSARC 1993/348 /usr/bin/lpstat=../sbin/print-service Committed PSARC 1993/348 /usr/sbin/accept=./print-service Uncommitted PSARC 1993/348 /usr/sbin/disable=./print-service Uncommitted PSARC 1993/348 /usr/sbin/enable=./print-service Uncommitted PSARC 1993/348 /usr/sbin/lpadmin=./print-service Uncommitted Obsolete PSARC 1993/348 /usr/sbin/lpc=./print-service Committed PSARC 1993/348 /usr/sbin/lpmove=./print-service Uncommitted PSARC 1993/348 /usr/sbin/print-service Uncommitted Obsolete service selection and redirection /usr/sbin/reject=./print-service Uncommitted PSARC 1993/348 /usr/lib/lp/bin/lpadmin Private moved from /usr/sbin SUNWlp-cmds Packaging /usr/lib/lp/bin/cancel Private moved from /usr/bin /usr/lib/lp/bin/accept Private moved from /usr/sbin /usr/lib/lp/bin/disable Private moved from /usr/sbin /usr/lib/lp/bin/enable Private moved from /usr/sbin /usr/lib/lp/bin/lp Private moved from /usr/bin /usr/lib/lp/bin/lpstat Private moved from /usr/bin /usr/lib/lp/bin/lpmove Private moved from /usr/sbin /usr/lib/lp/bin/reject Private moved from /usr/sbin SUNWlpr-cmds Packaging /usr/lib/lp/bin/lpc Private moved from /usr/sbin /usr/lib/lp/bin/lpq Private moved from /usr/bin /usr/lib/lp/bin/lpr Private moved from /usr/bin /usr/lib/lp/bin/lprm Private moved from /usr/bin A complete enumeration of the files delivered by CUPS is included in the cups-interfaces.txt file Imported Interfaces Interface Classification Source --------- -------------- ------- libgss.so Standard PSARC 1996/059 (not defined in ARC case, but referred to by RFC) libkrb5.so External PSARC 2006/027 libssl.so External PSARC 2005/500 libcrypto.so External PSARC 2005/500 libtiff.so Evolving LSARC 2003/085 libpng12.so Evolving LSARC 2003/085 libjpeg.so Evolving LSARC 2003/085 libz.so Committed PSARC 2006/537 libslp.so Standard PSARC 1999/181 libpam.so Public PSARC 1995/269 libdns_sd.so Committed PSARC 2005/562 libdbus-1.so Volatile LSARC 2006/368 udp/161 Standard SNMP HOST-RESOURCES-MIB::hrDeviceDescr.1 Standard Host-Resource MIB device description HOST-RESOURCES-MIB::hrDeviceType.1 Standard Host-Resource MIB device type 5. Reference Documents: PSARC/1993/348 LP Committed Interfaces PSARC/1995/269 Pluggable Authentication Modules (PAM) Upgrade PSARC/1996/059 GSS-API: Generic Security Services API PSARC/1999/181 SLP API Update LSARC/2003/085 libtiff, libjpeg and libpng PSARC/2003/500 OpenSSL in /usr/sfw PSARC/2005/562 Multicast DNS and Service Discovery LSARC/2006/368 D-BUS Message Bus System PSARC/2006/027 Expose Kerberos V5 API PSARC/2006/537 zlib 1.2.3 http://cups.org/documentation.php CUPS Online Documentation 6. Resources and Schedule: 6.4. Product Approval Committee requested information: 6.4.1. Consolidation or Component Name: SFW 6.5. ARC review type: FastTrack 6.6. ARC Exposure: Open 7. Prototype Availability: 7.1. Prototype Availability: Now