System Administration Guide: Solaris Printing

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:

For more information, see the CUPS documentation page, at The complete set of CUPS documentation is also accessible from a CUPS server on a host that is running CUPS by typing http://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:

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

More information can be found at

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

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:

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:

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.