.\"
.\" "$Id: cups-driverd.man.in 11109 2013-07-08 21:15:13Z msweet $"
.\"
.\"   cups-driverd man page for CUPS.
.\"
.\"   Copyright 2007-2013 by Apple Inc.
.\"   Copyright 1997-2006 by Easy Software Products.
.\"
.\"   These coded instructions, statements, and computer programs are the
.\"   property of Apple Inc. and are protected by Federal copyright
.\"   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
.\"   which should have been included with this file.  If this file is
.\"   file is missing or damaged, see the license at "http://www.cups.org/".
.\"
.TH cups-driverd 8 "CUPS" "8 July 2013" "Apple Inc."
.SH NAME
cups-driverd \- cups driver daemon
.SH SYNOPSIS
.B cups-driverd
cat
.I ppd-name
.br
.B cups-driverd
list
.I request_id limit options
.SH DESCRIPTION
\fIcups-driverd\fR shows or lists PPD files. It is run in
response to CUPS-Add-Modify-Printer or CUPS-Get-Devices requests.
The first form ("cups-driverd cat ppd-name") writes the named PPD
file to stdout. The output format is an uncompressed PPD file.
.LP
The second form lists the available manufacturers or PPD files to
stdout as indicated by the \fIoptions\fR argument. The output
format is an IPP response message. The \fIrequest_id\fR argument
is the request ID from the original IPP request, typically 1. The
\fIlimit\fR argument is the limit value from the original IPP
request - 0 means no limit. Finally, the \fIoptions\fR argument
is a space-delimited list of attributes ("name=value name=value
\&...") that were passed in with the request. Currently
\fIcups-driverd\fR looks for the \fIppd-make\fR and
\fIrequested-attributes\fR attributes and tailors the output
accordingly.
.SH DRIVERS
Drivers can be static PPD files under the
\fI/usr/share/cups/model\fR directory or programs under the
\fI/usr/lib/cups/driver\fR or \fI/usr/libexec/cups/driver\fR (OS X) directories.
Static PPD files must conform to the Adobe PPD File Format Specification version
4.3 and may be compressed using the \fIgzip(1)\fR program. Driver
programs must implement the command-line interface shown in the
next section.
.SS DRIVER PROGRAMS
Driver programs provide a  interface to dynamically-generated PPD
files. The following arguments are currently defined:
.TP 5
drivername list
.br
Lists the supported PPD files to stdout.
.TP 5
drivername cat ppdname
.br
Writes the named PPD file to stdout.
.PP
Driver programs MUST NOT query hardware or make other long-term operations that
would delay the return of a driver list. See the NOTES section below for
specific recommendations.
.SS LISTING FILES (drivername list)
When run with the single argument "list", the program must list
the available PPD files it can generate to stdout using the
following format:
.nf
    "drivername:ppdname" language "make" "make and model"
    "drivername:ppdname" language "make" "make and model" "1284 device id"
    "drivername:ppdname" language "make" "make and model" "1284 device id" "(PPD product)"
    "drivername:ppdname" language "make" "make and model" "1284 device id" "(PPD product)" "PostScript version"
    "drivername:ppdname" language "make" "make and model" "1284 device id" "(PPD product)" "PostScript version" "type"
.fi
.LP
\fIDrivername\fR is the name of the driver program. \fIPpdname\fR
is the name used to select the given driver. \fILanguage\fR is
the locale associated with the default language of the PPD file,
typically "en". \fIMake\fR is the Manufacturer name from the PPD
file. \fIMake and model\fR is the NickName name from the PPD
file. \fI1284 device id\fR is the 1284DeviceId from the PPD file,
if any. \fI(PPD product)\fR is the Product string as it would appear in the PPD
file or from a PostScript query. \fIPostScript version\fR is the PSVersion
string as it would appear in the PPD file or from a PostScript query. \fIType\fR
is "postscript" for PostScript printers, "pdf" for PDF printers, "raster" for
raster printers, or "fax" for facsimile devices.
.SS WRITING FILES (drivername cat ppdname)
When the driver program is run with the "cat ppdname" arguments,
it must write the named PPD file to stdout, uncompressed. If the
named PPD file does not exist, the driver program must not write
any output to stdout and report the error to stderr instead.
.SS DRIVER ERROR MESSAGES
Error messages can be relayed back to \fIcupsd\fR by writing them
to stderr. The following prefixes are recognized:
.TP 5
DEBUG: [drivername]
.br
Debugging messages
.TP 5
ERROR: [drivername]
.br
Error messages
.TP 5
INFO: [drivername]
.br
Informational messages
.SH NOTES
Due to performance considerations, driver programs have been officially
deprecated and should not be used for new development. Currently only the
CUPS web interface and \fIlpinfo(8)\fR command will request lists from all
driver programs.
.SH SEE ALSO
cupsd(8), cupsd.conf(5), cupstestppd(1), lpinfo(8),
.br
http://localhost:631/help
.SH COPYRIGHT
Copyright 2007-2013 by Apple Inc.
.\"
.\" End of "$Id: cups-driverd.man.in 11109 2013-07-08 21:15:13Z msweet $".
.\"
