]> git.ipfire.org Git - thirdparty/cups.git/blame - doc/sam.html
Fix new quota/acl sections in the SAM.
[thirdparty/cups.git] / doc / sam.html
CommitLineData
902da432 1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
c8475f2d 2<HTML>
3<HEAD>
c57fe7d1 4<TITLE>CUPS Software Administrators Manual</TITLE>
97ae2a96 5<META NAME="author" CONTENT="Easy Software Products">
efb2f309 6<META NAME="copyright" CONTENT="Copyright 1997-2002, All Rights Reserved">
19adc906 7<META NAME="docnumber" CONTENT="CUPS-SAM-1.1.15">
97ae2a96 8<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-8859-1">
b1d503b0 9<STYLE TYPE="text/css"><!--
c57fe7d1 10BODY { font-family: serif }
11H1 { font-family: sans-serif }
12H2 { font-family: sans-serif }
13H3 { font-family: sans-serif }
14H4 { font-family: sans-serif }
15H5 { font-family: sans-serif }
16H6 { font-family: sans-serif }
17SUB { font-size: smaller }
18SUP { font-size: smaller }
19PRE { font-family: monospace }
97ae2a96 20--></STYLE>
c8475f2d 21</HEAD>
38138d28 22<BODY BGCOLOR="#ffffff">
c57fe7d1 23<CENTER><A HREF="#CONTENTS"><IMG SRC="images/cups-large.gif" BORDER="0" WIDTH="431" HEIGHT="511"><BR>
24<H1>CUPS Software Administrators Manual</H1></A><BR>
19adc906 25CUPS-SAM-1.1.15<BR>
6a921799 26Easy Software Products<BR>
efb2f309 27Copyright 1997-2002, All Rights Reserved<BR>
6a921799 28</CENTER>
29<HR>
97ae2a96 30<H1 ALIGN="CENTER"><A NAME="CONTENTS">Table of Contents</A></H1>
b1d503b0 31<BR>
32<BR><B><A HREF="#1">Preface</A></B>
97ae2a96 33<UL>
34<LI><A HREF="#1_1">System Overview</A></LI>
35<LI><A HREF="#1_2">Document Overview</A></LI>
36<LI><A HREF="#1_3">Notation Conventions</A></LI>
37<LI><A HREF="#1_4">Abbreviations</A></LI>
38<LI><A HREF="#1_5">Other References</A></LI>
39</UL>
40<B><A HREF="#OVERVIEW">1 - Printing System Overview</A></B>
41<UL>
42<LI><A HREF="#2_1">The Printing Problem</A></LI>
43<LI><A HREF="#2_2">The Technology</A></LI>
44<LI><A HREF="#2_3">Jobs</A></LI>
45<LI><A HREF="#2_4">Classes</A></LI>
46<LI><A HREF="#2_5">Filters</A></LI>
47<LI><A HREF="#2_6">Backends</A></LI>
48<LI><A HREF="#2_7">Printer Drivers</A></LI>
49<LI><A HREF="#2_8">Networking</A></LI>
50</UL>
51<B><A HREF="#BUILDING_INSTALLING">2 - Building and Installing CUPS</A></B>
52<UL>
53<LI><A HREF="#3_1">Installing a Source Distribution</A></LI>
54<UL>
55<LI><A HREF="#REQUIREMENTS">Requirements</A></LI>
56<LI><A HREF="#COMPILING">Compiling CUPS</A></LI>
57<LI><A HREF="#INSTALLING">Installing the Software</A></LI>
58<LI><A HREF="#RUNNING">Running the Software</A></LI>
59</UL>
60<LI><A HREF="#BINARY">Installing a Binary Distribution</A></LI>
61<UL>
62<LI><A HREF="#PORTABLE-BINARY">Installing a Portable Distribution</A></LI>
63<LI><A HREF="#RPM-BINARY">Installing an RPM Distribution</A></LI>
64<LI><A HREF="#DPKG-BINARY">Installing an Debian Distribution</A></LI>
65</UL>
66</UL>
e193bc2c 67<B><A HREF="#MANAGING_PRINTERS">3 - Managing Printers</A></B>
97ae2a96 68<UL>
69<LI><A HREF="#4_1">The Basics</A></LI>
70<LI><A HREF="#4_2">Adding Your First Printer</A></LI>
71<UL>
72<LI><A HREF="#4_2_1">Adding Your First Printer from the Command-Line</A></LI>
73<LI><A HREF="#ADD_WEB">Adding Your First Printer from the Web</A></LI>
74</UL>
75<LI><A HREF="#4_3">Managing Printers from the Command-Line</A></LI>
76<UL>
77<LI><A HREF="#4_3_1">Adding and Modifying Printers</A></LI>
78<LI><A HREF="#4_3_2">Deleting Printers</A></LI>
79<LI><A HREF="#4_3_3">Setting the Default Printer</A></LI>
80<LI><A HREF="#4_3_4">Starting and Stopping Printers</A></LI>
81<LI><A HREF="#4_3_5">Accepting and Rejecting Print Jobs</A></LI>
c4badc90 82<LI><A HREF="#4_3_6">Setting Quotas on a Printer</A></LI>
83<LI><A HREF="#4_3_7">Restricting Access to a Printer</A></LI>
97ae2a96 84</UL>
85<LI><A HREF="#4_4">Managing Printers from the Web</A></LI>
86</UL>
87<B><A HREF="#PRINTER_CLASSES">4 - Printer Classes</A></B>
88<UL>
89<LI><A HREF="#5_1">The Basics</A></LI>
90<LI><A HREF="#5_2">Managing Printer Classes from the Command-Line</A></LI>
91<LI><A HREF="#5_3">Managing Printer Classes from the Web Interface</A></LI>
92<LI><A HREF="#5_4">Implicit Classes</A></LI>
93</UL>
94<B><A HREF="#CLIENT_SETUP">5 - Client Setup</A></B>
95<UL>
96<LI><A HREF="#6_1">The Basics</A></LI>
97<UL>
98<LI><A HREF="#CLIENT_MANUAL">Manual Configuration of Print Queues</A></LI>
99<LI><A HREF="#CLIENT_SERVER">Specifying a Single Server for Printing</A></LI>
100<LI><A HREF="#CLIENT_AUTO">Automatic Configuration of Print Queues</A></LI>
101<LI><A HREF="#CLIENT_POLL">Specifying Multiple Servers for Printing</A></LI>
437844a0 102<LI><A HREF="#CLIENT_RELAY">Relaying Printers to Other Clients</A></LI>
97ae2a96 103</UL>
437844a0 104<LI><A HREF="#6_2">Load Balancing and Failsafe Operation</A></LI>
97ae2a96 105</UL>
106<B><A HREF="#PRINTING_MANAGEMENT">6 - Printing System Management</A></B>
107<UL>
108<LI><A HREF="#7_1">The Basics</A></LI>
109<LI><A HREF="#RESTARTING">Restarting the CUPS Server</A></LI>
110<LI><A HREF="#7_3">Changing the Server Configuration</A></LI>
111<LI><A HREF="#7_4">Server Directives</A></LI>
112<UL>
113<LI><A HREF="#AccessLog">AccessLog</A></LI>
114<LI><A HREF="#Allow">Allow</A></LI>
115<LI><A HREF="#AuthClass">AuthClass</A></LI>
116<LI><A HREF="#AuthGroupName">AuthGroupName</A></LI>
117<LI><A HREF="#AuthType">AuthType</A></LI>
118<LI><A HREF="#AutoPurgeJobs">AutoPurgeJobs</A></LI>
119<LI><A HREF="#BrowseAddress">BrowseAddress</A></LI>
120<LI><A HREF="#BrowseAllow">BrowseAllow</A></LI>
121<LI><A HREF="#BrowseDeny">BrowseDeny</A></LI>
122<LI><A HREF="#BrowseOrder">BrowseOrder</A></LI>
123<LI><A HREF="#BrowseInterval">BrowseInterval</A></LI>
124<LI><A HREF="#BrowsePoll">BrowsePoll</A></LI>
125<LI><A HREF="#BrowsePort">BrowsePort</A></LI>
902d97a0 126<LI><A HREF="#BrowseProtocols">BrowseProtocols</A></LI>
97ae2a96 127<LI><A HREF="#BrowseRelay">BrowseRelay</A></LI>
128<LI><A HREF="#BrowseShortNames">BrowseShortNames</A></LI>
129<LI><A HREF="#BrowseTimeout">BrowseTimeout</A></LI>
130<LI><A HREF="#Browsing">Browsing</A></LI>
c57fe7d1 131<LI><A HREF="#Classification">Classification</A></LI>
902d97a0 132<LI><A HREF="#ClassifyOverride">ClassifyOverride</A></LI>
97ae2a96 133<LI><A HREF="#DataDir">DataDir</A></LI>
134<LI><A HREF="#DefaultCharset">DefaultCharset</A></LI>
135<LI><A HREF="#DefaultLanguage">DefaultLanguage</A></LI>
136<LI><A HREF="#Deny">Deny</A></LI>
137<LI><A HREF="#DocumentRoot">DocumentRoot</A></LI>
b1d503b0 138<LI><A HREF="#Encryption">Encryption</A></LI>
97ae2a96 139<LI><A HREF="#ErrorLog">ErrorLog</A></LI>
140<LI><A HREF="#FilterLimit">FilterLimit</A></LI>
b1d503b0 141<LI><A HREF="#FontPath">FontPath</A></LI>
97ae2a96 142<LI><A HREF="#Group">Group</A></LI>
7159de3d 143<LI><A HREF="#HideImplicitMembers">HideImplicitMembers</A></LI>
97ae2a96 144<LI><A HREF="#HostNameLookups">HostNameLookups</A></LI>
145<LI><A HREF="#ImplicitClasses">ImplicitClasses</A></LI>
7159de3d 146<LI><A HREF="#ImplicitAnyClasses">ImplicitAnyClasses</A></LI>
147<LI><A HREF="#Include">Include</A></LI>
97ae2a96 148<LI><A HREF="#KeepAlive">KeepAlive</A></LI>
149<LI><A HREF="#KeepAliveTimeout">KeepAliveTimeout</A></LI>
b1d503b0 150<LI><A HREF="#Limit">Limit</A></LI>
151<LI><A HREF="#LimitExcept">LimitExcept</A></LI>
152<LI><A HREF="#LimitRequestBody">LimitRequestBody</A></LI>
97ae2a96 153<LI><A HREF="#Listen">Listen</A></LI>
154<LI><A HREF="#Location">Location</A></LI>
155<LI><A HREF="#LogLevel">LogLevel</A></LI>
156<LI><A HREF="#MaxClients">MaxClients</A></LI>
157<LI><A HREF="#MaxJobs">MaxJobs</A></LI>
c57fe7d1 158<LI><A HREF="#MaxJobsPerPrinter">MaxJobsPerPrinter</A></LI>
159<LI><A HREF="#MaxJobsPerUser">MaxJobsPerUser</A></LI>
97ae2a96 160<LI><A HREF="#MaxLogSize">MaxLogSize</A></LI>
161<LI><A HREF="#MaxRequestSize">MaxRequestSize</A></LI>
162<LI><A HREF="#Order">Order</A></LI>
163<LI><A HREF="#PageLog">PageLog</A></LI>
164<LI><A HREF="#Port">Port</A></LI>
165<LI><A HREF="#PreserveJobHistory">PreserveJobHistory</A></LI>
166<LI><A HREF="#PreserveJobFiles">PreserveJobFiles</A></LI>
167<LI><A HREF="#Printcap">Printcap</A></LI>
08e230aa 168<LI><A HREF="#PrintcapFormat">PrintcapFormat</A></LI>
169<LI><A HREF="#PrintcapGUI">PrintcapGUI</A></LI>
97ae2a96 170<LI><A HREF="#RemoteRoot">RemoteRoot</A></LI>
171<LI><A HREF="#RequestRoot">RequestRoot</A></LI>
ffb44853 172<LI><A HREF="#Require">Require</A></LI>
97ae2a96 173<LI><A HREF="#RIPCache">RIPCache</A></LI>
b1d503b0 174<LI><A HREF="#RunAsUser">RunAsUser</A></LI>
ffb44853 175<LI><A HREF="#Satisfy">Satisfy</A></LI>
97ae2a96 176<LI><A HREF="#ServerAdmin">ServerAdmin</A></LI>
177<LI><A HREF="#ServerBin">ServerBin</A></LI>
b1d503b0 178<LI><A HREF="#ServerCertificate">ServerCertificate</A></LI>
179<LI><A HREF="#ServerKey">ServerKey</A></LI>
97ae2a96 180<LI><A HREF="#ServerName">ServerName</A></LI>
181<LI><A HREF="#ServerRoot">ServerRoot</A></LI>
b1d503b0 182<LI><A HREF="#SSLListen">SSLListen</A></LI>
183<LI><A HREF="#SSLPort">SSLPort</A></LI>
97ae2a96 184<LI><A HREF="#SystemGroup">SystemGroup</A></LI>
185<LI><A HREF="#TempDir">TempDir</A></LI>
186<LI><A HREF="#Timeout">Timeout</A></LI>
187<LI><A HREF="#User">User</A></LI>
188</UL>
189<LI><A HREF="#PRINTING_SECURITY">Printing System Security</A></LI>
190<UL>
191<LI><A HREF="#CERTIFICATES">Authentication Using Certificates</A></LI>
192<LI><A HREF="#7_5_2">Using Basic Authentication</A></LI>
193<LI><A HREF="#7_5_3">Using Digest Authentication</A></LI>
194<LI><A HREF="#7_5_4">System and Group Authentication</A></LI>
195</UL>
196<LI><A HREF="#PRINTER_ACCOUNTING">Printer Accounting</A></LI>
197<UL>
198<LI><A HREF="#7_6_1">The access_log File</A></LI>
199<LI><A HREF="#7_6_2">The error_log File</A></LI>
200<LI><A HREF="#7_6_3">The page_log File</A></LI>
201</UL>
202<LI><A HREF="#FILE_TYPING_FILTERING">File Typing and Filtering</A></LI>
203<UL>
204<LI><A HREF="#7_7_1">mime.types</A></LI>
205<LI><A HREF="#7_7_2">mime.convs</A></LI>
206<LI><A HREF="#7_7_3">Adding Filetypes and Filters</A></LI>
207<LI><A HREF="#7_7_4">Printer Drivers and PPD Files</A></LI>
208<LI><A HREF="#7_7_5">Writing Your Own Filter or Printer Driver</A></LI>
209</UL>
210</UL>
211<B><A HREF="#PRINTING_OTHER">7 - Printing with Other Systems</A></B>
212<UL>
213<LI><A HREF="#8_1">The Basics</A></LI>
214<LI><A HREF="#8_2">Printing from LPD Clients</A></LI>
215<LI><A HREF="#8_3">Printing to LPD Servers</A></LI>
216<LI><A HREF="#8_4">Printing from Mac OS Clients</A></LI>
217<UL>
218<LI><A HREF="#8_4_1">Columbia Appletalk Package (CAP)</A></LI>
219<LI><A HREF="#8_4_2">XINET KA/Spool</A></LI>
220<LI><A HREF="#8_4_3">NetATalk</A></LI>
221</UL>
222<LI><A HREF="#8_5">Printing to Mac OS Servers</A></LI>
223<LI><A HREF="#8_6">Printing from Windows Clients</A></LI>
08e230aa 224<UL>
225<LI><A HREF="#8_6_1">Exporting Printer Drivers</A></LI>
226</UL>
97ae2a96 227<LI><A HREF="#8_7">Printing to Windows Servers</A></LI>
228</UL>
229<B><A HREF="#LICENSE">A - Software License Agreement</A></B>
230<UL>
231<LI><A HREF="#9_1">Common UNIX Printing System License Agreement</A></LI>
232<UL>
233<LI><A HREF="#9_1_1">Introduction</A></LI>
4d6467dd 234<LI><A HREF="#9_1_2">Apple Operating System Development License
235 Exception</A></LI>
236<LI><A HREF="#9_1_3">Trademarks</A></LI>
237<LI><A HREF="#9_1_4">Binary Distribution Rights</A></LI>
238<LI><A HREF="#9_1_5">Support</A></LI>
97ae2a96 239</UL>
240<LI><A HREF="#9_2">GNU GENERAL PUBLIC LICENSE</A></LI>
241<LI><A HREF="#9_3">GNU LIBRARY GENERAL PUBLIC LICENSE</A></LI>
242</UL>
243<B><A HREF="#COMMON_NETWORK">B - Common Network Settings</A></B>
244<UL>
245<LI><A HREF="#10_1">Configuring a Network Interface</A></LI>
246<UL>
247<LI><A HREF="#10_1_1">Configuring the IP Address Using ARP</A></LI>
248<LI><A HREF="#10_1_2">Configuring the IP Address Using RARP</A></LI>
249<LI><A HREF="#10_1_3">Configuring the IP Address Using BOOTP</A></LI>
250</UL>
251<LI><A HREF="#10_2">Verifying the Printer Connection</A></LI>
252<LI><A HREF="#10_3">Common Network Interface Settings</A></LI>
253<LI><A HREF="#AXIS">Configuring Axis Print Servers</A></LI>
254<LI><A HREF="#LINKSYS">Configuring Linksys Print Servers</A></LI>
255</UL>
256<B><A HREF="#PRINTER_DRIVERS">C - Printer Drivers</A></B>
257<UL>
258<LI><A HREF="#11_1">Printer Drivers</A></LI>
259<LI><A HREF="#EPSON9">EPSON 9-pin Dot Matrix</A></LI>
260<LI><A HREF="#EPSON24">EPSON 24-pin Dot Matrix</A></LI>
261<LI><A HREF="#STCOLOR">EPSON Stylus Color</A></LI>
262<LI><A HREF="#STPHOTO">EPSON Stylus Photo</A></LI>
263<LI><A HREF="#DESKJET">HP DeskJet</A></LI>
264<LI><A HREF="#LASERJET">HP LaserJet</A></LI>
265</UL>
266<B><A HREF="#FILES">D - List of Files</A></B>
b1d503b0 267<BR>
268<BR><B><A HREF="#FAQ">E - Troubleshooting Common Problems</A></B>
04d756fc 269<UL>
97ae2a96 270<LI><A HREF="#13_1">My Applications Don't See the Available Printers</A></LI>
271<LI><A HREF="#13_2">CUPS Doesn't Recognize My Username or Password!</A></LI>
e193bc2c 272<LI><A HREF="#ALLOW_REMOTE">I Can't Do Administration Tasks from Another
d5c7e2d1 273 Machine!</A></LI>
97ae2a96 274<LI><A HREF="#13_4">I Can't Do Administration Tasks from My Web Browser!</A>
04d756fc 275</LI>
97ae2a96 276<LI><A HREF="#13_5">Connection Refused Messages</A></LI>
277<LI><A HREF="#13_6">Write Error Messages</A></LI>
e75387bc 278</UL>
279<HR>
97ae2a96 280<H1 ALIGN="RIGHT"><A NAME="1">Preface</A></H1>
d5c7e2d1 281<P>This software administrators manual provides printer administration
282 information for the Common UNIX Printing System<SUP>TM</SUP> (&quot;CUPS<SUP>
19adc906 283TM</SUP>&quot;), version 1.1.15.</P>
97ae2a96 284<H2><A NAME="1_1">System Overview</A></H2>
d5c7e2d1 285<P>CUPS provides a portable printing layer for UNIX&reg;-based operating
286 systems. It has been developed by<A HREF="http://www.easysw.com"> Easy
287 Software Products</A> to promote a standard printing solution for all
288 UNIX vendors and users. CUPS provides the System V and Berkeley
289 command-line interfaces.</P>
290<P>CUPS uses the Internet Printing Protocol (&quot;IPP&quot;) as the basis for
291 managing print jobs and queues. The Line Printer Daemon (&quot;LPD&quot;) Server
292 Message Block (&quot;SMB&quot;), and AppSocket (a.k.a. JetDirect) protocols are
293 also supported with reduced functionality. CUPS adds network printer
294 browsing and PostScript Printer Description (&quot;PPD&quot;) based printing
295 options to support real-world printing under UNIX.</P>
296<P>CUPS also includes a customized version of GNU Ghostscript (currently
297 based off GNU Ghostscript 5.50) and an image file RIP that are used to
298 support non-PostScript printers. Sample drivers for HP and EPSON
299 printers are included that use these filters.</P>
38138d28 300
97ae2a96 301<!-- NEED 3in -->
97ae2a96 302<H2><A NAME="1_2">Document Overview</A></H2>
d5c7e2d1 303<P>This software administrators manual is organized into the following
304 sections:</P>
97ae2a96 305<UL>
306<LI><A HREF="#OVERVIEW">1 - Printing System Overview</A></LI>
307<LI><A HREF="#BUILDING_INSTALLING">2 - Building and Installing CUPS</A></LI>
308<LI><A HREF="#MANAGING_PRINTERS">3 - Managing Printers</A></LI>
309<LI><A HREF="#PRINTER_CLASSES">4 - Printer Classes</A></LI>
310<LI><A HREF="#CLIENT_SETUP">5 - Client Setup</A></LI>
311<LI><A HREF="#PRINTING_MANAGEMENT">6 - Printing System Management</A></LI>
312<LI><A HREF="#PRINTING_OTHER">7 - Printing with Other Systems</A></LI>
313<LI><A HREF="#LICENSE">A - Software License Agreement</A></LI>
314<LI><A HREF="#COMMON_NETWORK">B - Common Network Settings</A></LI>
315<LI><A HREF="#PRINTER_DRIVERS">C - Printer Drivers</A></LI>
316<LI><A HREF="#FILES">D - List of Files</A></LI>
317<LI><A HREF="#FAQ">E - Troubleshooting Common Problems</A></LI>
318</UL>
319<H2><A NAME="1_3">Notation Conventions</A></H2>
d5c7e2d1 320<P>Various font and syntax conventions are used in this guide. Examples
321 and their meanings and uses are explained below:
ecf3075f 322<CENTER>
323<TABLE WIDTH="80%">
97ae2a96 324<TR><TH>Example</TH><TD>&nbsp;&nbsp;&nbsp;</TD><TH>Description</TH></TR>
325<TR><TD>&nbsp;</TD></TR>
326<TR VALIGN="TOP"><TD><CODE>lpstat</CODE>
d5c7e2d1 327<BR> <CODE>lpstat(1)</CODE></TD><TD>&nbsp;&nbsp;&nbsp;</TD><TD>The names of commands;
328 the first mention of a command or function in a chapter is followed by
329 a manual page section number.</TD></TR>
97ae2a96 330<TR><TD>&nbsp;</TD></TR>
331<TR VALIGN="TOP"><TD><VAR>/var</VAR>
b1d503b0 332<BR><VAR> /usr/share/cups/data/testprint.ps</VAR></TD><TD>&nbsp;&nbsp;&nbsp;</TD><TD>
97ae2a96 333File and directory names.</TD></TR>
334<TR><TD>&nbsp;</TD></TR>
335<TR VALIGN="TOP"><TD NOWRAP><TT>Request ID is Printer-123</TT></TD><TD>
336&nbsp;&nbsp;&nbsp;</TD><TD>Screen output.</TD></TR>
337<TR><TD>&nbsp;</TD></TR>
338<TR VALIGN="TOP"><TD NOWRAP><KBD>lp -d printer filename ENTER</KBD></TD><TD>
d5c7e2d1 339&nbsp;&nbsp;&nbsp;</TD><TD>Literal user input; special keys like <KBD>ENTER</KBD> are
97ae2a96 340 in ALL CAPS.</TD></TR>
341<TR><TD>&nbsp;</TD></TR>
d5c7e2d1 342<TR VALIGN="TOP"><TD>12.3</TD><TD>&nbsp;&nbsp;&nbsp;</TD><TD>Numbers in the text are
343 written using the period (.) to indicate the decimal point.</TD></TR>
ecf3075f 344</TABLE>
345</CENTER>
346
97ae2a96 347<!-- NEED 3in -->
d360fe65 348</P>
97ae2a96 349<H2><A NAME="1_4">Abbreviations</A></H2>
d5c7e2d1 350 The following abbreviations are used throughout this manual:
ecf3075f 351<UL>
352<DL>
d5c7e2d1 353<DT>kb</DT>
97ae2a96 354<DD>Kilobytes, or 1024 bytes
d5c7e2d1 355<BR>&nbsp;</DD>
356<DT>Mb</DT>
97ae2a96 357<DD>Megabytes, or 1048576 bytes
d5c7e2d1 358<BR>&nbsp;</DD>
359<DT>Gb</DT>
97ae2a96 360<DD>Gigabytes, or 1073741824 bytes
d5c7e2d1 361<BR>&nbsp;</DD>
ecf3075f 362</DL>
363</UL>
97ae2a96 364<H2><A NAME="1_5">Other References</A></H2>
ecf3075f 365<UL>
366<DL>
d5c7e2d1 367<DT>CUPS Software Programmers Manual</DT>
368<DD>A programmer guide for interfacing with and/or extending the CUPS
97ae2a96 369 software.
d5c7e2d1 370<BR>&nbsp;</DD>
371<DT>CUPS Software Users Manual</DT>
97ae2a96 372<DD>An end-user guide for using the CUPS software.
d5c7e2d1 373<BR>&nbsp;</DD>
ecf3075f 374</DL>
ba8a42d9 375</UL>
97ae2a96 376<H1 ALIGN="RIGHT"><A NAME="OVERVIEW">1 - Printing System Overview</A></H1>
d5c7e2d1 377<P>This chapter provides an overview of how the Common UNIX Printing
378 System works.</P>
97ae2a96 379<H2><A NAME="2_1">The Printing Problem</A></H2>
d5c7e2d1 380<P>For years<I> the printing problem</I> has plagued UNIX. Unlike
381 Microsoft&reg; Windows&reg; or Mac OS, UNIX has no standard interface or system
382 in place for supporting printers. Among the solutions currently
383 available, the Berkeley and System V printing systems are the most
384 prevalent.</P>
385<P>These printing systems support line printers (text only) or
386 PostScript printers (text and graphics), and with some coaxing they can
387 be made to support a full range of printers and file formats. However,
388 because each varient of the UNIX operating system uses a different
389 printing system than the next developing printer drivers for a wide
390 range of printers and operating systems is extremely difficult. That
391 combined with the limited volume of customers for each UNIX varient has
392 forced most printer vendors to give up supporting UNIX entirely.</P>
393<P>CUPS is designed to eliminate<I> the printing problem</I>. One common
394 printing system can be used by all UNIX varients to support the
395 printing needs of users. Printer vendors can use its modular filter
396 interface to develop a single driver program that supports a wide range
397 of file formats with little or no effort. Since CUPS provides both the
398 System V and Berkeley printing commands, users (and applications) can
399 reap the benefits of this new technology with no changes.</P>
97ae2a96 400<H2><A NAME="2_2">The Technology</A></H2>
d5c7e2d1 401<P>CUPS is based upon an emerging Internet standard called the Internet
402 Printing Protocol. IPP has been embraced by dozens of printer and
403 printer server manufacturers and is supported by Microsoft Windows
404 2000.</P>
405<P>IPP defines a standard protocol for printing as well as managing
406 print jobs and printer options like media size, resolution, and so
407 forth. Like all IP-based protocols, IPP can be used locally or over the
408 Internet to printers hundreds or thousands of miles away. Unlike other
409 protocols, however, IPP also supports access control, authentication,
410 and encryption, making it a much more capable and secure printing
411 solution than older ones.</P>
412<P>IPP is layered on top of the Hyper-Text Transport Protocol (&quot;HTTP&quot;)
413 which is the basis of web servers on the Internet. This allows users to
414 view documentation, check status information on a printer or server,
415 and manage their printers, classes, and jobs using their web browser.</P>
416<P>CUPS provides a complete IPP/1.1 based printing system that provides
417 Basic, Digest, and local certificate authentication and user, domain,
418 or IP-based access control. TLS encryption will be available in future
419 versions of CUPS.</P>
97ae2a96 420<H2><A NAME="2_3">Jobs</A></H2>
d5c7e2d1 421<P>Each file or set of files that is submitted for printing is called a<I>
422 job</I>. Jobs are identified by a unique number starting at 1 and are
423 assigned to a particular destination, usually a printer. Jobs can also
424 have options associated with them such as media size, number of copies,
425 and priority.</P>
97ae2a96 426<H2><A NAME="2_4">Classes</A></H2>
d5c7e2d1 427<P>CUPS supports collections of printers known as<I> classes</I>. Jobs
428 sent to a class are forwarded to the first available printer in the
429 class.</P>
97ae2a96 430<H2><A NAME="2_5">Filters</A></H2>
d5c7e2d1 431<P>Filters allow a user or application to print many types of files
432 without extra effort. Print jobs sent to a CUPS server are filtered
433 before sending them to a printer. Some filters convert job files to
434 different formats that the printer can understand. Others perform page
435 selection and ordering tasks.</P>
436<P>CUPS provides filters for printing many types of image files, HP-GL/2
437 files, PDF files, and text files. CUPS also supplies PostScript and
438 image file Raster Image Processor (&quot;RIP&quot;) filters that convert
439 PostScript or image files into bitmaps that can be sent to a raster
440 printer.</P>
97ae2a96 441<H2><A NAME="2_6">Backends</A></H2>
d5c7e2d1 442<P>Backends perform the most important task of all - they send the
443 filtered print data to the printer.</P>
444<P>CUPS provides backends for printing over parallel, serial, and USB
445 ports, and over the network via the IPP, JetDirect (AppSocket), and
446 Line Printer Daemon (&quot;LPD&quot;) protocols. Additional backends are
447 available in network service packages such as the SMB backend included
448 with the popular SAMBA software.</P>
449<P>Backends are also used to determine the available devices. On startup
450 each backend is asked for a list of devices it supports, and any
451 information that is available. This allows the parallel backend to tell
452 CUPS that an EPSON Stylus Color 600 printer is attached to parallel
453 port 1, for example.</P>
97ae2a96 454<H2><A NAME="2_7">Printer Drivers</A></H2>
d5c7e2d1 455<P>Printer drivers in CUPS consist of one of more filters specific to a
456 printer. CUPS includes sample printer drivers for Hewlett-Packard
457 LaserJet and DeskJet printers and EPSON 9-pin, 24-pin, Stylus Color,
458 and Stylus Photo printers. While these drivers do not generate optimal
459 output for the different printer models, they do provide basic printing
460 and demonstrate how you can write your own printer drivers and
461 incorporate them into CUPS.</P>
97ae2a96 462<H2><A NAME="2_8">Networking</A></H2>
d5c7e2d1 463<P>Printers and classes on the local system are automatically shared
464 with other systems on the network. This allows you to setup one system
465 to print to a printer and use this system as a printer server or spool
466 host for all of the others. Users may then select a local printer by
467 name or a remote printer using &quot;name@server&quot;.</P>
468<P>CUPS also provides<I> implicit classes</I>, which are collections of
469 printers and/or classes with the same name. This allows you to setup
470 multiple servers pointing to the same physical network printer, for
471 example, so that you aren't relying on a single system for printing.
472 Because this also works with printer classes, you can setup multiple
473 servers and printers and never worry about a single point of failure
474 unless all of the printers and servers go down!</P>
475<H1 ALIGN="RIGHT"><A NAME="BUILDING_INSTALLING">2 - Building and
476 Installing CUPS</A></H1>
477<P>This chapter shows how to build and install the Common UNIX Printing
478 System. If you are installing a binary distribution from the CUPS web
479 site, proceed to the section titled,<A HREF="#BINARY"> Installing a
480 Binary Distribution</A>.</P>
97ae2a96 481<H2><A NAME="3_1">Installing a Source Distribution</A></H2>
d5c7e2d1 482<P>This section describes how to compile and install CUPS on your system
483 from the source code.</P>
97ae2a96 484<H3><A NAME="REQUIREMENTS">Requirements</A></H3>
d5c7e2d1 485<P>You'll need ANSI-compliant C and C++ compilers to build CUPS on your
486 system. As its name implies, CUPS is designed to run on the UNIX
487 operating system, however the CUPS interface library and most of the
488 filters and backends supplied with CUPS should also compile and run
489 under Microsoft Windows.</P>
490<P>For the image file filters and PostScript RIP, you'll need the JPEG,
491 PNG, TIFF, and ZLIB libraries. CUPS will build without these, but with
492 significantly reduced functionality. Easy Software Products maintains a
493 mirror of the current versions of these libraries at:</P>
97ae2a96 494<UL>
495<PRE>
496<A HREF="ftp://ftp.easysw.com/pub/libraries">ftp://ftp.easysw.com/pub/libraries</A>
497</PRE>
498</UL>
d5c7e2d1 499<P>If you make changes to the man pages you'll need GNU groff or another
500 nroff-like package. GNU groff is available from:</P>
97ae2a96 501<UL>
502<PRE>
503<A HREF="ftp://ftp.gnu.org/pub/groff">ftp://ftp.gnu.org/pub/groff</A>
504</PRE>
505</UL>
d5c7e2d1 506<P>The documentation is formatted using the HTMLDOC software. If you
507 need to make changes you can get the HTMLDOC software from:</P>
97ae2a96 508<UL>
509<PRE>
510<A HREF="http://www.easysw.com/htmldoc">http://www.easysw.com/htmldoc</A>
511</PRE>
512</UL>
7159de3d 513<P>Finally, you'll need a <CODE>make</CODE> program that understands the
514 <CODE>include</CODE> directive - FreeBSD, NetBSD, and OpenBSD
515 developers should use the <CODE>gmake</CODE> program.</P>
97ae2a96 516<H3><A NAME="COMPILING">Compiling CUPS</A></H3>
d5c7e2d1 517<P>CUPS uses GNU autoconf to configure the makefiles and source code for
518 your system. Type the following command to configure CUPS for your
519 system:</P>
97ae2a96 520<UL>
521<PRE>
522<B>./configure ENTER</B>
523</PRE>
524</UL>
d5c7e2d1 525<P>The default installation will put the CUPS software in the<VAR> /etc</VAR>
526,<VAR> /usr</VAR>, and<VAR> /var</VAR> directories on your system, which
527 will overwrite any existing printing commands on your system. Use the <CODE>
528--prefix</CODE> option to install the CUPS software in another location:</P>
97ae2a96 529<UL>
530<PRE>
531<B>./configure --prefix=/some/directory ENTER</B>
532</PRE>
533</UL>
d5c7e2d1 534<P>If the PNG, JPEG, TIFF, and ZLIB libraries are not installed in a
535 system default location (typically<VAR> /usr/include</VAR> and<VAR>
536 /usr/lib</VAR>) you'll need to set the <CODE>CFLAGS</CODE>, <CODE>
537CXXFLAGS</CODE>, and <CODE>LDFLAGS</CODE> environment variables prior to
538 running configure:</P>
97ae2a96 539<UL>
540<PRE>
541<B>setenv CFLAGS &quot;-I/some/directory&quot; ENTER</B>
542<B>setenv CXXFLAGS &quot;-I/some/directory&quot; ENTER</B>
543<B>setenv LDFLAGS &quot;-L/some/directory&quot; ENTER</B>
b1d503b0 544<B>setenv DSOFLAGS &quot;-L/some/directory&quot; ENTER</B>
97ae2a96 545<B>./configure ... ENTER</B>
546</PRE>
547</UL>
d5c7e2d1 548<P>or:</P>
97ae2a96 549<UL>
550<PRE>
551<B>CFLAGS=&quot;-I/some/directory&quot;; export CFLAGS ENTER</B>
552<B>CXXFLAGS=&quot;-I/some/directory&quot;; export CXXFLAGS ENTER</B>
553<B>LDFLAGS=&quot;-L/some/directory&quot;; export LDFLAGS ENTER</B>
b1d503b0 554<B>DSOFLAGS=&quot;-L/some/directory&quot;; export DSOFLAGS ENTER</B>
97ae2a96 555<B>./configure ... ENTER</B>
556</PRE>
04d756fc 557</UL>
d5c7e2d1 558<P>To enable support for encryption, you'll also want to add the
559 &quot;--enable-ssl&quot; option:</P>
7428af94 560<UL>
561<PRE>
97ae2a96 562./configure --enable-ssl
563</PRE>
7428af94 564</UL>
d5c7e2d1 565<P>SSL and TLS support require the OpenSSL library, available at:</P>
7428af94 566<UL>
567<PRE>
97ae2a96 568<A HREF="http://www.openssl.org">http://www.openssl.org</A>
569</PRE>
7428af94 570</UL>
7159de3d 571<P>If the OpenSSL headers and libraries are not installed in the
572 standard directories, use the <CODE>--with-openssl-includes</CODE> and <CODE>
573--with-openssl-libs</CODE> options:</P>
574<UL>
575<PRE>
576./configure --enable-ssl \
577 --with-openssl-includes=/foo/bar/include \
578 --with-openssl-libs=/foo/bar/lib
579</PRE>
580</UL>
d5c7e2d1 581<P>Once you have configured things, just type:</P>
04d756fc 582<UL>
583<PRE>
97ae2a96 584<B>make ENTER</B>
585</PRE>
04d756fc 586</UL>
d5c7e2d1 587<P>to build the software.
97ae2a96 588<!-- NEED 4in -->
d360fe65 589</P>
97ae2a96 590<H3><A NAME="INSTALLING">Installing the Software</A></H3>
d5c7e2d1 591<P>Use the &quot;install&quot; target to install the software:</P>
ba8a42d9 592<UL>
593<PRE>
97ae2a96 594<B>make install ENTER</B>
595</PRE>
ba8a42d9 596</UL>
fd7cc15d 597<CENTER>
598<TABLE BGCOLOR="#cccccc" BORDER="1" CELLPADDING="5" WIDTH="80%">
97ae2a96 599<TR><TD><B> WARNING:</B>
d5c7e2d1 600<P>Installing CUPS will overwrite your existing printing system. If you
601 experience difficulties with the CUPS software and need to go back to
602 your old printing system, you will need to reinstall the old printing
603 system from your operating system CDs.</P>
fd7cc15d 604</TD></TR>
605</TABLE>
606</CENTER>
97ae2a96 607<H3><A NAME="RUNNING">Running the Software</A></H3>
d5c7e2d1 608<P>Once you have installed the software you can start the CUPS server by
609 typing:</P>
ba8a42d9 610<UL>
611<PRE>
97ae2a96 612<B>/usr/sbin/cupsd ENTER</B>
613</PRE>
ba8a42d9 614</UL>
38138d28 615
97ae2a96 616<!-- NEED 4in -->
97ae2a96 617<H2><A NAME="BINARY">Installing a Binary Distribution</A></H2>
d5c7e2d1 618<P>CUPS comes in a variety of binary distribution formats. Easy Software
619 Products provides binaries in TAR format with installation and removal
620 scripts (&quot;portable&quot; distributions), and in RPM and DPKG formats for Red
621 Hat and Debian-based distributions. Portable distributions are
622 available for all platforms, while the RPM and DPKG distributions are
623 only available for Linux.
fd7cc15d 624<CENTER>
625<TABLE BGCOLOR="#cccccc" BORDER="1" CELLPADDING="5" WIDTH="80%">
97ae2a96 626<TR><TD><B> WARNING:</B>
d5c7e2d1 627<P>Installing CUPS will overwrite your existing printing system. If you
628 experience difficulties with the CUPS software and need to go back to
629 your old printing system, you will need to remove the CUPS software
630 with the provided script and/or reinstall the old printing system from
631 your operating system CDs.</P>
fd7cc15d 632</TD></TR>
633</TABLE>
634</CENTER>
635</P>
97ae2a96 636<H3><A NAME="PORTABLE-BINARY">Installing a Portable Distribution</A></H3>
d5c7e2d1 637<P>To install the CUPS software from a portable distribution you will
638 need to be logged in as root; doing an <CODE>su</CODE> is good enough.
639 Once you are the root user, run the installation script with:</P>
41f765f4 640<UL>
641<PRE>
97ae2a96 642<B>./cups.install ENTER</B>
643</PRE>
41f765f4 644</UL>
d5c7e2d1 645<P>After asking you a few yes/no questions the CUPS software will be
646 installed and the scheduler will be started automatically.
97ae2a96 647<!-- NEED 2in -->
d360fe65 648</P>
97ae2a96 649<H3><A NAME="RPM-BINARY">Installing an RPM Distribution</A></H3>
d5c7e2d1 650<P>To install the CUPS software from an RPM distribution you will need
651 to be logged in as root; doing an <CODE>su</CODE> is good enough. Once
652 you are the root user, run RPM with:</P>
38138d28 653<UL>
654<PRE>
97ae2a96 655<B>rpm -e lpr</B>
656<B>rpm -i cups-1.1-linux-M.m.n-intel.rpm ENTER</B>
657</PRE>
38138d28 658</UL>
d5c7e2d1 659<P>After a short delay the CUPS software will be installed and the
660 scheduler will be started automatically.</P>
97ae2a96 661<H3><A NAME="DPKG-BINARY">Installing an Debian Distribution</A></H3>
d5c7e2d1 662<P>To install the CUPS software from a Debian distribution you will need
663 to be logged in as root; doing an <CODE>su</CODE> is good enough. Once
664 you are the root user, run dpkg with:</P>
38138d28 665<UL>
666<PRE>
97ae2a96 667<B>dpkg -i cups-1.1-linux-M.m.n-intel.deb ENTER</B>
668</PRE>
38138d28 669</UL>
d5c7e2d1 670<P>After a short delay the CUPS software will be installed and the
671 scheduler will be started automatically.</P>
e193bc2c 672<H1 ALIGN="RIGHT"><A NAME="MANAGING_PRINTERS">3 - Managing Printers</A></H1>
d5c7e2d1 673<P>This chapter describes how to add your first printer and how to
674 manage your printers.</P>
97ae2a96 675<H2><A NAME="4_1">The Basics</A></H2>
d5c7e2d1 676<P>Each printer queue has a name associated with it; the printer name
677 must start with a letter and can contain up to 127 letters, numbers,
678 and the underscore (_). Case is not significant, e.g. &quot;PRINTER&quot;,
679 &quot;Printer&quot;, and &quot;printer&quot; are considered to be the same name.</P>
680<P>Printer queues also have a device associated with them. The device
681 can be a parallel port, a network interface, and so forth. Devices
682 within CUPS use Uniform Resource Identifiers (&quot;URIs&quot;) which are a more
683 general form of Uniform Resource Locators (&quot;URLs&quot;) that are used in
684 your web browser. For example, the first parallel port in Linux usually
685 uses a device URI of <CODE>parallel:/dev/lp1</CODE>.
97ae2a96 686<!-- NEED 2.5in -->
d360fe65 687</P>
97ae2a96 688<P>You can see a complete list of supported devices by running the <CODE>
d5c7e2d1 689lpinfo(8)</CODE> command:</P>
97ae2a96 690<UL>
691<PRE>
692<B>lpinfo -v ENTER</B>
693file file
694network socket
695network http
696network ipp
697network lpd
698direct parallel:/dev/lp1
699serial serial:/dev/ttyS1?baud=115200
700serial serial:/dev/ttyS2?baud=115200
701direct usb:/dev/usb/lp0
702network smb
703</PRE>
704</UL>
d5c7e2d1 705<P>The <CODE>-v</CODE> option specifies that you want a list of
706 available devices. The first word in each line is the type of device
707 (direct, file, network, or serial) and is followed by the device URI or
708 method name for that device. File devices have device URIs of the form <CODE>
709file:/directory/filename</CODE> while network devices use the more
710 familiar <CODE>method://server</CODE> or <CODE>method://server/path</CODE>
711 format.</P>
712<P>Finally, printer queues usually have a PostScript Printer Description
713 (&quot;PPD&quot;) file associated with them. PPD files describe the capabilities
714 of each printer, the page sizes supported, etc., and are used for
715 PostScript and non-PostScript printers. CUPS includes PPD files for HP
716 LaserJet, HP DeskJet, EPSON 9-pin, EPSON 24-pin, and EPSON Stylus
717 printers.</P>
97ae2a96 718<H2><A NAME="4_2">Adding Your First Printer</A></H2>
d5c7e2d1 719<P>CUPS provides two methods for adding printers: a command-line program
720 called <CODE>lpadmin(8)</CODE> and a Web interface. The <CODE>lpadmin</CODE>
721 command allows you to perform most printer administration tasks from
722 the command-line and is located in<VAR> /usr/sbin</VAR>. The Web
723 interface is located at:</P>
97ae2a96 724<UL>
725<PRE>
726<A HREF="http://localhost:631/admin">http://localhost:631/admin</A>
727</PRE>
728</UL>
d5c7e2d1 729<P>and steps you through printer configuration. If you don't like
730 command-line interfaces, try the<A HREF="#ADD_WEB"> Web interface</A>
731 instead.</P>
97ae2a96 732<H3><A NAME="4_2_1">Adding Your First Printer from the Command-Line</A></H3>
d5c7e2d1 733<P>Run the <CODE>lpadmin</CODE> command with the <CODE>-p</CODE> option
734 to add a printer to CUPS:</P>
97ae2a96 735<UL>
736<PRE>
737<B>/usr/sbin/lpadmin -p <I>printer</I> -E -v <I>device</I> -m <I>ppd</I> ENTER</B>
738</PRE>
739</UL>
d5c7e2d1 740<P>For an HP DeskJet printer connected to the parallel port this would
741 look like:</P>
97ae2a96 742<UL>
743<PRE>
744<B>/usr/sbin/lpadmin -p DeskJet -E -v parallel:/dev/lp1 -m deskjet.ppd ENTER</B>
745</PRE>
746</UL>
d5c7e2d1 747<P>Similarly, an HP LaserJet printer using a JetDirect network interface
748 at IP address 11.22.33.44 would be added with the command:</P>
97ae2a96 749<UL>
750<PRE>
751<B>/usr/sbin/lpadmin -p LaserJet -E -v socket://11.22.33.44 -m laserjet.ppd ENTER</B>
752</PRE>
753</UL>
754<P>As you can see, <CODE>deskjet.ppd</CODE> and <CODE>laserjet.ppd</CODE>
d5c7e2d1 755 are the PPD files for the HP DeskJet and HP LaserJet drivers included
756 with CUPS. You'll find a complete list of PPD files and the printers
757 they will work with in<A HREF="#PRINTER_DRIVERS"> Appendix C, &quot;Printer
758 Drivers&quot;</A>.</P>
bdd38781 759<P>For a dot matrix printer connected to the serial port this would
760 might look like:</P>
761<UL>
762<PRE>
763<B>/usr/sbin/lpadmin -p DotMatrix -E -v serial:/dev/ttyS0?baud=9600+size=8+parity=none+flow=soft deskjet.ppd ENTER</B>
764</PRE>
765</UL>
766<P>Here you specify the serial port (e.g. S0,S1, d0, d1), baud rate
767 (e.g. 9600, 19200, 38400, 115200, etc.), number of bits, parity, and
768 flow control. If you do not need flow control, delete the &quot;+flow=soft&quot;
769 portion.</P>
97ae2a96 770<H3><A NAME="ADD_WEB">Adding Your First Printer from the Web</A></H3>
d5c7e2d1 771<P>The CUPS web server provides a user-friendly &quot;wizard&quot; interface for
772 adding your printers. Rather than figuring out which device URI and PPD
773 file to use, you can instead click on the appropriate listings and fill
774 in some simple information. Enter the following URL in your web browser
775 to begin:</P>
97ae2a96 776<UL>
777<PRE>
778<A HREF="http://localhost:631/admin">http://localhost:631/admin</A>
779</PRE>
780</UL>
d5c7e2d1 781<P>Click on the<VAR> Add Printer</VAR> button to add a printer.</P>
97ae2a96 782<H2><A NAME="4_3">Managing Printers from the Command-Line</A></H2>
d5c7e2d1 783<P>The <CODE>lpadmin</CODE> command enables you to perform most printer
784 administration tasks from the command-line. You'll find <CODE>lpadmin</CODE>
785 in the<VAR> /usr/sbin</VAR> directory.</P>
97ae2a96 786<H3><A NAME="4_3_1">Adding and Modifying Printers</A></H3>
d5c7e2d1 787<P>Run the <CODE>lpadmin</CODE> command with the <CODE>-p</CODE> option
788 to add or modify a printer:</P>
97ae2a96 789<UL>
790<PRE>
791<B>/usr/sbin/lpadmin -p <I>printer</I> <I>options</I> ENTER</B>
792</PRE>
793</UL>
d5c7e2d1 794<P>The<I> options</I> arguments can be any of the following:</P>
ba8a42d9 795<UL>
97ae2a96 796<DL>
d5c7e2d1 797<DT>-c<I> class</I></DT>
798<DD>Adds the named printer to printer class<VAR> class</VAR>. If the
799 class does not exist then it is created.</DD>
800<DT>-i<I> interface</I></DT>
801<DD>Copies the named<VAR> interface</VAR> script to the printer.
802 Interface scripts are used by System V printer drivers. Since all
803 filtering is disabled when using an interface script, scripts generally
804 should not be used unless there is no other driver for a printer.</DD>
805<DT>-m<I> model</I></DT>
806<DD>Specifies a standard printer driver which is usually a PPD file. A
807 list of all available models can be displayed using the <CODE>lpinfo</CODE>
808 command with the <CODE>-m</CODE> option. A list of printer drivers
809 included with CUPS can be found in<A HREF="#PRINTER_DRIVERS"> Appendix
810 C, &quot;Printer Drivers&quot;</A>.</DD>
811<DT>-r<I> class</I></DT>
812<DD>Removes the named printer from printer class<VAR> class. If the
813 resulting class becomes empty then it is removed.</VAR></DD>
814<DT>-v<I> device-uri</I></DT>
815<DD>Sets the device for communicating with the printer. If a job is
816 currently printing on the named printer then the job will be restarted
817 and sent to the new device.</DD>
818<DT>-D<I> info</I></DT>
819<DD>Provides a textual description of the printer, e.g. &quot;John's Personal
820 Printer&quot;.</DD>
821<DT>-E</DT>
822<DD>Enables the printer and accepts job. This option is equivalent to
823 running the <CODE>enable(1)</CODE> and <CODE>accept(8)</CODE> commands
824 on the printer.</DD>
825<DT>-L<I> location</I></DT>
826<DD>Provides a textual location for the printer, e.g. &quot;Computer Lab 5&quot;.</DD>
827<DT>-P<I> ppd-file</I></DT>
828<DD>Specifies a local PPD file for the printer driver.</DD>
97ae2a96 829</DL>
ba8a42d9 830</UL>
97ae2a96 831<H3><A NAME="4_3_2">Deleting Printers</A></H3>
d5c7e2d1 832<P>Run the <CODE>lpadmin</CODE> command with the <CODE>-x</CODE> option
833 to delete a printer:</P>
ba8a42d9 834<UL>
835<PRE>
97ae2a96 836<B>/usr/sbin/lpadmin -x <I>printer</I> ENTER</B>
837</PRE>
ba8a42d9 838</UL>
97ae2a96 839<H3><A NAME="4_3_3">Setting the Default Printer</A></H3>
d5c7e2d1 840<P>Run the <CODE>lpadmin</CODE> command with the <CODE>-d</CODE> option
841 to set a default printer:</P>
ba8a42d9 842<UL>
843<PRE>
97ae2a96 844<B>/usr/sbin/lpadmin -d <I>printer</I> ENTER</B>
845</PRE>
846</UL>
847<P>The default printer can be overridden by the user using the <CODE>
d5c7e2d1 848lpoptions(1)</CODE> command.</P>
97ae2a96 849<H3><A NAME="4_3_4">Starting and Stopping Printers</A></H3>
d5c7e2d1 850<P>The <CODE>enable</CODE> and <CODE>disable</CODE> commands start and
851 stop printer queues, respectively:</P>
97ae2a96 852<UL>
853<PRE>
854<B>/usr/bin/enable <I>printer</I> ENTER</B>
855<B>/usr/bin/disable <I>printer</I> ENTER</B>
856</PRE>
857</UL>
d5c7e2d1 858<P>Printers that are disabled may still accept jobs for printing, but
859 won't actually print any files until they are restarted. This is useful
860 if the printer malfunctions and you need time to correct the problem.
861 Any queued jobs are printed after the printer is enabled (started).</P>
97ae2a96 862<H3><A NAME="4_3_5">Accepting and Rejecting Print Jobs</A></H3>
d5c7e2d1 863<P>The <CODE>accept</CODE> and <CODE>reject</CODE> commands accept and
864 reject print jobs for the named printer, respectively:</P>
97ae2a96 865<UL>
866<PRE>
867<B>/usr/sbin/accept <I>printer</I> ENTER</B>
868<B>/usr/sbin/reject <I>printer</I> ENTER</B>
869</PRE>
870</UL>
d5c7e2d1 871<P>As noted above, a printer can be stopped but accepting new print
872 jobs. A printer can also be rejecting new print jobs while it finishes
873 those that have been queued. This is useful for when you must perform
874 maintenance on the printer and will not have it available to users for
875 a long period of time.</P>
c4badc90 876<H3><A NAME="4_3_6">Setting Quotas on a Printer</A></H3>
877<P>CUPS supports page and size-based quotas for each printer. The quotas
878 are tracked individually for each user, but a single set of limits
879 applies to all users for a partiuclar printer. For example, you can
880 limit every user to 5 pages per day on an expensive printer, but you
881 cannot limit every user except Johnny.</P>
15093c95 882<P>The<I> job-k-limit</I>,<I> job-page-limit</I>, and<I> job-quota-peiod</I>
883 options determine whether and how quotas are enforced for a printer.
884 The<I> job-quota-period</I> option determines the time interval for
885 quota tracking. The interval is expressed in seconds, so a day is
886 86,400, a week is 604,800 and a month is 2,592,000 seconds. The<I>
887 job-k-limit</I> option specifies the job size limit in killobytes. The<I>
888 job-page-limit</I> option specifies the number of pages limit.</P>
889<P>For quotas to be enforced, the period and at least one of the limits
890 must be set to a non-zero value. The following options will enable
891 quotas:</P>
892<UL>
893<PRE>
c4badc90 894<B>/usr/sbin/lpadmin -p <I>printer</I> -o job-quota-period=604800 -o job-k-limit=1024<I>ENTER</I></B>
895<B>/usr/sbin/lpadmin -p <I>printer</I> -o job-quota-period=604800 -o job-page-limit=100<I>ENTER</I></B>
15093c95 896</PRE>
897</UL>
19adc906 898<P>Or, you can combine all three options on the same line.</P>
c4badc90 899<H3><A NAME="4_3_7">Restricting Access to a Printer</A></H3>
15093c95 900<P>The <CODE>-u</CODE> option of the <CODE>lpadmin</CODE> command
901 controls which users can print to a printer. The default configuration
902 allows all users to print to a printer:</P>
903<UL>
904<PRE>
c4badc90 905<B>/usr/sbin/lpadmin -p <I>printer</I> -u allow:all <I>ENTER</I></B>
15093c95 906</PRE>
907</UL>
c4badc90 908<P>CUPS supports allow and deny lists so that you can specify a list of
909 users who are allowed to print or not allowed to print. Along with your
910 list of users, you can specify whether they are allowed or not allowed
911 to use the printer:</P>
15093c95 912<UL>
913<PRE>
c4badc90 914<B>/usr/sbin/lpadmin -p <I>printer</I> -u allow:peter,paul,mary <I>ENTER</I></B>
15093c95 915</PRE>
916</UL>
917<P>This command allows peter, paul, and mary to print to the named
19adc906 918 printer, but all other users cannot print. The command:</P>
15093c95 919<UL>
920<PRE>
c4badc90 921<B>/usr/sbin/lpadmin -p <I>printer</I> -u deny:peter,paul,mary <I>ENTER</I></B>
15093c95 922</PRE>
923</UL>
924<P>has the opposite effect. All users except peter, paul, and mary will
925 be able to print to the named printer.</P>
926<CENTER>
927<TABLE BGCOLOR="#cccccc" BORDER="1" CELLPADDING="5" WIDTH="80%">
928<TR><TD><B>NOTE:</B>
929<P>The<I> allow</I> and<I> deny</I> options are not cummulative. That
930 is, you must provide the complete list of users to allow or deny each
931 time.</P>
c4badc90 932<P>Also, CUPS only maintains one list of users - the list can allow or
933 deny users from printing. If you specify an allow list and then specify
934 a deny list, the deny list will replace the allow list - only one list
935 is active at any time.</P>
15093c95 936</TD></TR>
937</TABLE>
938</CENTER>
c4badc90 939<H2><A NAME="4_4">Managing Printers from the Web</A></H2>
940<P>The Web interface is located at:</P>
941<UL>
942<PRE>
943<A HREF="http://localhost:631/admin">http://localhost:631/admin</A>
944</PRE>
945</UL>
946<P>From there you can perform all printer management tasks with a few
947 simple mouse clicks.</P>
97ae2a96 948<H1 ALIGN="RIGHT"><A NAME="PRINTER_CLASSES">4 - Printer Classes</A></H1>
d5c7e2d1 949<P>This chapter describes what printer classes are and how to manage
950 them.</P>
97ae2a96 951<H2><A NAME="5_1">The Basics</A></H2>
d5c7e2d1 952<P>CUPS provides collections of printers called<I> printer classes</I>.
953 Jobs sent to a class are forwarded to the first available printer in
954 the class. Classes can themselves be members of other classes, so it is
955 possible for you to define very large, distributed printer classes for
956 high-availability printing.</P>
957<P>CUPS also supports<I> implicit classes</I>. Implicit classes work
958 just like printer classes, but they are created automatically based
959 upon the available printers and classes on the network. This allows you
960 to setup multiple print servers with identical printer configurations
961 and have the client machines send their print jobs to the first
962 available server. If one or more servers go down, the jobs are
963 automatically redirected to the servers that are running, providing
964 fail-safe printing.</P>
97ae2a96 965<H2><A NAME="5_2">Managing Printer Classes from the Command-Line</A></H2>
966<P>Run the <CODE>lpadmin</CODE> command with the <CODE>-p</CODE> and <CODE>
d5c7e2d1 967-c</CODE> options to add a printer to a class:</P>
97ae2a96 968<UL>
969<PRE>
970<B>/usr/sbin/lpadmin -p <I>printer</I> -c <I>class</I> ENTER</B>
971</PRE>
972</UL>
d5c7e2d1 973<P>The<I> class</I> is created automatically if it doesn't exist. To
974 remove a printer from a class use the <CODE>-r</CODE> option:</P>
97ae2a96 975<UL>
976<PRE>
977<B>/usr/sbin/lpadmin -p <I>printer</I> -r <I>class</I> ENTER</B>
978</PRE>
979</UL>
d5c7e2d1 980<P>To remove the entire class just use the <CODE>-x</CODE> option:</P>
97ae2a96 981<UL>
982<PRE>
983<B>/usr/sbin/lpadmin -x <I>class</I> ENTER</B>
984</PRE>
985</UL>
986<H2><A NAME="5_3">Managing Printer Classes from the Web Interface</A></H2>
d5c7e2d1 987<P>The Web interface is located at:</P>
97ae2a96 988<UL>
989<PRE>
990<A HREF="http://localhost:631/admin">http://localhost:631/admin</A>
991</PRE>
992</UL>
d5c7e2d1 993<P>The<VAR> Add Class</VAR> and<VAR> Modify Class</VAR> interfaces
994 provide a list of available printers; click on the printers of interest
995 to add them to the class.</P>
97ae2a96 996<H2><A NAME="5_4">Implicit Classes</A></H2>
d5c7e2d1 997<P>A noted earlier, implicit classes are created automatically from the
998 available network printers and classes. To disable this functionality,
999 set the<A HREF="#ImplicitClasses"> <CODE>ImplicitClasses</CODE></A>
1000 directive to <CODE>Off</CODE> in the <CODE>cupsd.conf</CODE> file. You
1001 will find more information on doing this in<A HREF="#PRINTING_MANAGEMENT">
1002 Chapter 6, &quot;Printing System Management&quot;</A>.</P>
97ae2a96 1003<H1 ALIGN="RIGHT"><A NAME="CLIENT_SETUP">5 - Client Setup</A></H1>
d5c7e2d1 1004<P>This chapter discusses several ways to configure CUPS clients for
1005 printing.</P>
97ae2a96 1006<H2><A NAME="6_1">The Basics</A></H2>
d5c7e2d1 1007<P>A client is any machine that sends print jobs to another machine for
1008 final printing. Clients can also be servers if they communicate
1009 directly with any printers of their own.</P>
1010<P>CUPS supports several methods of configuring client machines:</P>
97ae2a96 1011<UL>
1012<LI><A HREF="#CLIENT_MANUAL">Manual configuration of print queues.</A></LI>
1013<LI><A HREF="#CLIENT_SERVER">Specifying a single server for printing.</A>
1014</LI>
1015<LI><A HREF="#CLIENT_AUTO">Automatic configuration of print queues.</A></LI>
1016<LI><A HREF="#CLIENT_POLL">Specifying multiple servers for printing.</A></LI>
437844a0 1017<LI><A HREF="#CLIENT_RELAY">Relaying printers to other clients.</A></LI>
97ae2a96 1018</UL>
1019<H3><A NAME="CLIENT_MANUAL">Manual Configuration of Print Queues</A></H3>
d5c7e2d1 1020<P>The most tedious method of configuring client machines is to
1021 configure each remote queue by hand using the <CODE>lpadmin</CODE>
1022 command:</P>
97ae2a96 1023<UL>
1024<PRE>
1025<B>lpadmin -p <I>printer</I> -E -v ipp://<I>server</I>/printers/<I>printer</I> ENTER</B>
1026</PRE>
1027</UL>
d5c7e2d1 1028<P>The <CODE>printer</CODE> name is the name of the printer on the
1029 server machine. The <CODE>server</CODE> name is the hostname or IP
1030 address of the server machine. Repeat the <CODE>lpadmin</CODE> command
1031 for each remote printer you wish to use.</P>
437844a0 1032<CENTER>
1033<TABLE BGCOLOR="#cccccc" BORDER="1" CELLPADDING="5" WIDTH="80%">
1034<TR><TD><B> NOTE:</B>
1035<P>Manual configuration of print queues is not recommended for large
1036 numbers of client machines because of the administration nightmare it
1037 creates. For busy networks, consider subnetting groups of clients and
1038 polling and relaying printer information instead.</P>
1039</TD></TR>
1040</TABLE>
1041</CENTER>
97ae2a96 1042<H3><A NAME="CLIENT_SERVER">Specifying a Single Server for Printing</A></H3>
d5c7e2d1 1043<P>CUPS can be configured to run without a local spooler and send all
1044 jobs to a single server. However, if that server goes down then all
1045 printing will be disabled. Use this configuration only as absolutely
1046 needed.</P>
1047<P>The default server is normally &quot;localhost&quot;. To override the default
1048 server create a file named<VAR> /etc/cups/client.conf</VAR> and add a
1049 line reading:</P>
97ae2a96 1050<UL>
1051<PRE>
1052ServerName <I>server</I>
1053</PRE>
1054</UL>
d5c7e2d1 1055<P>to the file. The<VAR> server</VAR> name can be the hostname or IP
1056 address of the default server.</P>
1057<P>The default server can also be customized on a per-user basis. To set
1058 a user-specific server create a file named<VAR> ~/.cupsrc</VAR> and add
1059 a line reading:</P>
97ae2a96 1060<UL>
1061<PRE>
1062ServerName <I>server</I>
1063</PRE>
1064</UL>
d5c7e2d1 1065<P>to the file. The<VAR> server</VAR> name can be the hostname or IP
1066 address of the default server.</P>
97ae2a96 1067<H3><A NAME="CLIENT_AUTO">Automatic Configuration of Print Queues</A></H3>
d5c7e2d1 1068<P>CUPS supports automatic client configuration of printers on the same
1069 subnet. To configure printers on the same subnet,<I> do nothing</I>.
1070 Each client should see the available printers within 30 seconds
1071 automatically. The printer and class lists are updated automatically as
1072 printers and servers are added or removed.</P>
1073<P>If you want to see printers on other subnets as well, use the<A HREF="#BrowsePoll">
1074 <CODE>BrowsePoll</CODE></A> directive as described next.</P>
437844a0 1075<CENTER>
1076<TABLE BGCOLOR="#cccccc" BORDER="1" CELLPADDING="5" WIDTH="80%">
1077<TR><TD><B> NOTE:</B>
1078<P>The<A HREF="#BrowseAddress"> <CODE>BrowseAddress</CODE></A> directive
1079 enables broadcast traffic from your server. The default configuration
1080 braodcasts printer information every 30 seconds. Although this printer
1081 information does not use much bandwidth, typically about 80 bytes per
1082 printer, it can add up with large numbers of servers and printers.</P>
1083<P>Use the<A HREF="#BrowseInterval"> <CODE>BrowseInterval</CODE></A> and<A
1084HREF="#BrowseTimeout"> <CODE>BrowseTimeout</CODE></A> directives to tune
1085 the amount of data that is added to your network load. In addition,
1086 subnets can be used to minimize the amount of traffic that is carried
1087 by the &quot;backbone&quot; of your large network.</P>
1088</TD></TR>
1089</TABLE>
1090</CENTER>
97ae2a96 1091<H3><A NAME="CLIENT_POLL">Specifying Multiple Servers for Printing</A></H3>
d5c7e2d1 1092<P>If you have CUPS servers on different subnets, then you should
1093 configure CUPS to poll those servers. Polling provides the benefits of
1094 automatic configuration without significant configuration on the
1095 clients, and multiple clients on the same subnet can share the same
1096 configuration information.</P>
1097<P>Polling is enabled by specifying one or more<A HREF="#BrowsePoll"> <CODE>
1098BrowsePoll</CODE></A> directives in the<VAR> /etc/cups/cupsd.conf</VAR>
e193bc2c 1099 file. For information on making these changes, see<A HREF="#PRINTING_MANAGEMENT">
d5c7e2d1 1100 Chapter 6, &quot;Printing System Management&quot;</A>.</P>
437844a0 1101<P>Multiple<A HREF="#BrowsePoll"> <CODE>BrowsePoll</CODE></A> lines can
1102 be used to poll multiple CUPS servers. To limit the amount of polling
1103 you do from client machines, you can have only one of the clients do
1104 the polling and relay that information to the others on the same subnet
1105 (described next).</P>
1106<H3><A NAME="CLIENT_RELAY">Relaying Printers to Other Clients</A></H3>
1107<P>When you have clients and servers spread across multiple subnets, the
1108 polling method is inefficient. CUPS provides a<A HREF="#BrowseRelay"> <CODE>
1109BrowseRelay</CODE></A> directive that enables a single client to relay
1110 (broadcast) the polled printer information to the local subnet.</P>
1111<H2><A NAME="6_2">Load Balancing and Failsafe Operation</A></H2>
1112<P>When using server polling or broadcasting, CUPS clients can
1113 automatically merge identical printers on multiple servers into a
1114 single<I> implicit class</I> queue. Clients assume that printers with
1115 the same name on multiple servers are in fact the same printer or type
1116 of printer being served by multiple machines.</P>
1117<P>If you have two printers, LaserJet@ServerA and LaserJet@ServerB, a
1118 third implicit class called<I> LaserJet</I> will be created
1119 automatically on the client that refers to both printers. If the client
1120 also has a local printer with the name LaserJet then an implicit class
1121 named<I> AnyLaserJet</I> will be created instead.</P>
1122<P>The client will alternate between servers and automatically stop
1123 sending jobs to a server if it goes down, providing a load-balancing
1124 effect and fail-safe operation with automatic switchover.</P>
1125<CENTER>
1126<TABLE BGCOLOR="#cccccc" BORDER="1" CELLPADDING="5" WIDTH="80%">
1127<TR><TD><B> NOTE:</B>
1128<P>Note that implicit classes (<A HREF="#ImplicitClasses"><CODE>
1129ImplicitClasses</CODE></A>) are enabled by default.</P>
1130</TD></TR>
1131</TABLE>
1132</CENTER>
d5c7e2d1 1133<H1 ALIGN="RIGHT"><A NAME="PRINTING_MANAGEMENT">6 - Printing System
1134 Management</A></H1>
1135<P>This chapter shows how you can configure the CUPS server.</P>
97ae2a96 1136<H2><A NAME="7_1">The Basics</A></H2>
d5c7e2d1 1137<P>Several text files are used to configure CUPS. All of the server
1138 configuration files are located in the<VAR> /etc/cups</VAR> directory:</P>
e75387bc 1139<UL>
1140<DL>
97ae2a96 1141<!-- NEED 1in -->
d360fe65 1142
d5c7e2d1 1143<DT>classes.conf</DT>
1144<DD>This file contains information on each printer class. Normally you
1145 manipulate this file using the <CODE>lpadmin</CODE> command or the Web
1146 interface.
1147<BR>&nbsp;
97ae2a96 1148<!-- NEED 1in -->
d360fe65 1149</DD>
d5c7e2d1 1150<DT>client.conf</DT>
1151<DD>This file provides the default server name for client machines. See<A
1152HREF="#CLIENT_SETUP"> Chapter 5, &quot;Client Setup&quot;</A> for more
1153 information.
1154<BR>&nbsp;
97ae2a96 1155<!-- NEED 1in -->
d360fe65 1156</DD>
d5c7e2d1 1157<DT>cupsd.conf</DT>
1158<DD>This file controls how the CUPS server (<VAR>/usr/sbin/cupsd</VAR>)
1159 operates and is normally edited by hand.
1160<BR>&nbsp;
97ae2a96 1161<!-- NEED 1in -->
d360fe65 1162</DD>
d5c7e2d1 1163<DT>mime.convs</DT>
1164<DD>This file contains a list of standard file conversion filters and
1165 their costs. You normally do not edit this file.
1166<BR>&nbsp;
97ae2a96 1167<!-- NEED 1in -->
d360fe65 1168</DD>
d5c7e2d1 1169<DT>mime.types</DT>
1170<DD>This file contains a list of standard file formats and how to
97ae2a96 1171 recognize them. You normally do not edit this file.
d5c7e2d1 1172<BR>&nbsp;
97ae2a96 1173<!-- NEED 1in -->
d360fe65 1174</DD>
d5c7e2d1 1175<DT>printers.conf</DT>
1176<DD>This file contains information on each printer. Normally you
1177 manipulate this file using the <CODE>lpadmin</CODE> command or the Web
1178 Interface.
1179<BR>&nbsp;</DD>
e75387bc 1180</DL>
1181</UL>
97ae2a96 1182<H2><A NAME="RESTARTING">Restarting the CUPS Server</A></H2>
d5c7e2d1 1183<P>Once you have made a change to a configuration file you need to
1184 restart the CUPS server by sending it a <CODE>HUP</CODE> signal or
1185 using the supplied initialization script. The CUPS distributions
1186 install the script in the<VAR> init.d</VAR> directory with the name<VAR>
1187 cups</VAR>. The location varies based upon the operating system:</P>
97ae2a96 1188<UL>
1189<PRE>
1190<B>/etc/rc.d/init.d/cups restart ENTER</B>
1191<B>/etc/init.d/cups restart ENTER</B>
1192<B>/sbin/init.d/cups restart ENTER</B>
1193</PRE>
1194</UL>
1195<H2><A NAME="7_3">Changing the Server Configuration</A></H2>
d5c7e2d1 1196<P>The<VAR> /etc/cups/cupsd.conf</VAR> file contains configuration<I>
1197 directives</I> that control how the server functions. Each directive is
1198 listed on a line by itself followed by its value. Comments are
1199 introduced using the number sign (&quot;#&quot;) character at the beginning of a
1200 line. Since the server configuration file consists of plain text, you
1201 can use your favorite text editor to make changes to it.
97ae2a96 1202<!-- NEED 4in -->
d360fe65 1203</P>
97ae2a96 1204<H2><A NAME="7_4">Server Directives</A></H2>
d5c7e2d1 1205<P>The<VAR> cupsd.conf</VAR> file contains many directives that
1206 determine how the server operates:</P>
e75387bc 1207<UL>
1208<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">
1209<TR><TD VALIGN="TOP">
97ae2a96 1210<LI><A HREF="#AccessLog"><CODE>AccessLog</CODE></A></LI>
1211<LI><A HREF="#Allow"><CODE>Allow</CODE></A></LI>
1212<LI><A HREF="#AuthClass"><CODE>AuthClass</CODE></A></LI>
1213<LI><A HREF="#AuthGroupName"><CODE>AuthGroupName</CODE></A></LI>
1214<LI><A HREF="#AuthType"><CODE>AuthType</CODE></A></LI>
1215<LI><A HREF="#AutoPurgeJobs"><CODE>AutoPurgeJobs</CODE></A></LI>
1216<LI><A HREF="#BrowseAddress"><CODE>BrowseAddress</CODE></A></LI>
1217<LI><A HREF="#BrowseAllow"><CODE>BrowseAllow</CODE></A></LI>
1218<LI><A HREF="#BrowseDeny"><CODE>BrowseDeny</CODE></A></LI>
1219<LI><A HREF="#BrowseInterval"><CODE>BrowseInterval</CODE></A></LI>
1220<LI><A HREF="#BrowseOrder"><CODE>BrowseOrder</CODE></A></LI>
1221<LI><A HREF="#BrowsePoll"><CODE>BrowsePoll</CODE></A></LI>
1222<LI><A HREF="#BrowsePort"><CODE>BrowsePort</CODE></A></LI>
902d97a0 1223<LI><A HREF="#BrowseProtocols"><CODE>BrowseProtocols</CODE></A></LI>
97ae2a96 1224<LI><A HREF="#BrowseRelay"><CODE>BrowseRelay</CODE></A></LI>
1225<LI><A HREF="#BrowseShortNames"><CODE>BrowseShortNames</CODE></A></LI>
1226<LI><A HREF="#BrowseTimeout"><CODE>BrowseTimeout</CODE></A></LI>
1227<LI><A HREF="#Browsing"><CODE>Browsing</CODE></A></LI>
c57fe7d1 1228<LI><A HREF="#Classification"><CODE>Classification</CODE></A></LI>
902d97a0 1229<LI><A HREF="#ClassifyOverride"><CODE>ClassifyOverride</CODE></A></LI>
97ae2a96 1230<LI><A HREF="#DataDir"><CODE>DataDir</CODE></A></LI>
97ae2a96 1231<LI><A HREF="#DefaultCharset"><CODE>DefaultCharset</CODE></A></LI>
1232<LI><A HREF="#DefaultLanguage"><CODE>DefaultLanguage</CODE></A></LI>
1233<LI><A HREF="#Deny"><CODE>Deny</CODE></A></LI>
1234<LI><A HREF="#DocumentRoot"><CODE>DocumentRoot</CODE></A></LI>
902d97a0 1235</TD><TD VALIGN="TOP"> &nbsp;&nbsp;&nbsp;</TD><TD VALIGN="TOP">
b1d503b0 1236<LI><A HREF="#Encryption"><CODE>Encryption</CODE></A></LI>
97ae2a96 1237<LI><A HREF="#ErrorLog"><CODE>ErrorLog</CODE></A></LI>
1238<LI><A HREF="#FilterLimit"><CODE>FilterLimit</CODE></A></LI>
b1d503b0 1239<LI><A HREF="#FontPath"><CODE>FontPath</CODE></A></LI>
97ae2a96 1240<LI><A HREF="#Group"><CODE>Group</CODE></A></LI>
7159de3d 1241<LI><A HREF="#HideImplicitMembers"><CODE>HideImplicitMembers</CODE></A></LI>
97ae2a96 1242<LI><A HREF="#HostNameLookups"><CODE>HostNameLookups</CODE></A></LI>
1243<LI><A HREF="#ImplicitClasses"><CODE>ImplicitClasses</CODE></A></LI>
7159de3d 1244<LI><A HREF="#ImplicitAnyClasses"><CODE>ImplicitAnyClasses</CODE></A></LI>
1245<LI><A HREF="#Include"><CODE>Include</CODE></A></LI>
97ae2a96 1246<LI><A HREF="#KeepAliveTimeout"><CODE>KeepAliveTimeout</CODE></A></LI>
1247<LI><A HREF="#KeepAlive"><CODE>KeepAlive</CODE></A></LI>
b1d503b0 1248<LI><A HREF="#Limit"><CODE>Limit</CODE></A></LI>
1249<LI><A HREF="#LimitExcept"><CODE>LimitExcept</CODE></A></LI>
1250<LI><A HREF="#LimitRequestBody"><CODE>LimitRequestBody</CODE></A></LI>
97ae2a96 1251<LI><A HREF="#Listen"><CODE>Listen</CODE></A></LI>
1252<LI><A HREF="#Location"><CODE>Location</CODE></A></LI>
1253<LI><A HREF="#LogLevel"><CODE>LogLevel</CODE></A></LI>
1254<LI><A HREF="#MaxClients"><CODE>MaxClients</CODE></A></LI>
1255<LI><A HREF="#MaxJobs"><CODE>MaxJobs</CODE></A></LI>
c57fe7d1 1256<LI><A HREF="#MaxJobsPerPrinter"><CODE>MaxJobsPerPrinter</CODE></A></LI>
1257<LI><A HREF="#MaxJobsPerUser"><CODE>MaxJobsPerUser</CODE></A></LI>
97ae2a96 1258<LI><A HREF="#MaxLogSize"><CODE>MaxLogSize</CODE></A></LI>
1259<LI><A HREF="#MaxRequestSize"><CODE>MaxRequestSize</CODE></A></LI>
97ae2a96 1260<LI><A HREF="#Order"><CODE>Order</CODE></A></LI>
d5c7e2d1 1261</TD><TD VALIGN="TOP"> &nbsp;&nbsp;&nbsp;</TD><TD VALIGN="TOP">
7159de3d 1262<LI><A HREF="#PageLog"><CODE>PageLog</CODE></A></LI>
c57fe7d1 1263<LI><A HREF="#Port"><CODE>Port</CODE></A></LI>
97ae2a96 1264<LI><A HREF="#PreserveJobFiles"><CODE>PreserveJobFiles</CODE></A></LI>
1265<LI><A HREF="#PreserveJobHistory"><CODE>PreserveJobHistory</CODE></A></LI>
1266<LI><A HREF="#Printcap"><CODE>Printcap</CODE></A></LI>
b1d503b0 1267<LI><A HREF="#PrintcapFormat"><CODE>PrintcapFormat</CODE></A></LI>
08e230aa 1268<LI><A HREF="#PrintcapGUI"><CODE>PrintcapGUI</CODE></A></LI>
97ae2a96 1269<LI><A HREF="#RemoteRoot"><CODE>RemoteRoot</CODE></A></LI>
1270<LI><A HREF="#RequestRoot"><CODE>RequestRoot</CODE></A></LI>
b1d503b0 1271<LI><A HREF="#Require"><CODE>Require</CODE></A></LI>
97ae2a96 1272<LI><A HREF="#RIPCache"><CODE>RIPCache</CODE></A></LI>
b1d503b0 1273<LI><A HREF="#RunAsUser"><CODE>RunAsUser</CODE></A></LI>
1274<LI><A HREF="#Satisfy"><CODE>Satisfy</CODE></A></LI>
97ae2a96 1275<LI><A HREF="#ServerAdmin"><CODE>ServerAdmin</CODE></A></LI>
1276<LI><A HREF="#ServerBin"><CODE>ServerBin</CODE></A></LI>
b1d503b0 1277<LI><A HREF="#ServerCertificate"><CODE>ServerCertificate</CODE></A></LI>
1278<LI><A HREF="#ServerKey"><CODE>ServerKey</CODE></A></LI>
97ae2a96 1279<LI><A HREF="#ServerName"><CODE>ServerName</CODE></A></LI>
1280<LI><A HREF="#ServerRoot"><CODE>ServerRoot</CODE></A></LI>
b1d503b0 1281<LI><A HREF="#SSLListen"><CODE>SSLListen</CODE></A></LI>
1282<LI><A HREF="#SSLPort"><CODE>SSLPort</CODE></A></LI>
97ae2a96 1283<LI><A HREF="#SystemGroup"><CODE>SystemGroup</CODE></A></LI>
1284<LI><A HREF="#TempDir"><CODE>TempDir</CODE></A></LI>
1285<LI><A HREF="#Timeout"><CODE>Timeout</CODE></A></LI>
1286<LI><A HREF="#User"><CODE>User</CODE></A></LI>
e75387bc 1287</TD></TR>
1288</TABLE>
1289</UL>
ecf3075f 1290
97ae2a96 1291<!-- NEED 3in -->
97ae2a96 1292<H3><A NAME="AccessLog">AccessLog</A></H3>
b1d503b0 1293<HR>
97ae2a96 1294<H4>Examples</H4>
1295<UL>
1296<PRE>
1297AccessLog /var/log/cups/access_log
1298AccessLog /var/log/cups/access_log-%s
1299AccessLog syslog
1300</PRE>
1301</UL>
1302<H4>Description</H4>
d5c7e2d1 1303<P>The <CODE>AccessLog</CODE> directive sets the name of the access log
1304 file. If the filename is not absolute then it is assumed to be relative
1305 to the<A HREF="#ServerRoot"> <CODE>ServerRoot</CODE></A> directory. The
1306 access log file is stored in &quot;common log format&quot; and can be used by any
1307 web access reporting tool to generate a report on CUPS server activity.</P>
97ae2a96 1308<P>The server name can be included in the filename by using <CODE>%s</CODE>
d5c7e2d1 1309 in the name.</P>
1310<P>The special name &quot;syslog&quot; can be used to send the access information
1311 to the system log instead of a plain file.</P>
1312<P>The default access log file is<VAR> /var/log/cups/access_log</VAR>.
97ae2a96 1313<!-- NEED 6in -->
97ae2a96 1314</P>
1315<H3><A NAME="Allow">Allow</A></H3>
b1d503b0 1316<HR>
97ae2a96 1317<H4>Examples</H4>
1318<UL>
1319<PRE>
1320Allow from All
1321Allow from None
1322Allow from *.domain.com
1323Allow from .domain.com
1324Allow from host.domain.com
1325Allow from nnn.*
1326Allow from nnn.nnn.*
1327Allow from nnn.nnn.nnn.*
1328Allow from nnn.nnn.nnn.nnn
1329Allow from nnn.nnn.nnn.nnn/mm
1330Allow from nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
1331</PRE>
1332</UL>
1333<H4>Description</H4>
d5c7e2d1 1334<P>The <CODE>Allow</CODE> directive specifies a hostname, IP address, or
1335 network that is allowed access to the server. <CODE>Allow</CODE>
1336 directives are cummulative, so multiple <CODE>Allow</CODE> directives
1337 can be used to allow access for multiple hosts or networks. The <CODE>
1338/mm</CODE> notation specifies a CIDR netmask:
e75387bc 1339<CENTER>
1340<TABLE BORDER="1">
97ae2a96 1341<TR><TH WIDTH="10%">mm</TH><TH WIDTH="20%">netmask</TH><TH WIDTH="10%">
1342mm</TH><TH WIDTH="20%">netmask</TH></TR>
1343<TR><TD ALIGN="CENTER">0</TD><TD ALIGN="CENTER">0.0.0.0</TD><TD ALIGN="CENTER">
13448</TD><TD ALIGN="CENTER">255.0.0.0</TD></TR>
1345<TR><TD ALIGN="CENTER">1</TD><TD ALIGN="CENTER">128.0.0.0</TD><TD ALIGN="CENTER">
134616</TD><TD ALIGN="CENTER">255.255.0.0</TD></TR>
1347<TR><TD ALIGN="CENTER">2</TD><TD ALIGN="CENTER">192.0.0.0</TD><TD ALIGN="CENTER">
134824</TD><TD ALIGN="CENTER">255.255.255.0</TD></TR>
1349<TR><TD ALIGN="CENTER">...</TD><TD ALIGN="CENTER">...</TD><TD ALIGN="CENTER">
135032</TD><TD ALIGN="CENTER">255.255.255.255</TD></TR>
e75387bc 1351</TABLE>
1352</CENTER>
1353</P>
d5c7e2d1 1354<P>The <CODE>Allow</CODE> directive must appear inside a<A HREF="#Location">
1355 <CODE>Location</CODE></A> directive.
97ae2a96 1356<!-- NEED 3in -->
d360fe65 1357</P>
97ae2a96 1358<H3><A NAME="AuthClass">AuthClass</A></H3>
b1d503b0 1359<HR>
97ae2a96 1360<H4>Examples</H4>
1361<UL>
1362<PRE>
1363AuthClass Anonymous
1364AuthClass User
1365AuthClass System
1366AuthClass Group
1367</PRE>
1368</UL>
1369<H4>Description</H4>
d5c7e2d1 1370<P>The <CODE>AuthClass</CODE> directive defines what level of
1371 authentication is required:</P>
1372<UL>
1373<LI><CODE>Anonymous</CODE> - No authentication should be performed
1374 (default.)</LI>
1375<LI><CODE>User</CODE> - A valid username and password is required.</LI>
1376<LI><CODE>System</CODE> - A valid username and password is required, and
1377 the username must belong to the &quot;sys&quot; group; this can be changed using
1378 the<A HREF="#SystemGroup"> <CODE>SystemGroup</CODE></A> directive.</LI>
1379<LI><CODE>Group</CODE> - A valid username and password is required, and
1380 the username must belong to the group named by the <CODE>AuthGroupName</CODE>
1381 directive.</LI>
1382</UL>
1383<P>The <CODE>AuthClass</CODE> directive must appear inside a<A HREF="#Location">
1384 <CODE>Location</CODE></A> directive.
97ae2a96 1385<!-- NEED 3in -->
d360fe65 1386</P>
97ae2a96 1387<H3><A NAME="AuthGroupName">AuthGroupName</A></H3>
b1d503b0 1388<HR>
97ae2a96 1389<H4>Examples</H4>
04d756fc 1390<UL>
1391<PRE>
97ae2a96 1392AuthGroupName mygroup
1393AuthGroupName lp
1394</PRE>
04d756fc 1395</UL>
97ae2a96 1396<H4>Description</H4>
1397<P>The <CODE>AuthGroupName</CODE> directive sets the group to use for <CODE>
d5c7e2d1 1398Group</CODE> authentication.</P>
1399<P>The <CODE>AuthGroupName</CODE> directive must appear inside a<A HREF="#Location">
1400 <CODE>Location</CODE></A> directive.
97ae2a96 1401<!-- NEED 3in -->
d360fe65 1402</P>
97ae2a96 1403<H3><A NAME="AuthType">AuthType</A></H3>
b1d503b0 1404<HR>
97ae2a96 1405<H4>Examples</H4>
1406<UL>
1407<PRE>
1408AuthType None
1409AuthType Basic
1410AuthType Digest
efb2f309 1411AuthType BasicDigest
97ae2a96 1412</PRE>
1413</UL>
1414<H4>Description</H4>
d5c7e2d1 1415<P>The <CODE>AuthType</CODE> directive defines the type of
1416 authentication to perform:</P>
1417<UL>
1418<LI><CODE>None</CODE> - No authentication should be performed (default.)</LI>
1419<LI><CODE>Basic</CODE> - Basic authentication should be performed using
1420 the UNIX password and group files.</LI>
1421<LI><CODE>Digest</CODE> - Digest authentication should be performed
1422 using the<VAR> /etc/cups/passwd.md5</VAR> file.</LI>
efb2f309 1423<LI><CODE>BasicDigest</CODE> - Basic authentication should be performed
1424 using the<VAR> /etc/cups/passwd.md5</VAR> file.</LI>
d5c7e2d1 1425</UL>
efb2f309 1426<P>When using <CODE>Basic</CODE>, <CODE>Digest</CODE>, or <CODE>
1427BasicDigest</CODE> authentication, clients connecting through the <CODE>
1428localhost</CODE> interface can also authenticate using<A HREF="#CERTIFICATES">
1429 certificates</A>.</P>
d5c7e2d1 1430<P>The <CODE>AuthType</CODE> directive must appear inside a<A HREF="#Location">
1431 <CODE>Location</CODE></A> directive.
97ae2a96 1432<!-- NEED 3in -->
d360fe65 1433</P>
97ae2a96 1434<H3><A NAME="AutoPurgeJobs">AutoPurgeJobs</A></H3>
b1d503b0 1435<HR>
97ae2a96 1436<H4>Examples</H4>
04d756fc 1437<UL>
1438<PRE>
97ae2a96 1439AutoPurgeJobs Yes
1440AutoPurgeJobs No
1441</PRE>
04d756fc 1442</UL>
97ae2a96 1443<H4>Description</H4>
d5c7e2d1 1444<P>The <CODE>AutoPurgeJobs</CODE> directive specifies whether or not to
1445 purge completed jobs once they are no longer required for quotas. This
1446 option has no effect if quotas are not enabled. The default setting is <CODE>
1447No</CODE>.
97ae2a96 1448<!-- NEED 5in -->
d360fe65 1449</P>
97ae2a96 1450<H3><A NAME="BrowseAddress">BrowseAddress</A></H3>
b1d503b0 1451<HR>
97ae2a96 1452<H4>Examples</H4>
1453<UL>
1454<PRE>
1455BrowseAddress 255.255.255.255:631
1456BrowseAddress 192.0.2.255:631
1457BrowseAddress host.domain.com:631
1458</PRE>
1459</UL>
1460<H4>Description</H4>
d5c7e2d1 1461<P>The <CODE>BrowseAddress</CODE> directive specifies an address to send
1462 browsing information to. Multiple <CODE>BrowseAddress</CODE> directives
1463 can be specified to send browsing information to different networks or
1464 systems.</P>
437844a0 1465<P>No browse addresses are set by default.</P>
fd7cc15d 1466<CENTER>
1467<TABLE BGCOLOR="#cccccc" BORDER="1" CELLPADDING="5" WIDTH="80%">
97ae2a96 1468<TR><TD><B> NOTE:</B>
d5c7e2d1 1469<P>If you are using HP-UX 10.20 and a subnet that is not 24, 16, or 8
1470 bits, printer browsing (and in fact all broadcast reception) will not
1471 work. This problem appears to be fixed in HP-UX 11.0.</P>
fd7cc15d 1472</TD></TR>
1473</TABLE>
1474</CENTER>
ecf3075f 1475
97ae2a96 1476<!-- NEED 4in -->
97ae2a96 1477<H3><A NAME="BrowseAllow">BrowseAllow</A></H3>
b1d503b0 1478<HR>
97ae2a96 1479<H4>Examples</H4>
1480<UL>
1481<PRE>
1482BrowseAllow from all
1483BrowseAllow from none
1484BrowseAllow from 192.0.2
1485BrowseAllow from 192.0.2.0/24
1486BrowseAllow from 192.0.2.0/255.255.255.0
1487BrowseAllow from *.domain.com
1488</PRE>
1489</UL>
1490<H4>Description</H4>
d5c7e2d1 1491<P>The <CODE>BrowseAllow</CODE> directive specifies a system or network
1492 to accept browse packets from. The default is to accept browse packets
1493 from all hosts.</P>
1494<P>Host and domain name matching require that you enable the<A HREF="#HostNameLookups">
1495 <CODE>HostNameLookups</CODE></A> directive.</P>
1496<P>IP address matching supports exact matches, partial addresses that
1497 match networks using netmasks of 255.0.0.0, 255.255.0.0, and
1498 255.255.255.0, or network addresses using the specified netmask or bit
1499 count.
97ae2a96 1500<!-- NEED 4in -->
d360fe65 1501</P>
97ae2a96 1502<H3><A NAME="BrowseDeny">BrowseDeny</A></H3>
b1d503b0 1503<HR>
97ae2a96 1504<H4>Examples</H4>
1505<UL>
1506<PRE>
1507BrowseDeny from all
1508BrowseDeny from none
1509BrowseDeny from 192.0.2
1510BrowseDeny from 192.0.2.0/24
1511BrowseDeny from 192.0.2.0/255.255.255.0
1512BrowseDeny from *.domain.com
1513</PRE>
1514</UL>
1515<H4>Description</H4>
d5c7e2d1 1516<P>The <CODE>BrowseDeny</CODE> directive specifies a system or network
1517 to reject browse packets from. The default is to deny browse packets
1518 from no hosts.</P>
1519<P>Host and domain name matching require that you enable the<A HREF="#HostNameLookups">
1520 <CODE>HostNameLookups</CODE></A> directive.</P>
1521<P>IP address matching supports exact matches, partial addresses that
1522 match networks using netmasks of 255.0.0.0, 255.255.0.0, and
1523 255.255.255.0, or network addresses using the specified netmask or bit
1524 count.
97ae2a96 1525<!-- NEED 3in -->
d360fe65 1526</P>
97ae2a96 1527<H3><A NAME="BrowseOrder">BrowseOrder</A></H3>
b1d503b0 1528<HR>
97ae2a96 1529<H4>Examples</H4>
04d756fc 1530<UL>
1531<PRE>
97ae2a96 1532BrowseOrder allow,deny
1533BrowseOrder deny,allow
1534</PRE>
04d756fc 1535</UL>
97ae2a96 1536<H4>Description</H4>
d5c7e2d1 1537<P>The <CODE>BrowseOrder</CODE> directive specifies the order of
1538 allow/deny processing. The default order is <CODE>deny,allow</CODE>:</P>
04d756fc 1539<UL>
d5c7e2d1 1540<LI><CODE>allow,deny</CODE> - Browse packets are accepted unless
1541 specifically denied.</LI>
1542<LI><CODE>deny,allow</CODE> - Browse packets are rejected unless
1543 specifically allowed.</LI>
e75387bc 1544</UL>
ecf3075f 1545
97ae2a96 1546<!-- NEED 3in -->
97ae2a96 1547<H3><A NAME="BrowseInterval">BrowseInterval</A></H3>
b1d503b0 1548<HR>
97ae2a96 1549<H4>Examples</H4>
1550<UL>
1551<PRE>
1552BrowseInterval 0
1553BrowseInterval 30
1554</PRE>
1555</UL>
1556<H4>Description</H4>
d5c7e2d1 1557<P>The <CODE>BrowseInterval</CODE> directive specifies the maximum
1558 amount of time between browsing updates. Specifying a value of 0
1559 seconds disables outgoing browse updates but allows a server to receive
1560 printer information from other hosts.</P>
1561<P>The <CODE>BrowseInterval</CODE> value should always be less than the<A
1562HREF="#BrowseTimeout"> <CODE>BrowseTimeout</CODE></A> value. Otherwise
1563 printers and classes will disappear from client systems between
1564 updates.
97ae2a96 1565<!-- NEED 3in -->
d360fe65 1566</P>
97ae2a96 1567<H3><A NAME="BrowsePoll">BrowsePoll</A></H3>
b1d503b0 1568<HR>
97ae2a96 1569<H4>Examples</H4>
1570<UL>
1571<PRE>
1572BrowsePoll 192.0.2.2:631
1573BrowsePoll host.domain.com:631
1574</PRE>
1575</UL>
1576<H4>Description</H4>
d5c7e2d1 1577<P>The <CODE>BrowsePoll</CODE> directive polls a server for available
1578 printers once every<A HREF="#BrowseInterval"> <CODE>BrowseInterval</CODE>
1579</A> seconds. Multiple <CODE>BrowsePoll</CODE> directives can be
1580 specified to poll multiple servers.</P>
1581<P>If <CODE>BrowseInterval</CODE> is set to 0 then the server is polled
1582 once every 30 seconds.
97ae2a96 1583<!-- NEED 3in -->
d360fe65 1584</P>
97ae2a96 1585<H3><A NAME="BrowsePort">BrowsePort</A></H3>
b1d503b0 1586<HR>
97ae2a96 1587<H4>Examples</H4>
e75387bc 1588<UL>
1589<PRE>
97ae2a96 1590BrowsePort 631
1591BrowsePort 9999
1592</PRE>
e75387bc 1593</UL>
97ae2a96 1594<H4>Description</H4>
d5c7e2d1 1595<P>The <CODE>BrowsePort</CODE> directive specifies the UDP port number
437844a0 1596 used for browse packets. The default port number is 631.</P>
fd7cc15d 1597<CENTER>
1598<TABLE BGCOLOR="#cccccc" BORDER="1" CELLPADDING="5" WIDTH="80%">
97ae2a96 1599<TR><TD><B> NOTE:</B>
d5c7e2d1 1600<P>You must set the <CODE>BrowsePort</CODE> to the same value on all of
1601 the systems that you want to see.</P>
fd7cc15d 1602</TD></TR>
1603</TABLE>
1604</CENTER>
ecf3075f 1605
902d97a0 1606<!-- NEED 3in -->
902d97a0 1607<H3><A NAME="BrowseProtocols">BrowseProtocols</A></H3>
1608<HR>
1609<H4>Examples</H4>
1610<UL>
1611<PRE>
1612BrowseProtocols CUPS
1613BrowseProtocols SLP
1614BrowseProtocols CUPS SLP
1615BrowseProtocols all
1616</PRE>
1617</UL>
1618<H4>Description</H4>
1619<P>The <CODE>BrowseProtocols</CODE> directive specifies the protocols to
1620 use when collecting and distributing shared printers on the local
1621 network. The default protocol is <CODE>CUPS</CODE>, which is a
437844a0 1622 broadcast-based protocol.</P>
902d97a0 1623<CENTER>
1624<TABLE BGCOLOR="#cccccc" BORDER="1" CELLPADDING="5" WIDTH="80%">
1625<TR><TD><B> NOTE:</B>
1626<P>When using the <CODE>SLP</CODE> protocol, you must have at least one
1627 Directory Agent (DA) server on your network. Otherwise the CUPS
1628 scheduler (<CODE>cupsd</CODE>) will not respond to client requests for
1629 several seconds while polling the network.</P>
1630</TD></TR>
1631</TABLE>
1632</CENTER>
1633
97ae2a96 1634<!-- NEED 4in -->
97ae2a96 1635<H3><A NAME="BrowseRelay">BrowseRelay</A></H3>
b1d503b0 1636<HR>
97ae2a96 1637<H4>Examples</H4>
1638<UL>
1639<PRE>
1640BrowseRelay 193.0.2.1 192.0.2.255
1641BrowseRelay 193.0.2.0/255.255.255.0 192.0.2.255
1642BrowseRelay 193.0.2.0/24 192.0.2.255
1643BrowseRelay *.domain.com 192.0.2.255
1644BrowseRelay host.domain.com 192.0.2.255
1645</PRE>
1646</UL>
1647<H4>Description</H4>
d5c7e2d1 1648<P>The <CODE>BrowseRelay</CODE> directive specifies source and
1649 destination addresses for relaying browsing information from one host
1650 or network to another. Multiple <CODE>BrowseRelay</CODE> directives can
1651 be specified as needed.</P>
1652<P><CODE>BrowseRelay</CODE> is typically used on systems that bridge
1653 multiple subnets using one or more network interfaces. It can also be
1654 used to relay printer information from polled servers with the line:</P>
97ae2a96 1655<UL>
1656<PRE>
1657BrowseRelay 127.0.0.1 255.255.255.255
1658</PRE>
1659</UL>
d5c7e2d1 1660<P>This effectively provides access to printers on a WAN for all clients
1661 on the LAN(s).
97ae2a96 1662<!-- NEED 3in -->
d360fe65 1663</P>
97ae2a96 1664<H3><A NAME="BrowseShortNames">BrowseShortNames</A></H3>
b1d503b0 1665<HR>
97ae2a96 1666<H4>Examples</H4>
1667<UL>
1668<PRE>
1669BrowseShortNames Yes
1670BrowseShortNames No
1671</PRE>
1672</UL>
1673<H4>Description</H4>
d5c7e2d1 1674<P>The <CODE>BrowseShortNames</CODE> directive specifies whether or not
1675 short names are used for remote printers when possible. Short names are
1676 just the remote printer name, without the server (&quot;printer&quot;). If more
1677 than one remote printer is detected with the same name, the printers
1678 will have long names (&quot;printer@server1&quot;, &quot;printer@server2&quot;.)</P>
1679<P>The default value for this option is <CODE>Yes</CODE>.
97ae2a96 1680<!-- NEED 3in -->
d360fe65 1681</P>
97ae2a96 1682<H3><A NAME="BrowseTimeout">BrowseTimeout</A></H3>
b1d503b0 1683<HR>
97ae2a96 1684<H4>Examples</H4>
1685<UL>
1686<PRE>
1687BrowseTimeout 300
1688BrowseTimeout 60
1689</PRE>
1690</UL>
1691<H4>Description</H4>
d5c7e2d1 1692<P>The <CODE>BrowseTimeout</CODE> directive sets the timeout for printer
1693 or class information that is received in browse packets. Once a printer
1694 or class times out it is removed from the list of available
1695 destinations.</P>
1696<P>The <CODE>BrowseTimeout</CODE> value should always be greater than
1697 the<A HREF="#BrowseInterval"> <CODE>BrowseInterval</CODE></A> value.
1698 Otherwise printers and classes will disappear from client systems
1699 between updates.
97ae2a96 1700<!-- NEED 4in -->
d360fe65 1701</P>
97ae2a96 1702<H3><A NAME="Browsing">Browsing</A></H3>
b1d503b0 1703<HR>
97ae2a96 1704<H4>Examples</H4>
04d756fc 1705<UL>
1706<PRE>
97ae2a96 1707Browsing On
1708Browsing Off
1709</PRE>
04d756fc 1710</UL>
97ae2a96 1711<H4>Description</H4>
d5c7e2d1 1712<P>The <CODE>Browsing</CODE> directive controls whether or not network
437844a0 1713 printer browsing is enabled. The default setting is <CODE>On</CODE>.</P>
fd7cc15d 1714<CENTER>
1715<TABLE BGCOLOR="#cccccc" BORDER="1" CELLPADDING="5" WIDTH="80%">
97ae2a96 1716<TR><TD><B> NOTE:</B>
d5c7e2d1 1717<P>If you are using HP-UX 10.20 and a subnet that is not 24, 16, or 8
1718 bits, printer browsing (and in fact all broadcast reception) will not
1719 work. This problem appears to be fixed in HP-UX 11.0.</P>
fd7cc15d 1720</TD></TR>
1721</TABLE>
1722</CENTER>
ecf3075f 1723
c57fe7d1 1724<!-- NEED 3in -->
c57fe7d1 1725<H3><A NAME="Classification">Classification</A></H3>
1726<HR>
1727<H4>Examples</H4>
1728<UL>
1729<PRE>
1730Classification
1731Classification classified
1732Classification confidential
1733Classification secret
1734Classification topsecret
1735Classification unclassified
1736</PRE>
1737</UL>
1738<H4>Description</H4>
d5c7e2d1 1739<P>The <CODE>Classification</CODE> directive sets the classification
1740 level on the server. When this option is set, at least one of the
1741 banner pages is forced to the classification level, and the
1742 classification is placed on each page of output. The default is no
1743 classification level.
97ae2a96 1744<!-- NEED 3in -->
d360fe65 1745</P>
902d97a0 1746<H3><A NAME="ClassifyOverride">ClassifyOverride</A></H3>
1747<HR>
1748<H4>Examples</H4>
1749<UL>
1750<PRE>
1751ClassifyOverride Yes
1752ClassifyOverride No
1753</PRE>
1754</UL>
1755<H4>Description</H4>
1756<P>The <CODE>ClassifyOverride</CODE> directive specifies whether users
1757 can override the default classification level on the server. When the
1758 server classification is set, users can change the classification using
1759 the <CODE>job-sheets</CODE> option and can choose to only print one
1760 security banner before or after the job. If the <CODE>job-sheets</CODE>
1761 option is set to <CODE>none</CODE> then the server default
1762 classification is used.</P>
1763<P>The default is to not allow classification overrides.
1764<!-- NEED 3in -->
1765</P>
97ae2a96 1766<H3><A NAME="DataDir">DataDir</A></H3>
b1d503b0 1767<HR>
97ae2a96 1768<H4>Examples</H4>
04d756fc 1769<UL>
1770<PRE>
97ae2a96 1771DataDir /usr/share/cups
1772</PRE>
04d756fc 1773</UL>
97ae2a96 1774<H4>Description</H4>
d5c7e2d1 1775<P>The <CODE>DataDir</CODE> directive sets the directory to use for data
1776 files.
97ae2a96 1777<!-- NEED 3in -->
d360fe65 1778</P>
97ae2a96 1779<H3><A NAME="DefaultCharset">DefaultCharset</A></H3>
b1d503b0 1780<HR>
97ae2a96 1781<H4>Examples</H4>
1782<UL>
1783<PRE>
1784DefaultCharset utf-8
1785DefaultCharset iso-8859-1
1786DefaultCharset windows-1251
1787</PRE>
1788</UL>
1789<H4>Description</H4>
d5c7e2d1 1790<P>The <CODE>DefaultCharset</CODE> directive sets the default character
1791 set to use for client connections. The default character set is <CODE>
1792utf-8</CODE> but is overridden by the character set for the language
1793 specified by the client or the <CODE>DefaultLanguage</CODE> directive.
97ae2a96 1794<!-- NEED 3in -->
97ae2a96 1795</P>
1796<H3><A NAME="DefaultLanguage">DefaultLanguage</A></H3>
b1d503b0 1797<HR>
97ae2a96 1798<H4>Examples</H4>
1799<UL>
1800<PRE>
1801DefaultLanguage de
1802DefaultLanguage en
1803DefaultLanguage es
1804DefaultLanguage fr
1805DefaultLanguage it
1806</PRE>
1807</UL>
1808<H4>Description</H4>
d5c7e2d1 1809<P>The <CODE>DefaultLanguage</CODE> directive specifies the default
1810 language to use for client connections. Setting the default language
1811 also sets the default character set if a language localization file
1812 exists for it. The default language is &quot;en&quot; for English.
97ae2a96 1813<!-- NEED 5in -->
d360fe65 1814</P>
97ae2a96 1815<H3><A NAME="Deny">Deny</A></H3>
b1d503b0 1816<HR>
97ae2a96 1817<H4>Examples</H4>
1818<UL>
1819<PRE>
1820Deny from All
1821Deny from None
1822Deny from *.domain.com
1823Deny from .domain.com
1824Deny from host.domain.com
1825Deny from nnn.*
1826Deny from nnn.nnn.*
1827Deny from nnn.nnn.nnn.*
1828Deny from nnn.nnn.nnn.nnn
1829Deny from nnn.nnn.nnn.nnn/mm
1830Deny from nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
1831</PRE>
1832</UL>
1833<H4>Description</H4>
d5c7e2d1 1834<P>The <CODE>Deny</CODE> directive specifies a hostname, IP address, or
1835 network that is allowed access to the server. <CODE>Deny</CODE>
1836 directives are cummulative, so multiple <CODE>Deny</CODE> directives
1837 can be used to allow access for multiple hosts or networks. The <CODE>
1838/mm</CODE> notation specifies a CIDR netmask:
e75387bc 1839<CENTER>
1840<TABLE BORDER="1">
97ae2a96 1841<TR><TH WIDTH="10%">mm</TH><TH WIDTH="20%">netmask</TH><TH WIDTH="10%">
1842mm</TH><TH WIDTH="20%">netmask</TH></TR>
1843<TR><TD ALIGN="CENTER">0</TD><TD ALIGN="CENTER">0.0.0.0</TD><TD ALIGN="CENTER">
18448</TD><TD ALIGN="CENTER">255.0.0.0</TD></TR>
1845<TR><TD ALIGN="CENTER">1</TD><TD ALIGN="CENTER">128.0.0.0</TD><TD ALIGN="CENTER">
184616</TD><TD ALIGN="CENTER">255.255.0.0</TD></TR>
1847<TR><TD ALIGN="CENTER">2</TD><TD ALIGN="CENTER">192.0.0.0</TD><TD ALIGN="CENTER">
184824</TD><TD ALIGN="CENTER">255.255.255.0</TD></TR>
1849<TR><TD ALIGN="CENTER">...</TD><TD ALIGN="CENTER">...</TD><TD ALIGN="CENTER">
185032</TD><TD ALIGN="CENTER">255.255.255.255</TD></TR>
e75387bc 1851</TABLE>
1852</CENTER>
1853</P>
d5c7e2d1 1854<P>The <CODE>Deny</CODE> directive must appear inside a<A HREF="#Location">
1855 <CODE>Location</CODE></A> directive.
97ae2a96 1856<!-- NEED 3in -->
d360fe65 1857</P>
97ae2a96 1858<H3><A NAME="DocumentRoot">DocumentRoot</A></H3>
b1d503b0 1859<HR>
97ae2a96 1860<H4>Examples</H4>
1861<UL>
1862<PRE>
1863DocumentRoot /usr/share/doc/cups
1864DocumentRoot /foo/bar/doc/cups
1865</PRE>
1866</UL>
1867<H4>Description</H4>
d5c7e2d1 1868<P>The <CODE>DocumentRoot</CODE> directive specifies the location of web
1869 content for the HTTP server in CUPS. If an absolute path is not
1870 specified then it is assumed to be relative to the<A HREF="#ServerRoot">
1871 <CODE>ServerRoot</CODE></A> directory. The default directory is<VAR>
1872 /usr/share/doc/cups</VAR>.</P>
1873<P>Documents are first looked up in a sub-directory for the primary
1874 language requested by the client (e.g.<VAR> /usr/share/doc/cups/fr/...</VAR>
1875) and then directly under the <CODE>DocumentRoot</CODE> directory (e.g.<VAR>
1876 /usr/share/doc/cups/...</VAR>), so it is possible to localize the web
1877 content by providing subdirectories for each language needed.
97ae2a96 1878<!-- NEED 3in -->
d360fe65 1879</P>
b1d503b0 1880<H3><A NAME="Encryption">Encryption</A></H3>
1881<HR>
1882<H4>Examples</H4>
1883<UL>
1884<PRE>
1885Encryption Never
1886Encryption IfRequested
1887Encryption Required
1888Encryption Always
1889</PRE>
1890</UL>
1891<H4>Description</H4>
d5c7e2d1 1892<P>The <CODE>Encryption</CODE> directive must appear instead a<A HREF="#Location">
1893 <CODE>Location</CODE></A> section and specifies the encryption settings
1894 for that location. The default setting is <CODE>IfRequested</CODE> for
1895 all locations.
b1d503b0 1896<!-- NEED 3in -->
d360fe65 1897</P>
97ae2a96 1898<H3><A NAME="ErrorLog">ErrorLog</A></H3>
b1d503b0 1899<HR>
97ae2a96 1900<H4>Examples</H4>
1901<UL>
1902<PRE>
1903ErrorLog /var/log/cups/error_log
1904ErrorLog /var/log/cups/error_log-%s
1905ErrorLog syslog
1906</PRE>
1907</UL>
1908<H4>Description</H4>
d5c7e2d1 1909<P>The <CODE>ErrorLog</CODE> directive sets the name of the error log
1910 file. If the filename is not absolute then it is assumed to be relative
1911 to the<A HREF="#ServerRoot"> <CODE>ServerRoot</CODE></A> directory. The
1912 default error log file is<VAR> /var/log/cups/error_log</VAR>.</P>
97ae2a96 1913<P>The server name can be included in the filename by using <CODE>%s</CODE>
d5c7e2d1 1914 in the name.</P>
1915<P>The special name &quot;syslog&quot; can be used to send the error information
1916 to the system log instead of a plain file.
97ae2a96 1917<!-- NEED 3in -->
d360fe65 1918</P>
97ae2a96 1919<H3><A NAME="FilterLimit">FilterLimit</A></H3>
b1d503b0 1920<HR>
97ae2a96 1921<H4>Examples</H4>
1922<UL>
1923<PRE>
1924FilterLimit 0
1925FilterLimit 200
1926FilterLimit 1000
1927</PRE>
1928</UL>
1929<H4>Description</H4>
d5c7e2d1 1930<P>The <CODE>FilterLimit</CODE> directive sets the maximum cost of all
1931 running job filters. It can be used to limit the number of filter
1932 programs that are run on a server to minimize disk, memory, and CPU
1933 resource problems. A limit of 0 disables filter limiting.</P>
1934<P>An average print to a non-PostScript printer needs a filter limit of
1935 about 200. A PostScript printer needs about half that (100). Setting
1936 the limit below these thresholds will effectively limit the scheduler
1937 to printing a single job at any time.</P>
1938<P>The default limit is 0.
97ae2a96 1939<!-- NEED 3in -->
d360fe65 1940</P>
b1d503b0 1941<H3><A NAME="FontPath">FontPath</A></H3>
1942<HR>
1943<H4>Examples</H4>
1944<UL>
1945<PRE>
1946FontPath /foo/bar/fonts
1947FontPath /usr/share/cups/fonts:/foo/bar/fonts
1948</PRE>
1949</UL>
1950<H4>Description</H4>
d5c7e2d1 1951<P>The <CODE>FontPath</CODE> directive specifies the font path to use
1952 when searching for fonts. The default font path is <CODE>
1953/usr/share/cups/fonts</CODE>.
b1d503b0 1954<!-- NEED 3in -->
d360fe65 1955</P>
97ae2a96 1956<H3><A NAME="Group">Group</A></H3>
b1d503b0 1957<HR>
97ae2a96 1958<H4>Examples</H4>
04d756fc 1959<UL>
1960<PRE>
97ae2a96 1961Group sys
1962Group system
1963Group root
1964</PRE>
04d756fc 1965</UL>
97ae2a96 1966<H4>Description</H4>
d5c7e2d1 1967<P>The <CODE>Group</CODE> directive specifies the UNIX group that filter
1968 and CGI programs run as. The default group is <CODE>sys</CODE>, <CODE>
1969system</CODE>, or <CODE>root</CODE> depending on the operating system.
97ae2a96 1970<!-- NEED 3in -->
97ae2a96 1971</P>
7159de3d 1972<H3><A NAME="HideImplicitMembers">HideImplicitMembers</A></H3>
1973<HR>
1974<H4>Examples</H4>
1975<UL>
1976<PRE>
1977HideImplicitMembers Yes
1978HideImplicitMembers No
1979</PRE>
1980</UL>
1981<H4>Description</H4>
1982<P>The <CODE>HideImplicitMembers</CODE> directive controls whether the
1983 individual printers in an implicit class are shown to the user. The
1984 default is <CODE>No</CODE>.</P>
1985<P><A HREF="#ImplicitClasses"><CODE>ImplicitClasses</CODE></A> must be
1986 enabled for this directive to have any effect.</P>
1987
1988<!-- NEED 3in -->
97ae2a96 1989<H3><A NAME="HostNameLookups">HostNameLookups</A></H3>
b1d503b0 1990<HR>
97ae2a96 1991<H4>Examples</H4>
04d756fc 1992<UL>
1993<PRE>
97ae2a96 1994HostNameLookups On
1995HostNameLookups Off
b1d503b0 1996HostNameLookups Double
97ae2a96 1997</PRE>
04d756fc 1998</UL>
97ae2a96 1999<H4>Description</H4>
d5c7e2d1 2000<P>The <CODE>HostNameLookups</CODE> directive controls whether or not
2001 CUPS looks up the hostname for connecting clients. The <CODE>Double</CODE>
2002 setting causes CUPS to verify that the hostname resolved from the
2003 address matches one of the addresses returned for that hostname. <CODE>
2004Double</CODE> lookups also prevent clients with unregistered addresses
2005 from connecting to your server. The default is <CODE>Off</CODE> to
2006 avoid the potential server performance problems with hostname lookups.
2007 Set this option to <CODE>On</CODE> or <CODE>Double</CODE> only if
2008 absolutely required.
97ae2a96 2009<!-- NEED 3in -->
d360fe65 2010</P>
97ae2a96 2011<H3><A NAME="ImplicitClasses">ImplicitClasses</A></H3>
b1d503b0 2012<HR>
97ae2a96 2013<H4>Examples</H4>
04d756fc 2014<UL>
2015<PRE>
97ae2a96 2016ImplicitClasses On
2017ImplicitClasses Off
2018</PRE>
04d756fc 2019</UL>
97ae2a96 2020<H4>Description</H4>
d5c7e2d1 2021<P>The <CODE>ImplicitClasses</CODE> directive controls whether implicit
2022 classes are created based upon the available network printers and
2023 classes. The default setting is <CODE>On</CODE> but is automatically
2024 turned <CODE>Off</CODE> if<A HREF="#Browsing"> <CODE>Browsing</CODE></A>
2025 is turned <CODE>Off</CODE>.
97ae2a96 2026<!-- NEED 3in -->
d360fe65 2027</P>
7159de3d 2028<H3><A NAME="ImplicitAnyClasses">ImplicitAnyClasses</A></H3>
2029<HR>
2030<H4>Examples</H4>
2031<UL>
2032<PRE>
2033ImplicitAnyClasses On
2034ImplicitAnyClasses Off
2035</PRE>
2036</UL>
2037<H4>Description</H4>
2038<P>The <CODE>ImplicitAnyClasses</CODE> directive controls whether
2039 implicit classes for local and remote printers are created with the
2040 name <CODE>AnyPrinter</CODE>. The default setting is <CODE>Off</CODE>.</P>
2041<P><A HREF="#ImplicitClasses"><CODE>ImplicitClasses</CODE></A> must be
2042 enabled for this directive to have any effect.</P>
2043
2044<!-- NEED 3in -->
2045<H3><A NAME="Include">Include</A></H3>
2046<HR>
2047<H4>Examples</H4>
2048<UL>
2049<PRE>
2050Include filename
2051Include /foo/bar/filename
2052</PRE>
2053</UL>
2054<H4>Description</H4>
2055<P>The <CODE>Include</CODE> directive includes the named file in the <CODE>
2056cupsd.conf</CODE> file. If no leading path is provided, the file is
2057 assumed to be relative to the<A HREF="#ServerRoot"> <CODE>ServerRoot</CODE>
2058</A> directory.</P>
2059
2060<!-- NEED 3in -->
97ae2a96 2061<H3><A NAME="KeepAlive">KeepAlive</A></H3>
b1d503b0 2062<HR>
97ae2a96 2063<H4>Examples</H4>
2064<UL>
2065<PRE>
2066KeepAlive On
2067KeepAlive Off
2068</PRE>
2069</UL>
2070<H4>Description</H4>
d5c7e2d1 2071<P>The <CODE>KeepAlive</CODE> directive controls whether or not to
2072 support persistent HTTP connections. The default is <CODE>On</CODE>.</P>
2073<P>HTTP/1.1 clients automatically support persistent connections, while
2074 HTTP/1.0 clients must specifically request them using the <CODE>
2075Keep-Alive</CODE> attribute in the <CODE>Connection:</CODE> field of
2076 each request.
97ae2a96 2077<!-- NEED 3in -->
d360fe65 2078</P>
97ae2a96 2079<H3><A NAME="KeepAliveTimeout">KeepAliveTimeout</A></H3>
b1d503b0 2080<HR>
97ae2a96 2081<H4>Examples</H4>
04d756fc 2082<UL>
2083<PRE>
97ae2a96 2084KeepAliveTimeout 60
2085KeepAliveTimeout 30
2086</PRE>
04d756fc 2087</UL>
97ae2a96 2088<H4>Description</H4>
d5c7e2d1 2089<P>The <CODE>KeepAliveTimeout</CODE> directive controls how long a
2090 persistent HTTP connection will remain open after the last request. The
2091 default is 60 seconds.
97ae2a96 2092<!-- NEED 3in -->
d360fe65 2093</P>
b1d503b0 2094<H3><A NAME="Limit">Limit</A></H3>
2095<HR>
2096<H4>Examples</H4>
2097<UL>
2098<PRE>
2099&lt;Limit GET POST&gt;
2100...
2101&lt;/Limit&gt;
2102
2103&lt;Limit ALL&gt;
2104...
2105&lt;/Limit&gt;
2106</PRE>
2107</UL>
2108<H4>Description</H4>
d5c7e2d1 2109<P>The <CODE>Limit</CODE> directive groups access control directives for
2110 specific types of HTTP requests and must appear inside a<A HREF="#Location">
2111 <CODE>Location</CODE></A> section. Access can be limited for individual
2112 request types (<CODE>DELETE</CODE>, <CODE>GET</CODE>, <CODE>HEAD</CODE>
b1d503b0 2113, <CODE>OPTIONS</CODE>, <CODE>POST</CODE>, <CODE>PUT</CODE>, and <CODE>
d5c7e2d1 2114TRACE</CODE>) or for all request types (<CODE>ALL</CODE>). The request
2115 type names are case-sensitive for compatibility with Apache.
b1d503b0 2116<!-- NEED 3in -->
d360fe65 2117</P>
b1d503b0 2118<H3><A NAME="LimitExcept">LimitExcept</A></H3>
2119<HR>
2120<H4>Examples</H4>
2121<UL>
2122<PRE>
2123&lt;LimitExcept GET POST&gt;
2124...
2125&lt;/LimitExcept&gt;
2126</PRE>
2127</UL>
2128<H4>Description</H4>
d5c7e2d1 2129<P>The <CODE>LimitExcept</CODE> directive groups access control
2130 directives for specific types of HTTP requests and must appear inside a<A
2131HREF="#Location"> <CODE>Location</CODE></A> section. Unlike the<A HREF="#Limit">
2132 <CODE>Limit</CODE></A> directive, <CODE>LimitExcept</CODE> restricts
2133 access for all requests<I> except</I> those listed on the <CODE>
2134LimitExcept</CODE> line.
b1d503b0 2135<!-- NEED 3in -->
d360fe65 2136</P>
b1d503b0 2137<H3><A NAME="LimitRequestBody">LimitRequestBody</A></H3>
2138<HR>
2139<H4>Examples</H4>
2140<UL>
2141<PRE>
2142LimitRequestBody 10485760
2143LimitRequestBody 10m
2144LimitRequestBody 0
2145</PRE>
2146</UL>
2147<H4>Description</H4>
d5c7e2d1 2148<P>The <CODE>LimitRequestBody</CODE> directive controls the maximum size
2149 of print files, IPP requests, and HTML form data in HTTP POST requests.
2150 The default limit is 0 which disables the limit check.</P>
2151<P>Also see the identical<A HREF="#MaxRequestSize"> <CODE>MaxRequestSize</CODE>
2152</A> directive.
b1d503b0 2153<!-- NEED 3in -->
d360fe65 2154</P>
97ae2a96 2155<H3><A NAME="Listen">Listen</A></H3>
b1d503b0 2156<HR>
97ae2a96 2157<H4>Examples</H4>
2158<UL>
2159<PRE>
2160Listen 127.0.0.1:631
2161Listen 192.0.2.1:631
2162</PRE>
2163</UL>
2164<H4>Description</H4>
d5c7e2d1 2165<P>The <CODE>Listen</CODE> directive specifies a network address and
2166 port to listen for connections. Multiple <CODE>Listen</CODE> directives
2167 can be provided to listen on multiple addresses.</P>
2168<P>The <CODE>Listen</CODE> directive is similar to the<A HREF="#Port"> <CODE>
2169Port</CODE></A> directive but allows you to restrict access to specific
2170 interfaces or networks.
97ae2a96 2171<!-- NEED 3in -->
d360fe65 2172</P>
97ae2a96 2173<H3><A NAME="Location">Location</A></H3>
b1d503b0 2174<HR>
97ae2a96 2175<H4>Examples</H4>
2176<UL>
2177<PRE>
2178&lt;Location /&gt;
2179...
2180&lt;/Location&gt;
2181
2182&lt;Location /admin&gt;
2183...
2184&lt;/Location&gt;
2185
2186&lt;Location /printers/name&gt;
2187...
2188&lt;/Location&gt;
2189</PRE>
2190</UL>
2191<H4>Description</H4>
d5c7e2d1 2192<P>The <CODE>Location</CODE> directive specifies access control and
2193 authentication options for the specified HTTP resource or path. More
2194 information can be found later in this chapter in<A HREF="#PRINTING_SECURITY">
2195 &quot;Printing System Security&quot;</A>.
97ae2a96 2196<!-- NEED 3in -->
d360fe65 2197</P>
97ae2a96 2198<H3><A NAME="LogLevel">LogLevel</A></H3>
b1d503b0 2199<HR>
97ae2a96 2200<H4>Examples</H4>
04d756fc 2201<UL>
2202<PRE>
97ae2a96 2203LogLevel none
b1d503b0 2204LogLevel emerg
2205LogLevel alert
2206LogLevel crit
2207LogLevel error
97ae2a96 2208LogLevel warn
b1d503b0 2209LogLevel notice
2210LogLevel info
2211LogLevel debug
2212LogLevel debug2
97ae2a96 2213</PRE>
04d756fc 2214</UL>
97ae2a96 2215<H4>Description</H4>
d5c7e2d1 2216<P>The <CODE>LogLevel</CODE> directive specifies the level of logging
2217 for the<A HREF="#ErrorLog"> <CODE>ErrorLog</CODE></A> file. The
2218 following values are recognized (each level logs everything under the
2219 preceding levels):</P>
2220<UL>
2221<LI><CODE>none</CODE> - Log nothing.</LI>
2222<LI><CODE>emerg</CODE> - Log emergency conditions that prevent the
2223 server from running.</LI>
2224<LI><CODE>alert</CODE> - Log alerts that must be handled immediately.</LI>
2225<LI><CODE>crit</CODE> - Log critical errors that don't prevent the
2226 server from running.</LI>
2227<LI><CODE>error</CODE> - Log general errors.</LI>
2228<LI><CODE>warn</CODE> - Log errors and warnings.</LI>
2229<LI><CODE>notice</CODE> - Log temporary error conditions.</LI>
2230<LI><CODE>info</CODE> - Log all requests and state changes (default).</LI>
2231<LI><CODE>debug</CODE> - Log basic debugging information.</LI>
2232<LI><CODE>debug2</CODE> - Log all debugging information.</LI>
e75387bc 2233</UL>
ecf3075f 2234
97ae2a96 2235<!-- NEED 3in -->
97ae2a96 2236<H3><A NAME="MaxClients">MaxClients</A></H3>
b1d503b0 2237<HR>
97ae2a96 2238<H4>Examples</H4>
04d756fc 2239<UL>
2240<PRE>
97ae2a96 2241MaxClients 100
2242MaxClients 1024
2243</PRE>
04d756fc 2244</UL>
97ae2a96 2245<H4>Description</H4>
d5c7e2d1 2246<P>The <CODE>MaxClients</CODE> directive controls the maximum number of
2247 simultaneous clients that will be allowed by the server. The default is
437844a0 2248 100 clients.</P>
fd7cc15d 2249<CENTER>
2250<TABLE BGCOLOR="#cccccc" BORDER="1" CELLPADDING="5" WIDTH="80%">
97ae2a96 2251<TR><TD><B> NOTE:</B>
d5c7e2d1 2252<P>Since each print job requires a file descriptor for the status pipe,
2253 the CUPS server internally limits the <CODE>MaxClients</CODE> value to
2254 1/3 of the available file descriptors to avoid possible problems when
2255 printing large numbers of jobs.</P>
fd7cc15d 2256</TD></TR>
2257</TABLE>
2258</CENTER>
ecf3075f 2259
97ae2a96 2260<!-- NEED 3in -->
97ae2a96 2261<H3><A NAME="MaxJobs">MaxJobs</A></H3>
b1d503b0 2262<HR>
97ae2a96 2263<H4>Examples</H4>
2264<UL>
2265<PRE>
2266MaxJobs 100
2267MaxJobs 9999
2268MaxJobs 0
2269</PRE>
2270</UL>
2271<H4>Description</H4>
d5c7e2d1 2272<P>The <CODE>MaxJobs</CODE> directive controls the maximum number of
2273 jobs that are kept in memory. Once the number of jobs reaches the
2274 limit, the oldest completed job is automatically purged from the system
2275 to make room for the new one. If all of the known jobs are still
2276 pending or active then the new job will be rejected.</P>
2277<P>Setting the maximum to 0 disables this functionality. The default
2278 setting is 0.
c57fe7d1 2279<!-- NEED 3in -->
2280</P>
2281<H3><A NAME="MaxJobsPerPrinter">MaxJobsPerPrinter</A></H3>
2282<HR>
2283<H4>Examples</H4>
2284<UL>
2285<PRE>
2286MaxJobsPerPrinter 100
2287MaxJobsPerPrinter 9999
2288MaxJobsPerPrinter 0
2289</PRE>
2290</UL>
2291<H4>Description</H4>
d5c7e2d1 2292<P>The <CODE>MaxJobsPerPrinter</CODE> directive controls the maximum
2293 number of active jobs that are allowed for each printer or class. Once
2294 a printer or class reaches the limit, new jobs will be rejected until
2295 one of the active jobs is completed, stopped, aborted, or cancelled.</P>
2296<P>Setting the maximum to 0 disables this functionality. The default
2297 setting is 0.
c57fe7d1 2298<!-- NEED 3in -->
2299</P>
2300<H3><A NAME="MaxJobsPerUser">MaxJobsPerUser</A></H3>
2301<HR>
2302<H4>Examples</H4>
2303<UL>
2304<PRE>
2305MaxJobsPerUser 100
2306MaxJobsPerUser 9999
2307MaxJobsPerUser 0
2308</PRE>
2309</UL>
2310<H4>Description</H4>
d5c7e2d1 2311<P>The <CODE>MaxJobsPerUser</CODE> directive controls the maximum number
2312 of active jobs that are allowed for each user. Once a user reaches the
2313 limit, new jobs will be rejected until one of the active jobs is
2314 completed, stopped, aborted, or cancelled.</P>
2315<P>Setting the maximum to 0 disables this functionality. The default
2316 setting is 0.
97ae2a96 2317<!-- NEED 3in -->
d360fe65 2318</P>
97ae2a96 2319<H3><A NAME="MaxLogSize">MaxLogSize</A></H3>
b1d503b0 2320<HR>
97ae2a96 2321<H4>Examples</H4>
2322<UL>
2323<PRE>
2324MaxLogSize 1048576
2325MaxLogSize 1m
2326MaxLogSize 0
2327</PRE>
2328</UL>
2329<H4>Description</H4>
d5c7e2d1 2330<P>The <CODE>MaxLogSize</CODE> directive controls the maximum size of
2331 each log file. Once a log file reaches or exceeds the maximum size it
2332 is closed and renamed to<VAR> filename.O</VAR>. This allows you to
2333 rotate the logs automatically. The default size is 1048576 bytes (1MB).</P>
2334<P>Setting the maximum size to 0 disables log rotation.
97ae2a96 2335<!-- NEED 3in -->
d360fe65 2336</P>
97ae2a96 2337<H3><A NAME="MaxRequestSize">MaxRequestSize</A></H3>
b1d503b0 2338<HR>
97ae2a96 2339<H4>Examples</H4>
04d756fc 2340<UL>
2341<PRE>
97ae2a96 2342MaxRequestSize 10485760
2343MaxRequestSize 10m
2344MaxRequestSize 0
2345</PRE>
04d756fc 2346</UL>
97ae2a96 2347<H4>Description</H4>
d5c7e2d1 2348<P>The <CODE>MaxRequestSize</CODE> directive controls the maximum size
2349 of print files, IPP requests, and HTML form data in HTTP POST requests.
2350 The default limit is 0 which disables the limit check.</P>
2351<P>Also see the identical<A HREF="#LimitRequestBody"> <CODE>
2352LimitRequestBody</CODE></A> directive.
97ae2a96 2353<!-- NEED 3in -->
d360fe65 2354</P>
97ae2a96 2355<H3><A NAME="Order">Order</A></H3>
b1d503b0 2356<HR>
97ae2a96 2357<H4>Examples</H4>
04d756fc 2358<UL>
2359<PRE>
97ae2a96 2360Order Allow,Deny
2361Order Deny,Allow
2362</PRE>
04d756fc 2363</UL>
97ae2a96 2364<H4>Description</H4>
d5c7e2d1 2365<P>The <CODE>Order</CODE> directive defines the default access control.
2366 The following values are supported:</P>
e75387bc 2367<UL>
d5c7e2d1 2368<LI><CODE>Allow,Deny</CODE> - Allow requests from all systems<I> except</I>
2369 for those listed in a <CODE>Deny</CODE> directive.</LI>
2370<LI><CODE>Deny,Allow</CODE> - Allow requests only from those listed in
2371 an <CODE>Allow</CODE> directive.</LI>
e75387bc 2372</UL>
d5c7e2d1 2373<P>The <CODE>Order</CODE> directive must appear inside a<A HREF="#Location">
2374 <CODE>Location</CODE></A> directive.
97ae2a96 2375<!-- NEED 3in -->
d360fe65 2376</P>
97ae2a96 2377<H3><A NAME="PageLog">PageLog</A></H3>
b1d503b0 2378<HR>
97ae2a96 2379<H4>Examples</H4>
2380<UL>
2381<PRE>
2382PageLog /var/log/cups/page_log
2383PageLog /var/log/cups/page_log-%s
2384PageLog syslog
2385</PRE>
2386</UL>
2387<H4>Description</H4>
d5c7e2d1 2388<P>The <CODE>PageLog</CODE> directive sets the name of the page log
2389 file. If the filename is not absolute then it is assumed to be relative
2390 to the<A HREF="#ServerRoot"> <CODE>ServerRoot</CODE></A> directory. The
2391 default page log file is<VAR> /var/log/cups/page_log</VAR>.</P>
97ae2a96 2392<P>The server name can be included in the filename by using <CODE>%s</CODE>
d5c7e2d1 2393 in the name.</P>
2394<P>The special name &quot;syslog&quot; can be used to send the page information to
2395 the system log instead of a plain file.
97ae2a96 2396<!-- NEED 3in -->
d360fe65 2397</P>
97ae2a96 2398<H3><A NAME="Port">Port</A></H3>
b1d503b0 2399<HR>
97ae2a96 2400<H4>Examples</H4>
2401<UL>
2402<PRE>
2403Port 631
2404Port 80
2405</PRE>
2406</UL>
2407<H4>Description</H4>
d5c7e2d1 2408<P>The <CODE>Port</CODE> directive specifies a port to listen on.
2409 Multiple <CODE>Port</CODE> lines can be specified to listen on multiple
2410 ports. The default port is 631.
97ae2a96 2411<!-- NEED 3in -->
d360fe65 2412</P>
97ae2a96 2413<H3><A NAME="PreserveJobHistory">PreserveJobHistory</A></H3>
b1d503b0 2414<HR>
97ae2a96 2415<H4>Examples</H4>
2416<UL>
2417<PRE>
2418PreserveJobHistory On
2419PreserveJobHistory Off
2420</PRE>
2421</UL>
2422<H4>Description</H4>
d5c7e2d1 2423<P>The <CODE>PreserveJobHistory</CODE> directive controls whether the
2424 history of completed, cancelled, or aborted print jobs is stored on
2425 disk.</P>
2426<P>A value of <CODE>On</CODE> (the default) preserves job information
2427 until the administrator purges it with the <CODE>cancel</CODE> command.</P>
2428<P>A value of <CODE>Off</CODE> removes the job information as soon as
2429 each job is completed, cancelled, or aborted.
97ae2a96 2430<!-- NEED 3in -->
d360fe65 2431</P>
97ae2a96 2432<H3><A NAME="PreserveJobFiles">PreserveJobFiles</A></H3>
b1d503b0 2433<HR>
97ae2a96 2434<H4>Examples</H4>
2435<UL>
2436<PRE>
2437PreserveJobFiles On
2438PreserveJobFiles Off
2439</PRE>
2440</UL>
2441<H4>Description</H4>
d5c7e2d1 2442<P>The <CODE>PreserveJobFiles</CODE> directive controls whether the
2443 document files of completed, cancelled, or aborted print jobs are
2444 stored on disk.</P>
2445<P>A value of <CODE>On</CODE> preserves job files until the
2446 administrator purges them with the <CODE>cancel</CODE> command. Jobs
2447 can be restarted (and reprinted) as desired until they are purged.</P>
2448<P>A value of <CODE>Off</CODE> (the default) removes the job files as
2449 soon as each job is completed, cancelled, or aborted.
97ae2a96 2450<!-- NEED 3in -->
d360fe65 2451</P>
97ae2a96 2452<H3><A NAME="Printcap">Printcap</A></H3>
b1d503b0 2453<HR>
97ae2a96 2454<H4>Examples</H4>
2455<UL>
2456<PRE>
2457Printcap
2458Printcap /etc/printcap
b1d503b0 2459Printcap /etc/printers.conf
97ae2a96 2460</PRE>
2461</UL>
2462<H4>Description</H4>
d5c7e2d1 2463<P>The <CODE>Printcap</CODE> directive controls whether or not a
2464 printcap file is automatically generated and updated with a list of
2465 available printers. If specified with no value, then no printcap file
2466 will be generated. The default is to generate a file named<VAR>
2467 /etc/printcap</VAR>.</P>
2468<P>When a filename is specified (e.g.<VAR> /etc/printcap</VAR>), the
2469 printcap file is written whenever a printer is added or removed. The
2470 printcap file can then be used by applications that are hardcoded to
2471 look at the printcap file for the available printers.
97ae2a96 2472<!-- NEED 3in -->
d360fe65 2473</P>
08e230aa 2474<H3><A NAME="PrintcapFormat">PrintcapFormat</A></H3>
b1d503b0 2475<HR>
2476<H4>Examples</H4>
2477<UL>
2478<PRE>
2479PrintcapFormat BSD
2480PrintcapFormat Solaris
2481</PRE>
2482</UL>
2483<H4>Description</H4>
d5c7e2d1 2484<P>The <CODE>PrintcapFormat</CODE> directive controls the output format
2485 of the printcap file. The default is to generate a BSD printcap file.
b1d503b0 2486<!-- NEED 3in -->
b1d503b0 2487</P>
08e230aa 2488<H3><A NAME="PrintcapGUI">PrintcapGUI</A></H3>
2489<HR>
2490<H4>Example</H4>
2491<UL>
2492<PRE>
2493PrintcapGUI /usr/bin/glpoptions
2494</PRE>
2495</UL>
2496<H4>Description</H4>
2497<P>The <CODE>PrintcapGUI</CODE> directive sets the program to use when
2498 displaying an option panel from an IRIX application that uses the
2499 Impressario print API. The default program is the ESP Print Pro
2500 &quot;glpoptions&quot; GUI.</P>
2501<P>The program must accept the <CODE>-d</CODE> option to specify a
2502 printer and the <CODE>-o</CODE> option to specify one or more options.
2503 After allowing the user to select/change options, the program must then
2504 write the list of printing options without the <CODE>-o</CODE> to the
2505 standard output.
2506<!-- NEED 3in -->
2507</P>
97ae2a96 2508<H3><A NAME="RemoteRoot">RemoteRoot</A></H3>
b1d503b0 2509<HR>
97ae2a96 2510<H4>Examples</H4>
04d756fc 2511<UL>
2512<PRE>
97ae2a96 2513RemoteRoot remroot
2514RemoteRoot root
2515</PRE>
04d756fc 2516</UL>
97ae2a96 2517<H4>Description</H4>
d5c7e2d1 2518<P>The <CODE>RemoteRoot</CODE> directive sets the username for
2519 unauthenticated root requests from remote hosts. The default username
2520 is<VAR> remroot</VAR>. Setting <CODE>RemoteRoot</CODE> to<VAR> root</VAR>
2521 effectively disables this security mechanism.
97ae2a96 2522<!-- NEED 3in -->
d360fe65 2523</P>
97ae2a96 2524<H3><A NAME="RequestRoot">RequestRoot</A></H3>
b1d503b0 2525<HR>
97ae2a96 2526<H4>Examples</H4>
04d756fc 2527<UL>
2528<PRE>
97ae2a96 2529RequestRoot /var/spool/cups
2530RequestRoot /foo/bar/spool/cups
2531</PRE>
04d756fc 2532</UL>
97ae2a96 2533<H4>Description</H4>
d5c7e2d1 2534<P>The <CODE>RequestRoot</CODE> directive sets the directory for
2535 incoming IPP requests and HTML forms. If an absolute path is not
2536 provided then it is assumed to be relative to the<A HREF="#ServerRoot">
2537 <CODE>ServerRoot</CODE></A> directory. The default request directory is<VAR>
2538 /var/spool/cups</VAR>.
ffb44853 2539<!-- NEED 4in -->
2540</P>
2541<H3><A NAME="Require">Require</A></H3>
2542<HR>
2543<H4>Examples</H4>
2544<UL>
2545<PRE>
2546Require group foo bar
2547Require user john mary
2548Require valid-user
2549</PRE>
2550</UL>
2551<H4>Description</H4>
2552<P>The <CODE>Require</CODE> directive specifies that authentication is
2553 required for the resource. The <CODE>group</CODE> keyword specifies
2554 that the authenticated user must be a member of one or more of the
2555 named groups that follow.</P>
2556<P>The <CODE>user</CODE> keyboard specifies that the authenticated user
2557 must be one of the named users that follow.</P>
2558<P>The <CODE>valid-user</CODE> keyword specifies that any authenticated
2559 user may access the resource.</P>
2560<P>The default is to do no authentication. This directive must appear
2561 inside a<A HREF="#Location"> <CODE>Location</CODE></A> directive.
97ae2a96 2562<!-- NEED 3in -->
d360fe65 2563</P>
97ae2a96 2564<H3><A NAME="RIPCache">RIPCache</A></H3>
b1d503b0 2565<HR>
97ae2a96 2566<H4>Examples</H4>
2567<UL>
2568<PRE>
2569RIPCache 8m
2570RIPCache 1g
2571RIPCache 2048k
2572</PRE>
2573</UL>
2574<H4>Description</H4>
d5c7e2d1 2575<P>The <CODE>RIPCache</CODE> directive sets the size of the memory cache
2576 used by Raster Image Processor (&quot;RIP&quot;) filters such as <CODE>
2577imagetoraster</CODE> and <CODE>pstoraster</CODE>. The size can be
2578 suffixed with a &quot;k&quot; for kilobytes, &quot;m&quot; for megabytes, or &quot;g&quot; for
2579 gigabytes. The default cache size is &quot;8m&quot;, or 8 megabytes.
97ae2a96 2580<!-- NEED 3in -->
d360fe65 2581</P>
b1d503b0 2582<H3><A NAME="RunAsUser">RunAsUser</A></H3>
2583<HR>
2584<H4>Examples</H4>
2585<UL>
2586<PRE>
2587RunAsUser Yes
2588RunAsUser No
2589</PRE>
2590</UL>
2591<H4>Description</H4>
d5c7e2d1 2592<P>The <CODE>RunAsUser</CODE> directive controls whether the scheduler
2593 runs as the unpriviledged user account (usually <CODE>lp</CODE>). The
2594 default is <CODE>No</CODE> which leaves the scheduler running as the <CODE>
2595root</CODE> user.</P>
2596<P><B>Note:</B> Running as a non-priviledged user may prevent LPD and
2597 locally connected printers from working due to permission problems. The
2598 <CODE>lpd</CODE> backend will automatically use a non-priviledged mode
2599 that is not 100% compliant with RFC 1179. The <CODE>parallel</CODE>, <CODE>
2600serial</CODE>, and <CODE>usb</CODE> backends will need write access to
2601 the corresponding device files.
b1d503b0 2602<!-- NEED 3in -->
d360fe65 2603</P>
ffb44853 2604<H3><A NAME="Satisfy">Satisfy</A></H3>
2605<HR>
2606<H4>Examples</H4>
2607<UL>
2608<PRE>
2609Satisfy all
2610Satisfy any
2611</PRE>
2612</UL>
2613<H4>Description</H4>
2614<P>The <CODE>Satisfy</CODE> directive specifies whether all conditions
2615 must be satisfied to allow access to the resource. If set to <CODE>all</CODE>
2616, then all authentication and access control conditions must be satified
2617 to allow access.</P>
2618<P>Setting <CODE>Satisfy</CODE> to <CODE>any</CODE> allows a user to
2619 gain access if the authentication or access control requirements are
2620 satisfied. For example, you might require authentication for remote
2621 access, but allow local access without authentication.</P>
2622<P>The default is <CODE>all</CODE>. This directive must appear inside a<A
2623HREF="#Location"> <CODE>Location</CODE></A> directive.
2624<!-- NEED 3in -->
2625</P>
97ae2a96 2626<H3><A NAME="ServerAdmin">ServerAdmin</A></H3>
b1d503b0 2627<HR>
97ae2a96 2628<H4>Examples</H4>
04d756fc 2629<UL>
2630<PRE>
97ae2a96 2631ServerAdmin user@host
2632ServerAdmin root@foo.bar.com
2633</PRE>
04d756fc 2634</UL>
97ae2a96 2635<H4>Description</H4>
d5c7e2d1 2636<P>The <CODE>ServerAdmin</CODE> directive identifies the email address
2637 for the administrator on the system. By default the administrator email
2638 address is <CODE>root@server</CODE>, where <CODE>server</CODE> is the
2639 server name.
97ae2a96 2640<!-- NEED 3in -->
d360fe65 2641</P>
97ae2a96 2642<H3><A NAME="ServerBin">ServerBin</A></H3>
b1d503b0 2643<HR>
97ae2a96 2644<H4>Examples</H4>
2645<UL>
2646<PRE>
2647ServerBin /usr/lib/cups
2648ServerBin /foo/bar/lib/cups
2649</PRE>
2650</UL>
2651<H4>Description</H4>
d5c7e2d1 2652<P>The <CODE>ServerBin</CODE> directive sets the directory for
2653 server-run executables. If an absolute path is not provided then it is
2654 assumed to be relative to the<A HREF="#ServerRoot"> <CODE>ServerRoot</CODE>
2655</A> directory. The default executable directory is<VAR> /usr/lib/cups</VAR>
43289530 2656.
97ae2a96 2657<!-- NEED 3in -->
d360fe65 2658</P>
b1d503b0 2659<H3><A NAME="ServerCertificate">ServerCertificate</A></H3>
2660<HR>
2661<H4>Examples</H4>
2662<UL>
2663<PRE>
2664ServerCertificate /etc/cups/ssl/server.crt
2665</PRE>
2666</UL>
2667<H4>Description</H4>
d5c7e2d1 2668<P>The <CODE>ServerCertificate</CODE> directive specifies the location
2669 of the SSL certificate file used by the server when negotiating
2670 encrypted connections. The certificate must not be encrypted (password
2671 protected) since the scheduler normally runs in the background and will
2672 be unable to ask for a password. The default certificate file is<VAR>
2673 /etc/cups/ssl/server.crt</VAR>.
b1d503b0 2674<!-- NEED 3in -->
d360fe65 2675</P>
b1d503b0 2676<H3><A NAME="ServerKey">ServerKey</A></H3>
2677<HR>
2678<H4>Examples</H4>
2679<UL>
2680<PRE>
2681ServerKey /etc/cups/ssl/server.key
2682</PRE>
2683</UL>
2684<H4>Description</H4>
d5c7e2d1 2685<P>The <CODE>ServerKey</CODE> directive specifies the location of the
2686 SSL private key file used by the server when negotiating encrypted
2687 connections. The default key file is<VAR> /etc/cups/ssl/server.crt</VAR>
2688.
b1d503b0 2689<!-- NEED 3in -->
d360fe65 2690</P>
97ae2a96 2691<H3><A NAME="ServerName"></A>ServerName</H3>
b1d503b0 2692<HR>
97ae2a96 2693<H4>Examples</H4>
04d756fc 2694<UL>
2695<PRE>
97ae2a96 2696ServerName foo.domain.com
2697ServerName myserver.domain.com
2698</PRE>
04d756fc 2699</UL>
97ae2a96 2700<H4>Description</H4>
d5c7e2d1 2701<P>The <CODE>ServerName</CODE> directive specifies the hostname that is
2702 reported to clients. By default the server name is the hostname.
97ae2a96 2703<!-- NEED 3in -->
d360fe65 2704</P>
97ae2a96 2705<H3><A NAME="ServerRoot">ServerRoot</A></H3>
b1d503b0 2706<HR>
97ae2a96 2707<H4>Examples</H4>
04d756fc 2708<UL>
2709<PRE>
97ae2a96 2710ServerRoot /etc/cups
2711ServerRoot /foo/bar/cups
2712</PRE>
04d756fc 2713</UL>
97ae2a96 2714<H4>Description</H4>
d5c7e2d1 2715<P>The <CODE>ServerRoot</CODE> directive specifies the absolute path to
2716 the server configuration and state files. It is also used to resolve
2717 relative paths in the<VAR> cupsd.conf</VAR> file. The default server
2718 directory is<VAR> /etc/cups</VAR>.
97ae2a96 2719<!-- NEED 3in -->
d360fe65 2720</P>
b1d503b0 2721<H3><A NAME="SSLListen">SSLListen</A></H3>
2722<HR>
2723<H4>Examples</H4>
2724<UL>
2725<PRE>
2726SSLListen 127.0.0.1:443
2727SSLListen 192.0.2.1:443
2728</PRE>
2729</UL>
2730<H4>Description</H4>
d5c7e2d1 2731<P>The <CODE>SSLListen</CODE> directive specifies a network address and
2732 port to listen for secure connections. Multiple <CODE>SSLListen</CODE>
2733 directives can be provided to listen on multiple addresses.</P>
2734<P>The <CODE>SSLListen</CODE> directive is similar to the<A HREF="#SSLPort">
2735 <CODE>SSLPort</CODE></A> directive but allows you to restrict access to
2736 specific interfaces or networks.
b1d503b0 2737<!-- NEED 3in -->
d360fe65 2738</P>
b1d503b0 2739<H3><A NAME="SSLPort">SSLPort</A></H3>
2740<HR>
2741<H4>Examples</H4>
2742<UL>
2743<PRE>
2744SSLPort 443
2745</PRE>
2746</UL>
2747<H4>Description</H4>
d5c7e2d1 2748<P>The <CODE>SSLPort</CODE> directive specifies a port to listen on for
2749 secure connections. Multiple <CODE>SSLPort</CODE> lines can be
2750 specified to listen on multiple ports.
b1d503b0 2751<!-- NEED 3in -->
d360fe65 2752</P>
97ae2a96 2753<H3><A NAME="SystemGroup">SystemGroup</A></H3>
b1d503b0 2754<HR>
97ae2a96 2755<H4>Examples</H4>
04d756fc 2756<UL>
2757<PRE>
97ae2a96 2758SystemGroup sys
2759SystemGroup system
2760SystemGroup root
2761</PRE>
04d756fc 2762</UL>
97ae2a96 2763<H4>Description</H4>
d5c7e2d1 2764<P>The <CODE>SystemGroup</CODE> directive specifies the system
2765 administration group for <CODE>System</CODE> authentication. More
2766 information can be found later in this chapter in<A HREF="#PRINTING_SECURITY">
2767 &quot;Printing System Security&quot;</A>.
97ae2a96 2768<!-- NEED 3in -->
d360fe65 2769</P>
97ae2a96 2770<H3><A NAME="TempDir">TempDir</A></H3>
b1d503b0 2771<HR>
97ae2a96 2772<H4>Examples</H4>
04d756fc 2773<UL>
2774<PRE>
97ae2a96 2775TempDir /var/tmp
2776TempDir /foo/bar/tmp
2777</PRE>
04d756fc 2778</UL>
97ae2a96 2779<H4>Description</H4>
d5c7e2d1 2780<P>The <CODE>TempDir</CODE> directive specifies an absolute path for the
2781 directory to use for temporary files. The default directory is<VAR>
2782 /var/tmp</VAR>.</P>
2783<P>Temporary directories must be world-writable and should have the
2784 &quot;sticky&quot; permission bit enabled so that other users cannot delete
2785 filter temporary files. The following commands will create an
2786 appropriate temporary directory called<VAR> /foo/bar/tmp</VAR>:</P>
04d756fc 2787<UL>
2788<PRE>
97ae2a96 2789<B>mkdir /foo/bar/tmp ENTER</B>
2790<B>chmod a+rwxt /foo/bar/tmp ENTER</B>
2791</PRE>
e75387bc 2792</UL>
e75387bc 2793
97ae2a96 2794<!-- NEED 3in -->
97ae2a96 2795<H3><A NAME="Timeout">Timeout</A></H3>
b1d503b0 2796<HR>
97ae2a96 2797<H4>Examples</H4>
04d756fc 2798<UL>
2799<PRE>
97ae2a96 2800Timeout 300
2801Timeout 90
2802</PRE>
04d756fc 2803</UL>
97ae2a96 2804<H4>Description</H4>
d5c7e2d1 2805<P>The <CODE>Timeout</CODE> directive controls the amount of time to
2806 wait before an active HTTP or IPP request times out. The default
2807 timeout is 300 seconds.
97ae2a96 2808<!-- NEED 3in -->
d360fe65 2809</P>
97ae2a96 2810<H3><A NAME="User">User</A></H3>
b1d503b0 2811<HR>
97ae2a96 2812<H4>Examples</H4>
04d756fc 2813<UL>
2814<PRE>
97ae2a96 2815User lp
2816User guest
2817</PRE>
04d756fc 2818</UL>
97ae2a96 2819<H4>Description</H4>
d5c7e2d1 2820<P>The <CODE>User</CODE> directive specifies the UNIX user that filter
2821 and CGI programs run as. The default user is <CODE>lp</CODE>.
97ae2a96 2822<!-- NEW PAGE -->
d360fe65 2823</P>
97ae2a96 2824<H2><A NAME="PRINTING_SECURITY">Printing System Security</A></H2>
d5c7e2d1 2825<P>CUPS provides support for address, certificate, and password (Basic
2826 and Digest) based authentication and access control. Certificate and
2827 password authentication provide ways to limit access to individual
2828 people or groups.</P>
2829<P>Address based access control allows you to limit access to specific
2830 systems, networks, or domains. While this does not provide
2831 authentication, it does allow you to limit the potential users of your
2832 system efficiently.</P>
2833<P>CUPS maintains a list of locations that have access control and/or
2834 authentication enabled. Locations are specified using the<A HREF="#Location">
2835 <CODE>Location</CODE></A> directive:</P>
97ae2a96 2836<UL>
2837<PRE>
2838&lt;Location /resource&gt;
2839<A HREF="#AuthClass">AuthClass</A> ...
2840<A HREF="#AuthGroupName">AuthGroupName</A> ...
2841<A HREF="#AuthType">AuthType</A> ...
2842
2843<A HREF="#Order">Order</A> ...
2844<A HREF="#Allow">Allow</A> from ...
2845<A HREF="#Deny">Deny</A> from ...
2846&lt;/Location&gt;
2847</PRE>
2848</UL>
d5c7e2d1 2849<P>Locations generally follow the directory structure of the<A HREF="#DocumentRoot">
2850 <CODE>DocumentRoot</CODE></A> directory, however CUPS does have several
2851 virtual locations for administration, classes, jobs, and printers:
ea0c2f2f 2852<CENTER>
38138d28 2853<TABLE BORDER="1">
97ae2a96 2854<TR><TH>Location</TH><TH>Description</TH></TR>
2855<TR><TD>/admin</TD><TD>The path for all administration operations.</TD></TR>
2856<TR><TD>/classes</TD><TD>The path for all classes.</TD></TR>
2857<TR><TD>/classes/name</TD><TD>The resource for class <CODE>name</CODE>.</TD>
e75387bc 2858</TR>
97ae2a96 2859<TR><TD>/jobs</TD><TD>The path for all jobs.</TD></TR>
2860<TR><TD>/jobs/id</TD><TD>The resource for job <CODE>id</CODE>.</TD></TR>
2861<TR><TD>/printers</TD><TD>The path for all printers.</TD></TR>
2862<TR><TD>/printers/name</TD><TD>The path for printer <CODE>name</CODE>.</TD>
e75387bc 2863</TR>
97ae2a96 2864<TR><TD>/printers/name.ppd</TD><TD>The PPD file path for printer <CODE>
2865name</CODE>.</TD></TR>
ea0c2f2f 2866</TABLE>
2867</CENTER>
2868</P>
97ae2a96 2869<H3><A NAME="CERTIFICATES">Authentication Using Certificates</A></H3>
d5c7e2d1 2870<P>CUPS supports a local certificate-based authentication scheme that
2871 can be used in place of <CODE>Basic</CODE> or <CODE>Digest</CODE>
97ae2a96 2872 authentication by clients connecting through the <CODE>localhost</CODE>
d5c7e2d1 2873 interface. Certificate authentication is not supported or allowed from
2874 clients on any other interface.</P>
2875<P>Certificates are 128-bit random numbers that refer to an internal
2876 authentication record in the server. A client connecting via the <CODE>
2877localhost</CODE> interface sends a request with an authorization header
2878 of:</P>
97ae2a96 2879<UL>
2880<PRE>
2881Authorization: Local 0123456789ABCDEF0123456789ABCDEF
2882</PRE>
2883</UL>
d5c7e2d1 2884<P>The server then looks up the local certificate and authenticates
2885 using the username associated with it.</P>
2886<P>Certificates are generated by the server automatically and stored in
2887 the<VAR> /etc/cups/certs</VAR> directory using the process ID of the
2888 CGI program started by the server. Certificate files are only readable
2889 by the<A HREF="#User"> <CODE>User</CODE></A> and<A HREF="#Group"> <CODE>
2890Group</CODE></A> defined in the<VAR> cupsd.conf</VAR> file. When the CGI
2891 program ends the certificate is removed and invalidated automatically.</P>
2892<P>The special file<VAR> /etc/cups/certs/0</VAR> defines the<I> root
2893 certificate</I> which can be used by any client running as the
2894 super-user or another user that is part of the group defined by the<A HREF="#SystemGroup">
2895 <CODE>SystemGroup</CODE></A> directive. The root certificate is
2896 automatically regenerated every 5 minutes.</P>
97ae2a96 2897<H3><A NAME="7_5_2">Using Basic Authentication</A></H3>
d5c7e2d1 2898<P>Basic authentication uses UNIX users and passwords to authenticate
2899 access to resources such as printers and classes, and to limit access
437844a0 2900 to administrative functions.</P>
fd7cc15d 2901<CENTER>
2902<TABLE BGCOLOR="#cccccc" BORDER="1" CELLPADDING="5" WIDTH="80%">
97ae2a96 2903<TR><TD><B> NOTE:</B>
d5c7e2d1 2904<P>Basic authentication sends the username and password Base64 encoded
2905 from the client to the server, so it offers no protection against
2906 eavesdropping. This means that a malicious user can monitor network
2907 packets and discover valid users and passwords that could result in a
2908 serious compromise in network security. Use Basic authentication with
2909 extreme care.</P>
fd7cc15d 2910</TD></TR>
2911</TABLE>
2912</CENTER>
d5c7e2d1 2913<P>The CUPS implementation of Basic authentication does not allow access
2914 through user accounts without a password. If you try to authenticate
2915 using an account without a password, your access will be immediately
2916 blocked.</P>
2917<P>Once a valid username and password is authenticated by CUPS, any
437844a0 2918 additional group membership requirements are checked.</P>
fd7cc15d 2919<CENTER>
2920<TABLE BGCOLOR="#cccccc" BORDER="1" CELLPADDING="5" WIDTH="80%">
97ae2a96 2921<TR><TD><B> NOTE:</B>
d5c7e2d1 2922<P>The root user is considered by CUPS to be a member of every group.</P>
fd7cc15d 2923</TD></TR>
2924</TABLE>
2925</CENTER>
ecf3075f 2926
97ae2a96 2927<!-- NEED 1in -->
d5c7e2d1 2928<P>Use the <CODE>AuthType</CODE> directive to enable Basic
2929 authentication:</P>
41f765f4 2930<UL>
2931<PRE>
97ae2a96 2932AuthType Basic
2933</PRE>
41f765f4 2934</UL>
551d3a88 2935
97ae2a96 2936<!-- NEED 7in -->
97ae2a96 2937<H3><A NAME="7_5_3">Using Digest Authentication</A></H3>
d5c7e2d1 2938<P>Digest authentication uses users and passwords defined in the<VAR>
2939 /etc/cups/passwd.md5</VAR> file to authenticate access to resources
2940 such as printers and classes, and to limit access to administrative
437844a0 2941 functions.</P>
fd7cc15d 2942<CENTER>
2943<TABLE BGCOLOR="#cccccc" BORDER="1" CELLPADDING="5" WIDTH="80%">
97ae2a96 2944<TR><TD><B> NOTE:</B>
d5c7e2d1 2945<P>Unlike Basic authentication, Digest passes the MD5 sum (basically a
2946 complicated checksum) of the username and password instead of the
2947 strings themselves. Also, Digest authentication does not use the UNIX
2948 password file, so if an attacker does discover the original password it
2949 is less likely to result in a serious security problem so long as you
2950 use a different UNIX password than the corresponding Digest password.</P>
2951<P>The current CUPS implementation of Digest authentication uses the
2952 client's hostname or IP address for the &quot;nonce&quot; value. The nonce value
2953 is an additional string added to the username and password to make
2954 guessing the password more difficult. The server checks that the nonce
2955 value matches the client's hostname or address and rejects the MD5 sum
2956 if it doesn't. Future versions of CUPS will support Digest &quot;session&quot;
2957 authentication which adds the request data to the MD5 sum, providing
2958 even better authentication and security.</P>
2959<P>Digest authentication does not guarantee that an attacker cannot gain
2960 unauthorized access, but it is safer than Basic authentication and
2961 should be used in place of Basic authentication whenever possible.<B>
2962 Support for Digest authentication in web browsers is not yet
2963 universally available.</B></P>
fd7cc15d 2964</TD></TR>
2965</TABLE>
2966</CENTER>
ecf3075f 2967
97ae2a96 2968<!-- NEED 2in -->
d5c7e2d1 2969<P>The <CODE>lppasswd(1)</CODE> command is used to add, change, or
2970 remove accounts from the<VAR> passwd.md5</VAR> file. To add a user to
2971 the default system group, type:</P>
41f765f4 2972<UL>
e75387bc 2973<PRE>
97ae2a96 2974<B>lppasswd -a user ENTER</B>
2975Password: <B>(password) ENTER</B> [password is not echoed]
2976Password again: <B>(password) ENTER</B> [password is not echoed]
2977</PRE>
41f765f4 2978</UL>
ecf3075f 2979
97ae2a96 2980<!-- NEED 2in -->
d5c7e2d1 2981<P>Once added, a user can change his/her password by typing:</P>
41f765f4 2982<UL>
2983<PRE>
97ae2a96 2984<B>lppasswd ENTER</B>
2985Old password: <B>(password) ENTER</B> [password is not echoed]
2986Password: <B>(password) ENTER</B> [password is not echoed]
2987Password again: <B>(password) ENTER</B> [password is not echoed]
2988</PRE>
41f765f4 2989</UL>
ecf3075f 2990
97ae2a96 2991<!-- NEED 1in -->
d5c7e2d1 2992<P>To remove a user from the password file, type:</P>
41f765f4 2993<UL>
2994<PRE>
97ae2a96 2995<B>lppasswd -x user ENTER</B>
2996</PRE>
41f765f4 2997</UL>
d5c7e2d1 2998<P>Once a valid username and password is authenticated by CUPS, any
437844a0 2999 additional group membership requirements are checked.</P>
fd7cc15d 3000<CENTER>
3001<TABLE BGCOLOR="#cccccc" BORDER="1" CELLPADDING="5" WIDTH="80%">
97ae2a96 3002<TR><TD><B> NOTE:</B>
d5c7e2d1 3003<P>The root user is considered by CUPS to be a member of every group.</P>
fd7cc15d 3004</TD></TR>
3005</TABLE>
3006</CENTER>
d5c7e2d1 3007<P>Use the <CODE>AuthType</CODE> directive to enable Digest
3008 authentication:</P>
97ae2a96 3009<UL>
3010<PRE>
3011AuthType Digest
3012</PRE>
3013</UL>
3014<H3><A NAME="7_5_4">System and Group Authentication</A></H3>
d5c7e2d1 3015<P>The<A HREF="#AuthClass"> <CODE>AuthClass</CODE></A> directive
3016 controls the level of authentication to perform. <CODE>System</CODE>
3017 and <CODE>Group</CODE> authentication extend the normal user-based
3018 authentication to require membership in a UNIX group. For <CODE>System</CODE>
97ae2a96 3019 authentication each user must belong to the <CODE>sys</CODE>, <CODE>
d5c7e2d1 3020system</CODE>, or <CODE>root</CODE> group; the actual group depends on
3021 the operating system.</P>
3022<P>For <CODE>Group</CODE> authentication each user must belong to the
3023 group named by the<A HREF="#AuthGroupName"> <CODE>AuthGroupName</CODE></A>
3024 directive:</P>
97ae2a96 3025<UL>
3026<PRE>
3027&lt;Location /path&gt;
3028AuthType Digest
3029AuthClass Group
3030AuthGroupName mygroup
3031&lt;/Location&gt;
3032</PRE>
3033</UL>
d5c7e2d1 3034<P>The named group must be a valid UNIX user group, usually defined in
3035 the<VAR> /etc/group</VAR> or<VAR> /etc/netgroup</VAR> files.
3036 Additionally, when using Digest authentication you need to create user
3037 accounts with the named group:</P>
97ae2a96 3038<UL>
3039<PRE>
3040<B>lppasswd -g mygroup -a user ENTER</B>
3041Password: <B>(password) ENTER</B> [password is not echoed]
3042Password again: <B>(password) ENTER</B> [password is not echoed]
3043</PRE>
38138d28 3044</UL>
41f765f4 3045
97ae2a96 3046<!-- NEW PAGE -->
97ae2a96 3047<H2><A NAME="PRINTER_ACCOUNTING">Printer Accounting</A></H2>
437844a0 3048<P>CUPS maintains a log of all accesses, errors, and pages that are
3049 printed. The log files are normally stored in the<VAR> /var/log/cups</VAR>
3050 directory. You can change this by editing the<VAR> /etc/cups/cupsd.conf</VAR>
3051 configuration file.</P>
97ae2a96 3052<H3><A NAME="7_6_1">The access_log File</A></H3>
d5c7e2d1 3053<P>The<VAR> access_log</VAR> file lists each HTTP resource that is
3054 accessed by a web browser or CUPS/IPP client. Each line is in the
3055 so-called &quot;Common Log Format&quot; used by many web servers and web
3056 reporting tools:</P>
97ae2a96 3057<UL>
3058<PRE>
3059host group user date-time \&quot;method resource version\&quot; status bytes
3060
3061127.0.0.1 - - [20/May/1999:19:20:29 +0000] &quot;POST /admin/ HTTP/1.1&quot; 401 0
3062127.0.0.1 - mike [20/May/1999:19:20:31 +0000] &quot;POST /admin/ HTTP/1.1&quot; 200 0
3063</PRE>
3064</UL>
d5c7e2d1 3065<P>The<I> host</I> field will normally only be an IP address unless you
3066 have enabled the<A HREF="#HostNameLookups"> <CODE>HostNameLookups</CODE>
3067</A> directive in the<VAR> cupsd.conf</VAR> file.</P>
3068<P>The<I> group</I> field always contains &quot;-&quot; in CUPS.</P>
3069<P>The<I> user</I> field is the authenticated username of the requesting
3070 user. If no username and password is supplied for the request then this
3071 field contains &quot;-&quot;.</P>
3072<P>The<I> date-time</I> field is the date and time of the request in
3073 local time and is in the format:</P>
97ae2a96 3074<UL>
3075<PRE>
3076[DD/MON/YYYY:HH:MM:SS +ZZZZ]
3077</PRE>
3078</UL>
d5c7e2d1 3079<P>where<I> ZZZZ</I> is the timezone offset in hours and minutes from
3080 Greenwich Mean Time (a.k.a. GMT a.k.a. ZULU.)</P>
3081<P>The<I> method</I> field is the HTTP method used (&quot;GET&quot;, &quot;PUT&quot;,
3082 &quot;POST&quot;, etc.)</P>
3083<P>The<I> resource</I> field is the filename of the requested resource.</P>
3084<P>The<I> version</I> field is the HTTP specification version used by
3085 the client. For CUPS clients this will always be &quot;HTTP/1.1&quot;.</P>
3086<P>The<I> status</I> field contains the HTTP result status of the
3087 request. Usually it is &quot;200&quot;, but other HTTP status codes are possible.
3088 For example, 401 is the &quot;unauthorized access&quot; status in the example
3089 above.</P>
3090<P>The<I> bytes</I> field contains the number of bytes in the request.
3091 For POST requests the<I> bytes</I> field contains the number of bytes
3092 that was received from the client.</P>
97ae2a96 3093<H3><A NAME="7_6_2">The error_log File</A></H3>
d5c7e2d1 3094<P>The<VAR> error_log</VAR> file lists messages from the scheduler
3095 (errors, warnings, etc.):</P>
97ae2a96 3096<UL>
3097<PRE>
3098level date-time message
3099
3100I [20/May/1999:19:18:28 +0000] Job 1 queued on 'DeskJet' by 'mike'.
3101I [20/May/1999:19:21:02 +0000] Job 2 queued on 'DeskJet' by 'mike'.
3102I [20/May/1999:19:22:24 +0000] Job 2 was cancelled by 'mike'.
3103</PRE>
3104</UL>
d5c7e2d1 3105<P>The<I> level</I> field contains the type of message:</P>
97ae2a96 3106<UL>
d5c7e2d1 3107<LI><CODE>E</CODE> - An error occurred.</LI>
3108<LI><CODE>W</CODE> - The server was unable to perform some action.</LI>
3109<LI><CODE>I</CODE> - Informational message.</LI>
3110<LI><CODE>D</CODE> - Debugging message.</LI>
97ae2a96 3111</UL>
d5c7e2d1 3112<P>The<I> date-time</I> field contains the date and time of when the
3113 page started printing. The format of this field is identical to the<I>
3114 data-time</I> field in the<VAR> access_log</VAR> file.</P>
3115<P>The<I> message</I> fields contains a free-form textual message.</P>
97ae2a96 3116<H3><A NAME="7_6_3">The page_log File</A></H3>
d5c7e2d1 3117<P>The<VAR> page_log</VAR> file lists each page that is sent to a
3118 printer. Each line contains the following information:</P>
97ae2a96 3119<UL>
3120<PRE>
3121printer user job-id date-time page-number num-copies job-billing
3122
3123DeskJet root 2 [20/May/1999:19:21:05 +0000] 1 0 acme-123
3124</PRE>
3125</UL>
d5c7e2d1 3126<P>The<I> printer</I> field contains the name of the printer that
3127 printed the page. If you send a job to a printer class, this field will
3128 contain the name of the printer that was assigned the job.</P>
3129<P>The<I> user</I> field contains the name of the user (the IPP <CODE>
3130requesting-user-name</CODE> attribute) that submitted this file for
3131 printing.</P>
3132<P>The<I> job-id</I> field contains the job number of the page being
3133 printed. Job numbers are reset to 1 whenever the CUPS server is
3134 started, so don't depend on this number being unique!</P>
3135<P>The<I> date-time</I> field contains the date and time of when the
3136 page started printing. The format of this field is identical to the<I>
3137 data-time</I> field in the<VAR> access_log</VAR> file.</P>
3138<P>The<I> page-number</I> and<I> num-pages</I> fields contain the page
3139 number and number of copies being printed of that page. For printer
3140 that can not produce copies on their own, the<I> num-pages</I> field
3141 will always be 1.</P>
3142<P>The<I> job-billing</I> field contains a copy of the <CODE>job-billing</CODE>
97ae2a96 3143 attribute provided with the IPP <CODE>create-job</CODE> or <CODE>
d5c7e2d1 3144print-job</CODE> requests or &quot;-&quot; if none was provided.
97ae2a96 3145<!-- NEW PAGE -->
d360fe65 3146</P>
97ae2a96 3147<H2><A NAME="FILE_TYPING_FILTERING">File Typing and Filtering</A></H2>
d5c7e2d1 3148<P>CUPS provides a MIME-based file typing and filtering mechanism to
3149 convert files to a printable format for each printer. On startup the
3150 CUPS server reads MIME database files from the<VAR> /etc/cups</VAR>
3151 directory (or a directory specified by the<A HREF="#ServerRoot"> <CODE>
3152ServerRoot</CODE></A> directive) to build a file type and conversion
3153 database in memory. These database files are plain ASCII text and can
3154 be edited with your favorite text editor.</P>
3155<P>The<VAR> mime.types</VAR> and<VAR> mime.convs</VAR> files define the
3156 standard file types and filters that are available on the system.</P>
97ae2a96 3157<H3><A NAME="7_7_1">mime.types</A></H3>
d5c7e2d1 3158<P>The<VAR> mime.types</VAR> file defines the known file types. Each
3159 line of the file starts with the MIME type and may be followed by one
3160 or more file type recognition rules. For example, the <CODE>text/html</CODE>
3161 file type is defined as:</P>
97ae2a96 3162<UL>
3163<PRE>
3164text/html html htm \
3165 printable(0,1024) + \
3166 (string(0,&quot;&lt;HTML&gt;&quot;) string(0,&quot;&lt;!DOCTYPE&quot;))
3167</PRE>
3168</UL>
d5c7e2d1 3169<P>The first two rules say that any file with an extension of<VAR> .html</VAR>
3170 or<VAR> .htm</VAR> is a HTML file. The third rule says that any file
3171 whose first 1024 characters are printable text and starts with the
3172 strings <CODE>&lt;HTML&gt;</CODE> or <CODE>&lt;!DOCTYPE</CODE> is a HTML file as
3173 well.</P>
3174<P>The first two rules deal solely with the name of the file being
3175 typed. This is useful when the original filename is known, however for
3176 print files the server doesn't have a filename to work with. The third
3177 rule takes care of this possibility and automatically figures out the
3178 file type based upon the contents of the file instead.</P>
3179<P>The available tests are:</P>
3180<UL>
3181<LI><CODE>( expr )</CODE> - Parenthesis for expression grouping</LI>
3182<LI><CODE>+</CODE> - Logical AND</LI>
3183<LI><CODE>,</CODE> or whitespace - Logical OR</LI>
3184<LI><CODE>!</CODE> - Logical NOT</LI>
3185<LI><CODE>match(&quot;pattern&quot;)</CODE> - Pattern match on filename</LI>
3186<LI><CODE>extension</CODE> - Pattern match on &quot;*.extension&quot;</LI>
3187<LI><CODE>ascii(offset,length)</CODE> - True if bytes are valid
3188 printable ASCII (CR, NL, TAB, BS, 32-126)</LI>
3189<LI><CODE>printable(offset,length)</CODE> - True if bytes are printable
3190 8-bit chars (CR, NL, TAB, BS, 32-126, 160-254)</LI>
3191<LI><CODE>string(offset,&quot;string&quot;)</CODE> - True if bytes are identical
3192 to string</LI>
3193<LI><CODE>contains(offset,range,&quot;string&quot;)</CODE> - True if the range of
3194 bytes contains the string</LI>
3195<LI><CODE>char(offset,value)</CODE> - True if byte is identical</LI>
3196<LI><CODE>short(offset,value)</CODE> - True if 16-bit integer is
3197 identical (network or &quot;big-endian&quot; byte order)</LI>
3198<LI><CODE>int(offset,value)</CODE> - True if 32-bit integer is identical
3199 (network or &quot;big-endian&quot; byte order)</LI>
3200<LI><CODE>locale(&quot;string&quot;)</CODE> - True if current locale matches
3201 string</LI>
3202</UL>
3203<P>All numeric values can be in decimal (123), octal (0123), or
3204 hexadecimal (0x123) as desired.
97ae2a96 3205<!-- NEED 2.5in -->
d360fe65 3206</P>
d5c7e2d1 3207<P>Strings can be in quotes, all by themselves, as a string of
3208 hexadecimal values, or some combination:</P>
e75387bc 3209<UL>
3210<PRE>
97ae2a96 3211&quot;string&quot;
3212'string'
3213string
3214&lt;737472696e67&gt;
3215&lt;7374&gt;ring
3216</PRE>
e75387bc 3217</UL>
d5c7e2d1 3218<P>As shown in the <CODE>text/html</CODE> example, rules can continue on
3219 multiple lines using the backslash (\) character. A more complex
3220 example is the <CODE>image/jpeg</CODE> rules:</P>
e75387bc 3221<UL>
3222<PRE>
97ae2a96 3223image/jpeg jpeg jpg jpe string(0,&lt;FFD8FF&gt;) &amp;&amp;\
3224 (char(3,0xe0) char(3,0xe1) char(3,0xe2) char(3,0xe3)\
3225 char(3,0xe4) char(3,0xe5) char(3,0xe6) char(3,0xe7)\
3226 char(3,0xe8) char(3,0xe9) char(3,0xea) char(3,0xeb)\
3227 char(3,0xec) char(3,0xed) char(3,0xee) char(3,0xef))
3228</PRE>
e75387bc 3229</UL>
d5c7e2d1 3230<P>This rule states that any file with an extension of<VAR> .jpeg</VAR>,<VAR>
3231 .jpg</VAR>, or<VAR> .jpe</VAR> is a JPEG file. In addition, any file
3232 starting with the hexadecimal string <CODE>&lt;FFD8FF&gt;</CODE> (JPEG
3233 Start-Of-Image) followed by a character between and including <CODE>
32340xe0</CODE> and <CODE>0xef</CODE> (JPEG APPn markers) is also a JPEG
3235 file.</P>
97ae2a96 3236<H3><A NAME="7_7_2">mime.convs</A></H3>
d5c7e2d1 3237<P>The<VAR> mime.convs</VAR> file defines all of the filter programs
3238 that are known to the system. Each line consists of:</P>
97ae2a96 3239<UL>
3240<PRE>
3241source destination cost program
3242
3243text/plain application/postscript 50 texttops
3244application/vnd.cups-postscript application/vnd.cups-raster 50 pstoraster
3245image/* application/vnd.cups-postscript 50 imagetops
3246image/* application/vnd.cups-raster 50 imagetoraster
3247</PRE>
3248</UL>
d5c7e2d1 3249<P>The<I> source</I> field is a MIME type, optionally using a wildcard
3250 for the super-type or sub-type (e.g. &quot;text/plain&quot;, &quot;image/*&quot;,
3251 &quot;*/postscript&quot;).</P>
3252<P>The<I> destination</I> field is a MIME type defined in the<VAR>
3253 mime.types</VAR> file.</P>
3254<P>The<I> cost</I> field defines a relative cost for the filtering
3255 operation from 1 to 100. The cost is used to choose between two
3256 different sets of filters when converting a file. For example, to
3257 convert from <CODE>image/jpeg</CODE> to <CODE>
97ae2a96 3258application/vnd.cups-raster</CODE>, you could use the <CODE>imagetops</CODE>
3259 and <CODE>pstoraster</CODE> filters for a total cost of 100, or the <CODE>
d5c7e2d1 3260imagetoraster</CODE> filter for a total cost of 50.</P>
3261<P>The<I> program</I> field defines the filter program to run; the
3262 special program &quot;-&quot; can be used to make two file types equivalent. The
3263 program must accept the standard filter arguments and environment
3264 variables described in the CUPS Interface Design Description and CUPS
3265 Software Programmers Manual:</P>
97ae2a96 3266<UL>
3267<PRE>
3268program job user title options [filename]
3269</PRE>
3270</UL>
d5c7e2d1 3271<P>If specified, the<I> filename</I> argument defines a file to read
3272 when filtering, otherwise the filter must read from the standard input.
3273 All filtered output must go to the standard output.
97ae2a96 3274<!-- NEED 4in -->
d360fe65 3275</P>
97ae2a96 3276<H3><A NAME="7_7_3">Adding Filetypes and Filters</A></H3>
d5c7e2d1 3277<P>Adding a new file type or filter is fairly straight-forward. Rather
3278 than adding the new type and filter to the<VAR> mime.types</VAR> and<VAR>
3279 mime.convs</VAR> files which are overwritten when you upgrade to a new
3280 version of CUPS, you simple need to create new files with<VAR> .types</VAR>
3281 and<VAR> .convs</VAR> extensions in the<VAR> /etc/cups</VAR> directory.
3282 We recommend that you use the product or format name, e.g.:</P>
97ae2a96 3283<UL>
3284<PRE>
3285myproduct.types
3286myproduct.convs
3287</PRE>
3288</UL>
d5c7e2d1 3289<P>If you are providing a filter for a common file format or printer,
3290 add the company or author name:</P>
97ae2a96 3291<UL>
3292<PRE>
3293acme-msword.types
3294acme.msword.convs
3295</PRE>
3296</UL>
d5c7e2d1 3297<P>This will help to prevent name collisions if you install many
3298 different file types and filters.</P>
3299<P>Once you choose the names for these files, create them using your
3300 favorite text editor as described earlier in this chapter. Once you
3301 have created the files, restart the <CODE>cupsd</CODE> process as
3302 described earlier in<A HREF="#RESTARTING"> &quot;Restarting the CUPS Server&quot;</A>
3303.</P>
97ae2a96 3304<H3><A NAME="7_7_4">Printer Drivers and PPD Files</A></H3>
d5c7e2d1 3305<P>Most CUPS printer drivers utilize one or more printer-specific
3306 filters and a PPD file for each printer model. Printer driver filters
3307 are registered via the PPD file using <CODE>cupsFilter</CODE>
3308 attributes:</P>
97ae2a96 3309<UL>
3310<PRE>
3311*cupsFilter: &quot;application/vnd.cups-raster 0 rastertohp&quot;
3312</PRE>
3313</UL>
d5c7e2d1 3314<P>The filter is specified using the source file type only; the
3315 destination file type is assumed to be <CODE>printer/name</CODE> -
3316 suitable for sending to the printer.</P>
97ae2a96 3317<H3><A NAME="7_7_5">Writing Your Own Filter or Printer Driver</A></H3>
d5c7e2d1 3318<P>CUPS supports an unlimited number of file formats and filters, and
3319 can handle any printer. If you'd like to write a filter or printer
3320 driver for your favorite file format or printer, consult the CUPS
3321 Software Programmers Manual for step-by-step instructions.</P>
3322<H1 ALIGN="RIGHT"><A NAME="PRINTING_OTHER">7 - Printing with Other
3323 Systems</A></H1>
3324<P>This chapter describes how to print from client systems that use the
3325 LPD, Mac OS, or Windows printing protocols.</P>
97ae2a96 3326<H2><A NAME="8_1">The Basics</A></H2>
d5c7e2d1 3327<P>CUPS is based on the IPP protocol, so any system that supports IPP
3328 can send jobs to and receive jobs from CUPS automatically. However, not
3329 all systems support IPP yet. This chapter will show you how to connect
3330 these systems to your CUPS server, either to accept jobs from your
3331 server for printing, or to send jobs to your server.</P>
97ae2a96 3332<H2><A NAME="8_2">Printing from LPD Clients</A></H2>
d5c7e2d1 3333<P>CUPS supports limited functionality for LPD-based clients. With LPD
3334 you can print files to specific printers, list the queue status, and so
3335 forth. However, the automatic client configuration and printer options
3336 are not supported by the LPD protocol, so you must manually configure
3337 each client for the printers it needs to access.</P>
3338<P>The <CODE>cups-lpd(8)</CODE> program provides support for LPD
3339 clients. To enable LPD support on your server, edit the<VAR>
3340 /etc/inetd.conf</VAR> file and add a line reading:</P>
97ae2a96 3341<UL>
3342<PRE>
3343printer stream tcp nowait lp /usr/lib/cups/daemon/cups-lpd cups-lpd
3344</PRE>
3345</UL>
d5c7e2d1 3346<P>The path to the <CODE>cups-lpd</CODE> may vary depending on your
3347 installation.</P>
3348<P>Once you have added this line, send the <CODE>inetd(8)</CODE> process
3349 a <CODE>HUP</CODE> signal or reboot the system:</P>
97ae2a96 3350<UL>
3351<PRE>
3352<B>killall -HUP inetd ENTER</B> [IRIX and some versions of Linux]
3353<B>kill -HUP <I>pid</I> ENTER [Others]</B>
3354<B>reboot ENTER [For all systems if the HUP signal fails]</B>
3355</PRE>
3356</UL>
3357<H2><A NAME="8_3">Printing to LPD Servers</A></H2>
d5c7e2d1 3358<P>CUPS provides the <CODE>lpd</CODE> backend for printing to LPD-based
3359 servers and printers. Use a device URI of <CODE>lpd://server/name</CODE>
3360 to print to a printer on an LPD server, where <CODE>server</CODE> is
3361 the hostname or IP address of the server and <CODE>name</CODE> is the
3362 queue name.</P>
3363<P>Microsoft Windows NT provides an LPD service under the name &quot;TCP/IP
3364 Printing Services&quot;. To enable LPD printing on NT, open the &quot;Services&quot;
3365 control panel, select the &quot;TCP/IP Printing Services&quot; service, and click
3366 on the &quot;Start&quot; button. Any shared printer will then be available via
3367 the LPD protocol.</P>
97ae2a96 3368<H2><A NAME="8_4">Printing from Mac OS Clients</A></H2>
d5c7e2d1 3369<P>CUPS does not provide Mac OS support directly. However, there are
3370 several free and commercial software packages that do.</P>
97ae2a96 3371<H3><A NAME="8_4_1">Columbia Appletalk Package (CAP)</A></H3>
d5c7e2d1 3372<P>Because the CAP LaserWriter server (<CODE>lwsrv(8)</CODE>) does not
3373 support specification of PPD files, we do not recommend that you use
3374 CAP with CUPS. However, you can run the <CODE>lpsrv</CODE> program for
3375 limited printing with the command:</P>
97ae2a96 3376<UL>
3377<PRE>
3378lwsrv -n &quot;<I>Name</I>&quot; -p <I>printer</I> -a /usr/lib/adicts -f /usr/lib/LW+Fonts
3379</PRE>
3380</UL>
d5c7e2d1 3381<P>where <CODE>Name</CODE> is the name you want to use when sharing the
3382 printer, and <CODE>printer</CODE> is the name of the CUPS print queue.
97ae2a96 3383<!-- NEED 3in -->
97ae2a96 3384</P>
3385<H3><A NAME="8_4_2">XINET KA/Spool</A></H3>
d5c7e2d1 3386<P>To use your system as a print server for Mac OS clients, configure
3387 each printer using a <CODE>papserver(8)</CODE> in the<VAR>
3388 /usr/adm/appletalk/services</VAR> file, specifying the corresponding
3389 PPD file in the<VAR> /etc/cups/ppd</VAR> directory for each printer.
3390 For a printer named <CODE>MyPrinter</CODE> the entry would look like:</P>
04d756fc 3391<UL>
3392<PRE>
97ae2a96 3393/usr/etc/appletalk/papserver -I -L -P /etc/cups/ppd/MyPrinter.ppd \
3394&quot;Printer Description&quot; MyPrinter
3395</PRE>
fd7cc15d 3396</UL>
3397<CENTER>
3398<TABLE BGCOLOR="#cccccc" BORDER="1" CELLPADDING="5" WIDTH="80%">
97ae2a96 3399<TR><TD><B> NOTE:</B>
d5c7e2d1 3400<P>Enter the text above on a single line without the backslash (\)
3401 character.</P>
fd7cc15d 3402</TD></TR>
3403</TABLE>
3404</CENTER>
97ae2a96 3405<H3><A NAME="8_4_3">NetATalk</A></H3>
d5c7e2d1 3406<P>To use your system as a print server for Mac OS clients, configure
3407 each printer in the<VAR> papd.conf</VAR> file, specifying the
3408 corresponding PPD file in the<VAR> /etc/cups/ppd</VAR> directory for
3409 each printer. For a printer named <CODE>MyPrinter</CODE> the entry
3410 would look like:</P>
fd7cc15d 3411<UL>
3412<PRE>
97ae2a96 3413Printer Description:MyPrinter@MyServer:\
3414 :pr=|/usr/bin/lp -d MyPrinter:\
3415 :op=daemon:\
c9373372 3416 :pd=/etc/cups/ppd/MyPrinter.ppd:
97ae2a96 3417</PRE>
fd7cc15d 3418</UL>
3419
97ae2a96 3420<!-- NEED 2in -->
97ae2a96 3421<H2><A NAME="8_5">Printing to Mac OS Servers</A></H2>
d5c7e2d1 3422<P>CUPS currently does not provide a backend to communicate with a Mac
3423 OS server. However, you can write and install a short shell script in
3424 the<VAR> /usr/lib/cups/backend</VAR> directory that sends a print file
3425 using the appropriate command. The following is a short script that
3426 will run the <CODE>papif</CODE> command provided with CAP.</P>
3427<P>After copying this script to<VAR> /usr/lib/cups/backend/cap</VAR>,
3428 specify a device URI of <CODE>cap://server/printer</CODE> to use this
3429 backend with a print queue.
97ae2a96 3430<!-- NEED 8in -->
d360fe65 3431</P>
04d756fc 3432<UL>
3433<PRE>
97ae2a96 3434<I>&quot;/usr/lib/cups/backend/cap&quot;</I>
3435#!/bin/sh
3436#
3437# Usage: cap job user title copies options [filename]
3438#
3439
3440# No arguments means show available devices...
3441
3442if test ${#argv} = 0; then
3443 echo &quot;network cap \&quot;Unknown\&quot; \&quot;Mac OS Printer via CAP\&quot;&quot;
3444 exit 0
3445fi
3446
3447# Collect arguments...
3448
3449user=$2
3450copies=$4
3451
3452if test ${#argv} = 5; then
3453 # Get print file from stdin; copies have already been handled...
3454 file=/var/tmp/$$.prn
3455 copies=1
3456 cat &gt; $file
3457else
3458 # Print file is on command-line...
3459 file=$6
3460fi
3461
3462# Create a dummy cap.printers file for this printer based
3463# upon a device URI of &quot;cap://server/printer&quot;...
3464
3465echo $PRINTER/$DEVICE_URI | \
3466 awk -F/ '{print $1 &quot;=&quot; $5 &quot;:LaserWriter@&quot; $4}' &gt; /var/tmp/$$.cap
3467
3468CAPPRINTERS=/var/tmp/$$.cap; export CAPPRINTERS
3469
3470# Send the file to the printer, once for each copy. This assumes that you
3471# have properly initialized the cap.printers file...
3472
3473while [ $copies -gt 0 ]; do
3474 papif -n $user &lt; $file
3475
3476 copies=`expr $copies - 1`
3477done
3478
3479# Remove any temporary files...
3480if test ${#argv} = 5; then
3481 /bin/rm -f $file
3482fi
3483
3484/bin/rm -f /var/tmp/$$.cap
3485
3486exit 0
3487</PRE>
fd7cc15d 3488</UL>
3489
97ae2a96 3490<!-- NEED 2in -->
97ae2a96 3491<H2><A NAME="8_6">Printing from Windows Clients</A></H2>
d5c7e2d1 3492<P>While CUPS does not provide Windows support directly, the free SAMBA
3493 software package does. SAMBA version 2.0.6 is the first release of
3494 SAMBA that supports CUPS. You can download SAMBA from:</P>
97ae2a96 3495<UL>
3496<PRE>
3497<A HREF="http://www.samba.org">http://www.samba.org</A>
3498</PRE>
3499</UL>
d5c7e2d1 3500<P>To configure SAMBA for CUPS, edit the<VAR> smb.conf</VAR> file and
3501 replace the existing printing commands and options with the line:</P>
97ae2a96 3502<UL>
3503<PRE>
3504printing = cups
08e230aa 3505printcap name = cups
97ae2a96 3506</PRE>
3507</UL>
d5c7e2d1 3508<P>That's all there is to it! Remote users will now be able to browse
3509 and print to printers on your system.</P>
08e230aa 3510<H3><A NAME="8_6_1">Exporting Printer Drivers</A></H3>
3511<P>You can optionally export printer drivers from your CUPS server using
3512 the <CODE>cupsaddsmb</CODE> command and the SAMBA 2.2.0 or higher
3513 software.</P>
3514<P>Before you can export the printers you must download the current
3515 Adobe PostScript printer drivers from the Adobe web site (<A HREF="http://www.adobe.com/">
3516http://www.adobe.com/</A>). Use the free <CODE>unzip</CODE> software to
3517 extract the files from the self-extracting ZIP file containing the
3518 drivers; you will need the following files:</P>
3519<UL>
3520<PRE>
3521ADFONTS.MFM
3522ADOBEPS4.DRV
3523ADOBEPS4.HLP
3524ADOBEPS5.DLL
3525ADOBEPSU.DLL
3526ADOBEPSU.HLP
3527DEFPRTR2.PPD
3528ICONLIB.DLL
3529PSMON.DLL
3530</PRE>
3531</UL>
3532<P>Copy these files to the<VAR> /usr/share/cups/drivers</VAR> directory
3533 - you may need to rename some of the files so the filenames are all
3534 UPPERCASE.</P>
3535<P>Next, add a <CODE>print$</CODE> share for the printer drivers to your<VAR>
3536 smb.conf</VAR> file:</P>
3537<UL>
3538<PRE>
3539[print$]
3540 comment = Printer Drivers
3541 path = /etc/samba/drivers
3542 browseable = yes
3543 guest ok = no
3544 read only = yes
3545 write list = root
3546</PRE>
3547</UL>
3548<P>The directory for your printer drivers can be anywhere on the system;
3549 just make sure it is writable by the users specified by the <CODE>write
3550 list</CODE> directive. Also, make sure that you have SAMBA passwords
3551 defined for each user in the <CODE>write list</CODE> using the <CODE>
3552smbpasswd(1)</CODE> command. Otherwise you will not be able to
3553 authenticate</P>
3554<P>Finally, run the <CODE>cupsaddsmb</CODE> command to export the
3555 printer drivers for one or more queues:</P>
3556<UL>
3557<PRE>
c4badc90 3558<B>cupsaddsmb -U root printer1 ... printerN <I>ENTER</I></B>
08e230aa 3559</PRE>
3560</UL>
3561<P>Running <CODE>cupsaddsmb</CODE> with the <CODE>-a</CODE> option will
3562 export all printers:</P>
3563<UL>
3564<PRE>
c4badc90 3565<B>cupsaddsmb -U root -a <I>ENTER</I></B>
08e230aa 3566</PRE>
3567</UL>
97ae2a96 3568<H2><A NAME="8_7">Printing to Windows Servers</A></H2>
d5c7e2d1 3569<P>CUPS can print to Windows servers in one of two ways. The first way
3570 uses the LPD protocol on the CUPS system and the &quot;TCP/IP Printing
3571 Services&quot; on the Windows system. You can find out more about this
3572 configuration in the<A HREF="#LPD"> LPD</A> section earlier in this
3573 chapter.</P>
3574<P>The second way is through the Microsoft Server Message Block (&quot;SMB&quot;)
3575 protocol. Support for this protocol is provided with the free SAMBA
3576 software package. You can download SAMBA from:</P>
97ae2a96 3577<UL>
3578<PRE>
3579<A HREF="http://www.samba.org">http://www.samba.org</A>
3580</PRE>
3581</UL>
d5c7e2d1 3582<P>To configure CUPS for SAMBA, run the following command:</P>
97ae2a96 3583<UL>
3584<PRE>
3585<B>ln -s `which smbspool` /usr/lib/cups/backend/smb ENTER</B>
3586</PRE>
3587</UL>
d5c7e2d1 3588<P>The <CODE>smbspool(1)</CODE> program is provided with SAMBA starting
3589 with SAMBA 2.0.6. Once you have made the link you can configure your
3590 printers with one of the following device URIs:</P>
97ae2a96 3591<UL>
3592<PRE>
3593smb://workgroup/server/sharename
3594smb://server/sharename
3595smb://user:pass@workgroup/server/sharename
3596smb://user:pass@server/sharename
3597</PRE>
3598</UL>
d5c7e2d1 3599<P>The <CODE>workgroup</CODE> name need only be specified if your system
3600 is using a different workgroup. The <CODE>user:pass</CODE> strings are
3601 required when printing to Windows NT servers or to shares with
3602 passwords enabled under Windows 95 and 98.</P>
97ae2a96 3603<H1 ALIGN="RIGHT"><A NAME="LICENSE">A - Software License Agreement</A></H1>
d5c7e2d1 3604<H2 ALIGN="CENTER"><A NAME="9_1">Common UNIX Printing System License
3605 Agreement</A></H2>
efb2f309 3606<P ALIGN="CENTER">Copyright 1997-2002 by Easy Software Products
b1d503b0 3607<BR> 44141 AIRPORT VIEW DR STE 204
3608<BR> HOLLYWOOD, MARYLAND 20636-3111 USA
3609<BR>
baee2cec 3610<BR> Voice: +1.301.373.9600
d5c7e2d1 3611<BR> Email:<A HREF="mailto:cups-info@cups.org"> cups-info@cups.org</A>
3612<BR> WWW:<A HREF="http://www.cups.org"> http://www.cups.org</A></P>
97ae2a96 3613<H3><A NAME="9_1_1">Introduction</A></H3>
d5c7e2d1 3614<P>The Common UNIX Printing System<SUP>TM</SUP>, (&quot;CUPS<SUP>TM</SUP>&quot;),
3615 is provided under the GNU General Public License (&quot;GPL&quot;) and GNU
4d6467dd 3616 Library General Public License (&quot;LGPL&quot;), Version 2, with exceptions for
3617 Apple operating systems. A copy of the exceptions and licenses follow
3618 this introduction.</P>
d5c7e2d1 3619<P>The GNU LGPL applies to the CUPS API library, located in the &quot;cups&quot;
3620 subdirectory of the CUPS source distribution and in the
efb2f309 3621 &quot;/usr/include/cups&quot; directory and &quot;libcups.a&quot;, &quot;libcups_s.a&quot;,
4d6467dd 3622 &quot;libcups.sl&quot;, &quot;libcups.so&quot;, or &quot;libcups.dylib&quot; files in the binary
3623 distributions.</P>
d5c7e2d1 3624<P>The GNU GPL applies to the remainder of the CUPS distribution,
3625 including the &quot;pstoraster&quot; filter which is based upon GNU Ghostscript
efb2f309 3626 5.50 and the &quot;pdftops&quot; filter which is based upon Xpdf 0.93a.</P>
d5c7e2d1 3627<P>For those not familiar with the GNU GPL, the license basically allows
3628 you to:</P>
3629<UL>
3630<LI>Use the CUPS software at no charge.</LI>
3631<LI>Distribute verbatim copies of the software in source or binary form.</LI>
3632<LI>Sell verbatim copies of the software for a media fee, or sell
3633 support for the software.</LI>
3634<LI>Distribute or sell printer drivers and filters that use CUPS so long
3635 as source code is made available under the GPL.</LI>
3636</UL>
3637<P>What this license<B> does not</B> allow you to do is make changes or
3638 add features to CUPS and then sell a binary distribution without source
3639 code. You must provide source for any new drivers, changes, or
3640 additions to the software, and all code must be provided under the GPL
4d6467dd 3641 or LGPL as appropriate. The only exceptions to this are the portions of
3642 the CUPS software covered by the Apple operating system license
3643 exceptions outlined later in this license agreement.</P>
d5c7e2d1 3644<P>The GNU LGPL relaxes the &quot;link-to&quot; restriction, allowing you to
3645 develop applications that use the CUPS API library under other licenses
3646 and/or conditions as appropriate for your application.</P>
4d6467dd 3647<H3><A NAME="9_1_2">Apple Operating System Development License Exception</A>
3648</H3>
3649<P>In addition, as the copyright holder of CUPS, Easy Software Products
3650 grants the following special exception:<BLOCKQUOTE>Software that is
3651 developed by any person or entity for an Apple Operating System (&quot;Apple
3652 OS-Developed Software&quot;), including but not limited to Apple and third
3653 party printer drivers, filters, and backends for an Apple Operating
3654 System, that is linked to the CUPS imaging library or based on any
3655 sample filters or backends provided with CUPS shall not be considered
3656 to be a derivative work or collective work based on the CUPS program
3657 and is exempt from the mandatory source code release clauses of the GNU
3658 GPL. You may therefore distribute linked combinations of the CUPS
3659 imaging library with Apple OS-Developed Software without releasing the
3660 source code of the Apple OS-Developed Software. You may also use sample
3661 filters and backends provided with CUPS to develop Apple OS-Developed
3662 Software without releasing the source code of the Apple OS-Developed
3663 Software.</BLOCKQUOTE></P>
3664<P>An Apple Operating System means any operating system software
3665 developed and/or marketed by Apple Computer, Inc., including but not
3666 limited to all existing releases and versions of Apple's Darwin, Mac OS
3667 X, and Mac OS X Server products and all follow-on releases and future
3668 versions thereof.</P>
3669<P>This exception is only available for Apple OS-Developed Software and
3670 does not apply to software that is distributed for use on other
3671 operating systems.</P>
3672<P>All CUPS software that falls under this license exception have the
3673 following text at the top of each source file:<BLOCKQUOTE>This file is
3674 subject to the Apple OS-Developed Software exception.</BLOCKQUOTE></P>
3675<H3><A NAME="9_1_3">Trademarks</A></H3>
d5c7e2d1 3676<P>Easy Software Products has trademarked the Common UNIX Printing
3677 System, CUPS, and CUPS logo. These names and logos may be used freely
3678 in any direct port or binary distribution of CUPS. To use them in
3679 derivative products, please contract Easy Software Products for written
3680 permission. Our intention is to protect the value of these trademarks
3681 and ensure that any derivative product meets the same high-quality
3682 standards as the original.</P>
4d6467dd 3683<H3><A NAME="9_1_4">Binary Distribution Rights</A></H3>
d5c7e2d1 3684<P>Easy Software Products also sells rights to the CUPS source code
3685 under a binary distribution license for vendors that are unable to
3686 release source code for their drivers, additions, and modifications to
3687 CUPS under the GNU GPL and LGPL. For information please contact us at
3688 the address shown above.</P>
3689<P>The Common UNIX Printing System provides a &quot;pstoraster&quot; filter that
3690 utilizes the GNU GhostScript 5.50 core to convert PostScript files into
3691 a stream of raster images. For binary distribution licensing of this
3692 software, please contact:<BLOCKQUOTE> Miles Jones
b1d503b0 3693<BR> Director of Marketing
3694<BR> Artifex Software Inc.
3695<BR> 454 Las Gallinas Ave., Suite 108
3696<BR> San Rafael, CA 94903 USA
3697<BR> Voice: +1.415.492.9861
3698<BR> Fax: +1.415.492.9862
d5c7e2d1 3699<BR> EMail:<A HREF="mailto:info@arsoft.com"> info@arsoft.com</A></BLOCKQUOTE>
551d3a88 3700</P>
efb2f309 3701<P>The &quot;pdftops&quot; filter is based on the Xpdf 0.93a software. For binary
d5c7e2d1 3702 distribution licensing of this software, please contact:<BLOCKQUOTE>
97ae2a96 3703 Derek B. Noonburg
d5c7e2d1 3704<BR> Email:<A HREF="mailto:derekn@foolabs.com"> derekn@foolabs.com</A>
3705<BR> WWW:<A HREF="http://www.foolabs.com/xpdf/">
3706 http://www.foolabs.com/xpdf/</A></BLOCKQUOTE></P>
4d6467dd 3707<H3><A NAME="9_1_5">Support</A></H3>
d5c7e2d1 3708<P>Easy Software Products sells software support for CUPS as well as a
3709 commercial printing product based on CUPS called ESP Print Pro. You can
3710 find out more at our web site:</P>
97ae2a96 3711<UL>
3712<PRE>
3713<A HREF="http://www.easysw.com">http://www.easysw.com</A>
3714</PRE>
fd7cc15d 3715</UL>
3716
97ae2a96 3717<!-- NEW PAGE -->
97ae2a96 3718<H2><A NAME="9_2">GNU GENERAL PUBLIC LICENSE</A></H2>
d5c7e2d1 3719<P>Version 2, June 1991</P>
97ae2a96 3720<PRE>
3721Copyright 1989, 1991 Free Software Foundation, Inc.
372259 Temple Place, Suite 330, Boston, MA 02111-1307 USA
3723
3724Everyone is permitted to copy and distribute verbatim
3725copies of this license document, but changing it is not allowed.
3726</PRE>
3727<PRE>
3728
3729</PRE>
3730<H4>Preamble</H4>
d5c7e2d1 3731<P>The licenses for most software are designed to take away your freedom
3732 to share and change it. By contrast, the GNU General Public License is
3733 intended to guarantee your freedom to share and change free
3734 software--to make sure the software is free for all its users. This
3735 General Public License applies to most of the Free Software
3736 Foundation's software and to any other program whose authors commit to
3737 using it. (Some other Free Software Foundation software is covered by
3738 the GNU Library General Public License instead.) You can apply it to
3739 your programs, too.</P>
3740<P>When we speak of free software, we are referring to freedom, not
3741 price. Our General Public Licenses are designed to make sure that you
3742 have the freedom to distribute copies of free software (and charge for
3743 this service if you wish), that you receive source code or can get it
3744 if you want it, that you can change the software or use pieces of it in
3745 new free programs; and that you know you can do these things.</P>
3746<P>To protect your rights, we need to make restrictions that forbid
3747 anyone to deny you these rights or to ask you to surrender the rights.
3748 These restrictions translate to certain responsibilities for you if you
3749 distribute copies of the software, or if you modify it.</P>
3750<P>For example, if you distribute copies of such a program, whether
3751 gratis or for a fee, you must give the recipients all the rights that
3752 you have. You must make sure that they, too, receive or can get the
3753 source code. And you must show them these terms so they know their
3754 rights.</P>
3755<P>We protect your rights with two steps: (1) copyright the software,
3756 and (2) offer you this license which gives you legal permission to
3757 copy, distribute and/or modify the software.</P>
3758<P>Also, for each author's protection and ours, we want to make certain
3759 that everyone understands that there is no warranty for this free
3760 software. If the software is modified by someone else and passed on, we
3761 want its recipients to know that what they have is not the original, so
3762 that any problems introduced by others will not reflect on the original
3763 authors' reputations.</P>
3764<P>Finally, any free program is threatened constantly by software
3765 patents. We wish to avoid the danger that redistributors of a free
3766 program will individually obtain patent licenses, in effect making the
3767 program proprietary. To prevent this, we have made it clear that any
3768 patent must be licensed for everyone's free use or not licensed at all.</P>
3769<P>The precise terms and conditions for copying, distribution and
3770 modification follow.</P>
97ae2a96 3771<H4>GNU GENERAL PUBLIC LICENSE
b1d503b0 3772<BR> TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</H4>
38138d28 3773<OL START="0">
d5c7e2d1 3774<LI>This License applies to any program or other work which contains a
3775 notice placed by the copyright holder saying it may be distributed
3776 under the terms of this General Public License. The &quot;Program&quot;, below,
3777 refers to any such program or work, and a &quot;work based on the Program&quot;
3778 means either the Program or any derivative work under copyright law:
3779 that is to say, a work containing the Program or a portion of it,
3780 either verbatim or with modifications and/or translated into another
3781 language. (Hereinafter, translation is included without limitation in
3782 the term &quot;modification&quot;.) Each licensee is addressed as &quot;you&quot;.</LI>
3783<P>Activities other than copying, distribution and modification are not
3784 covered by this License; they are outside its scope. The act of running
3785 the Program is not restricted, and the output from the Program is
3786 covered only if its contents constitute a work based on the Program
3787 (independent of having been made by running the Program). Whether that
3788 is true depends on what the Program does.</P>
3789<LI>You may copy and distribute verbatim copies of the Program's source
3790 code as you receive it, in any medium, provided that you conspicuously
3791 and appropriately publish on each copy an appropriate copyright notice
3792 and disclaimer of warranty; keep intact all the notices that refer to
3793 this License and to the absence of any warranty; and give any other
3794 recipients of the Program a copy of this License along with the
3795 Program.</LI>
3796<P>You may charge a fee for the physical act of transferring a copy, and
3797 you may at your option offer warranty protection in exchange for a fee.</P>
3798<LI>You may modify your copy or copies of the Program or any portion of
3799 it, thus forming a work based on the Program, and copy and distribute
3800 such modifications or work under the terms of Section 1 above, provided
3801 that you also meet all of these conditions:
38138d28 3802<OL TYPE="a">
d5c7e2d1 3803<LI>You must cause the modified files to carry prominent notices stating
3804 that you changed the files and the date of any change.</LI>
3805<LI>You must cause any work that you distribute or publish, that in
3806 whole or in part contains or is derived from the Program or any part
3807 thereof, to be licensed as a whole at no charge to all third parties
3808 under the terms of this License.</LI>
3809<LI>if the modified program normally reads commands interactively when
3810 run, you must cause it, when started running for such interactive use
3811 in the most ordinary way, to print or display an announcement including
3812 an appropriate copyright notice and a notice that there is no warranty
3813 (or else, saying that you provide a warranty) and that users may
3814 redistribute the program under these conditions, and telling the user
3815 how to view a copy of this License. (Exception: if the Program itself
3816 is interactive but does not normally print such an announcement, your
3817 work based on the Program is not required to print an announcement.)</LI>
38138d28 3818</OL>
3819</LI>
d5c7e2d1 3820<P>These requirements apply to the modified work as a whole. If
3821 identifiable sections of that work are not derived from the Program,
3822 and can be reasonably considered independent and separate works in
3823 themselves, then this License, and its terms, do not apply to those
3824 sections when you distribute them as separate works. But when you
3825 distribute the same sections as part of a whole which is a work based
3826 on the Program, the distribution of the whole must be on the terms of
3827 this License, whose permissions for other licensees extend to the
3828 entire whole, and thus to each and every part regardless of who wrote
3829 it.</P>
3830<P>Thus, it is not the intent of this section to claim rights or contest
3831 your rights to work written entirely by you; rather, the intent is to
3832 exercise the right to control the distribution of derivative or
3833 collective works based on the Program.</P>
3834<P>In addition, mere aggregation of another work not based on the
3835 Program with the Program (or with a work based on the Program) on a
3836 volume of a storage or distribution medium does not bring the other
3837 work under the scope of this License.</P>
3838<LI>You may copy and distribute the Program (or a work based on it,
3839 under Section 2) in object code or executable form under the terms of
3840 Sections 1 and 2 above provided that you also do one of the following:
38138d28 3841<OL TYPE="a">
d5c7e2d1 3842<LI>Accompany it with the complete corresponding machine-readable source
3843 code, which must be distributed under the terms of Sections 1 and 2
3844 above on a medium customarily used for software interchange; or,</LI>
3845<LI>Accompany it with a written offer, valid for at least three years,
3846 to give any third party, for a charge no more than your cost of
3847 physically performing source distribution, a complete machine-readable
3848 copy of the corresponding source code, to be distributed under the
3849 terms of Sections 1 and 2 above on a medium customarily used for
3850 software interchange; or,</LI>
3851<LI>Accompany it with the information you received as to the offer to
3852 distribute corresponding source code. (This alternative is allowed only
3853 for noncommercial distribution and only if you received the program in
3854 object code or executable form with such an offer, in accord with
3855 Subsection b above.)</LI>
38138d28 3856</OL>
3857</LI>
d5c7e2d1 3858<P>The source code for a work means the preferred form of the work for
3859 making modifications to it. For an executable work, complete source
3860 code means all the source code for all modules it contains, plus any
3861 associated interface definition files, plus the scripts used to control
3862 compilation and installation of the executable. However, as a special
3863 exception, the source code distributed need not include anything that
3864 is normally distributed (in either source or binary form) with the
3865 major components (compiler, kernel, and so on) of the operating system
3866 on which the executable runs, unless that component itself accompanies
3867 the executable.</P>
3868<P>If distribution of executable or object code is made by offering
3869 access to copy from a designated place, then offering equivalent access
3870 to copy the source code from the same place counts as distribution of
3871 the source code, even though third parties are not compelled to copy
3872 the source along with the object code.</P>
3873<LI>You may not copy, modify, sublicense, or distribute the Program
3874 except as expressly provided under this License. Any attempt otherwise
3875 to copy, modify, sublicense or distribute the Program is void, and will
3876 automatically terminate your rights under this License. However,
3877 parties who have received copies, or rights, from you under this
3878 License will not have their licenses terminated so long as such parties
3879 remain in full compliance.</LI>
3880<LI>You are not required to accept this License, since you have not
3881 signed it. However, nothing else grants you permission to modify or
3882 distribute the Program or its derivative works. These actions are
3883 prohibited by law if you do not accept this License. Therefore, by
3884 modifying or distributing the Program (or any work based on the
3885 Program), you indicate your acceptance of this License to do so, and
3886 all its terms and conditions for copying, distributing or modifying the
3887 Program or works based on it.</LI>
3888<LI>Each time you redistribute the Program (or any work based on the
3889 Program), the recipient automatically receives a license from the
3890 original licensor to copy, distribute or modify the Program subject to
3891 these terms and conditions. You may not impose any further restrictions
3892 on the recipients' exercise of the rights granted herein. You are not
3893 responsible for enforcing compliance by third parties to this License.</LI>
3894<LI>If, as a consequence of a court judgment or allegation of patent
3895 infringement or for any other reason (not limited to patent issues),
3896 conditions are imposed on you (whether by court order, agreement or
3897 otherwise) that contradict the conditions of this License, they do not
3898 excuse you from the conditions of this License. If you cannot
3899 distribute so as to satisfy simultaneously your obligations under this
3900 License and any other pertinent obligations, then as a consequence you
3901 may not distribute the Program at all. For example, if a patent license
3902 would not permit royalty-free redistribution of the Program by all
3903 those who receive copies directly or indirectly through you, then the
3904 only way you could satisfy both it and this License would be to refrain
3905 entirely from distribution of the Program.</LI>
3906<P>If any portion of this section is held invalid or unenforceable under
3907 any particular circumstance, the balance of the section is intended to
3908 apply and the section as a whole is intended to apply in other
3909 circumstances.</P>
3910<P>It is not the purpose of this section to induce you to infringe any
3911 patents or other property right claims or to contest validity of any
3912 such claims; this section has the sole purpose of protecting the
3913 integrity of the free software distribution system, which is
3914 implemented by public license practices. Many people have made generous
3915 contributions to the wide range of software distributed through that
3916 system in reliance on consistent application of that system; it is up
3917 to the author/donor to decide if he or she is willing to distribute
3918 software through any other system and a licensee cannot impose that
3919 choice.</P>
3920<P>This section is intended to make thoroughly clear what is believed to
3921 be a consequence of the rest of this License.</P>
3922<LI>If the distribution and/or use of the Program is restricted in
3923 certain countries either by patents or by copyrighted interfaces, the
3924 original copyright holder who places the Program under this License may
3925 add an explicit geographical distribution limitation excluding those
3926 countries, so that distribution is permitted only in or among countries
3927 not thus excluded. In such case, this License incorporates the
3928 limitation as if written in the body of this License.</LI>
3929<LI>The Free Software Foundation may publish revised and/or new versions
3930 of the General Public License from time to time. Such new versions will
3931 be similar in spirit to the present version, but may differ in detail
3932 to address new problems or concerns.</LI>
3933<P>Each version is given a distinguishing version number. If the Program
3934 specifies a version number of this License which applies to it and &quot;any
3935 later version&quot;, you have the option of following the terms and
3936 conditions either of that version or of any later version published by
3937 the Free Software Foundation. If the Program does not specify a version
3938 number of this License, you may choose any version ever published by
3939 the Free Software Foundation.</P>
3940<LI>If you wish to incorporate parts of the Program into other free
3941 programs whose distribution conditions are different, write to the
3942 author to ask for permission. For software which is copyrighted by the
3943 Free Software Foundation, write to the Free Software Foundation; we
3944 sometimes make exceptions for this. Our decision will be guided by the
3945 two goals of preserving the free status of all derivatives of our free
3946 software and of promoting the sharing and reuse of software generally.</LI>
38138d28 3947</OL>
97ae2a96 3948<H4>NO WARRANTY</H4>
38138d28 3949<OL START="11">
d5c7e2d1 3950<LI>BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
3951 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
3952 OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
3953 PROVIDE THE PROGRAM &quot;AS IS&quot; WITHOUT WARRANTY OF ANY KIND, EITHER
3954 EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
3955 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
3956 ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH
3957 YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
3958 NECESSARY SERVICING, REPAIR OR CORRECTION.</LI>
3959<LI>IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
3960 WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
3961 AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
3962 FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
3963 CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
3964 PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
3965 RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
3966 FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
3967 SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
3968 DAMAGES.</LI>
38138d28 3969</OL>
97ae2a96 3970<H4>END OF TERMS AND CONDITIONS</H4>
fd7cc15d 3971
97ae2a96 3972<!-- NEW PAGE -->
97ae2a96 3973<H2><A NAME="9_3">GNU LIBRARY GENERAL PUBLIC LICENSE</A></H2>
d5c7e2d1 3974<P>Version 2, June 1991</P>
97ae2a96 3975<PRE>
3976Copyright (C) 1991 Free Software Foundation, Inc.
397759 Temple Place - Suite 330, Boston, MA 02111-1307, USA
3978Everyone is permitted to copy and distribute verbatim copies
3979of this license document, but changing it is not allowed.
3980
3981[This is the first released version of the library GPL. It is
3982 numbered 2 because it goes with version 2 of the ordinary GPL.]
3983</PRE>
3984<H4>Preamble</H4>
d5c7e2d1 3985<P>The licenses for most software are designed to take away your freedom
3986 to share and change it. By contrast, the GNU General Public Licenses
3987 are intended to guarantee your freedom to share and change free
3988 software--to make sure the software is free for all its users.</P>
3989<P>This license, the Library General Public License, applies to some
3990 specially designated Free Software Foundation software, and to any
3991 other libraries whose authors decide to use it. You can use it for your
3992 libraries, too.</P>
3993<P>When we speak of free software, we are referring to freedom, not
3994 price. Our General Public Licenses are designed to make sure that you
3995 have the freedom to distribute copies of free software (and charge for
3996 this service if you wish), that you receive source code or can get it
3997 if you want it, that you can change the software or use pieces of it in
3998 new free programs; and that you know you can do these things.</P>
3999<P>To protect your rights, we need to make restrictions that forbid
4000 anyone to deny you these rights or to ask you to surrender the rights.
4001 These restrictions translate to certain responsibilities for you if you
4002 distribute copies of the library, or if you modify it.</P>
4003<P>For example, if you distribute copies of the library, whether gratis
4004 or for a fee, you must give the recipients all the rights that we gave
4005 you. You must make sure that they, too, receive or can get the source
4006 code. If you link a program with the library, you must provide complete
4007 object files to the recipients so that they can relink them with the
4008 library, after making changes to the library and recompiling it. And
4009 you must show them these terms so they know their rights.</P>
4010<P>Our method of protecting your rights has two steps: (1) copyright the
4011 library, and (2) offer you this license which gives you legal
4012 permission to copy, distribute and/or modify the library.</P>
4013<P>Also, for each distributor's protection, we want to make certain that
4014 everyone understands that there is no warranty for this free library.
4015 If the library is modified by someone else and passed on, we want its
4016 recipients to know that what they have is not the original version, so
4017 that any problems introduced by others will not reflect on the original
4018 authors' reputations.</P>
4019<P>Finally, any free program is threatened constantly by software
4020 patents. We wish to avoid the danger that companies distributing free
4021 software will individually obtain patent licenses, thus in effect
4022 transforming the program into proprietary software. To prevent this, we
4023 have made it clear that any patent must be licensed for everyone's free
4024 use or not licensed at all.</P>
4025<P>Most GNU software, including some libraries, is covered by the
4026 ordinary GNU General Public License, which was designed for utility
4027 programs. This license, the GNU Library General Public License, applies
4028 to certain designated libraries. This license is quite different from
4029 the ordinary one; be sure to read it in full, and don't assume that
4030 anything in it is the same as in the ordinary license.</P>
4031<P>The reason we have a separate public license for some libraries is
4032 that they blur the distinction we usually make between modifying or
4033 adding to a program and simply using it. Linking a program with a
4034 library, without changing the library, is in some sense simply using
4035 the library, and is analogous to running a utility program or
4036 application program. However, in a textual and legal sense, the linked
4037 executable is a combined work, a derivative of the original library,
4038 and the ordinary General Public License treats it as such.</P>
4039<P>Because of this blurred distinction, using the ordinary General
4040 Public License for libraries did not effectively promote software
4041 sharing, because most developers did not use the libraries. We
4042 concluded that weaker conditions might promote sharing better.</P>
4043<P>However, unrestricted linking of non-free programs would deprive the
4044 users of those programs of all benefit from the free status of the
4045 libraries themselves. This Library General Public License is intended
4046 to permit developers of non-free programs to use free libraries, while
4047 preserving your freedom as a user of such programs to change the free
4048 libraries that are incorporated in them. (We have not seen how to
4049 achieve this as regards changes in header files, but we have achieved
4050 it as regards changes in the actual functions of the Library.) The hope
4051 is that this will lead to faster development of free libraries.</P>
4052<P>The precise terms and conditions for copying, distribution and
4053 modification follow. Pay close attention to the difference between a
4054 &quot;work based on the library&quot; and a &quot;work that uses the library&quot;. The
4055 former contains code derived from the library, while the latter only
4056 works together with the library.</P>
4057<P>Note that it is possible for a library to be covered by the ordinary
4058 General Public License rather than by this special one.</P>
97ae2a96 4059<H4>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</H4>
d5c7e2d1 4060<P><STRONG>0.</STRONG> This License Agreement applies to any software
4061 library which contains a notice placed by the copyright holder or other
4062 authorized party saying it may be distributed under the terms of this
4063 Library General Public License (also called &quot;this License&quot;). Each
4064 licensee is addressed as &quot;you&quot;.</P>
4065<P>A &quot;library&quot; means a collection of software functions and/or data
4066 prepared so as to be conveniently linked with application programs
4067 (which use some of those functions and data) to form executables.</P>
4068<P>The &quot;Library&quot;, below, refers to any such software library or work
4069 which has been distributed under these terms. A &quot;work based on the
4070 Library&quot; means either the Library or any derivative work under
4071 copyright law: that is to say, a work containing the Library or a
4072 portion of it, either verbatim or with modifications and/or translated
4073 straightforwardly into another language. (Hereinafter, translation is
4074 included without limitation in the term &quot;modification&quot;.)</P>
4075<P>&quot;Source code&quot; for a work means the preferred form of the work for
4076 making modifications to it. For a library, complete source code means
4077 all the source code for all modules it contains, plus any associated
4078 interface definition files, plus the scripts used to control
4079 compilation and installation of the library.</P>
4080<P>Activities other than copying, distribution and modification are not
4081 covered by this License; they are outside its scope. The act of running
4082 a program using the Library is not restricted, and output from such a
4083 program is covered only if its contents constitute a work based on the
4084 Library (independent of the use of the Library in a tool for writing
4085 it). Whether that is true depends on what the Library does and what the
4086 program that uses the Library does.</P>
4087<P><STRONG>1.</STRONG> You may copy and distribute verbatim copies of
4088 the Library's complete source code as you receive it, in any medium,
4089 provided that you conspicuously and appropriately publish on each copy
4090 an appropriate copyright notice and disclaimer of warranty; keep intact
4091 all the notices that refer to this License and to the absence of any
4092 warranty; and distribute a copy of this License along with the Library.</P>
4093<P>You may charge a fee for the physical act of transferring a copy, and
4094 you may at your option offer warranty protection in exchange for a fee.</P>
4095<P><STRONG>2.</STRONG> You may modify your copy or copies of the Library
4096 or any portion of it, thus forming a work based on the Library, and
4097 copy and distribute such modifications or work under the terms of
4098 Section 1 above, provided that you also meet all of these conditions:</P>
fd7cc15d 4099<OL TYPE="a">
d5c7e2d1 4100<LI>The modified work must itself be a software library.</LI>
04d756fc 4101<P></P>
d5c7e2d1 4102<LI>You must cause the files modified to carry prominent notices stating
4103 that you changed the files and the date of any change.</LI>
04d756fc 4104<P></P>
d5c7e2d1 4105<LI>You must cause the whole of the work to be licensed at no charge to
4106 all third parties under the terms of this License.</LI>
04d756fc 4107<P></P>
d5c7e2d1 4108<LI>If a facility in the modified Library refers to a function or a
4109 table of data to be supplied by an application program that uses the
4110 facility, other than as an argument passed when the facility is
4111 invoked, then you must make a good faith effort to ensure that, in the
4112 event an application does not supply such function or table, the
4113 facility still operates, and performs whatever part of its purpose
4114 remains meaningful.</LI>
4115<P>(For example, a function in a library to compute square roots has a
4116 purpose that is entirely well-defined independent of the application.
4117 Therefore, Subsection 2d requires that any application-supplied
4118 function or table used by this function must be optional: if the
4119 application does not supply it, the square root function must still
4120 compute square roots.)</P>
fd7cc15d 4121</OL>
d5c7e2d1 4122<P>These requirements apply to the modified work as a whole. If
4123 identifiable sections of that work are not derived from the Library,
4124 and can be reasonably considered independent and separate works in
4125 themselves, then this License, and its terms, do not apply to those
4126 sections when you distribute them as separate works. But when you
4127 distribute the same sections as part of a whole which is a work based
4128 on the Library, the distribution of the whole must be on the terms of
4129 this License, whose permissions for other licensees extend to the
4130 entire whole, and thus to each and every part regardless of who wrote
4131 it.</P>
4132<P>Thus, it is not the intent of this section to claim rights or contest
4133 your rights to work written entirely by you; rather, the intent is to
4134 exercise the right to control the distribution of derivative or
4135 collective works based on the Library.</P>
4136<P>In addition, mere aggregation of another work not based on the
4137 Library with the Library (or with a work based on the Library) on a
4138 volume of a storage or distribution medium does not bring the other
4139 work under the scope of this License.</P>
4140<P><STRONG>3.</STRONG> You may opt to apply the terms of the ordinary
4141 GNU General Public License instead of this License to a given copy of
4142 the Library. To do this, you must alter all the notices that refer to
4143 this License, so that they refer to the ordinary GNU General Public
4144 License, version 2, instead of to this License. (If a newer version
4145 than version 2 of the ordinary GNU General Public License has appeared,
4146 then you can specify that version instead if you wish.) Do not make any
4147 other change in these notices.</P>
4148<P>Once this change is made in a given copy, it is irreversible for that
4149 copy, so the ordinary GNU General Public License applies to all
4150 subsequent copies and derivative works made from that copy.</P>
4151<P>This option is useful when you wish to copy part of the code of the
4152 Library into a program that is not a library.</P>
4153<P><STRONG>4.</STRONG> You may copy and distribute the Library (or a
4154 portion or derivative of it, under Section 2) in object code or
4155 executable form under the terms of Sections 1 and 2 above provided that
4156 you accompany it with the complete corresponding machine-readable
4157 source code, which must be distributed under the terms of Sections 1
4158 and 2 above on a medium customarily used for software interchange.</P>
4159<P>If distribution of object code is made by offering access to copy
4160 from a designated place, then offering equivalent access to copy the
4161 source code from the same place satisfies the requirement to distribute
4162 the source code, even though third parties are not compelled to copy
4163 the source along with the object code.</P>
4164<P><STRONG>5.</STRONG> A program that contains no derivative of any
4165 portion of the Library, but is designed to work with the Library by
4166 being compiled or linked with it, is called a &quot;work that uses the
4167 Library&quot;. Such a work, in isolation, is not a derivative work of the
4168 Library, and therefore falls outside the scope of this License.</P>
4169<P>However, linking a &quot;work that uses the Library&quot; with the Library
4170 creates an executable that is a derivative of the Library (because it
4171 contains portions of the Library), rather than a &quot;work that uses the
4172 library&quot;. The executable is therefore covered by this License. Section
4173 6 states terms for distribution of such executables.</P>
4174<P>When a &quot;work that uses the Library&quot; uses material from a header file
4175 that is part of the Library, the object code for the work may be a
4176 derivative work of the Library even though the source code is not.
4177 Whether this is true is especially significant if the work can be
4178 linked without the Library, or if the work is itself a library. The
4179 threshold for this to be true is not precisely defined by law.</P>
4180<P>If such an object file uses only numerical parameters, data structure
4181 layouts and accessors, and small macros and small inline functions (ten
4182 lines or less in length), then the use of the object file is
4183 unrestricted, regardless of whether it is legally a derivative work.
4184 (Executables containing this object code plus portions of the Library
4185 will still fall under Section 6.)</P>
4186<P>Otherwise, if the work is a derivative of the Library, you may
4187 distribute the object code for the work under the terms of Section 6.
4188 Any executables containing that work also fall under Section 6, whether
4189 or not they are linked directly with the Library itself.</P>
4190<P><STRONG>6.</STRONG> As an exception to the Sections above, you may
4191 also compile or link a &quot;work that uses the Library&quot; with the Library to
4192 produce a work containing portions of the Library, and distribute that
4193 work under terms of your choice, provided that the terms permit
4194 modification of the work for the customer's own use and reverse
4195 engineering for debugging such modifications.</P>
4196<P>You must give prominent notice with each copy of the work that the
4197 Library is used in it and that the Library and its use are covered by
4198 this License. You must supply a copy of this License. If the work
4199 during execution displays copyright notices, you must include the
4200 copyright notice for the Library among them, as well as a reference
4201 directing the user to the copy of this License. Also, you must do one
4202 of these things:</P>
fd7cc15d 4203<OL TYPE="a">
d5c7e2d1 4204<LI>Accompany the work with the complete corresponding machine-readable
4205 source code for the Library including whatever changes were used in the
4206 work (which must be distributed under Sections 1 and 2 above); and, if
4207 the work is an executable linked with the Library, with the complete
4208 machine-readable &quot;work that uses the Library&quot;, as object code and/or
4209 source code, so that the user can modify the Library and then relink to
4210 produce a modified executable containing the modified Library. (It is
4211 understood that the user who changes the contents of definitions files
4212 in the Library will not necessarily be able to recompile the
4213 application to use the modified definitions.)</LI>
04d756fc 4214<P></P>
d5c7e2d1 4215<LI>Accompany the work with a written offer, valid for at least three
4216 years, to give the same user the materials specified in Subsection 6a,
4217 above, for a charge no more than the cost of performing this
4218 distribution.</LI>
04d756fc 4219<P></P>
d5c7e2d1 4220<LI>If distribution of the work is made by offering access to copy from
4221 a designated place, offer equivalent access to copy the above specified
4222 materials from the same place.</LI>
04d756fc 4223<P></P>
d5c7e2d1 4224<LI>Verify that the user has already received a copy of these materials
4225 or that you have already sent this user a copy.</LI>
fd7cc15d 4226</OL>
d5c7e2d1 4227<P>For an executable, the required form of the &quot;work that uses the
4228 Library&quot; must include any data and utility programs needed for
4229 reproducing the executable from it. However, as a special exception,
4230 the source code distributed need not include anything that is normally
4231 distributed (in either source or binary form) with the major components
4232 (compiler, kernel, and so on) of the operating system on which the
4233 executable runs, unless that component itself accompanies the
4234 executable.</P>
4235<P>It may happen that this requirement contradicts the license
4236 restrictions of other proprietary libraries that do not normally
4237 accompany the operating system. Such a contradiction means you cannot
4238 use both them and the Library together in an executable that you
4239 distribute.</P>
4240<P><STRONG>7.</STRONG> You may place library facilities that are a work
4241 based on the Library side-by-side in a single library together with
4242 other library facilities not covered by this License, and distribute
4243 such a combined library, provided that the separate distribution of the
4244 work based on the Library and of the other library facilities is
4245 otherwise permitted, and provided that you do these two things:</P>
fd7cc15d 4246<OL TYPE="a">
d5c7e2d1 4247<LI>Accompany the combined library with a copy of the same work based on
4248 the Library, uncombined with any other library facilities. This must be
4249 distributed under the terms of the Sections above.</LI>
04d756fc 4250<P></P>
d5c7e2d1 4251<LI>Give prominent notice with the combined library of the fact that
4252 part of it is a work based on the Library, and explaining where to find
4253 the accompanying uncombined form of the same work.</LI>
fd7cc15d 4254</OL>
d5c7e2d1 4255<P><STRONG>8.</STRONG> You may not copy, modify, sublicense, link with,
4256 or distribute the Library except as expressly provided under this
4257 License. Any attempt otherwise to copy, modify, sublicense, link with,
4258 or distribute the Library is void, and will automatically terminate
4259 your rights under this License. However, parties who have received
4260 copies, or rights, from you under this License will not have their
4261 licenses terminated so long as such parties remain in full compliance.</P>
4262<P><STRONG>9.</STRONG> You are not required to accept this License,
4263 since you have not signed it. However, nothing else grants you
4264 permission to modify or distribute the Library or its derivative works.
4265 These actions are prohibited by law if you do not accept this License.
4266 Therefore, by modifying or distributing the Library (or any work based
4267 on the Library), you indicate your acceptance of this License to do so,
4268 and all its terms and conditions for copying, distributing or modifying
4269 the Library or works based on it.</P>
4270<P><STRONG>10.</STRONG> Each time you redistribute the Library (or any
4271 work based on the Library), the recipient automatically receives a
4272 license from the original licensor to copy, distribute, link with or
4273 modify the Library subject to these terms and conditions. You may not
4274 impose any further restrictions on the recipients' exercise of the
4275 rights granted herein. You are not responsible for enforcing compliance
4276 by third parties to this License.</P>
4277<P><STRONG>11.</STRONG> If, as a consequence of a court judgment or
4278 allegation of patent infringement or for any other reason (not limited
4279 to patent issues), conditions are imposed on you (whether by court
4280 order, agreement or otherwise) that contradict the conditions of this
4281 License, they do not excuse you from the conditions of this License. If
4282 you cannot distribute so as to satisfy simultaneously your obligations
4283 under this License and any other pertinent obligations, then as a
4284 consequence you may not distribute the Library at all. For example, if
4285 a patent license would not permit royalty-free redistribution of the
4286 Library by all those who receive copies directly or indirectly through
4287 you, then the only way you could satisfy both it and this License would
4288 be to refrain entirely from distribution of the Library.</P>
4289<P>If any portion of this section is held invalid or unenforceable under
4290 any particular circumstance, the balance of the section is intended to
4291 apply, and the section as a whole is intended to apply in other
4292 circumstances.</P>
4293<P>It is not the purpose of this section to induce you to infringe any
4294 patents or other property right claims or to contest validity of any
4295 such claims; this section has the sole purpose of protecting the
4296 integrity of the free software distribution system which is implemented
4297 by public license practices. Many people have made generous
4298 contributions to the wide range of software distributed through that
4299 system in reliance on consistent application of that system; it is up
4300 to the author/donor to decide if he or she is willing to distribute
4301 software through any other system and a licensee cannot impose that
4302 choice.</P>
4303<P>This section is intended to make thoroughly clear what is believed to
4304 be a consequence of the rest of this License.</P>
4305<P><STRONG>12.</STRONG> If the distribution and/or use of the Library is
4306 restricted in certain countries either by patents or by copyrighted
4307 interfaces, the original copyright holder who places the Library under
4308 this License may add an explicit geographical distribution limitation
4309 excluding those countries, so that distribution is permitted only in or
4310 among countries not thus excluded. In such case, this License
4311 incorporates the limitation as if written in the body of this License.</P>
4312<P><STRONG>13.</STRONG> The Free Software Foundation may publish revised
4313 and/or new versions of the Library General Public License from time to
4314 time. Such new versions will be similar in spirit to the present
4315 version, but may differ in detail to address new problems or concerns.</P>
4316<P>Each version is given a distinguishing version number. If the Library
4317 specifies a version number of this License which applies to it and &quot;any
4318 later version&quot;, you have the option of following the terms and
4319 conditions either of that version or of any later version published by
4320 the Free Software Foundation. If the Library does not specify a license
4321 version number, you may choose any version ever published by the Free
4322 Software Foundation.</P>
4323<P><STRONG>14.</STRONG> If you wish to incorporate parts of the Library
4324 into other free programs whose distribution conditions are incompatible
4325 with these, write to the author to ask for permission. For software
4326 which is copyrighted by the Free Software Foundation, write to the Free
4327 Software Foundation; we sometimes make exceptions for this. Our
4328 decision will be guided by the two goals of preserving the free status
4329 of all derivatives of our free software and of promoting the sharing
4330 and reuse of software generally.</P>
97ae2a96 4331<P><STRONG>NO WARRANTY</STRONG></P>
d5c7e2d1 4332<P><STRONG>15.</STRONG> BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE,
4333 THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY
4334 APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
4335 HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY &quot;AS IS&quot; WITHOUT
4336 WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
4337 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
4338 PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
4339 OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU
4340 ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.</P>
4341<P><STRONG>16.</STRONG> IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
4342 AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO
4343 MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE
4344 LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL
4345 OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
4346 LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
4347 RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
4348 FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
4349 SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
4350 DAMAGES.</P>
97ae2a96 4351<H4>END OF TERMS AND CONDITIONS</H4>
4352<H1 ALIGN="RIGHT"><A NAME="COMMON_NETWORK">B - Common Network Settings</A>
4353</H1>
d5c7e2d1 4354<P>This appendix covers many of the popular TCP/IP network interfaces
4355 and printer servers available on the market today.</P>
97ae2a96 4356<H2><A NAME="10_1">Configuring a Network Interface</A></H2>
d5c7e2d1 4357<P>When you first install a network printer or print server on your LAN,
4358 you need to set the Internet Protocol (&quot;IP&quot;) address. On most
4359 higher-end &quot;workgroup&quot; printers, you can set the address through the
4360 printer control panel. However, in most cases you will want to assign
4361 the addresses remotely from your workstation. This makes administration
4362 a bit easier and avoids assigning duplicate addresses accidentally.</P>
4363<P>To setup your printer or print server for remote address assignment,
4364 you'll need the Ethernet Media Access Control (&quot;MAC&quot;) address, also
4365 sometimes called a node address, and the IP address you want to use for
4366 the device. The Ethernet MAC address can often be found on the printer
4367 test page or bottom of the print server.
97ae2a96 4368<!-- NEED 3in -->
d360fe65 4369</P>
97ae2a96 4370<H3><A NAME="10_1_1">Configuring the IP Address Using ARP</A></H3>
d5c7e2d1 4371<P>The easiest way to set the IP address of a network device is to use
4372 the <CODE>arp(8)</CODE> command. The <CODE>arp</CODE> sends an Address
4373 Resolution Protocol (&quot;ARP&quot;) packet to the specified Ethernet MAC
4374 address, setting the network device's IP address:</P>
97ae2a96 4375<UL>
4376<PRE>
4377<B>arp -s ip-address ethernet-address ENTER</B>
4378<B>arp -s host.domain.com 08:00:69:00:12:34 ENTER</B>
4379<B>arp -s 192.0.2.2 08:00:69:00:12:34 ENTER</B>
4380</PRE>
4381</UL>
4382<H3><A NAME="10_1_2">Configuring the IP Address Using RARP</A></H3>
d5c7e2d1 4383<P>The most flexible way to remotely assign IP addresses under UNIX is
4384 through the Reverse Address Resolution Protocol (&quot;RARP&quot;). RARP allows a
4385 network device to request an IP address using its Ethernet MAC address,
4386 and one or more RARP servers on the network will respond with an ARP
4387 packet with the IP address the device can use.</P>
4388<P>RARP should be used when you have to manage many printers or print
4389 servers, or when you have a network device that does not remember its
4390 IP address after a power cycle. If you just have a single printer or
4391 print server, the <CODE>arp</CODE> command is the way to go.</P>
97ae2a96 4392<P>Some UNIX operating systems use a program called <CODE>rarpd(8)</CODE>
d5c7e2d1 4393 to manage RARP. Others, like Linux, support this protocol in the
4394 kernel. For systems that provide the <CODE>rarpd</CODE> program you
4395 will need to start it before RARP lookups will work:</P>
04d756fc 4396<UL>
4397<PRE>
97ae2a96 4398<B>rarpd ENTER</B>
4399</PRE>
04d756fc 4400</UL>
d5c7e2d1 4401<P>Under IRIX you can enable this functionality by default using:</P>
04d756fc 4402<UL>
4403<PRE>
97ae2a96 4404<B>chkconfig rarpd on ENTER</B>
4405</PRE>
04d756fc 4406</UL>
d5c7e2d1 4407<P>Both the <CODE>rarpd</CODE> program and kernel RARP support read a
4408 list of Ethernet and IP addresses from the file<VAR> /etc/ethers</VAR>.
4409 Each line contains the Ethernet address (colon delimited) followed by
4410 an IP address or hostname like:</P>
04d756fc 4411<UL>
4412<PRE>
97ae2a96 441308:00:69:00:12:34 myprinter.mydomain.com
441408:00:69:00:12:34 192.0.2.2
4415</PRE>
04d756fc 4416</UL>
d5c7e2d1 4417<P>Add a line to this file and cycle the power on the printer or print
4418 server to set its address.
97ae2a96 4419<!-- NEED 2in -->
d360fe65 4420</P>
97ae2a96 4421<H3><A NAME="10_1_3">Configuring the IP Address Using BOOTP</A></H3>
d5c7e2d1 4422<P>The BOOTP protocol is used when you need to provide additional
4423 information such as the location of a configuration file to the network
4424 interface. Using the standard <CODE>bootpd(8)</CODE> program supplied
4425 with UNIX you simply need to add a line to the<VAR> /etc/bootptab</VAR>
4426 file; for IRIX:</P>
38138d28 4427<UL>
4428<PRE>
97ae2a96 4429myprinter 08:00:69:00:12:34 192.0.2.2 <VAR>myprinter.boot</VAR>
4430</PRE>
38138d28 4431</UL>
ecf3075f 4432
97ae2a96 4433<!-- NEED 1in -->
d5c7e2d1 4434<P>Newer versions of <CODE>bootpd</CODE> use a different format:</P>
38138d28 4435<UL>
4436<PRE>
97ae2a96 4437myprinter:ha=080069001234:ip=192.0.2.2:<VAR>t144=myprinter.boot</VAR>
4438</PRE>
38138d28 4439</UL>
d5c7e2d1 4440<P>The<VAR> myprinter.boot</VAR> file resides in the<VAR>
4441 /usr/local/boot</VAR> directory by default. If you do not need to
437844a0 4442 provide a boot file you may leave the last part of the line blank.</P>
d360fe65 4443
437844a0 4444<!-- NEED 2in -->
fd7cc15d 4445<CENTER>
4446<TABLE BGCOLOR="#cccccc" BORDER="1" CELLPADDING="5" WIDTH="80%">
97ae2a96 4447<TR><TD><B> NOTE:</B>
d5c7e2d1 4448<P>Some versions of UNIX do not enable the BOOTP service by default. The<VAR>
4449 /etc/inetd.conf</VAR> usually contains a line for the BOOTP service
4450 that can be uncommented if needed.</P>
fd7cc15d 4451</TD></TR>
4452</TABLE>
4453</CENTER>
97ae2a96 4454<H2><A NAME="10_2">Verifying the Printer Connection</A></H2>
d5c7e2d1 4455<P>To test that the IP address has been successfully assigned and that
4456 the printer is properly connected to your LAN, type:</P>
97ae2a96 4457<UL>
4458<PRE>
4459<B>ping ip-address ENTER</B>
4460</PRE>
4461</UL>
d5c7e2d1 4462<P>If the connection is working properly you will see something like:</P>
97ae2a96 4463<UL>
4464<PRE>
4465<B>ping myprinter ENTER</B>
4466PING myprinter (192.0.2.2): 56 data bytes
446764 bytes from 192.0.2.2: icmp_seq=0 ttl=15 time=5 ms
446864 bytes from 192.0.2.2: icmp_seq=1 ttl=15 time=3 ms
446964 bytes from 192.0.2.2: icmp_seq=2 ttl=15 time=3 ms
447064 bytes from 192.0.2.2: icmp_seq=3 ttl=15 time=3 ms
4471</PRE>
4472</UL>
d5c7e2d1 4473<P>If not, verify that the printer or print server is connected to the
4474 LAN, it is powered on, the LAN cabling is good, and the IP address is
4475 set correctly. You can usually see the current IP address and network
4476 status by printing a configuration or test page on the device.
97ae2a96 4477<!-- NEED 4in -->
d360fe65 4478</P>
97ae2a96 4479<H2><A NAME="10_3">Common Network Interface Settings</A></H2>
d5c7e2d1 4480<P>Once you have set the IP address you can access the printer or print
4481 server using the <CODE>ipp</CODE>, <CODE>lpd</CODE>, or <CODE>socket</CODE>
4482 backends. The following is a list of common network interfaces and
4483 printer servers and the settings you should use with CUPS:
38138d28 4484<CENTER>
4485<TABLE BORDER="1">
d5c7e2d1 4486<TR ALIGN="LEFT" VALIGN="TOP"><TH>Model/Manufacturer</TH><TH>Device
4487 URI(s)</TH></TR>
97ae2a96 4488<TR ALIGN="LEFT" VALIGN="TOP"><TD>Apple LaserWriter</TD><TD>lpd://<I>
4489address</I>/PASSTHRU</TD></TR>
ecf3075f 4490
97ae2a96 4491<!-- NEED 1in -->
97ae2a96 4492<TR ALIGN="LEFT" VALIGN="TOP"><TD>Axis w/o IPP
b1d503b0 4493<BR><A HREF="#AXIS"> (see directions)</A></TD><TD>socket://<I>address</I>
4494:9100
4495<BR> socket://<I>address</I>:9101
4496<BR> socket://<I>address</I>:9102</TD></TR>
ecf3075f 4497
97ae2a96 4498<!-- NEED 1in -->
97ae2a96 4499<TR ALIGN="LEFT" VALIGN="TOP"><TD>Axis w/IPP</TD><TD>ipp://<I>address</I>
4500/LPT1
b1d503b0 4501<BR> ipp://<I>address</I>/LPT2
4502<BR> ipp://<I>address</I>/COM1</TD></TR>
ecf3075f 4503
97ae2a96 4504<!-- NEED 1in -->
97ae2a96 4505<TR ALIGN="LEFT" VALIGN="TOP"><TD>Castelle LANpress<SUP>TM</SUP></TD><TD>
4506lpd://<I>address</I>/pr1
b1d503b0 4507<BR> lpd://<I>address</I>/pr2
4508<BR> lpd://<I>address</I>/pr3</TD></TR>
ecf3075f 4509
97ae2a96 4510<!-- NEED 1in -->
97ae2a96 4511<TR ALIGN="LEFT" VALIGN="TOP"><TD>DPI NETPrint</TD><TD>lpd://<I>address</I>
4512/pr1
b1d503b0 4513<BR> lpd://<I>address</I>/pr2
4514<BR> lpd://<I>address</I>/pr3</TD></TR>
97ae2a96 4515<TR ALIGN="LEFT" VALIGN="TOP"><TD>EFI&reg; Fiery&reg; RIP</TD><TD>lpd://<I>
4516address</I>/print</TD></TR>
d5c7e2d1 4517<TR ALIGN="LEFT" VALIGN="TOP"><TD>EPSON&reg; Multiprotocol Ethernet
4518 Interface Board</TD><TD>socket://<I>address</I></TD></TR>
ecf3075f 4519
97ae2a96 4520<!-- NEED 1in -->
97ae2a96 4521<TR ALIGN="LEFT" VALIGN="TOP"><TD>Extended System ExtendNET</TD><TD>
4522lpd://<I>address</I>/pr1
b1d503b0 4523<BR> lpd://<I>address</I>/pr2
4524<BR> lpd://<I>address</I>/pr3</TD></TR>
fd7cc15d 4525
97ae2a96 4526<!-- NEED 1in -->
97ae2a96 4527<TR ALIGN="LEFT" VALIGN="TOP"><TD>Hewlett Packard JetDirect w/o IPP</TD><TD>
4528socket://<I>address</I>:9100
b1d503b0 4529<BR> socket://<I>address</I>:9101
4530<BR> socket://<I>address</I>:9102</TD></TR>
ecf3075f 4531
97ae2a96 4532<!-- NEED 1in -->
97ae2a96 4533<TR ALIGN="LEFT" VALIGN="TOP"><TD>Hewlett Packard JetDirect w/IPP</TD><TD>
4534ipp://<I>address</I>/ipp
b1d503b0 4535<BR> ipp://<I>address</I>/ipp/port1
4536<BR> ipp://<I>address</I>/ipp/port2
4537<BR> ipp://<I>address</I>/ipp/port3</TD></TR>
ecf3075f 4538
97ae2a96 4539<!-- NEED 1in -->
97ae2a96 4540<TR ALIGN="LEFT" VALIGN="TOP"><TD>Intel&reg; NetportExpress XL, PRO/100</TD><TD>
4541lpd://<I>address</I>/LPT1_PASSTHRU
b1d503b0 4542<BR> lpd://<I>address</I>/LPT2_PASSTHRU
4543<BR> lpd://<I>address</I>/COM1_PASSTHRU</TD></TR>
97ae2a96 4544<TR ALIGN="LEFT" VALIGN="TOP"><TD>Lexmark<SUP>TM</SUP> MarkNet</TD><TD>
4545lpd://<I>address</I>/ps</TD></TR>
ecf3075f 4546
97ae2a96 4547<!-- NEED 1in -->
97ae2a96 4548<TR ALIGN="LEFT" VALIGN="TOP"><TD>Linksys EtherFast&reg;
b1d503b0 4549<BR><A HREF="#LINKSYS"> (see directions)</A></TD><TD>socket://<I>address</I>
4550:4010
4551<BR> socket://<I>address</I>:4020
4552<BR> socket://<I>address</I>:4030</TD></TR>
97ae2a96 4553<TR ALIGN="LEFT" VALIGN="TOP"><TD>Kodak&reg;</TD><TD>lpd://<I>address</I>/ps</TD>
4554</TR>
4555<TR ALIGN="LEFT" VALIGN="TOP"><TD>QMS&reg; CrownNet<SUP>TM</SUP></TD><TD>
4556lpd://<I>address</I>/ps</TD></TR>
4557<TR ALIGN="LEFT" VALIGN="TOP"><TD>Tektronix&reg; PhaserShare<SUP>TM</SUP></TD><TD>
4558socket://<I>address</I>:9100</TD></TR>
4559<TR ALIGN="LEFT" VALIGN="TOP"><TD>XEROX&reg; 4512 NIC</TD><TD>lpd://<I>
4560address</I>/PORT1</TD></TR>
4561<TR ALIGN="LEFT" VALIGN="TOP"><TD>XEROX&reg; XNIC</TD><TD>lpd://<I>address</I>
4562/PASSTHRU</TD></TR>
4563<TR ALIGN="LEFT" VALIGN="TOP"><TD>XEROX&reg; (most others)</TD><TD>socket://<I>
4564address</I>:5503</TD></TR>
38138d28 4565</TABLE>
4566</CENTER>
17bd46bd 4567</P>
97ae2a96 4568<H2><A NAME="AXIS">Configuring Axis Print Servers</A></H2>
d5c7e2d1 4569<P>The Axis print servers can be configured using ARP, RARP, or BOOTP.
4570 However, on models that do not provide IPP support an additional step
4571 must be performed to configure the TCP/IP portion of the print server
4572 for use with CUPS.
97ae2a96 4573<!-- NEED 3in -->
d360fe65 4574</P>
d5c7e2d1 4575<P>Each print server contains a configuration file named<VAR> config</VAR>
4576 that contains a list of network parameters used by the server. To
4577 modify this file you must first download it from the print server using
4578 the <CODE>ftp(1)</CODE> program:</P>
97ae2a96 4579<UL>
4580<PRE>
4581<B>ftp ip-address ENTER</B>
4582Connected to ip-address.
4583220 Axis NPS ### FTP Printer Server V#.## MON DD YEAR ready.
4584ftp&gt; <B>user root ENTER</B>
4585331 User name ok, need password
4586Password: <B>pass ENTER</B> <I>(this is not echoed)</I>
4587230 User logged in
4588ftp&gt; <B>get config ENTER</B>
4589local: config remote: config
4590200 PORT command successful.
4591150 Opening data connection for config (192,0,2,2),
4592(mode ascii).
4593226 Transfer complete.
4594##### bytes received in #.## seconds (##### Kbytes/s)
4595ftp&gt; <B>quit ENTER</B>
4596221 Goodbye.
4597</PRE>
17bd46bd 4598</UL>
fd7cc15d 4599
97ae2a96 4600<!-- NEED 2in -->
d5c7e2d1 4601<P>Next, edit the file with your favorite text editor and locate the
4602 lines beginning with:</P>
04d756fc 4603<UL>
4604<PRE>
97ae2a96 4605RTN_OPT. : YES
4606RTEL_PR1. : 0
4607RTEL_PR2. : 0
4608RTEL_PR3. : 0
4609RTEL_PR4. : 0
4610RTEL_PR5. : 0
4611RTEL_PR6. : 0
4612RTEL_PR7. : 0
4613RTEL_PR8. : 0
4614</PRE>
17bd46bd 4615</UL>
fd7cc15d 4616
97ae2a96 4617<!-- NEED 1in -->
d5c7e2d1 4618 Change the <CODE>RTN_OPT</CODE> line to read:
17bd46bd 4619<UL>
4620<PRE>
97ae2a96 4621RTN_OPT. : <B>NO</B>
4622</PRE>
17bd46bd 4623</UL>
fd7cc15d 4624
97ae2a96 4625<!-- NEED 2in -->
d5c7e2d1 4626<P>This disables the Reverse TELNET protocol and enables the standard
4627 TELNET protocol on the print server. Next, assign a port number for
4628 each parallel and serial port on the server as follows:</P>
97ae2a96 4629<UL>
4630<PRE>
4631RTEL_PR1. : <B>9100</B>
4632RTEL_PR2. : <B>9101</B>
4633RTEL_PR3. : <B>9102</B>
4634RTEL_PR4. : <B>9103</B>
4635RTEL_PR5. : <B>9104</B>
4636RTEL_PR6. : <B>9105</B>
4637RTEL_PR7. : <B>9106</B>
4638RTEL_PR8. : <B>9107</B>
4639</PRE>
38138d28 4640</UL>
fd7cc15d 4641
97ae2a96 4642<!-- NEED 4in -->
d5c7e2d1 4643<P>This essentially makes the Axis print server look like a Hewlett
4644 Packard JetDirect EX print server. Save the file and then upload the
4645 new<VAR> config</VAR> file using the <CODE>ftp</CODE> command:</P>
97ae2a96 4646<UL>
4647<PRE>
4648<B>ftp ip-address ENTER</B>
4649Connected to ip-address.
4650220 Axis NPS ### FTP Printer Server V#.## MON DD YEAR ready.
4651ftp&gt; <B>user root ENTER</B>
4652331 User name ok, need password
4653Password: <B>pass ENTER</B> <I>(this is not echoed)</I>
4654230 User logged in
4655ftp&gt; <B>put config CONFIG ENTER</B>
4656local: config remote: CONFIG
4657200 PORT command successful.
4658150 Opening data connection for config (192,0,2,2), (mode ascii).
4659226 Transfer complete.
4660##### bytes received in #.## seconds (##### Kbytes/s)
4661ftp&gt; <B>get hardreset ENTER</B>
4662local: hardreset remote: hardreset
4663200 PORT command successful.
4664421 Axis NPS ### hard reset, closing connection.
4665ftp&gt; <B>quit ENTER</B>
4666221 Goodbye.
4667</PRE>
4668</UL>
d5c7e2d1 4669<P>Your Axis print server is now ready for use!</P>
97ae2a96 4670<H2><A NAME="LINKSYS">Configuring Linksys Print Servers</A></H2>
d5c7e2d1 4671<P>The Linksys print servers can be configured using ARP, RARP, or
4672 BOOTP. Like older Axis print servers, an additional step must be
4673 performed to configure the TCP/IP portion of the print server for use
4674 with CUPS.
97ae2a96 4675<!-- NEED 3in -->
d360fe65 4676</P>
d5c7e2d1 4677<P>Each print server contains a configuration file named<VAR> CONFIG</VAR>
4678 that contains a list of network parameters used by the server. To
4679 modify this file you must first download it from the print server using
4680 the <CODE>ftp(1)</CODE> program:</P>
97ae2a96 4681<UL>
4682<PRE>
4683<B>ftp -n ip-address ENTER</B>
4684Connected to ip-address.
4685220 Print Server Ready.
4686Remote system type is Print.
4687ftp&gt; <B>get CONFIG ENTER</B>
4688local: CONFIG remote: CONFIG
4689200 Command OK.
4690150 Open ASCII Mode Connection.
4691WARNING! 68 bare linefeeds received in ASCII mode
4692File may not have transferred correctly.
4693226 Transfer complete.
4694##### bytes received in #.## seconds (##### Kbytes/s)
4695ftp&gt; <B>quit ENTER</B>
4696221 Goodbye.
4697</PRE>
551d3a88 4698</UL>
4699
97ae2a96 4700<!-- NEED 2in -->
d5c7e2d1 4701<P>Next, edit the file with your favorite text editor and locate the
4702 lines beginning with:</P>
e75387bc 4703<UL>
551d3a88 4704<PRE>
97ae2a96 47050100 L1_PROUT:P1
47060120 L2_PROUT:P1
47070140 L3_PROUT:P1
4708</PRE>
551d3a88 4709</UL>
d5c7e2d1 4710<P>Change the port number for each parallel and serial port on the
4711 server as follows:</P>
551d3a88 4712<UL>
4713<PRE>
97ae2a96 47140100 L1_PROUT:<B>P1</B>
47150120 L2_PROUT:<B>P2</B>
47160140 L3_PROUT:<B>P3</B>
4717</PRE>
551d3a88 4718</UL>
4719
97ae2a96 4720<!-- NEED 4in -->
d5c7e2d1 4721<P>This maps each virtual printer with a physical port. Save the file
4722 and then upload the new<VAR> CONFIG</VAR> file using the <CODE>ftp</CODE>
4723 command:</P>
97ae2a96 4724<UL>
4725<PRE>
4726<B>ftp -n ip-address ENTER</B>
4727Connected to ip-address.
4728220 Print Server Ready.
4729Remote system type is Print.
4730ftp&gt; <B>put CONFIG ENTER</B>
4731local: CONFIG remote: CONFIG
4732200 Command OK.
4733150 Open ASCII Mode Connection.
4734226 Transfer complete.
4735##### bytes received in #.## seconds (##### Kbytes/s)
4736ftp&gt; <B>quit ENTER</B>
4737221 Goodbye.
4738</PRE>
4739</UL>
d5c7e2d1 4740<P>Your Linksys print server is now ready for use!</P>
97ae2a96 4741<H1 ALIGN="RIGHT"><A NAME="PRINTER_DRIVERS">C - Printer Drivers</A></H1>
d5c7e2d1 4742<P>This appendix lists the printer drivers that are provided with CUPS.</P>
97ae2a96 4743<H2><A NAME="11_1">Printer Drivers</A></H2>
d5c7e2d1 4744<P>CUPS includes the following printer drivers:</P>
97ae2a96 4745<UL>
d5c7e2d1 4746<LI><A HREF="#EPSON9">EPSON 9-pin Dot Matrix</A>,<VAR> epson9.ppd</VAR></LI>
4747<LI><A HREF="#EPSON24">EPSON 24-pin Dot Matrix</A>,<VAR> epson24.ppd</VAR>
e75387bc 4748</LI>
d5c7e2d1 4749<LI><A HREF="#STCOLOR">EPSON Stylus Color</A>,<VAR> stcolor.ppd</VAR></LI>
4750<LI><A HREF="#STPHOTO">EPSON Stylus Photo</A>,<VAR> stphoto.ppd</VAR></LI>
4751<LI><A HREF="#DESKJET">HP DeskJet</A>,<VAR> deskjet.ppd</VAR></LI>
4752<LI><A HREF="#LASERJET">HP LaserJet</A>,<VAR> laserjet.ppd</VAR></LI>
97ae2a96 4753</UL>
4754<H2><A NAME="EPSON9">EPSON 9-pin Dot Matrix</A></H2>
d5c7e2d1 4755<P>The EPSON 9-pin Dot Matrix driver (<VAR>epson9.ppd</VAR>) supports
4756 9-pin dot matrix printers that implement the ESC/P command set. It
4757 provides 60x72, 120x72, and 240x72 DPI output in black only.</P>
97ae2a96 4758<H2><A NAME="EPSON24">EPSON 24-pin Dot Matrix</A></H2>
d5c7e2d1 4759<P>The EPSON 24-pin Dot Matrix driver (<VAR>epson9.ppd</VAR>) supports
4760 24-pin dot matrix printers that implement the ESC/P command set. It
4761 provides 120x180, 180x180, 360x180, and 360x360 DPI output in black
4762 only.</P>
97ae2a96 4763<H2><A NAME="STCOLOR">EPSON Stylus Color</A></H2>
d5c7e2d1 4764<P>The EPSON Stylus Color driver (<VAR>stcolor.ppd</VAR>) supports EPSON
4765 Stylus Color printers that implement the ESC/P2 command set. It
4766 provides 180, 360, and 720 DPI output in black and color (CMYK).</P>
97ae2a96 4767<H2><A NAME="STPHOTO">EPSON Stylus Photo</A></H2>
d5c7e2d1 4768<P>The EPSON Stylus Photo driver (<VAR>stphoto.ppd</VAR>) supports EPSON
4769 Stylus Photo printers that implement the ESC/P2 command set. It
4770 provides 180, 360, and 720 DPI output in black and color (CMYKcm).</P>
97ae2a96 4771<H2><A NAME="DESKJET">HP DeskJet</A></H2>
d5c7e2d1 4772<P>The HP DeskJet driver (<VAR>deskjet.ppd</VAR>) supports HP DeskJet
4773 printers that implement the PCL command set. It provides 150, 300, and
4774 600 DPI output in black and color (CMYK).</P>
4775<P>The DeskJet printers that implement the HP-PPA command set (720C,
4776 722C, 820C, and 1100C) are<B> not</B> supported due to a complete lack
4777 of documentation and support from Hewlett Packard.</P>
4778<P>The duplexer provided with the HP DeskJet 900 series printers is also
4779 not supported for similar reasons.</P>
97ae2a96 4780<H2><A NAME="LASERJET">HP LaserJet</A></H2>
d5c7e2d1 4781<P>The HP LaserJet driver (<VAR>laserjet.ppd</VAR>) supports HP LaserJet
4782 printers that implement the PCL command set. It provides 150, 300, and
4783 600 DPI output in black only and supports the duplexer if installed.</P>
4784<P>LaserJet printers that do not implement PCL (3100, 3150) are not
4785 supported due to a complete lack of documentation and support from
4786 Hewlett Packard.</P>
97ae2a96 4787<H1 ALIGN="RIGHT"><A NAME="FILES">D - List of Files</A></H1>
d5c7e2d1 4788<P>This appendix lists the files and directories that are installed for
4789 the Common UNIX Printing System.
38138d28 4790<CENTER>
ecf3075f 4791<TABLE BORDER="1" WIDTH="80%">
97ae2a96 4792<TR VALIGN="TOP"><TH>Pathname</TH><TH>Description</TH></TR>
d5c7e2d1 4793<TR VALIGN="TOP"><TD>/etc/cups/certs/</TD><TD>The location of
4794 authentication certificate files for local HTTP clients.</TD></TR>
4795<TR VALIGN="TOP"><TD>/etc/cups/classes.conf</TD><TD>The printer classes
4796 configuration file for the scheduler.</TD></TR>
4797<TR VALIGN="TOP"><TD>/etc/cups/cupsd.conf</TD><TD>The scheduler
4798 configuration file.</TD></TR>
4799<TR VALIGN="TOP"><TD>/etc/cups/interfaces/</TD><TD>The location of
4800 System V interface scripts for printers.</TD></TR>
4801<TR VALIGN="TOP"><TD>/etc/cups/mime.convs</TD><TD>The list of standard
437844a0 4802 file filters included with CUPS.</TD></TR>
d5c7e2d1 4803<TR VALIGN="TOP"><TD>/etc/cups/mime.types</TD><TD>The list of recognized
437844a0 4804 file types for CUPS.</TD></TR>
d5c7e2d1 4805<TR VALIGN="TOP"><TD>/etc/cups/ppd/</TD><TD>The location of PostScript
4806 Printer Description (&quot;PPD&quot;) files for printers.</TD></TR>
4807<TR VALIGN="TOP"><TD>/etc/cups/printers.conf</TD><TD>The printer
4808 configuration file for the scheduler.</TD></TR>
4809<TR VALIGN="TOP"><TD>/usr/bin/cancel</TD><TD>The System V cancel job(s)
4810 command.</TD></TR>
4811<TR VALIGN="TOP"><TD>/usr/bin/disable</TD><TD>The System V disable
4812 printer command.</TD></TR>
4813<TR VALIGN="TOP"><TD>/usr/bin/enable</TD><TD>The System V enable printer
4814 command.</TD></TR>
97ae2a96 4815<TR VALIGN="TOP"><TD>/usr/bin/lp</TD><TD>The System V print command.</TD>
4816</TR>
d5c7e2d1 4817<TR VALIGN="TOP"><TD>/usr/bin/lpoptions</TD><TD>Sets user-defined
4818 printing options and defaults.</TD></TR>
4819<TR VALIGN="TOP"><TD>/usr/bin/lppasswd</TD><TD>Adds, changes, or removes
4820 Digest password accounts.</TD></TR>
97ae2a96 4821<TR VALIGN="TOP"><TD>/usr/bin/lpq</TD><TD>The Berkeley status command.</TD>
4822</TR>
4823<TR VALIGN="TOP"><TD>/usr/bin/lpr</TD><TD>The Berkeley print command.</TD>
4824</TR>
d5c7e2d1 4825<TR VALIGN="TOP"><TD>/usr/bin/lprm</TD><TD>The Berkeley cancel job(s)
4826 command.</TD></TR>
4827<TR VALIGN="TOP"><TD>/usr/bin/lpstat</TD><TD>The System V status
4828 command.</TD></TR>
97ae2a96 4829<TR VALIGN="TOP"><TD>/usr/include/cups/</TD><TD>CUPS API header files.</TD>
4830</TR>
4831<TR VALIGN="TOP"><TD>/usr/lib32/libcups.a
b1d503b0 4832<BR> /usr/lib32/libcupsimage.a</TD><TD>Static libraries (IRIX 6.5)</TD></TR>
97ae2a96 4833<TR VALIGN="TOP"><TD>/usr/lib/libcups.a
b1d503b0 4834<BR> /usr/lib/libcupsimage.a</TD><TD>Static libraries (all others)</TD></TR>
97ae2a96 4835<TR VALIGN="TOP"><TD>/usr/lib/libcups.sl.2
b1d503b0 4836<BR> /usr/lib/libcupsimage.sl.2</TD><TD>Shared libraries (HP-UX)</TD></TR>
97ae2a96 4837<TR VALIGN="TOP"><TD>/usr/lib32/libcups.so.2
b1d503b0 4838<BR> /usr/lib32/libcupsimage.so.2</TD><TD>Shared libraries (IRIX 6.5)</TD>
4839</TR>
97ae2a96 4840<TR VALIGN="TOP"><TD>/usr/lib/libcups.so.2
b1d503b0 4841<BR> /usr/lib/libcupsimage.so.2</TD><TD>Shared libraries (all others)</TD>
4842</TR>
d5c7e2d1 4843<TR VALIGN="TOP"><TD>/usr/lib/cups/backend/</TD><TD>Backends for various
4844 types of printer connections.</TD></TR>
4845<TR VALIGN="TOP"><TD>/usr/lib/cups/cgi-bin/</TD><TD>CGI programs for the
4846 scheduler.</TD></TR>
4847<TR VALIGN="TOP"><TD>/usr/lib/cups/daemon/</TD><TD>Daemons for polling
4848 and LPD support.</TD></TR>
4849<TR VALIGN="TOP"><TD>/usr/lib/cups/filter/</TD><TD>Filters for various
4850 types of files.</TD></TR>
4851<TR VALIGN="TOP"><TD>/usr/lib/locale/</TD><TD>The location of
4852 language-specific message files. (System V)</TD></TR>
4853<TR VALIGN="TOP"><TD>/usr/lib/nls/msg/</TD><TD>The location of
4854 language-specific message files. (Compaq Tru64 UNIX)</TD></TR>
4855<TR VALIGN="TOP"><TD>/usr/share/locale/</TD><TD>The location of
4856 language-specific message files. (Linux, *BSD)</TD></TR>
97ae2a96 4857<TR VALIGN="TOP"><TD>/usr/sbin/accept</TD><TD>The accept-jobs command.</TD>
4858</TR>
4859<TR VALIGN="TOP"><TD>/usr/sbin/cupsd</TD><TD>The CUPS print scheduler.</TD>
4860</TR>
d5c7e2d1 4861<TR VALIGN="TOP"><TD>/usr/sbin/lpadmin</TD><TD>The System V printer
4862 administration tool.</TD></TR>
4863<TR VALIGN="TOP"><TD>/usr/sbin/lpc</TD><TD>The Berkeley printer
4864 administration tool.</TD></TR>
4865<TR VALIGN="TOP"><TD>/usr/sbin/lpinfo</TD><TD>The get-devices and
4866 get-ppds command.</TD></TR>
97ae2a96 4867<TR VALIGN="TOP"><TD>/usr/sbin/lpmove</TD><TD>The move-jobs command.</TD>
4868</TR>
4869<TR VALIGN="TOP"><TD>/usr/sbin/reject</TD><TD>The reject-jobs command.</TD>
4870</TR>
4871<TR VALIGN="TOP"><TD>/usr/share/catman/a_man/
b1d503b0 4872<BR> /usr/share/catman/u_man/</TD><TD>Man pages (IRIX)</TD></TR>
d5c7e2d1 4873<TR VALIGN="TOP"><TD>/usr/share/man/</TD><TD>Man pages (Compaq Tru64
4874 UNIX, HP-UX, Solaris)</TD></TR>
97ae2a96 4875<TR VALIGN="TOP"><TD>/usr/man/</TD><TD>Man pages (all others)</TD></TR>
d5c7e2d1 4876<TR VALIGN="TOP"><TD>/usr/share/cups/data/</TD><TD>The location of
4877 filter data files.</TD></TR>
4878<TR VALIGN="TOP"><TD>/usr/share/cups/data/testprint.ps</TD><TD>The
4879 PostScript test page file.</TD></TR>
4880<TR VALIGN="TOP"><TD>/usr/share/cups/fonts/</TD><TD>The location of
4881 PostScript fonts for the PostScript RIP.</TD></TR>
4882<TR VALIGN="TOP"><TD>/usr/share/cups/model/</TD><TD>The location of
4883 PostScript Printer Description (&quot;PPD&quot;) files and interface scripts that
4884 may be used to setup a printer queue.</TD></TR>
4885<TR VALIGN="TOP"><TD>/usr/share/cups/pstoraster/</TD><TD>Other
4886 PostScript RIP initialization files.</TD></TR>
4887<TR VALIGN="TOP"><TD>/usr/share/cups/pstoraster/Fontmap</TD><TD>The font
4888 mapping file (converts filenames to fontnames)</TD></TR>
4889<TR VALIGN="TOP"><TD>/usr/share/cups/templates/</TD><TD>The location of
4890 HTML template files for the web interfaces.</TD></TR>
4891<TR VALIGN="TOP"><TD>/usr/share/doc/cups/</TD><TD>Documentation and web
4892 page data for the scheduler.</TD></TR>
4893<TR VALIGN="TOP"><TD>/var/log/cups/</TD><TD>The location of scheduler
4894 log files.</TD></TR>
4895<TR VALIGN="TOP"><TD>/var/spool/cups/</TD><TD>The location of print
4896 files waiting to be printed.</TD></TR>
38138d28 4897</TABLE>
4898</CENTER>
4899</P>
97ae2a96 4900<H1 ALIGN="RIGHT"><A NAME="FAQ">E - Troubleshooting Common Problems</A></H1>
d5c7e2d1 4901<P>This appendix covers some of the common problems first-time users
4902 encounter when installing and configuring CUPS.</P>
4903<P>Commercial support for CUPS is available from Easy Software Products.
4904 For more information please contact us at:</P>
97ae2a96 4905<UL>
d5c7e2d1 4906<LI>WWW:<A HREF="http://www.easysw.com"> <CODE>http://www.easysw.com</CODE>
97ae2a96 4907</A></LI>
d5c7e2d1 4908<LI>EMail:<A HREF="mailto:info@easysw.com"> info@easysw.com</A></LI>
4909<LI>Telephone (M-F, 9-5 EST): +1.301.373.9600</LI>
97ae2a96 4910</UL>
4911<H2><A NAME="13_1">My Applications Don't See the Available Printers</A></H2>
d5c7e2d1 4912<P>Many applications read the<VAR> /etc/printcap</VAR> file to get a
4913 list of available printers.</P>
4914<P>The default CUPS configuration does not create the<VAR> /etc/printcap</VAR>
4915 file automatically. To enable automatic creation and updating of this
4916 file, use the<A HREF="#Printcap"> <CODE>Printcap</CODE></A> directive
4917 described in<A HREF="#PRINTING_MANAGEMENT"> Chapter 6, &quot;Printing System
4918 Management&quot;</A>.</P>
97ae2a96 4919<H2><A NAME="13_2">CUPS Doesn't Recognize My Username or Password!</A></H2>
d5c7e2d1 4920<P>CUPS will ask you for a UNIX username and password when you perform
4921 printer administration tasks remotely or via a web browser. The default
4922 configuration requires that you use the <CODE>root</CODE> username and
4923 the corresponding password to authenticate the request.</P>
4924<P>CUPS does not allow you to authenticate an administration request
4925 with an account that has no password for security reasons. If you do
4926 not have a password on your <CODE>root</CODE> account then you won't be
4927 able to add printers remotely or via the web interface!
97ae2a96 4928<!-- NEED 2in -->
d360fe65 4929</P>
d5c7e2d1 4930<P>To disable password authentication you need to edit the<VAR>
4931 /etc/cups/cupsd.conf</VAR> file and comment out the lines reading:</P>
04d756fc 4932<UL>
4933<PRE>
97ae2a96 4934AuthType Basic
4935AuthClass System
4936</PRE>
04d756fc 4937</UL>
d5c7e2d1 4938 for the<VAR> /admin</VAR> location. Then restart the CUPS server as
e193bc2c 4939 described in<A HREF="#PRINTING_MANAGEMENT"> Chapter 6, &quot;Printing System
d5c7e2d1 4940 Management&quot;</A>.
fd7cc15d 4941<CENTER>
4942<TABLE BGCOLOR="#cccccc" BORDER="1" CELLPADDING="5" WIDTH="80%">
97ae2a96 4943<TR><TD><B> NOTE:</B>
d5c7e2d1 4944<P>Disabling password checks will allow any local user to change your
4945 printer and class configuration, but remote administration from another
4946 machine will still not be allowed.</P>
fd7cc15d 4947</TD></TR>
4948</TABLE>
4949</CENTER>
e193bc2c 4950<H2><A NAME="ALLOW_REMOTE">I Can't Do Administration Tasks from Another
4951 Machine!</A></H2>
d5c7e2d1 4952<P>The default CUPS configuration limits administration to the local
4953 machine. To open up access, edit the<VAR> /etc/cups/cupsd.conf</VAR>
4954 and comment out the lines reading:</P>
97ae2a96 4955<UL>
4956<PRE>
4957Order deny,allow
4958Deny from all
4959Allow from 127.0.0.1
4960</PRE>
4961</UL>
d5c7e2d1 4962 for the<VAR> /admin</VAR> location. Then restart the CUPS server as
e193bc2c 4963 described in<A HREF="#PRINTING_MANAGEMENT"> Chapter 6, &quot;Printing System
d5c7e2d1 4964 Management&quot;</A>.
fd7cc15d 4965<CENTER>
4966<TABLE BGCOLOR="#cccccc" BORDER="1" CELLPADDING="5" WIDTH="80%">
97ae2a96 4967<TR><TD><B> NOTE:</B>
d5c7e2d1 4968<P>Allowing administration access from all hosts is a potential security
3c706a96 4969 risk. Please read<A HREF="#PRINTING_SECURITY"> Chapter 6, &quot;Printing
d5c7e2d1 4970 System Management&quot;</A> for a description of these risks and ways to
4971 minimize them.</P>
fd7cc15d 4972</TD></TR>
4973</TABLE>
4974</CENTER>
ecf3075f 4975
97ae2a96 4976<!-- NEED 4in -->
97ae2a96 4977<H2><A NAME="13_4">I Can't Do Administration Tasks from My Web Browser!</A>
4978</H2>
d5c7e2d1 4979<P>This problem is usually caused by:</P>
e75387bc 4980<OL>
d5c7e2d1 4981<LI>not specifying the correct password for the root account.</LI>
4982<LI>accessing the CUPS server using the hostname or IP address of the
4983 server without enabling remote access for administration functions.
4984 This can be corrected by following the instructions in the<A HREF="#ALLOW_REMOTE">
4985 &quot;I Can't Do Administration Tasks from Another Machine!&quot;</A> section
4986 earlier in this appendix.</LI>
4987<LI>not setting a password on the root account. CUPS will not
4988 authenticate a user account that does not have a password for security
4989 reasons.</LI>
4990<LI>authenticating using an account other than root, but the account you
4991 are using is not a member of the system group.</LI>
4992<LI>configuring CUPS to use Digest authentication, but your web browser
4993 does not support Digest authentication.</LI>
e75387bc 4994</OL>
97ae2a96 4995<H2><A NAME="13_5">Connection Refused Messages</A></H2>
d5c7e2d1 4996<P>Under normal circumstances, &quot;connection refused&quot; messages for a
4997 networked printer should be expected from time to time. Most network
4998 interfaces only allow a single connection to be made at any given time
4999 (one job at a time) and will refuse access to all other systems while
5000 the first connection is active. CUPS automatically retries the
5001 connection once every 30 seconds.</P>
5002<P>If the problem persists and you are unable to print any jobs to the
5003 printer, verify that another machine is not maintaining a connection
5004 with the printer, and that you have selected the proper port or printer
5005 name for the printer.</P>
5006<P>Also, most external print servers will refuse connections if the
5007 connected printer is turned off or is off-line. Verify that the
5008 affected printer is turned on and is online.</P>
97ae2a96 5009<H2><A NAME="13_6">Write Error Messages</A></H2>
d5c7e2d1 5010<P>If you get &quot;write error&quot; messages on a printer queue the printer
5011 interface (usually a Hewlett Packard JetDirect interface) has timed out
5012 and reset the network connection from your workstation.</P>
5013<P>The error is caused by that startup delay between the initial setup
5014 of the printer or plotter and the first page of print data that is
5015 sent.
97ae2a96 5016<!-- NEED 3in -->
d360fe65 5017</P>
d5c7e2d1 5018<P>To correct the problem, change the idle timeout on the interface to
5019 at least 180 seconds or 3 minutes. To change the timeout on a Hewlett
5020 Packard JetDirect interface, type:</P>
97ae2a96 5021<UL>
5022<PRE>
5023<B>telnet ip-address ENTER</B>
5024
5025Trying ip-address...
5026Connected to ip-address.
5027Escape character is `^]'.
5028
5029Please type [Return] two times, to initialize telnet configuration
5030For HELP type &quot;?&quot;
5031&gt; <B>idle-timeout: 180 ENTER</B>
5032&gt; <B>quit ENTER</B>
5033</PRE>
e75387bc 5034</UL>
c8475f2d 5035</BODY>
5036</HTML>