padpowell@wateng.UUCP (PAD Powell [Admin]) (05/30/84)
After much effort, Patrick Powell and Sanjay Radia are announcing a new, debugged, and "passes with no lint errors" version of the 4.2 Line Printer Spooler. It is almost compatible with the old version, in that there are some minor modifications to the /etc/printcap that have to be made. In addition, a much better set of output filters and filter writting tools are available. If you want the new version, send $65, a copy of your ATT Unix License (first page and signature page is sufficient), and a copy of your 4.2 license (again first page and signature) and we will send you a copy of the updated documentation, and the new source. For various reasons, we regret that we cannot distribute this in net.sources. Patrick Powell Sanjay Radia VLSI Research Group M.F.C.F. University of Waterloo, Waterloo, Ont. Canada N2L 3G1 Phone- (519) 885-1211 X3381 1. Changes and Modifications The original 4.2BSD Line Printer Spooler as distributed to the University of Waterloo was extensively modified by Patrick Powell. The main purpose of the modifications was to attempt to make the behaviour of the software more uni- form and flexible. The modifications fall into the follow- ing major categories. 1.1. Bugs Several minor, but annoying bugs were eliminated. In this process, LINT was run, and literally hundreds of errors reported by LINT were eliminated. This also uncovered a couple of other bugs. 1.2. Printcap Extensions Also, the fx (format check) string allows a site to do checking to see if formats are allowed on a printer. This can be specially useful for remote printers by restricting certain certain formats. 1.3. Prefilters This allows a local site to preprocess all the files at the local site, and produce a single spool file for later use. This is handy when using a remote printer. As a special case, the -p option of LPR can be pro- cessed at the local site. This is useful if the remote site does not support formatting. 1.4. Filter Parameters The filter parameters have been rationalized into a single set. All options now have the form making life a little easier for the filter writer. Also, additional paramters ( -Jjobname -Cclass -Fformat -ZadditionalPar- metersFromLpr ) are passed to the if output filter. 1.5. LPQ Information The time a job has started has been added to the status information. This is rather useful to know. 1.6. Filter Timeouts A timeout facility has been added to some filters. This helps when attempting to find out if a device has gone off line, is out of paper, etc. 1.7. Special Queue Handling The qh (queue handler) entry in the printcap now allows specification of a handler to be invoked for every job taken from the queue. This is nice for systems which wish to use the spooler facilities for handling jobs, but not for doing the actual data transfer. 1.8. Accounting Accounting information was reformatted, to make it a little easier for other programs like awk and sort to be used. 1.9. Remote Access The ra string variable has been added to the termcap entries, to allow additional remote access information. When being accessed by a remote machine, first the /etc/host.equiv file will be checked, and then the list of machines defined by the ra string. 1.10. Remote Job Removal There is a minor botch in the naming conventions used for spool files, and networking host names. A spool direc- tory file has a name of the form <c|d><seq><host> For example, cfA000watmath would be a control file generated on the host watmath. When a job is spooled remotely, the file names are preserved across systems. LPRM is used to remove jobs from a queue, and does so by sending a message of the form ^Eprinter person [users ...] [jobs ...]\n In the original version of the lpd, the networking function was used to determine the origin of the message. Unfor- tunately, the host name returned depended upon the network and routing used to deliver the message, and was not unique to a system. The person field was modified to be host:person, and the lpd used the transmitted host name as the origin of the message.