				LPRngTool
				---------

** What is LPRngTool?

LPRngTool is a Tcl/Tk GUI which allows you to add/delete/modify local
printers, and monitor and manage local and remote print queues using
LPRng.  LPRngTool does NOT work with Berkeley or Sys V style printing!
You must have LPRng installed to make use of LPRngTool.  If you want to
control Berkeley lpd spools, use Red Hat's Printtool.  


** Licensing

LPRngTool is licensed under the GNU General Public License (available at
http://www.gnu.org/copyleft/gpl.html).  You're welcome to make changes, 
modifications, bug fixes, and to reuse parts of the code in other
projects.  However, you must make publically available, for free, the
source code to this program and any changes you have made to it if you
distribute it in any way (including just making one copy for a
friend).  You must also include this license statement with any copies you
make/distribute.  It's also appreciated if you send any changes back
upstream to the author (geoff@uslinux.net) to be included in future
versions.


** What do I need to run it?

- A unix or linux machine with LPRng installed
- Tcl/Tk (you've probably got this installed if you installed X)
- ghostscript and mpage, for client-side print drivers (filters)
- samba, for printing to SMB or Windows print shares
- rhs-printfilters, to use as a client or filtering server.  The .tar.gz
  version of LPRngTool includes a recent version of these filters.  If
  you use the RPM, you may need to download the latest filters from either
  http://www.redhat.com, or http://uslinux.net/software/lprngtool.html


** Installation

   For the .tar.gz file on x86 Linux:
	make install

   For the .tar.gz file on any other system:
	make
	make install

   For RPM-based installations:
	rpm -i LPRngTool-<version>.rpm

   For RPM-based upgrades:
	rpm -U LPRngTool-<version>.rpm

The .tar.gz file includes the necessary filters, but you'll want to get
copies of mpage or enscript, the latest ghostscript, and (possibly) 
smbclient, which is part of the Samba package.  The RPM will check for
these, however, you'll have to download rhs-printfilters-<version>.rpm
if you're doing this via RPM, since I don't want to break current RPM
systems.


** Errata/Possible Installation Problems 

There are only two major issues with new installations.  

First, please review the /etc/lprngtool.conf file, and make any
modifications for your system.  Almost every system has a different
location for rc.d scripts, including the LPRng startup script, as well as
other differences.  Failure to do this will most certainly result in
errors on most systems.  This file must be modified for Debian, SuSE,
RedHat 7, among others.  If you e-mail the author, and the answer is in
/etc/lprngtool.conf, your response will be "edit /etc/lprngtool.conf".  


** What else do I need to know?

Almost nothing.  I've tried to be extremely careful in designing and
testing LPRngTool, to ensure it won't corrupt your system.  There's a very
small FAQ at the end of this for setup/first-time run issues you might
have.  If you're using a non-linux system, you'll probably need to compile
rewindstdin.c for your system (go into the filters/ directory and type 'cc
-o rewindstdin rewindstdin.c' - of course you need a compiler to do this).
Other than that, if you find bugs, have ideas for improvements, or
want to contribute to development efforts, e-mail geoff@uslinux.net


** Future Development Effort

As with most software authors, this project is pretty much done in my
spare time.  If you would like to contribute to future versions, I'd
certainly appreciate the help.  Right now, there are two projects being
developed.  The version 1.x branch is bug fixes (none so far!), and minor
modifications/enhancements to the original 1.0 release.  The version 2.0
branch is a complete development effort, in an attempt to enhance the GUI
and make LPRngTool more user friendly.  There are a LOT of changes I would
like to make, primarily adding the ability to drag jobs around (between
queues, between machines, to the trash, to/from a "paused" queue state,
etc) and better-formatting the output of some commands (eg. 'lpc status'
or 'lpc lpq').


** Real Quick Installation FAQ

Q: How do I install lprngtool?
A: Type 'sh install'.  You'll need to have LPRng installed beforehand.

Q: I get some error which leads me to believe rewindstdin won't work on my
   system.
A: You're running a non-Linux OS, aren't you?  No problem, just compile
   the rewindstdin.c source into a binary by typing the following command:
   'cc -o rewindstdin rewindstdin.c'.  Of course, you have to do this in
   the filters/ subdirectory, and you'll need a basic compiler.

Q: I get some weird error about 'Error in startup script: invalid command
   name "frame"...' when starting lprngtool.
A: Your X-windows display is set incorrectly (or perhaps you're trying to
   run it in a terminal and NOT under X).  Set your DISPLAY variable.  The
   method is different, depending on your shell.  For bash shells, type
   'DISPLAY=<your.host.name>:0' and then 'export DISPLAY'.  For csh and tcsh
   shells, type 'set DISPLAY <your.host.name>:0'.  I don't know about other
   shells - you'll have to look into it.

Q: What is /etc/lpd.perms and why do you set it?
A: That file determines whether you can perform remote queue monitoring
   and job management (redirection, cancelling, pausing, etc) or not.  I
   have created a default which allows only remote 'root' users to use
   these functions.  You may want to set your host name/domain info in 
   that file as well if you're running on a public/corporate LAN, since 
   anyone in those instances could plug a *nix box into an Ethernet outlet
   and modify your queues.  I usually recommend allowing only ONE central 
   workstation or subnet access, and then restricting access to that subnet.

Q: I get a message about 'Xlib: Client is not authorized to connect to Server'.
A: Your DISPLAY environment variable is set OK, but your X-windows box
   won't just allow anyone to draw stuff on your screen.  You need to allow
   the remote machine access.  To do so, on your local workstation, type
   'xhost +<remote.host.name>' 

