			Installation instructions for xlps

These programs have been compiled and tested on the following:
						X       Window
	Hardware	Operating System	Version	Mgr	Notes

	Personal IRIS	IRIX 4.0.5		X11R4	twm	memory leaks
								problems w/install
	Personal IRIS	IRIX 4.0.1		X11R4	twm	memory leaks
	SparcII		SunOS 4.1.1-GFXRev1	X11R4	twm	memory leaks
	Sun 4/70	SunOS 4.1.2_DBE1.2	X11R5   twm 
	SPARCsystem 400	SunOS 4.1.2		X11R4	twm	memory leaks
	DEC 5400	Ultrix V4.1 Rev 52	X11R4	twm	memory leaks
	DEC 5500	Ultrix V4.2 Rev 96	X11R5 	twm	some prototype complaints

Note that there are fairly serious memory leaks in the X11R4 athenaTextWidget. Also
note that the program can exhibit some fairly strange behaviour under olwm and mwm.
We only very recently tried to do a full make under IRIX 4.0.5 and discovered that
install croaked on the -o option.  This is NOT resolved... any suggestions?

Although this is a complex suite of programs, installation should be
fairly straightforeward.  Put the tar file one level above where you
want the head of the program tree to go and pop the tar file. For Example:

cd $HOME/src
cp /tmp/xlps.tar .
mkdir xlps
cd xlps
tar xf ../xlps.tar

After the above, you will be at the head of the program tree. Now type:

makeWorld

This command will make all makefiles, do a top level make clean, and
then do the master make for all subdirectories.

Next, cd down to shmem/ and run the program get_semvals. (On some
systems you might have to su to root.) This program will tell you how
many queues you are currently supporting in the /etc/printcap of that
system, and how many semaphores the system will support. xlps
needs a minimum of three semaphore SETS. The largest set must be able
to contain one semaphore for each queue. The total number of
semaphores required is computed by the following:

	totalSemaphores = 3 + (numClients * 2) + (numQueues+1)
where:
	numClients currently defaults to 12
	numQueues is determined from /etc/printcap

Thus, if there are 21 queues listed in /etc/printcap the total number
of semaphores required will be:

	totalSemaphores = 3 + (12 * 2) + 22 = 49

As distributed the program will support 32 queues and therefore
requires a total of 60 semaphores. This can be changed by editing the
#define for MAX_QUEUES in lp.h. The number of clients supported can be
changed from its default of 12 by editing the #define for MAX_READERS
in buffer_names.h.

If you decide to leave the defaults the way they are, the following
are the minimums required to support xlps for the system parameters shown:`

	SEMMNI 3	# of semaphore sets, usually set to 10 on most systems
	SEMMSL 33	# of semaphores per set, usually set to SEMMNS on most systems
	SEMMNS 60	total # of semaphores system-wide

These parameters are found in /usr/include/sys/sem.h on BSD based systems.
If your system doesn't meet or exceed the above, then you will either
have to change the program defaults or the system parameters. Changing
the system parameters requires rebuilding your kernel. See the
appropriate documentation for your particular system regarding
rebuilding the kernel. Don't forget to do another "makeWorld" from the
top of the program tree if you decide to change the program defaults.

Once you have the program and/or the system parameters in agreement
with each other the next step is to su to root and, from the
top of the program tree type: "make install", and then "make install.man".

xlpsd requires the use of a dedicated socket. As root, edit the file
/etc/services. Locate the line assigning port 515 to the line printer
spooler and under this line insert the following:

printer_status  516/tcp         spooler_status         # lps - line printer status program

Optionally, you may want to start the main xlps server and daemon(s)
during boottime from rc.local.  If so, add the following to /etc/rc.local:

# Start up Printer Monitoring Daemon, lpsd
echo 'Starting lpsd'                                    >/dev/console
if [ -f /usr/local/bin/lpsd ]; then
        /usr/local/bin/lpsd 2>&1 &                      >/dev/console
fi

# Start up the xlps (X-windows Line Printer Status) server
echo 'Starting lps server '  >/dev/console
if [ -f /usr/local/bin/xlps_server ]; then
        /usr/local/bin/xlps_server >/dev/null&
fi

If you don't put the startup commands in rc.local, be sure to fire one instance of
lpsd before starting the server.

Good Luck with the programs. Please send all bug reports (preferably bug fixes) and
enhancements to:
		rsmith@proteus.arc.nasa.gov
