plpd is a simple implementation of a BSD-compatible printsystem, written in
python.  It was written because the system in Solaris 2.[0-3] is problematic,
and sun is reportedly planning to replace it with something palladium based,
sometime AFTER Solaris 2.4.

plpd allows use of a superset of the BSD system at the socket level,
requires/allows no authentication, reads in /etc/printcap every time
a command is invoked, is inetd-driven (so lpc is largely obviated - daemons
are (re)started on an as-needed basis), and observes a subset of the
traditional printcap options.  $LPDEST and $PRINTER may be used for
default queues, as with the SysV and BSD printsystems (resp.).  Errors
and diagnostics are logged to /var/adm/lpd-errs, regardless of "lf=".


The command line interfaces are currently...

	lpc - a no-op, for shell-script compatibility

	lpq and lpstat - check the status of a queue
		observe "-P" and "-d" (both) for defining a queue

	lpr and lp - queue a job
		observe "-P" and "-d" (both) for defining a queue
		accept and ignore -c, -s, -J and -p
		observe "-h" for suppressing the burst page

	lprm - remove a job from a queue
		observes "-P" and "-d" (both) for defining a queue


And the printcap options observed, are currently (unknown options are
ignored)...

	lp		defines the device to send jobs to, locally
	if		defines a script to run; invoked once for each job; /bin/sh command.
			Note that in the BSD system, this is not /bin/sh syntax, but rather
			a single, exec'able command
	sd		defines the spool directory
	rm		defines a remote host to send jobs to
	rp		defines the name of the queue on a remote host


Installation:

	At UCI, suns running SunOS 5.3 are autoinstalled to use plpd by default.
	Outside UCI, you'd want to add a line like:

		printer stream tcp nowait root /dcs/packages/plpd/lpd lpd

	...to your /etc/inetd.conf, and then HUP inetd or reboot.  Be sure you
	have these programs on your path before the standard versions.  Create
	symlinks from lpd to lpc, lpq, lprm, lp, lpr, and lpstat.  I recommend
	ensuring that lpd.py is compiled to lpd.pyc, to speed startup.


Problem resolutions:

	Once in a (rare?) while, there will still be situations where a daemon
	will crash, leaving behind a lock file that prevents other daemons
	from servicing requests (on a given queue).  In such an instance, it
	may be helpful to rm /var/spool/lpd/<queue_name>/lock.

	It may also be of use to note that a long-stagnant queue may be flushed,
	by sending a zero-length (or any other length) printjob, with, EG:
	"lpr -Pqueue < /dev/null"


Bug reports:

	Please feel free to send bug reports to strombrg@uci.edu.  I cannot
	guarantee that I'll have to time to look at whatever issues you may
	raise, but I may, and I definitely want to be aware of what you come
	across in using plpd.