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