Cups2.png
   HOME

TheInfoList



OR:

CUPS (formerly an
acronym An acronym is a word or name formed from the initial components of a longer name or phrase. Acronyms are usually formed from the initial letters of words, as in ''NATO'' (''North Atlantic Treaty Organization''), but sometimes use syllables, as ...
for Common UNIX Printing System) is a modular
printing Printing is a process for mass reproducing text and images using a master form or template. The earliest non-paper products involving printing include cylinder seals and objects such as the Cyrus Cylinder and the Cylinders of Nabonidus. The ...
system for
Unix-like A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-li ...
computer operating systems which allows a computer to act as a
print server In computer networking, a print server, or printer server, is a type of server that connects printers to client computers over a network. It accepts print jobs from the computers and sends the jobs to the appropriate printers, queuing the jobs loc ...
. A computer running CUPS is a host that can accept print jobs from
client Client(s) or The Client may refer to: * Client (business) * Client (computing), hardware or software that accesses a remote service on another computer * Customer or client, a recipient of goods or services in return for monetary or other valuabl ...
computers, process them, and send them to the appropriate printer. CUPS consists of a
print spooler In computing, spooling is a specialized form of multi-programming for the purpose of copying data between different devices. In contemporary systems, it is usually used for mediating between a computer application and a slow peripheral, such as ...
and scheduler, a filter system that converts the print data to a format that the printer will understand, and a backend system that sends this data to the print device. CUPS uses the
Internet Printing Protocol The Internet Printing Protocol (IPP) is a specialized Internet protocol for communication between client devices (computers, mobile phones, tablets, etc.) and printers (or print servers). It allows clients to submit one or more print jobs to the p ...
(IPP) as the basis for managing
print job In computing, a print job is a file or set of files that has been submitted to be printed with a printer. Jobs are typically identified by a unique number, and are assigned to a particular destination, usually a printer. Jobs can also have options ...
s and queues. It also provides the traditional command line interfaces for the
System V Unix System V (pronounced: "System Five") is one of the first commercial versions of the Unix operating system. It was originally developed by AT&T and first released in 1983. Four major versions of System V were released, numbered 1, 2, 3, an ...
and
Berkeley Berkeley most often refers to: *Berkeley, California, a city in the United States **University of California, Berkeley, a public university in Berkeley, California * George Berkeley (1685–1753), Anglo-Irish philosopher Berkeley may also refer ...
print systems, and provides support for the Berkeley print system's
Line Printer Daemon protocol The Line Printer Daemon protocol/Line Printer Remote protocol (or LPD, LPR) is a network printing protocol for submitting print jobs to a remote printer. The original implementation of LPD was in the Berkeley printing system in the BSD UNIX oper ...
and limited support for the
Server Message Block Server Message Block (SMB) is a communication protocol originally developed in 1983 by Barry A. Feigenbaum at IBM and intended to provide shared access to files and printers across nodes on a network of systems running IBM's OS/2. It also provide ...
(SMB) protocol. System administrators can configure the device drivers which CUPS supplies by editing text files in Adobe's
PostScript Printer Description PostScript Printer Description (PPD) files are created by vendors to describe the entire set of features and capabilities available for their PostScript printers. A PPD also contains the PostScript code (commands) used to invoke features for the p ...
(PPD) format. There are a number of user interfaces for different platforms that can configure CUPS, and it has a built-in web-based interface. CUPS is
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
, provided under the Apache License.


History

Michael Sweet Michael Harrison Sweet (born July 4, 1963) is a singer and guitarist from Whittier, California; he is the co-founder, songwriter, guitarist and lead singer of the Christian metal band Stryper. He's also had a successful solo career, and briefly ...
, who owned
Easy Software Products Easy Software Products was the vendor who originally invented the Common Unix Printing System (CUPS) and HTMLDOC software. It was founded near Washington, D.C. in 1993Michael R. Sweet, "CUPS: Common UNIX Printing System"The Evolution of CUPS. ' ...
, started developing CUPS in 1997 and the first public betas appeared in 1999. The original design of CUPS used the
Line Printer Daemon protocol The Line Printer Daemon protocol/Line Printer Remote protocol (or LPD, LPR) is a network printing protocol for submitting print jobs to a remote printer. The original implementation of LPD was in the Berkeley printing system in the BSD UNIX oper ...
(LPD), but due to limitations in LPD and vendor incompatibilities, the
Internet Printing Protocol The Internet Printing Protocol (IPP) is a specialized Internet protocol for communication between client devices (computers, mobile phones, tablets, etc.) and printers (or print servers). It allows clients to submit one or more print jobs to the p ...
(IPP) was chosen instead. CUPS was initially called "The Common UNIX Printing System". This name was shortened to just "CUPS" beginning with CUPS 1.4 due to legal concerns with the UNIX trademark. CUPS was quickly adopted as the default printing system for most Linux distributions. In March 2002,
Apple Inc. Apple Inc. is an American multinational technology company headquartered in Cupertino, California, United States. Apple is the largest technology company by revenue (totaling in 2021) and, as of June 2022, is the world's biggest company ...
adopted CUPS as the printing system for
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and la ...
10.2. In February 2007,
Apple Inc. Apple Inc. is an American multinational technology company headquartered in Cupertino, California, United States. Apple is the largest technology company by revenue (totaling in 2021) and, as of June 2022, is the world's biggest company ...
hired chief developer Michael Sweet and purchased the CUPS source code. On December 20, 2019, Michael Sweet announced on his blog that he had left Apple. In 2020, the
OpenPrinting The Linux Foundation (LF) is a non-profit technology consortium founded in 2000 as a merger between Open Source Development Labs and the Free Standards Group to standardize Linux, support its growth, and promote its commercial adoption. Addi ...
organization forked the project, with Michael Sweet continuing work on it.


Overview

CUPS provides a mechanism that allows print jobs to be sent to printers in a standard fashion. The print data goes to a ''scheduler'' which sends jobs to a ''filter system'' that converts the print job into a format the printer will understand. The filter system then passes the data on to a ''backend''—a special filter that sends print data to a device or network connection. The system makes extensive use of PostScript and
rasterization In computer graphics, rasterisation (British English) or rasterization (American English) is the task of taking an image described in a vector graphics format (shapes) and converting it into a raster image (a series of pixels, dots or lines, whi ...
of data to convert the data into a format suitable for the destination printer. CUPS offers a standard and modularised printing system that can process numerous data formats on the print server. Before CUPS, it was difficult to find a standard printer management system that would accommodate the very wide variety of printers on the market using their own printer languages and formats. For instance, the System V and Berkeley printing systems were largely incompatible with each other, and they required complicated scripts and workarounds to convert the program's data format to a printable format. They often could not detect the file format that was being sent to the printer and thus could not automatically and correctly convert the data stream. Additionally, data conversion was performed on individual workstations rather than a central server. CUPS allows printer manufacturers and printer-driver developers to more easily create drivers that work natively on the print server. Processing occurs on the server, allowing for easier network-based printing than with other Unix printing systems. With Samba installed, users can address printers on remote Windows computers, and generic PostScript drivers can be used for printing across the network.


Scheduler

The CUPS scheduler implements
Internet Printing Protocol The Internet Printing Protocol (IPP) is a specialized Internet protocol for communication between client devices (computers, mobile phones, tablets, etc.) and printers (or print servers). It allows clients to submit one or more print jobs to the p ...
(IPP) over HTTP/1.1. A helper application (cups-lpd) converts
Line Printer Daemon protocol The Line Printer Daemon protocol/Line Printer Remote protocol (or LPD, LPR) is a network printing protocol for submitting print jobs to a remote printer. The original implementation of LPD was in the Berkeley printing system in the BSD UNIX oper ...
(LPD) requests to IPP. The scheduler also provides a web-based interface for managing print jobs, the configuration of the server, and for documentation about CUPS itself. An ''authorization'' module controls which IPP and HTTP messages can pass through the system. Once the IPP/HTTP packets are authorized they are sent to the ''client'' module, which listens for and processes incoming connections. The client module is also responsible for executing external CGI programs as needed to support web-based printers, classes, and job status monitoring and administration. Once this module has processed its requests, it sends them to the ''IPP'' module which performs Uniform Resource Identifier (URI) validation to prevent a client from sidestepping any access controls or
authentication Authentication (from ''authentikos'', "real, genuine", from αὐθέντης ''authentes'', "author") is the act of proving an assertion, such as the identity of a computer system user. In contrast with identification, the act of indicatin ...
on the HTTP server. The URI is a text string that indicates a name or address that can be used to refer to an abstract or physical resource on a network. The scheduler allows for classes of printers. Applications can send requests to groups of printers in a class, allowing the scheduler to direct the job to the first available printer in that class. A ''jobs'' module manages print jobs, sending them to the filter and backend processes for final conversion and printing, and monitoring the status messages from those processes. The CUPS scheduler utilizes a ''configuration'' module, which parses configuration files, initializes CUPS data structures, and starts and stops the CUPS program. The configuration module will stop CUPS services during configuration file processing and then restart the service when processing is complete. A ''logging'' module handles the logging of scheduler events for access, error, and page
log files In computing, logging is the act of keeping a log of events that occur in a computer system, such as problems, errors or just information on current operations. These events may occur in the operating system or in other software. A message or l ...
. The ''main'' module handles timeouts and dispatch of I/O requests for client connections, watching for
signals In signal processing, a signal is a function that conveys information about a phenomenon. Any quantity that can vary over space or time can be used as a signal to share messages between observers. The ''IEEE Transactions on Signal Processing'' ...
, handling child process errors and exits, and reloading the server configuration files as needed. Other modules used by the scheduler include: * the ''MIME'' module, which handles a
Multipurpose Internet Mail Extensions Multipurpose Internet Mail Extensions (MIME) is an Internet standard that extends the format of email messages to support text in character sets other than ASCII, as well as attachments of audio, video, images, and application programs. Message ...
(MIME) type and conversion database used in the filtering process that converts print data to a format suitable for a print device; * a ''PPD'' module that handles a list of
Postscript Printer Description PostScript Printer Description (PPD) files are created by vendors to describe the entire set of features and capabilities available for their PostScript printers. A PPD also contains the PostScript code (commands) used to invoke features for the p ...
(PPD) files; * a ''devices'' module that manages a list of devices that are available in the system; * a ''printers'' module that handles printers and PPDs within CUPS.


Filter system

CUPS can process a variety of data formats on the print server. It converts the print-job data into the final language/format of the printer via a series of ''filters''. It uses
MIME types A media type (also known as a MIME type) is a two-part identifier for file formats and format contents transmitted on the Internet. The Internet Assigned Numbers Authority (IANA) is the official authority for the standardization and publication o ...
for identifying file formats.


MIME databases

After the CUPS system has assigned the print job to the scheduler, it is passed to the CUPS filter system. This converts the data to a format suitable for the printer. During start-up, the CUPS daemon loads two MIME databases: mime.types that defines the known file types that CUPS can accept data for, and mime.convs that defines the programs that process each particular MIME type. The mime.types file has the syntax: mimetype For example, to detect an
HTML The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaSc ...
file, the following entry would be applicable: text/html html htm \
:printable(0,1024) + (string(0,"") string(0," The second line matches the file contents to the specified MIME type by determining that the first kilobyte of text in the file holds printable characters and that those characters include HTML markup. If the pattern above matches, then the filter system would mark the file as the MIME type text/html. The mime.convs file has the syntax: source destination cost program The ''source'' field designates the MIME type that is determined by looking up the mime.types file, while the ''destination'' field lists the type of output requested and determines what program should be used. This is also retrieved from mime.types. The ''cost'' field assists in the selection of sets of filters when converting a file. The last field, ''program'', determines which filter program to use to perform the data conversion. Some examples: text/plain application/postscript 50 texttops application/vnd.cups-postscript application/vnd.cups-raster 50 pstoraster image/* application/vnd.cups-postscript 50 imagetops image/* application/vnd.cups-raster 50 imagetoraster


Filtering process

The filtering process works by taking input data pre-formatted with six arguments: # the job ID of the print job # the user name # the job name # the number of copies to print # any print options # the filename (though this is unnecessary if it has been redirected from
standard input In computer programming, standard streams are interconnected input and output communication channels between a computer program and its environment when it begins execution. The three input/output (I/O) connections are called standard input (stdin ...
). It then determines the type of data that is being input and the filter to be used through the use of the MIME databases; for instance, image data will be detected and processed through a particular filter, and HTML data detected and processed through another filter. CUPS can convert supplied data either into PostScript data or directly into raster data. If it is converted into PostScript data an additional filter is applied called a ''prefilter'', which runs the PostScript data through another PostScript converter so that it can add printer-specific options like selecting page ranges to print, setting ''n''-up mode and other device-specific things. After the pre-filtering is done, the data can either be sent directly to a CUPS backend if using a PostScript printer, or it can be passed to another filter like Foomatic by
linuxprinting.org The Linux Foundation (LF) is a Nonprofit organization, non-profit technology consortium founded in 2000 as a merger between Open Source Development Labs and the Free Standards Group to standardize Linux, support its growth, and promote its com ...
. Alternatively, it can be passed to
Ghostscript Ghostscript is a suite of software based on an interpreter for Adobe Systems' PostScript and Portable Document Format (PDF) page description languages. Its main purposes are the rasterization or rendering of such page description language file ...
, which converts the PostScript into an intermediary ''CUPS-raster'' format.The MIME type for the CUPS raster format is application/vnd.cups-raster. The intermediary raster format is then passed onto a final filter which converts the raster data to a printer-specific format. The default filters included with CUPS include: * raster to PCL * raster to
ESC/P ESC/P, short for Epson Standard Code for Printers and sometimes styled Escape/P, is a printer control language developed by Epson to control computer printers. It was mainly used in dot matrix printers and some inkjet printers, and is still widel ...
or ESC/P2 (an
Epson Seiko Epson Corporation, or simply known as Epson, is a Japanese multinational electronics company and one of the world's largest manufacturers of computer printers and information- and imaging-related equipment. Headquartered in Suwa, Nagano ...
printer language, now largely superseded by their new ESC/P-Raster format) * raster to
Dymo Dymo Corporation is an American manufacturing company of handheld label printers and thermal-transfer printing tape as accessory, embossing tape label makers, and other printers such as CD and DVD labelers and durable medical equipment. The c ...
(another printer company). * raster to Zebra Programming Language or ZPL (a
Zebra Technologies Zebra Technologies Corporation is an American mobile computing company specializing in technology used to sense, analyze, and act in real time. The company manufactures and sells marking, tracking, and computer printing technologies. Its product ...
printer language) other proprietary languages like GDI or SPL (Samsung Printer Language) are supported by Splix, a raster to SPL translator. However, several other alternatives can integrate with CUPS.
HPLIP The HPLIP (HP Linux Imaging and Printlng) project—initiated and led by HP Inc. (HP)—aims to ease Linux systems' ability to interact with HP's inkjet and laser printers with full printing, scanning, and faxing support. the supplied printer ...
(previously known as HP-IJS) provides Linux+CUPS drivers for HP printers,
Gutenprint Gutenprint (formerly Gimp-Print) is a collection of free-software printer drivers for use with UNIX spooling systems, such as CUPS, lpr and LPRng. These drivers provide printing services for Unix-like systems (including Linux and macOS), RISC ...
(previously known as Gimp-Print) is a range of high-quality printer drivers for (mostly) inkjet printers, and TurboPrint for Linux has another range of quality printer drivers for a wide range of printers.


Backends

The backends are the ways in which CUPS sends data to printers. There are several backends available for CUPS:
parallel Parallel is a geometric term of location which may refer to: Computing * Parallel algorithm * Parallel computing * Parallel metaheuristic * Parallel (software), a UNIX utility for running programs in parallel * Parallel Sysplex, a cluster of ...
, serial, and
USB Universal Serial Bus (USB) is an industry standard that establishes specifications for cables, connectors and protocols for connection, communication and power supply (interfacing) between computers, peripherals and other computers. A broad ...
ports, cups-pdf PDF Virtual Printing, as well as network backends that operate via the IPP,
JetDirect HP Jetdirect is the name of a technology sold by Hewlett-Packard that allows computer printers to be directly attached to a Local Area Network. The "Jetdirect" designation covers a range of models from the external 1 and 3 port parallel print ser ...
(AppSocket),
Line Printer Daemon The Line Printer Daemon protocol/Line Printer Remote protocol (or LPD, LPR) is a network printing protocol for submitting print jobs to a remote printer. The original implementation of LPD was in the Berkeley printing system in the BSD UNIX oper ...
("LPD"), and SMB
protocol Protocol may refer to: Sociology and politics * Protocol (politics), a formal agreement between nation states * Protocol (diplomacy), the etiquette of diplomacy and affairs of state * Etiquette, a code of personal behavior Science and technolog ...
s. A new mdns backend in CUPS 1.4 provides Bonjour (
DNS-SD Zero-configuration networking (zeroconf) is a set of technologies that automatically creates a usable computer network based on the Internet Protocol Suite (TCP/IP) when computers or network peripherals are interconnected. It does not require manu ...
) based printer discovery. In CUPS 1.6, Bonjour printer discovery and sharing using Avahi is also supported.


Compatibility

CUPS provides both the System V and Berkeley printing commands, so users can continue with traditional commands for printing via CUPS. CUPS uses port 631 (TCP and UDP), which is the standard IPP port, and optionally on port 515 by
inetd inetd (internet service daemon) is a super-server daemon on many Unix systems that provides Internet services. For each configured service, it listens for requests from connecting clients. Requests are served by spawning a process which runs the ...
,
launchd launchd is an init and operating system service management daemon created by Apple Inc. as part of macOS to replace its BSD-style init and SystemStarter. There have been efforts to port launchd to FreeBSD and derived systems. Components ...
, the Solaris
Service Management Facility Service Management Facility (SMF) is a feature of the Solaris operating system as of version 10 and OpenSolaris-descendant illumos with its illumos distributions, that creates a supported, unified model for services and service management on each ...
, or
xinetd In computer networking, xinetd (''Extended Internet Service Daemon'') is an open-source super-server daemon which runs on many Unix-like systems, and manages Internet-based connectivity. It offers a more secure alternative to the older inetd ...
which use the cups-lpd helper program to support LPD printing. When CUPS is installed the lp System V printing system command and the lpr Berkeley printing system commands are installed as compatible programs. This allows a standard interface to CUPS and allows maximum compatibility with existing applications that rely on these printing systems.


User interface tools

Several tools exist to help set up CUPS.


CUPS web-based administration interface

On all platforms, CUPS has a web-based administration interface that runs on
port A port is a maritime facility comprising one or more wharves or loading areas, where ships load and discharge cargo and passengers. Although usually situated on a sea coast or estuary, ports can also be found far inland, such as H ...
631 __NOTOC__ Year 631 ( DCXXXI) was a common year starting on Tuesday (link will display the full calendar) of the Julian calendar. The denomination 631 for this year has been used since the early medieval period, when the Anno Domini calendar er ...
. It particularly helps organisations that need to monitor print jobs and add print queues and printers remotely. CUPS 1.0 provided a simple class, job, and printer-monitoring interface for web browsers. CUPS 1.1 replaced this interface with an enhanced administration interface that allows users to add, modify, delete, configure, and control classes, jobs, and printers. CUPS 1.2 and later provide a revamped web interface which features improved readability and design, support for automatically discovered printers, and better access to system logs and advanced settings.


GNOME

In GNOME starting from GNOME 3, CUPS printing has been handled in the Settings application, which is part of the
GNOME Core Applications GNOME Core Applications is a software suite of approximately 30 application software that are packaged as part of the standard free and open-source GNOME desktop environment. GNOME Core Applications have the look and feel of the GNOME desktop, an ...
. The GUI can add CUPS printers and manage CUPS printers and queues. Before GNOME 3, the GNOME Print Settings (formerly called CUPS Manager) were used to perform these tasks. GNOME's
widget toolkit A widget toolkit, widget library, GUI toolkit, or UX library is a library or a collection of libraries containing a set of graphical control elements (called ''widgets'') used to construct the graphical user interface (GUI) of programs. Most widge ...
GTK+ included integrated printing support based on CUPS in its version 2.10, released in 2006.


KDE

The KDEPrint framework for
KDE KDE is an international free software community that develops free and open-source software. As a central development hub, it provides tools and resources that allow collaborative work on this kind of software. Well-known products include the ...
contains various
GUI The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
tools that act as CUPS front ends and allows the administration of classes, print queues and print jobs; it includes a printer wizard to assist with adding new printers amongst other features. KDEPrint first appeared in KDE 2.2. KDEPrint supports several different printing platforms, with CUPS one of the best supported. It replaced a previous version of printing support in KDE, ''qtcups'' and is backwards compatible with this module of KDE. ''kprinter'', a dialogue-box program, serves as the main tool for sending jobs to the print device; it can also be started from the
command line A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
. KDEPrint includes a system to pre-filter any jobs before they are handed over to CUPS, or to handle jobs all on its own, such as converting files to PDF. These filters are described by a pair of Desktop/
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable ...
files. KDEPrint's main components include: * a Print Dialog box, which allows printer properties to be modified * a Print Manager, which allows management of printers, such as adding and removing printers, through an Add Printer Wizard * a Job Viewer/Manager, which manages printer jobs, such as hold/release, cancel and move to another printer * a CUPS configuration module (integrated into KDE)


Mac OS X

In Mac OS X 10.5, printers are configured in the Print & Fax panel in System Preferences, and in printer proxy applications which display the print queues and allow additional configuration after printers are set up. Earlier versions of Mac OS X also included a
Printer Setup Utility The Printer Setup Utility was an application in Mac OS X that served to allow the user to configure printers physically connected to the computer, or connected via a network. The Utility provided more specific tools than the more user friendly p ...
, which supplied configuration options missing from earlier versions of the Print & Fax preference pane.


PrinterSetup

The PrinterSetup system can manage CUPS queues. It takes the approach of assigning a text file to describe each print queue. These 'PrinterSetupFiles' may then be added to other text files called 'PrinterSetupLists'. This allows logical grouping of printers. the PrinterSetup project remains in its infancy.


Red Hat Linux/Fedora

Starting with Red Hat Linux 9, Red Hat provided an integrated print manager based on CUPS and integrated into GNOME. This allowed adding printers via a user interface similar to the one Microsoft Windows uses, where a new printer could be added using an ''add new printer wizard'', along with changing default printer properties in a window containing a list of installed printers. Jobs could also be started and stopped using a print manager, and the printer could be paused using a
context menu A context menu (also called contextual, shortcut, and pop up or pop-up menu) is a menu in a graphical user interface (GUI) that appears upon user interaction, such as a right-click mouse operation. A context menu offers a limited set of choic ...
that pops up when the printer icon is right-clicked.
Eric Raymond The given name Eric, Erich, Erikk, Erik, Erick, or Eirik is derived from the Old Norse name ''Eiríkr'' (or ''Eríkr'' in Old East Norse due to monophthongization). The first element, ''ei-'' may be derived from the older Proto-Norse ''* ain ...
criticised this system in his piece ''The Luxury of Ignorance''. Raymond had attempted to install CUPS using the Fedora Core 1 print manager but found it non-intuitive; he criticised the interface designers for not designing with the user's point of view in mind. He found the idea of printer queues not obvious because users create queues on their local computer but these queues are actually created on the CUPS server. He also found the plethora of queue-type options confusing as he could choose from between networked CUPS (IPP), networked Unix ( LPD), networked Windows ( SMB), networked Novell ( NCP) or networked
JetDirect HP Jetdirect is the name of a technology sold by Hewlett-Packard that allows computer printers to be directly attached to a Local Area Network. The "Jetdirect" designation covers a range of models from the external 1 and 3 port parallel print ser ...
. He found the help file singularly unhelpful and largely irrelevant to a user's needs. Raymond used CUPS as a general topic to show that user-interface design on Linux desktops needs rethinking and more careful design. He stated:
The meta-problem here is that the configuration wizard does all the approved rituals (GUI with standardized clicky buttons, help popping up in a browser, etc. etc.) but doesn't have the central attribute these are supposed to achieve: discoverability. That is, the quality that every point in the interface has prompts and actions attached to it from which you can learn what to do next. Does your project have this quality?


ESP Print Pro

Easy Software Products Easy Software Products was the vendor who originally invented the Common Unix Printing System (CUPS) and HTMLDOC software. It was founded near Washington, D.C. in 1993Michael R. Sweet, "CUPS: Common UNIX Printing System"The Evolution of CUPS. ' ...
, the original creators of CUPS, created a GUI, provided support for many printers and implemented a PostScript RIP. ESP Print Pro ran on Windows, UNIX and Linux, but is no longer available and support for this product ended on December 31, 2007.


See also

* Foomatic *
Gutenprint Gutenprint (formerly Gimp-Print) is a collection of free-software printer drivers for use with UNIX spooling systems, such as CUPS, lpr and LPRng. These drivers provide printing services for Unix-like systems (including Linux and macOS), RISC ...
*
HP Linux Imaging and Printing The HPLIP (HP Linux Imaging and Printlng) project—initiated and led by HP Inc. (HP)—aims to ease Linux systems' ability to interact with HP's inkjet and laser printers with full printing, scanning, and faxing support. the supplied printer ...
* Lp (Unix) *
LPRng LPRng is a printing system compatible with the Berkeley printing system. It provides printer spooling and network print server functionality using the Line Printer Daemon protocol. It is an open-source project hosted on SourceForge and implement ...
*
Scanner Access Now Easy Scanner Access Now Easy (SANE) is an open-source application programming interface (API) that provides standardized access to any raster image scanner hardware ( flatbed scanner, handheld scanner, video- and still-cameras, frame grabbers, etc.). ...
*
Spooling In computing, spooling is a specialized form of multi-programming for the purpose of copying data between different devices. In contemporary systems, it is usually used for mediating between a computer application and a slow peripheral, such a ...
* Xprint


References


Further reading


Design of CUPS Filtering System — including the context for Mac OS X ("Jaguar")
''LinuxPrinting.org''. Retrieved January 5, 2005. *
KDE KDE is an international free software community that develops free and open-source software. As a central development hub, it provides tools and resources that allow collaborative work on this kind of software. Well-known products include the ...
.
KDEPrint information
'. KDE-printing website. Retrieved January 14, 2005.
How to Manage Printers in Linux
Linux.com, 2015-04-27.


External links

*
OpenPrinting

Universal Plug and Play – Printer Device V 1.0 and Printer Basic Service V 1.0
{{DEFAULTSORT:Cups 1999 software Apple Inc. acquisitions Apple Inc. software Computer printing Device drivers Free PDF software Free software programmed in C Unix network-related software Software using the Apache license