What's New in Printing?
This section describes new and changed printing features in this Solaris release. For
a complete listing of new Solaris features and a description of Solaris releases,
see Solaris Express Developer Edition What’s New.
Common UNIX Printing System
Solaris Express Community Edition, build 87: The Common UNIX Printing System (CUPS), Version 1.3.6, is now part of
the Solaris OS distribution.
The Common UNIX Printing System (CUPS) is a modular printing system that enables
a system to function as a print server. A system that is
running CUPS is a host that can accept print requests from client systems,
process the requests, then send them to the appropriate printer.
To facilitate this support in the Solaris OS, the following interfaces have been
introduced:
A new print‐service command that enables you choose between the LP print service and CUPS.
Two new Service Management Facility (SMF) services:
svc:/application/cups/scheduler – This service controls the cupsd daemon. This daemon provides basic printing services, including queueing, filtering, spooling, notification, Internet Print Protocol support, device enumeration, web management, and more.
svc:/application/cups/in-lpd – This service controls the cupd-lpd daemon. This daemon provides basic RFC-1179 (LPD protocol) support for CUPS.
The Printer Management profile and the solaris.smf.manage.cups authorization enable users who do not have superuser privileges to manage these SMF services.
Note - These services are marked as incompatible with their corresponding LP services and will not run if the corresponding LP services are running.
For more information, see the CUPS documentation page, at https://www.opensolaris.org/os/community/printing/Documentation/cupsprint/. The complete
set of CUPS documentation is also accessible from a CUPS server on a
host that is running CUPS by typing https://localhost:631/help/ in a web browser.
OpenSolaris Print Manager
Solaris Express Community Edition, build 97 and OpenSolaris 2008.11 release: The OpenSolarisTM Print Manager application is a graphical user interface (GUI) that
you can use to manage local and remote printer queues, printer groups, and
print jobs. Print Manager enables you to perform many aspects of printer administration.
You can run the OpenSolaris Print Manager application from the Main Menubar on the
GNOME desktop panel. For more information, see Chapter 10, Setting Up and Administering Printers From the Desktop (Tasks).
Automatic Printer Discovery and Configuration in the Desktop Environment
OpenSolaris 2008.05: The Solaris OS has the capability to automatically discover directly attached and network‐attached
printers. This service is implemented through the Hardware Abstraction Layer (HAL) and has
the capability to detect SNMP capable printers on a on network where a
Solaris host is attached. This functionality is managed by the Service Management Facility
(SMF) and can be enabled by using the svcadm command. Authorizations that are
required to use this feature have been added to the Print Management user
profile. See Chapter 10, Setting Up and Administering Printers From the Desktop (Tasks) for further details of this feature.
This feature provides the following types of support:
Detection
Configuration
Notification
The detection component has the ability to discover USB printers that have been
physically connected to or disconnected from a local system. The configuration component enables
you to configure certain properties of directly attached USB printers. The notification component
lets you know when a printer has been connected or disconnected from the
local system.
Automatic printer discovery includes enhanced hardware abstraction layer (HAL) support for recognizing USB
printer hotplug events, as well as network attached printers on a Solaris hosted
network. HAL USB support was introduced in the Solaris Express Developer Edition 5/07
release. The hardware abstraction layer (HAL) daemon, hald, provides a view of devices
that are attached to a local system. This view is updated automatically as
a system's hardware configuration changes, by hotplugging or other methods. You can find out
more about HAL at https://opensolaris.org/os/project/tamarack/.
More information can be found at https://www.opensolaris.org/os/project/presto.
For step-by-step instructions, see Chapter 10, Setting Up and Administering Printers From the Desktop (Tasks).
More information about other OpenSolaris printing projects can be found at https://opensolaris.org/os/community/printing/.
Privilege Requirements for Using Solaris Print Commands
The design of the Open Standard Print API (PAPI) implementation in the Solaris
release makes it no longer necessary for applications, toolkits, and print commands to
run with elevated privilege to interact with print services.
As a result, the following print commands are no longer installed SUID root:
/usr/bin/lp
/usr/bin/lpstat
/usr/bin/cancel
/usr/bin/lpmove
/usr/{ucb|bin}/lpr
/usr/{ucb|bin}lpq
/usr/{ucb|bin}/lprm
/usr/lib/print/printd
Previsously, these commands were installed SUID root because the commands required an elevated
privilege for the following purposes:
This functionality is now localized in a small helper application, /usr/lib/print/lpd-port. As
a result, any applications that use RFC-1179 PAPI support no longer require elevated
privilege. The lpd-port helper application contains minimal support for passing RFC-1179 protocol
requests on a reserved port and allocating sequential job-id numbers. Although the
helper application is installed SUID root, all elevated privileges are dropped until they
are required. When necessary, the privilege is elevated for the required operation and
then permanently dropped if the elevated privilege is no longer required. In
the Solaris release, this process is accomplished through the use of privileges.
On other platforms, the process is accomplished by using the setuid, seteuid, or
setreuid functions.
If you have local printers that you do not want to share
on the network, you can safely disable the printing network listeners. If you
are running the Solaris release, or a CUPS server, the lpstat command provides you
with more information about remote print queues and print jobs, as well as
their capabilities when using IPP to communicate with those servers.
When IPP is in use, and with the proper authorization, the following operations
can be performed on remote print queues and print jobs:
accept
reject
enable
disable
move job
modify job
Also, you can now move print requests between queues on a print
server and modify print requests remotely when IPP is in use.
For more information, see the privileges(5) man page. For step-by-step procedures, see Administering Printers by Using the Internet Printing Protocol (Task Map).
PPD File Management Utility
Solaris Express Developer Edition 5/07: The PPD File Manager, /usr/sbin/ppdmgr, is a utility for administering PostScriptTM Printer
Description (PPD) files that are used with the Solaris print subsystem. When you
add a PPD file to the system by using the ppdmgr utility or
the lpadmin command with the -n option, a cache of PPD file information
is automatically updated. This cache is used by Solaris Print Manager and the printing
tools that are available in the GNOME Desktop Environment.
For more information, see Administering PPD Files by Using the PPD File Management Utility (Task Map) and the ppdmgr(1M) man page.