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