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