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