Penguin
Annotated edit history of printcap(5) version 1, including all changes. View license author blame.
Rev Author # Line
1 perry 1 PRINTCAP
2 !!!PRINTCAP
3 NAME
4 SYNOPSIS
5 DESCRIPTION
6 LPD.CONF, SYSTEM AND USER PRINTCAP FILES
7 CAPABILITIES
8 ENTRIES BY ALPHABETICAL ORDER
9 ENTRIES BY FUNCTION
10 FILTERS
11 SPOOL QUEUES
12 LOCAL PRINTERS
13 STTY OPTIONS
14 INITIALIZATION
15 ALL PRINTERS
16 ACCOUNTING
17 BOUNCE QUEUES AND PRINT FORMATS
18 KERBEROS, PGP, AND OTHER AUTHENTICATION METHODS
19 FILES
20 SEE ALSO
21 DIAGNOSTICS
22 HISTORY
23 AUTHOR
24 ----
25 !!NAME
26
27
28 printcap - printer capability data base
29 !!SYNOPSIS
30
31
32 printcap database
33 !!DESCRIPTION
34
35
36 The format of the LPRng ''printcap'' database was based
37 on the termcap(5) data base file format. Entries in
38 the ''printcap'' Each entry in the data base is used to
39 define various options and values to control the printing
40 and spooling of print jobs.
41 !!LPD.CONF, SYSTEM AND USER PRINTCAP FILES
42
43
44 Default configuration values are read from the LPRng
45 configuration file /etc/lprng/lpd.conf, consult the
46 lpd.conf(5) man page for details about them. The system
47 printcap file /etc/lprng/printcap contains information
48 common to all users and the LPRng printing system. Finally,
49 the user printcap files is in ${HOME}/.printcap and contain
50 user configurable information for printer information. The
51 values in the user printcap file override values in the
52 printcap file which override the default values in the
53 /etc/lprng/lpd.conf file.
54
55
56 The user printcap file is used by client programs such as
57 ''lpr , lprm , lpq ,'' and ''lpq'' to allow the user
58 to define either a special set of printers, provide
59 additional configuration information, or to modify default
60 settings in the /etc/lprng/printcap, or /etc/lprng/lpd.conf
61 file.
62 !!CAPABILITIES
63
64
65 The printcap database files format is based on the
66 ''termcap (5)'' database format, modified as follows.
67 Leading whitespace on each line is discarded, and blank
68 lines or lines which then start with a comment character (#)
69 are discarded. A line which does not start with a colon (:)
70 or bar (|) starts a printer entry definition. Lines ending
71 with a backslash () are assumed to continue to the next
72 line; this is for compatibility with other historical
73 printcap file formats. Trailing blanks and tabs (whitespace)
74 for an option value are deleted unless the last one is
75 escaped with a backslash (``''). If a colon character value
76 is required then the : escape sequence can be used, e.g.:
77 dest=ftp://address/file.
78
79
80 A printer definition starts with a primary printer name,
81 followed by zero or more alternative printer names, followed
82 by a set of keyword entries and values. For
83 example:
84
85
86 #comment
87 # primary printer name
88 lp
89 #alternate names
90 |lp2|lp3
91 |Example of a printer
92 :sd=/usr/spool/LPD/lp
93 :rw:lp=/dev/lp:mx#100
94 include /etc/printcap/mainprintcap
95 The special printcap definition ''include'' will read the named file, which must have an absolute pathname, as the next set of printcap entries.
96
97
98 Keywords can be 1 to an indefinate number of characters
99 long, and are case sensitive. Values for keywords can be
100 strings (:st=string:), signed integer values using the C
101 language notation, (:nu#12:max#-2:mask#0x1EF:), or flags
102 (:flag: to set to 1, :flag@: to clear to 0). Integer values
103 must be representable as 32 bit 2's complement numbers; care
104 should be taken with extremely large numbers.
105
106
107 If the primary name of a printcap entry starts with a
108 punctuation character, then the entry may be referenced
109 using the ''tc'' capability, but is ignored otherwise.
110 This allows common printcap information to be placed in a
111 single entry.
112
113
114 The special printcap entry ''oh'' (i.e. - only this host)
115 may be used to select a printcap entry for use by one or
116 more hosts. The oh entry can be a list of one or more host
117 names or glob type of patterns. These patterns are first
118 applied to the host's fully qualified domain name, and then
119 used to to a lookup of an IP address. If either the glob
120 match or the host has a matching IP address then the
121 printcap entry is selected for use. In addition, the
122 ''server'' flag indicates that only the LPD server is to
123 use this printcap entry. This allows client and server
124 printcap information be to be segragated in a simple
125 manner.
126
127
128 The following is a list of the keywords currently used by
129 the LPRng software. Many of these keywords are used only by
130 the ''LPD'' server, others are used by the client
131 programs ''LPR, LPC, LPRM, PAC,'' as well as the server.
132 In the Use column in the table below, an __A__ stands for
133 all programs, __D__ stands for ''lpd'', and __R__
134 stands for the client programs such as
135 ''LPR.''
136
137
138 Some of these entries can only appear or have an effect if
139 they are in the lpd.conf initialization file. See
140 lpd.conf(5) for further details.
141 !!ENTRIES BY ALPHABETICAL ORDER
142
143
144 __FL Use Type Default Description
145 __Xf D str NULL output filter for format X (used by lpd).
146 'filter' sets default filter
147 ab D bool false always print banner, ignore lpr -h option
148 achk D bool false
149 If TRUE LPD and the :as specifies a remote host or
150 filter or the :af specifies a remote host or filter
151 then after writing the accounting information to the
152 destination a resply will be read. The value of the
153 reply determines how the job is to be handled.
154 ae D str accounting format for end of job or a program to run
155 to record accounting information (see also af, la, ar
156 and Accounting).
157 af D str NULL
158 accounting file, filter, or remote accounting server
159 (see also la, ar, as, ae, achk). If format is |/path then
160 the program will be started and accounting information
161 will be written to the program STDIN. If the format
162 host%port, a tcp/ip connection will be made to port
163 on host and the accounting information written to the
164 remote host. In both of these cases the write operation
165 must succeed or an error will result. If the format
166 is neither of these cases then the value will be treated
167 as a file and accounting information appended to the file
168 if it exists. The accounting file will not be created,
169 it must exist for LPD to append data to it.
170 The :as and :ae fields have the accounting information.
171 ah D bool false auto-hold - job held until explicitly released
172 all A str NULL a list of all printers; (see ALL PRINTERS)
173 allow_duplicate_flags A bool false
174 allow duplicate command line flags; last overwrites earlier
175 allow_getenv A bool (compile time)
176 allows LPRng software to use the LPD_CONF environment variable
177 to specify the location of a configuration file. This is
178 for testing only.
179 allow_user_logging A bool false
180 if mail is requested using lpr -mhost%port,prot operations,
181 and the allow_user_logging flag is true, then job logging
182 information will be sent to host%port,prot.
183 allow_user_setting A str NULL
184 allow these users to impersonate other users with the
185 lpr -U user@host, lpc -U user@host, etc., options
186 append_z A str
187 append these options to the -Z options for the job
188 ar D bool true write remote transfer accounting (if af, and as/ae set)
189 architecture A str (compile time)
190 architecture the software was compiled for. (Obsolete.)
191 as D str accounting format for start of job or a program to run
192 to record accounting information (see also af, la, ar
193 and Accounting).
194 auth R str NULL
195 client to server authentication type
196 be D str banner printing program for end (overrides bp, hl)
197 bk R bool false Berkeley-compatible: be strictly RFC-compliant
198 or more exactly, BSD LPR compatible when sending jobs.
199 bk_filter_options D str (see source code)
200 when bk flag set, options for non OF print filters
201 bk_of_filter_options D str (see source code)
202 when bk flag set, options for OF print filters
203 bkf R bool false
204 use bk_filter_options and bk_of_filter_options when
205 invoking print filter.
206 bl D str banner line - sent to banner printer program
207 default: $-'C:$-'n Job: $-'J Date: $-'t
208 expands to: Class:User Job: job Date: date
209 This is to force compatibility with vintage print filters
210 that require a non-standard banner string. Usually used with
211 :sb: option.
212 bp D str banner printing program (see hl)
213 (default: configuration variable default_banner_printer)
214 bq_format D str l format of output from bounce queue filters
215 br D num none if lp is a tty, set the baud rate (see ty)
216 break_classname_priority_link A flag false
217 Do not set priority to first letter of class name
218 bs D str banner printing program for start (overrides bp, hl)
219 cf D str NULL cifplot data filter
220 check_for_nonprintable R bool false
221 lpr checks f and p formats for printable files
222 check_for_protocol_violations R bool false
223 check for RFC1179 protocol violations
224 chooser D str load balance queue destination chooser program
225 chooser_interval D num 10
226 load balance queue does checks for a
227 destination queue available at this interval
228 chooser_routine D bool false
229 use the user provided chooser routine for this queue
230 class_in_status A bool true
231 show class name in lpq status rather than priority
232 cm A str NULL comment identifying printer (LPQ)
233 config_file A str /etc/lprng/lpd.conf
234 location of LPRng configuration information. Compile
235 time option only - see allow_getenv.
236 connect_grace A num 0
237 time between jobs to allow printer recovery
238 connect_interval A num 10
239 time between open or connection attempts
240 connect_timeout A num 10
241 timeout value for connection or open
242 control_file_line_order D str NULL
243 Put the control file lines in a specific order
244 control_filter D str NULL
245 Filter for control file. Used when sending job to remote
246 spool queue.
247 create_files D bool false
248 create log, debug, etc., files automatically
249 db A str NULL LPD debug options when serving this queue.
250 See lf (log file) entry as well.
251 default_format R str f
252 default format for printing jobs
253 default_permission D str A
254 default permission for operation
255 default_printer A str lp
256 default printer for printing jobs
257 default_priority R str A
258 default priority for printing jobs
259 default_remote_host A str localhost
260 default remote host for printing operations
261 default_tmp_dir A str /tmp
262 default temporary directory
263 destinations D str NULL
264 names of printers that lpq/lprm should talk to
265 find a job that has been processed by a router
266 script (see README.routing)
267 df D str NULL tex data filter (DVI format)
268 done_jobs D num 1
269 retain status for last N jobs
270 done_jobs_max_age num 0
271 remove status older than N seconds (0 - no removal)
272 exit_linger_timeout A num 10
273 socket SO_LINGER timeout value
274 fd D bool false if true, no forwarded jobs accepted
275 ff D str ``f'' string to send for a form feed (see INITIALIZATION)
276 filter D str NULL
277 default filter to use for printing file
278 filter_ld_path D str (see source)
279 the LD_LIBARY_PATH environment variable value for filters
280 filter_options D str (see source code)
281 when bk flag clear, options for non OF print filters
282 filter_path D str (default '/bin:/usr/bin')
283 the PATH environment variable value for filters
284 filter_poll_interval D num 30
285 interval to poll OF filter
286 filter_stderr_to_status_file D bool false
287 set the filter STDERR to the status file and do
288 no report errors in the queue status file.
289 fo D bool false print a form feed when device is opened
290 force_fqdn_hostname A bool FALSE
291 Force a fully qualified host name in control file
292 force_ipadddr_hostname A bool FALSE
293 Force the IP address of the host to be used for the
294 hostname in control file
295 force_localhost A bool TRUE
296 Forces the clients programs (lpr, lpc, etc.)
297 to send all print jobs and requests to the server running
298 on the localhost entry for action. This flag effectively
299 forces BSD LPR behaviour.
300 force_lpq_status D str NULL
301 Specifies a list of LPQ formats and hosts which get status
302 returned in this format. For example
303 force_lpq_status=s=pc*;l=mac* will cause hosts whose
304 FQDN matches pc* to get short status and those which
305 match mac* to get long format.
306 force_queuename A str NULL
307 When :qq: flag or use_queuename configuration is enabled,
308 specifies the queuename to be used for control file Q
309 information.
310 ff_separator D bool false
311 need form feeds to separate job files
312 fq D bool false print a form feed when device is closed
313 full_time D bool detailed time format specification in log messages
314 fx A str NULL valid output filter formats
315 i.e. ``flp'' would allow f, l, and p
316 default is to allow all formats
317 gf D str NULL graph data filter (plot (3X) format)
318 generate_banner D bool false
319 generate a banner when forwarding job
320 group D str daemon LPD server group id for execution
321 hl D bool false print banner after job instead of before
322 if D str NULL filter command, run on a per-file basis
323 ignore_requested_user_priority D bool false
324 Ignore the requested user priority when ordering jobs.
325 Prevents students... um... users from queue jumping.
326 ipv6 A bool false Use IPV6
327 keepalive A bool true
328 set socket SO_KEEPALIVE option
329 kerberos_keytab D str /etc/lpd.keytab
330 Kerberos lpd server keytab file
331 kerberos_life D str NULL
332 Kerberos lpd server key lifetime
333 kerberos_renew D str NULL
334 Kerberos lpd server key renewal time
335 kerberos_server_principle D str NULL
336 Kerberos remote lpd server principle
337 kerberos_service D str lpr
338 Kerberos service used in principle requests
339 la D bool true write local printer accounting (if af is set)
340 ld D str NULL leader string printed on printer open (see INITIALIZATION)
341 lf D str ``log'' error and debugging log file (LPD)
342 lk D bool false lock the lp device to force arbitration
343 lockfile D str /var/spool/lpd/lpd
344 lpd lock file (used only in lpd.conf).
345 The lpd_port port value is appended
346 to the lockfile value to provide a unique lockfile
347 even when different versions of LPRng are running
348 on the same system.
349 logger_destination D str NULL
350 destination for logging information. Format is
351 host%port
352 logger_max_size D num 1024
353 logger file maximum size in K
354 logger_path D str NULL
355 logger file pathname
356 logger_timeout D num 0
357 logger connection timeout. 0 is no timeout.
358 longnumber D bool false
359 use 6 digit job numbers
360 lp D str NULL device name or pipe to send output to
361 lpd_bounce A bool FALSE
362 Forces lpd to filter jobs and then forward them
363 as a single file
364 (See Bounce Queues)
365 lpd_force_poll A bool FALSE
366 Forces lpd to periodically poll lpd queues.
367 lpd_poll_time A num 600
368 After this amount of idle time, lpd will poll queues
369 lpd_port D str printer
370 format is [[ipaddr%]port. If the ipaddr is present
371 then the lpd listening socket is bound to the specified
372 ip address and port only, otherwise it is bound to all
373 interfaces. If the port value is not a number then the
374 then the getservbyname() system call is used to get the
375 port number.
376 lpd_printcap_path D str (see source)
377 printcap path for lpd, used instead of printcap path
378 (configuration value only)
379 lpr_bounce R bool true
380 Forces lpr to filter jobs and then send them.
381 (See Bounce Queues)
382 lpr_bsd R bool false
383 when set, LPR -m will not take argument, but will use
384 $USER value for return mail address.
385 mail_from D str NULL
386 specifies the user part of email From: address
387 mail_operator_on_error D str NULL
388 send mail to this user when LPD encounters printing error.
389 max_connect_interval A num 60
390 maximum time between connection attempts
391 max_log_file_size D num 0
392 maximum log file size in K bytes (0 is unlimited)
393 spool queue log file truncated to min_log_file_size
394 when value is nonzero and limited exceeded.
395 max_servers_active D num 0
396 maximum servers that LPD will allow to be active at one
397 time. 0 selects the system default, which is usually
398 pretty small, perhaps 10. (configuration value only).
399 max_status_line D num 79 maximum number of characters on an LPQ status line
400 max_status_size D num 10 maximum size (Kbytes) of status file
401 mc R num 1 maximum copies allowed
402 min_log_file_size D num 0 minimum size (Kbytes) of log file
403 min_status_size D num 2 minimum size (Kbytes) of status file
404 minfree D str 0
405 minimum space (in K) for spool directory
406 ml R num 32 minimum printable characters for printable check
407 ms_time_resolution D bool false
408 log time in milliseconds
409 mx R num 0 maximum job size in K, 0 = unlimited
410 nb D num 0 if non-zero, do a nonblocking open on lp device
411 nf D str NULL DITROFF data filter
412 network_connect_grace A num 0
413 time between attempts to send jobs to spooler
414 Useful when dealing with network printer using LPD
415 interface to allow a bit of time between jobs.
416 nline_after_file D bool false
417 put the N (filename) after the data file information
418 in the control file. Use to handle systems that want
419 it that way.
420 of D str NULL output filter, run once for all output
421 (used for banner printing, form feeds between files)
422 of_filter_options D str (see source code)
423 when bk flag clear, options for OF print filters
424 oh A str NULL Specific printcap entry for host;
425 (printcap entry ignored unless IP address of host and
426 entry value match. Entry is used first to do glob
427 style match against the host's fully qualified domain name,
428 and then interpreted as a general IP address)
429 order_routine D bool false
430 use a user provided routine to generate queue order
431 information.
432 originate_port A str 512 1023
433 when originating a connection, use ports in this range.
434 pass_env A str PGPPASS,PGPPATH
435 if not the LPD server, sanitize and put these variables
436 in a filter environment variable list.
437 perms_path A str /etc/lprng/lpd.perms
438 location of perms file (used in lpd.conf)
439 pl D num 66 page length (in lines)
440 pr D str ``/bin/pr'' pr program for p format
441 prefix_o_to_z D bool false
442 prefix the control file O line to the control file
443 Z line.
444 prefix_z D str NULL
445 prefix the specified options to the control file
446 Z line.
447 prefix_z_to_o D bool false
448 prefix the control file Z line to the control file
449 O line.
450 printcap_path A str /etc/lprng/printcap
451 location of printcap file (only in lpd.conf)
452 ps A str ''status'' printer status file name
453 pw D num 132 page width (in characters)
454 px D num 0 page width in pixels (horizontal)
455 py D num 0 page length in pixels (vertical)
456 qq A bool false LPR - puts in the queue name (Q entry)
457 in the job control file when spooled or transferred.
458 LPD - when receiving or transferring a job,
459 if the queue name (Q entry) in the job control
460 file is not present, puts in the queue name.
461 queue_control_file D str control.%P
462 name of the queue control file
463 queue_lock_file D str %P
464 name of the queue lock file
465 queue_status_file D str status.%P
466 name of the queue status file
467 queue_unspooler_file D str unspooler.%P
468 name of the queue unspooler status file
469 remote_support A str NULL
470 if non-null, specifies allowed operations to remote queue.
471 R=lpr, M=lprm, Q=lpq, V = lpq -v, C=lpc. For example,
472 remote_support=RM would only allow LPR and LPRM operations.
473 remove_z D str null
474 remove these options from the control file Z line
475 report_server_as A str NULL
476 use the str value as the name of the server when reporting
477 LPQ or LPC status.
478 require_explicit_q Require a queue to be specified, do not use default
479 queue from printcap.
480 retry_econnrefused A bool true
481 if set, retry a connection to a remote system when an
482 ECONNREFUSED error is returned.
483 retry_nolink D bool true
484 if LPD is sending a job or opening a device for
485 printing and the value is true, then the connection or
486 device open is repeated indefinately.
487 return_short_status D str NULL
488 Some legacy (non-LPRng) LPQ programs expect 'short' status
489 to be returned. This option allows you to specify which hosts
490 will get it. The value is a list of hosts and/or IPaddresses
491 and masks to which the LPD server will provide short status.
492 For example: return_short_status=192.8.0.0/16 will make LPD
493 return short status to all requests from hosts in subnet
494 192.8.0.0. (See short_status_length)
495 reuse_addr A bool false
496 if set, use SO_REUSEADDR on outgoing connection ports.
497 This reduces the problems with exhausting port numbers.
498 (usually only in lpd.conf)
499 reverse_lpq_status D str NULL
500 When a lpq status request arrives from one of the specified
501 hosts or IP addresses, then the LPQ status format is inverted.
502 For example, if reverse_lpq_status=host*,127.0.0.0/8,
503 then when a LONG status request arrives from host1 or from
504 ip address 127.0.0.1, the SHORT status will be returned.
505 reverse_priority_order D bool false
506 Make highest priority A, lowest Z
507 rf D str NULL filter for printing FORTRAN style text files
508 rg A str NULL (restrict to group members)
509 Restrict use of queue to users which are members of
510 specified groups.
511 rm A str NULL remote-queue machine (hostname) (with rp)
512 router D str NULL script that dynamically re-routes a job
513 (see README.routing)
514 rp A str NULL remote-queue printer name (with rm)
515 rw D bool false open the printer for reading and writing
516 safe_chars D str NULL
517 additional safe characters for control file contents
518 save_on_error D bool false
519 Save job when an error occurs to allow post-mortem
520 diagnostics or reprinting. This should only be set on
521 print queues. It is also a diagnostic aid.
522 save_when_done D bool false
523 Save job when done (printed, transferred) to allow
524 retry at a later time. This should only be set on
525 print queues. It is also a diagnostic aid.
526 sb D bool false short banner (one line only)
527 sd A str NULL spool directory (only ONE printer per directory!)
528 send_block_format A bool false
529 Use the LPRng extended 'block job' job transmission
530 method to send a job to a remote site.
531 send_data_first A bool false send data files then control files
532 when sending a job to a remote host.
533 send_failure_action D str
534 __
535 !!ENTRIES BY FUNCTION
536
537
538 See the alphabetical listing for detailed
539 information.
540
541
542 __Filters and Page Formats
543 __Xf D str NULL output filter for format X (used by lpd)
544 'filter' sets default filter
545 cf D str NULL cifplot data filter
546 control_filter D str NULL
547 Filter for control file. Used when sending job to remote
548 spool queue.
549 df D str NULL tex data filter (DVI format)
550 direct_read D bool false
551 if true, filters are given direct access to file.
552 This means no progress indication possible.
553 fx A str NULL valid output filter formats
554 i.e. ``flp'' would allow f, l, and p
555 default is to allow all formats
556 gf D str NULL graph data filter (plot (3X) format)
557 if D str NULL filter command, run on a per-file basis
558 lpd_bounce R bool false
559 Forces lpd to filter jobs and then forward them.
560 (See Bounce Queues)
561 lpr_bounce R bool false
562 Forces lpr to filter jobs and then send them.
563 (See Bounce Queues)
564 nf D str NULL DITROFF data filter
565 of D str NULL output filter, run once for all output
566 pl D num 66 page length (in lines)
567 pr D str ``/bin/pr'' pr program for p format
568 pw D num 132 page width (in characters)
569 px D num 0 page width in pixels (horizontal)
570 py D num 0 page length in pixels (vertical)
571 rf D str NULL filter for printing FORTRAN style text files
572 translate_format D str NULL
573 translate job format (similar to tr(1) utility)
574 only valid when transferring to remote spool queue.
575 Example: translate_format=pfml
576 p format changed to f, m format to l
577 tf D str NULL troff data filter (C/A/T phototypesetter)
578 vf D str NULL (Versatek) raster image filter
579 __Banners
580 __ab D bool false always print banner, ignore lpr -h option
581 be D str banner printing program for end (overrides bp, hl)
582 bp D str banner printing program (use hl to print banner at end)
583 bs D str banner printing program for start (overrides bp, hl)
584 hl D bool false print banner after job instead of before
585 sb D bool false short banner (one line only)
586 sh D bool false suppress headers and/or banner page, overrides ab
587 __Accounting
588 __ae D str accounting format for end of job or a program to run
589 to record accounting information (see also af, la, ar
590 and Accounting).
591 af D str NULL name of accounting file (see also la, ar)
592 ar D bool true write remote transfer accounting (if af, and as/ae set)
593 as D str accounting format for start of job or a program to run
594 to record accounting information (see also af, la, ar
595 and Accounting).
596 la D bool true write local printer accounting (if af is set)
597 __Queue control
598 __ah D bool false auto-hold - job held until explicitly released
599 bk R bool false backwards-compatible: be strictly RFC-compliant
600 bkf R bool false backwards-compatible filter: use Berkeley filter options
601 bqfilter D bool false if a bounce queue (sends jobs to remote site)
602 then when bqfilter true and a format filter is specified,
603 sends data files through format filter before transfer.
604 See also 'qq'.
605 cd D str NULL control information directory for LPD server
606 cm A str NULL comment identifying printer (LPQ)
607 fd D bool false if true, no forwarded jobs accepted
608 lf D str ``log'' error and debugging log file (LPD)
609 longnumber D bool false
610 use 6 digit job numbers
611 mc R num 1 maximum copies allowed
612 ml R num 32 minimum printable characters for printable check
613 minfree D str 0 minimum space (Kb) to be left in spool filesystem
614 You can also use nnnM for nnn megabytes.
615 mx R num 0 maximum job size (1Kb blocks, 0 = unlimited)
616 ps A str ''status'' printer status file name
617 nw A bool false spool dir is on an NFS file system
618 (take precautions when reading/writing files)
619 qq A bool false place queue information in control file. See
620 alphabetical for details.
621 rm A str NULL remote-queue machine (hostname) (with rp)
622 rp A str NULL remote-queue printer name (with rm)
623 sd A str NULL spool directory (only ONE printer per directory!)
624 ss D str NULL name of queue that server serves (with sv)
625 sv D str NULL names of servers for queue (with ss)
626 sc R bool false suppress multiple copies
627 use_auth A str NULL authentication to use
628 use_date A bool true add date line ('D') to control file
629 use_identifier R bool true
630 add job identifier lines ('A') in the control file
631 use_shorthost R bool false use only the hostname for job control
632 and data file names. Host information in job file
633 will still be fully qualified domain name.
634 __Connection and Interface to Printer
635 __db A num 0 debug level when using this printer
636 connect_interval A num 10
637 time between open or connection attempts
638 connect_timeout A num 10
639 timeout value for connection or open
640 (0 is infinite number)
641 ff D str ``f'' string to send for a form feed (see INITIALIZATION)
642 fo D bool false print a form feed when device is opened
643 fq D bool false print a form feed when device is closed
644 ld D str NULL leader string printed on printer open (see INITIALIZATION)
645 lp D str NULL device name or pipe to send output to
646 lk D bool false lock the lp device to force arbitration
647 max_connect_interval A num 60
648 maximum time between connection attempts
649 nb D num 0 if non-zero, do a nonblocking open on lp device
650 retry_econnrefused A bool true
651 if set, retry a connection to a remote system when an
652 ECONNREFUSED error is returned.
653 retry_nolink D bool true
654 if LPD is sending a job or opening a device for
655 printing and the value is true, then the connection or
656 device open is repeated indefinately.
657 rs D num 300 number of seconds between spool queue status scans
658 rt D num 3 number of times to try printing (0=infinite).
659 rw D bool false open the printer for reading and writing
660 save_on_error D bool false
661 See above.
662 save_when_done D bool false
663 See above.
664 send_failure_action D str remove
665 See above.
666 send_try alias for rt
667 sf D bool true suppress form feed separators between job files
668 socket_linger A num 10
669 if nonzero, forces a SO_LINGER operation to be done
670 on all TCP/IP connections. This usually corrects a problem
671 with missing last data transmissions to remote hosts.
672 tr D str NULL trailer string to print when queue empties
673 __Serial Line Setup
674 __br D num none if lp is a tty, set the baud rate (see ty)
675 stty D str NULL stty commands to set output line characteristics
676 alias is sy, ms
677 xs D num 0 like `xc' but set bits (see STTY)
678 __Miscellaneous
679 __all A str NULL a list of all printers; (see ALL PRINTERS)
680 destinations D str NULL
681 names of printers that lpq/lprm should talk to find
682 a job that has been processed by a router script
683 (see README.routing)
684 forward_auth D str NULL
685 server to server authentication type, e.g. pgp, kerberos
686 force_localhost A bool TRUE
687 Forces the clients programs (lpr, lpc, etc.)
688 to send all print jobs and requests to the server running
689 on the localhost entry for action. This flag effectively
690 forces BSD LPR behaviour.
691 force_queuename A str NULL
692 See above.
693 logger_destination D str NULL
694 destination for logging information. Format is
695 host[[%port][[,(TCP|UDP)]
696 oh D str NULL Specific printcap entry for host. See above.
697 remote_support A str RMQC
698 if non-null, specifies allowed operations to remote queue.
699 R=lpr, M=lprm, Q=lpq, C=lpc
700 router D str NULL script that dynamically re-routes a job
701 (see README.routing)
702 server A bool false printcap entry for server only
703 server_auth_command D str NULL
704 authentication command for server to use.
705 tc A str NULL reference to a printcap entry to include as part of
706 the current entry.
707 use_auth D str NULL
708 client to server authentication type, e.g. pgp, kerberos
709 user_auth_command R str NULL
710 authentication command for user (client program)
711 !!FILTERS
712
713
714 By convention, all output filter names have the form
715 __Xf,__ where __X__ is the lower case letter
716 corresponding to the lpr formatting option. The
717 __filter__ option can specify a default filter for job
718 files.
719
720
721 The __of__ filter is started for each job and is used to
722 print the banner page and any FF separators between
723 individual files of the job. It is sent a special stop
724 sequence by the lpd server, and must suspend operations
725 until sent a SIGCONT signal. A file or job filter is run
726 separately for each file; at the end of the job the
727 __of__ filter is restarted and used to print the trailing
728 banner (if any) and FF separators.
729
730
731 Filters are invoked with a standard set of options defined
732 by the bk_filter_options (backwards compatible),
733 bk_of_filter_options (backwards compatible OF filter), and
734 filter_options configuration variables. See the lpd(8)
735 manual page for details. If the first characters of the
736 filter specification are -$, i.e.- Xf=-$ filter, then the
737 command line options are not added. Currently, the options
738 are:
739
740
741 bk_filter_options $P $w $l $x $y $F $c $L $i $J $C $0n $0h $-a
742 bk_of_filter_options $w $l $x $y
743 filter_options $C $F $H $J $L $P $Q $R $Z $a $c $d \
744 $e $f $h $i $j $k $l $n $s $w $x $y $-a
745 !!SPOOL QUEUES
746
747
748 Printcap entries which have a spool directory value (sd) are
749 called spool queues. Jobs sent to a printer with a spool
750 queue are place in the spool directory. When checking the
751 spool queue for jobs, the server will check to see if there
752 is a printcap file in the directory with the name
753 __printcap.__host. If there is, the additional printcap
754 information is processed and used by the
755 server.
756
757
758 If the spool directory is NFS exported, then remote hosts
759 can manipulate the spool entries directly; this can have
760 catastrophic effects, especially in systems where the NFS
761 implementation has defects. The printcap information is
762 particularly vulnerable to exploitation, as well as symbolic
763 links, jobs which cannot be removed, etc.
764 !!LOCAL PRINTERS
765
766
767 Local printers have an __lp__ entry, which is the device
768 that output should be sent to, usually a serial port tty.
769 PLP supplements this by using the lp field to indicate a
770 remote printer, or by allowing communication with the
771 printer using a separate program, known as an
772 ''lp-pipe,'' instead of a serial line. If the printcap
773 __lp__ entry contains a string of the form
774 __printer@host,__ jobs are forwarded to the specified
775 remote printer on the host. If the printcap __lp__ entry
776 contains a string of the form __| command args__ , the
777 command __command__ is run, with the arguments __args
778 .__ This can be used to communicate with printers
779 connected to network terminal servers, some TCP/IP-capable
780 printers, and just about anything you can hack up a
781 communication program for. Read the PLP Manual for more
782 details.
783 !!STTY OPTIONS
784
785
786 The __stty__ printcap parameter recognises a set of
787 stty(1) options that can be used to set serial line
788 characteristics for the printer. However, due to the
789 differences between implementations of UNIX, there are
790 several sets of __ty__ options supported. Invoke
791 lpd(8) with the ``-v'' command-line option to see
792 which set your installation is using.
793
794
795 Systems using the ''sgtty'' tty manipulation interface
796 may use the following stty(1) options:
797
798
799 bs0 bs1 [[-]cbreak cooked cr0
800 cr1 cr2 cr3 [[-]decctlq [[-]echo
801 [[-]even ff0 ff1 [[-]lcase [[-]litout
802 nl0 nl1 nl2 nl3 [[-]nl
803 [[-]noflsh new [[-]nohang old [[-]odd
804 [[-]raw start stop tab0 tab1
805 tab2 [[-]tabs [[-]tandem tek ti700
806 [[-]tilde tn300 tty33 tty37 vt05
807 [[-]evenp [[-]oddp [[-]pass8
808 Systems using ''termio'' may use the following options:
809
810
811 [[-]ignbrk [[-]brkint [[-]ignpar [[-]parmrk [[-]inpck
812 [[-]istrip [[-]inlcr [[-]igncr [[-]icrnl [[-]iuclc
813 [[-]ixon [[-]ixany [[-]ixoff [[-]decctlq [[-]tandem
814 [[-]imaxbel [[-]opost [[-]olcuc [[-]onlcr [[-]ocrnl
815 [[-]onocr [[-]onlret [[-]ofill [[-]ofdel [[-]cstopb
816 [[-]cread [[-]parenb [[-]parodd [[-]hupcl [[-]clocal
817 [[-]loblk [[-]parity [[-]evenp [[-]oddp [[-]stopb
818 [[-]hup [[-]crtscts [[-]isig [[-]noisig [[-]icanon
819 [[-]cbreak [[-]xcase [[-]echo [[-]echoe [[-]echok
820 [[-]crterase [[-]lfkc [[-]echonl [[-]noflsh [[-]tostop
821 [[-]echoctl [[-]ctlecho [[-]echoprt [[-]prterase [[-]echoke
822 [[-]crtkill [[-]lcase [[-]nl [[-]litout [[-]pass8
823 [[-]raw [[-]sane [[-]cooked [[-]nopost fill
824 nl0 nl1 cr0 cr1 cr2
825 cr3 tab0 tab1 tab2 tab3
826 bs0 bs1 vt0 vt1 ff0
827 ff1 cs5 cs6 cs7 cs8
828 nul-fill del-fill -tabs
829 And systems using ''termios'' may use the following options:
830
831
832 [[-]ignbrk [[-]brkint [[-]ignpar [[-]parmrk [[-]inpck
833 [[-]istrip [[-]inlcr [[-]igncr [[-]icrnl [[-]iuclc
834 [[-]ixon [[-]ixany [[-]ixoff [[-]imaxbel [[-]pass8
835 [[-]opost [[-]olcuc [[-]onlcr [[-]ocrnl [[-]onocr
836 [[-]onlret [[-]ofill [[-]ofdel [[-]tabs nl0
837 nl1 cr0 cr1 cr2 cr3
838 tab0 tab1 tab2 tab3 bs0
839 bs1 vt0 vt1 ff0 ff1
840 cs5 cs6 cs7 cs8 [[-]cstopb
841 [[-]cread [[-]parenb [[-]parodd [[-]hupcl [[-]clocal
842 [[-]crtscts [[-]evenp [[-]parity [[-]oddp [[-]pass8
843 [[-]isig [[-]icanon [[-]xcase [[-]echo [[-]echoe
844 [[-]echok [[-]echonl [[-]noflsh [[-]tostop [[-]iexten
845 [[-]echoctl [[-]ctlecho [[-]echoprt [[-]prterase [[-]echoke
846 [[-]crtkill [[-]flusho [[-]pendin
847 The __fc__ , __fs__ , __xc__ , and __xs__ printcap entries are obsolete, and if present with non-zero values will abort print job processing.
848 !!INITIALIZATION
849
850
851 Many printers require an initialization string to be sent to
852 them in order to configure their operation. The leader (ld)
853 and trailer (tr) strings are sent at the start and end of
854 job processing. These strings are interpreted using the C
855 language conventions for character representation: nnn is
856 replaced with a character with the value nnn, n with a new
857 line, r with a carriage return, and so forth.
858 !!ALL PRINTERS
859
860
861 The LPRng software has the capability to use a remote
862 database for obtaining printcap and other information. One
863 of the difficulties arises when a list of all printers
864 available is needed. By convention, the special printer name
865 __all__ is reserved for this information; the __all__
866 field is a list of printers separated by spaces or
867 punctuation. For example:
868
869
870 #all printers
871 all:all=lp1,lp2,lp3,lp4
872 !!ACCOUNTING
873
874
875 Accounting in the LPRng package has evolved over time to
876 accommodate new requirements. The general approach is to use
877 either a simple __log to file__ method in which the
878 accounting information is written to a log file or a more
879 complex __log to program__ method in which the accounting
880 information is written to a program. The information and
881 method and actions taken are specified by the following
882 entries:
883
884
885 :as - start of job accounting
886 :ae - end of job accounting
887 :af - default job accounting
888 :achk - used accounting for authorization.
889 The value of the :as and :ae options are either a string which is used as the accounting information or a program which is executed to log or save the accounting information. If a program is executed then the value of the :af entry is ignored and the program is run to record the job accounting information. For example:
890
891
892 # string for information logging
893 :as=jobend $H $n $P $k $b $t
894 :ae=jobstart $H $n $P $k $b $t
895 :as=|/usr/local/libexec/logjobstart $H $n $P $k $b $t
896 :ae=|/usr/local/libexec/logjobend $H $n $P $k $b $t
897 If the :as or :ae value is a string then the :af information is used to record the accounting information:
898
899
900 af=|/path - run program, :as or :ae written to
901 program STDIN
902 af=host%port - tcp/ip connection to port on host,
903 :as or :ae written to connection
904 af=path - treat path as a file pathname,
905 if file exists append :as or :ae
906 to file.
907 If the :achk flag is set then this is modified as follows.
908 If the :as entry specifies a program or :af entry specifies a
909 program or remote host (i.e. - logging using program) then
910 after accounting information has been written to the
911 program or connection a response will be read from the program
912 STDOUT or the connection.
913 This reponse is expected to be an ASCII string.
914 If the line is blank or starts with ACCEPT then the job will be printed,
915 HOLD will hold the job, REMOVE will remove the job,
916 and ABORT or a non-recognizable response will cause printing to be aborted.
917 If the output is written to a program then the exit status
918 of the program can be used as well.
919 If the program exits with nonzero status then the
920 exit code controls the disposition:
921 JHOLD, JREMOVE, and JABORT will hold, remove,
922 or abort the job respectively.
923 If the exit status is 0, then
924 the filter's STDOUT will be read and processed as described above.
925 !!BOUNCE QUEUES AND PRINT FORMATS
926
927
928 If the lp option value has the format __:lp=pr@host__ or
929 job forwarding is specified by __:rp=pr:rm=host__ then
930 the normal operation is simple to store and forward the
931 print jobs. If filters are specified then the job files are
932 first filtered and then the output of the filters is sent to
933 the destination. For historical reasons, a spool queue that
934 does filtering and forwarding is called a ''bounce
935 queue''. The __bounce_queue_format__ (default 'f')
936 specifies the output for the filtered files. If this is not
937 desireable the __translate_format__ option can be used to
938 specify a format. The option has the form SdSdSdN, where S
939 is the original format and d is the final format. If none of
940 the formats match and there is an odd number of formats then
941 the last one is used. For example, __pfmlf__ would
942 convert formats p to f, m to l, and v to f.
943
944
945 The :lpd_bounce flag concatenate the output of the filters
946 and the result will be sent as a single job file to the
947 destination. This facility is useful when handling legacy
948 print spooler applications that do not understand the
949 RFC1179 copy, etc., options. The first letter of the
950 __bounce_queue_format__ (default 'f') is used as the
951 output file format.
952
953
954 The __lpr_bounce__ printcap flag can be used to cause LPR
955 to do bounce queue filtering in exactly the same manner as
956 the server. This should be used with caution as missing
957 filters on the client system can cause unexpected
958 behaviour.
959 !!KERBEROS, PGP, AND OTHER AUTHENTICATION METHODS
960
961
962 LPRng supports built in kerberos authentication. To enable
963 this, the LPD protocol has been extended to provide a way to
964 transfer authenticated and/or encrypted jobs and commands.
965 The details are covered in other LPRng
966 documentation.
967 !!FILES
968
969
970 The files used by LPRng are set by values in the printer
971 configuration file. The following are a commonly used set of
972 default values.
973
974
975 /etc/lprng/lpd.conf LPRng configuration file
976 ${HOME}/.printcap user printer description file
977 /etc/lprng/printcap printer description file
978 /etc/lprng/lpd.perms permissions
979 /var/run/lprng/lpd lock file for queue control
980 /var/spool/lpd spool directories
981 /var/spool/lpd/QUEUE/control queue control
982 /var/spool/lpd/QUEUE/log trace or debug log file
983 /var/spool/lpd/QUEUE/acct accounting file
984 /var/spool/lpd/QUEUE/status status file
985 !!SEE ALSO
986
987
988 lpd.conf(5), lpc(8), lpd(8), checkpc(8), lpr(1), lpq(1),
989 lprm(1), lpd.perms(5), pr(1).
990 !!DIAGNOSTICS
991
992
993 Most of the diagnostics are self explanatory.
994 If you are puzzled over the exact cause of failure,
995 set the debugging level on (-D5) and run again.
996 The debugging information will
997 help you to pinpoint the exact cause of failure.
998 !!HISTORY
999
1000
1001 LPRng is a enhanced printer spooler system with
1002 functionality similar to the Berkeley LPR software. The
1003 LPRng mailing list is lprng@lprng.com; subscribe by sending
1004 mail to lprng-request@lprng.com with the word subscribe in
1005 the body. The software is available from
1006 ftp://ftp.lprng.com/pub/LPRng.
1007 !!AUTHOR
1008
1009
1010 Patrick Powell
1011 ----
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.