Author: Easy Software Products

# CUPS Software Version Description

CUPS-SVD-1.1
Easy Software Products
Copyright 1997-2002, All Rights Reserved

# Table of Contents

1 Scope

- 1.1 Identification
- 1.2 System Overview
- 1.3 Document Overview

2 References

- 2.1 CUPS Documentation
- 2.2 Other Documents

3 Additions

- 3.1 Filters

- 3.1.1 imagetoraster, imagetops
- 3.1.2 pdftops
- 3.1.3 pstoraster
- 3.1.4 rastertoepson

- 3.2 User-Defined Printers and Options
- 3.3 Daemons

- 3.3.1 cups-lpd
- 3.3.2 cups-polld

- 3.4 Commands

- 3.4.1 lpoptions
- 3.4.2 lpmove
- 3.4.3 lpinfo

- 3.5 IPP Implementation

4 Changes

- 4.1 Directory Structure
- 4.2 IPP Implementation

A Glossary

- A.1 Terms
- A.2 Acronyms

# 1 Scope

## 1.1 Identification

This software version description document provides release information for the Common UNIX Printing System ("CUPS") Version 1.1.

## 1.2 System Overview

CUPS provides a portable printing layer for UNIX®-based operating systems. It has been developed by Easy Software Products to promote a standard printing solution for all UNIX vendors and users. CUPS provides the System V and Berkeley command-line interfaces.

CUPS uses the Internet Printing Protocol ("IPP") as the basis for managing print jobs and queues. The Line Printer Daemon ("LPD") Server Message Block ("SMB"), and AppSocket (a.k.a. JetDirect) protocols are also supported with reduced functionality. CUPS adds network printer browsing and PostScript Printer Description ("PPD") based printing options to support real-world printing under UNIX.

CUPS also includes a customized version of GNU Ghostscript (currently based off GNU Ghostscript 5.50) and an image file RIP that are used to support non-PostScript printers. Sample drivers for HP and EPSON printers are included that use these filters.

## 1.3 Document Overview

This software version description document is organized into the following sections:

- 1 - Scope
- 2 - References
- 3 - Additions
- 4 - Changes
- A - Glossary

# 2 References

## 2.1 CUPS Documentation

The following CUPS documentation is referenced by this document:

- CUPS-CMP-1.1: CUPS Configuration Management Plan
- CUPS-IDD-1.1: CUPS System Interface Design Description
- CUPS-IPP-1.1: CUPS Implementation of IPP
- CUPS-SAM-1.1.x: CUPS Software Administrators Manual
- CUPS-SDD-1.1: CUPS Software Design Description
- CUPS-SPM-1.1.x: CUPS Software Programming Manual
- CUPS-SSR-1.1: CUPS Software Security Report
- CUPS-STP-1.1: CUPS Software Test Plan
- CUPS-SUM-1.1.x: CUPS Software Users Manual
- CUPS-SVD-1.1: CUPS Software Version Description

## 2.2 Other Documents

The following non-CUPS documents are referenced by this document:

- Adobe PostScript Printer Description File Format Specification, Version 4.3.
- Adobe PostScript Language Reference, Third Edition.
- IPP: Job and Printer Set Operations
- IPP/1.1: Encoding and Transport
- IPP/1.1: Implementers Guide
- IPP/1.1: Model and Semantics
- RFC 1179, Line Printer Daemon Protocol
- RFC 2567, Design Goals for an Internet Printing Protocol
- RFC 2568, Rationale for the Structure of the Model and Protocol for the Internet Printing Protocol
- RFC 2569, Mapping between LPD and IPP Protocols
- RFC 2616, Hypertext Transfer Protocol -- HTTP/1.1
- RFC 2617, HTTP Authentication: Basic and Digest Access Authentication

# 3 Additions

CUPS 1.1 includes many new features from the 1.0.x releases.

## 3.1 Filters

### 3.1.1 `imagetoraster`, `imagetops`

The image file filters have been upgraded to support conversion of Microsoft Bitmap ("BMP") and Alias PIX files.

### 3.1.2 pdftops

A new pdftops filter has been developed that is based on the excellent Xpdf 0.90 software from Derek B. Noonburg. The new filter is faster, smaller, and considerably more reliable than the Ghostscript-based filter in CUPS 1.0.

### 3.1.3 pstoraster

The `pstoraster` filter has been integrated with GNU GhostScript 5.50. The new RIP supports most Level 3 PostScript language features.

### 3.1.4 rastertoepson

The new `rastertoepson` filter supports EPSON printers using the ESC/P or ESC/P2 command sets. PPDs are supplied for 9-pin, 24-pin, Stylus Color, and Stylus Photo printers.

## 3.2 User-Defined Printers and Options

The new `lpoptions` command allows users to configure default document options and create additional "instances" of existing printers, each with unique options.

The `lp`, `lpr`, and `lpstat` commands have been upgraded to use this option and printer instance information automatically.

## 3.3 Daemons

CUPS 1.1 includes two new daemons that provide enhanced network printing support.

### 3.3.1 cups-lpd

The `cups-lpd` daemon provides support for clients using the Line Printer Daemon protocol.

### 3.3.2 cups-polld

The `cups-polld` daemon provides remote polling services for the scheduler.

## 3.4 Commands

CUPS 1.1 includes several new printing commands.

### 3.4.1 lpoptions

The `lpoptions` command provides user-defined printers and options.

### 3.4.2 lpmove

The `lpmove` command moves a print job to a new destination.

### 3.4.3 lpinfo

The `lpinfo` command lists the available PPD files or devices.

## 3.5 IPP Implementation

CUPS 1.1 adds support for the `set-job-attributes` extension operation as well as two new CUPS-specific extension operations to determine which devices and printer drivers are available on the system.

Further information on the CUPS implementation of IPP can be found in CUPS-IPP-1.1.

# 4 Changes

CUPS 1.1 includes many changes from the 1.0.x releases.

## 4.1 Directory Structure

The directory structure in CUPS 1.1 has been modified to conform to the Filesystem Hierarchy Standard, 2.0. The following table describes the new file locations.

Table 1: Directory structure changes from CUPS 1.0.x to 1.1.x.
Description | CUPS 1.0.x | CUPS 1.1.x
--- | --- | ---
Backends | /var/cups/backend | /usr/lib/cups/backend
CGI programs | /var/cups/cgi-bin | /usr/lib/cups/cgi-bin
Configuration files | /var/cups/conf | /etc/cups
Documentation | /usr/share/cups/doc | /usr/share/doc/cups
Filter programs | /var/cups/filter | /usr/lib/cups/filter
Interface scripts | /var/cups/interfaces | /etc/cups/interfaces
Locale data | /usr/lib/locale | /usr/share/locale
Log files | /var/cups/logs | /var/log/cups
PPD files | /var/cups/ppd | /etc/cups/ppd
Request files | /var/cups/requests | /var/spool/cups

## 4.2 IPP Implementation

CUPS 1.1 is based on version 1.1 of the Internet Printing Protocol.

The new scheduler supports the `create-job` and `send-document` operations. In addition, the `job-sheets` , `job-sheets-default`, and `job-sheets-supported` attributes are now supported for banner pages.

The `CUPS-get-printers` and `CUPS-get-classes` operations have been upgraded to support limited filtering based upon the `printer-type`, `printer-location`, `printer-info`, and `printer-make-and-model` attributes.

The `CUPS-add-printer` operation now supports the `ppd-name` attribute to specify a locally-available PPD file rather than sending the PPD file from the client with the request.

Further information on the CUPS implementation of IPP can be found in CUPS-IPP-1.1.

# A Glossary

## A.1 Terms

C
  A computer language.
parallel
  Sending or receiving data more than 1 bit at a time.
pipe
  A one-way communications channel between two programs.
serial
  Sending or receiving data 1 bit at a time.
socket
  A two-way network communications channel.

## A.2 Acronyms

ASCII
  American Standard Code for Information Interchange
CUPS
  Common UNIX Printing System
ESC/P
  EPSON Standard Code for Printers
FTP
  File Transfer Protocol
HP-GL
  Hewlett-Packard Graphics Language
HP-PCL
  Hewlett-Packard Page Control Language
HP-PJL
  Hewlett-Packard Printer Job Language
IETF
  Internet Engineering Task Force
IPP
  Internet Printing Protocol
ISO
  International Standards Organization
LPD
  Line Printer Daemon
MIME
  Multimedia Internet Mail Exchange
PPD
  PostScript Printer Description
SMB
  Server Message Block
TFTP
  Trivial File Transfer Protocol