v16i014: Public lineprinter spooler package, Part01/16

Rich Salz rsalz at uunet.uu.net
Thu Sep 15 06:12:25 AEST 1988


Submitted-by: papowell at julius.cs.umn.edu
Posting-number: Volume 16, Issue 14
Archive-name: plp/part01

              PLP - The Public Line Printer Spooler
               A Portable UNIX Line Printer Spooler
                     Release 2.0, 1 June 1988
                       Prof. Patrick Powell
                    Dept. of Computer Science
         University of Minnesota, Minneapolis, Minnesota
     PLP is a public domain version of the Berkeley LPD software.
The  functional  resemblance  between  PLP  and the Berkeley Line
Printer Spooler (LPD) is intentional; the source code was written
without  reference  to the original Berkeley LPD software, except
for  some  very  small sections concerned with networking and the
large  characters used for banner printing.  The PLP software has
the following features:
1).The  PLP  software is intended to be  used in a Networked File
   System  (NFS)  environment,  in which there is a common set of
   spool  queues,  as well as in a loosely coupled environment in
   which  each  host transfers print jobs to a host which has the
   printer.
2).Access  and  permission  to use PLP functions is controlled by
   entries      in      a      printer      permissions      file
   (/usr/spool/lpd/printer_perms.<hostname>)  which  can restrict
   use  by  user  name, host, spooler, page useage, and a host of
   other         factors.         The        printcap        file
   (/usr/spool/lpd/printcap.<hostname>)  is  used  to specify the
   printer queues and their operation.
3).Jobs  can now be prioritized.  The maximum priority a user can
   specify is set in the printer permissions file.
4).In  addition  to  the  general  printer permissions file, each
   spool  queue  can  have  its  own addition printer permissions
   file.
5).Line  printer control functions can be exercised from a remote
   host.   Hosts  and  users  with  remote control permission are
   specified by entries in the printer permissions file.
6).Unspooling  of  jobs  can be performed by a printcap specified
   program, rather than by the PLP unspooler.  This allows PLP to
   be used as a spooler and to have spool queues used for various
   purposes.
7).Extremely  verbose  and chatty error messages have been added.
   These  greatly  ease debugging and installation.  In addition,
   the  checkpc  utility  can be used to set file permissions and
   other items for use by the PLP software.
8).The code is quite portable, with as few system dependencies in
   it as possible.  It has run on a VAX 4.2, 4.3, and ULTRIX, SUN
   3.0, and DG-UX.
____________
* UNIX is a trademark of ATT Bell Laboratories.

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 1 (of 16)."
# Contents:  MANIFEST Makefile README backup backup/Makefile
#   backup/lpr.remove backup/lpr.save backup/restore.lpr
#   backup/save.lpr doc doc/PLP doc/PLP/08.t doc/PLP/Makefile
#   doc/PLP/README doc/PLP/dict doc/PLP/macros filters
#   filters/Makefile man man/Makefile man/README printcap
#   printcap/Makefile printcap/README printcap/genpc printcap/hosts
#   printcap/hosts/dg printcap/hosts/julius printcap/hosts/umn-cs
#   printcap/printcap printcap/printers
#   printcap/printers/apple_lind26a.local
#   printcap/printers/apple_lind26a.remote
#   printcap/printers/dg1_lind1.forward
#   printcap/printers/dg1_lind1.remote
#   printcap/printers/dg2_lind25.forward
#   printcap/printers/dg2_lind25.remote
#   printcap/printers/dg3_lind25.forward
#   printcap/printers/dg3_lind25.remote
#   printcap/printers/dgt_lind27.forward
#   printcap/printers/dgt_lind27.remote
#   printcap/printers/diablo_lind136.local
#   printcap/printers/diablo_lind136.remote
#   printcap/printers/epson_lind27.remote
#   printcap/printers/hp2563_lind25.forward
#   printcap/printers/hp2563_lind25.remote
#   printcap/printers/hp_lind54.forward
#   printcap/printers/hp_lind54.remote
#   printcap/printers/imagen_lind27.local
#   printcap/printers/imagen_lind27.remote
#   printcap/printers/laserjetplus_lind25.forward
#   printcap/printers/laserjetplus_lind25.remote src src/IDENT
#   src/README src/patchlevel.h src/setstatus.c src/setup_test.c test
#   test/Makefile test/README test/filter.sh test/linetest.c
#   test/printcap.proto test/printer_perms.proto test/qh.sh utilities
#   utilities/IDENT utilities/Makefile utilities/cpr
#   utilities/cpr/Makefile utilities/print utilities/print/Makefile
#   utilities/print/print.1 utilities/print/print.sh
# Wrapped by papowell at attila on Wed Aug 10 10:44:40 1988
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'Makefile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Makefile'\"
else
echo shar: Extracting \"'Makefile'\" \(1091 characters\)
sed "s/^X//" >'Makefile' <<'END_OF_FILE'
X# ***************************************************************************
X# * U. Minnesota LPD Software * Copyright 1987, 1988, Patrick Powell
X# ***************************************************************************
X# * MODULE: Top level makefile:
X# * Make a tar tape for distribution
X# ***************************************************************************
X# * Revision History: Created Thu Mar 24 12:42:00 CST 1988
X# * $Log$
X# ***************************************************************************
X##ifndef lint
X#static char id_str1[] =
X#	"$Header$ PLP Copyright 1988 Patrick Powell";
X#endif lint
OUTPUT = /tmp/PLP.tar
X
all:
X	@echo 'distr: make distribution'
X	@echo 'progs: create stuff for installation'
X	@echo 'see the documentation in doc, and README files'
X
distr:
X	tar cf $(OUTPUT) `cat FILES`
install:
X	-mkdir bin 
X	-mkdir lint 
X	cp src/Makefile bin/Makefile
X	@echo "edit bin/Makefile for your site"
clean:
X	for i in src test backup filters printcap utilities bin; do \
X		echo "----- cleaning " $$i "----------" ; \
X		(cd $$i; make clean ); \
X	done
X	-rm -f lint/*
END_OF_FILE
if test 1091 -ne `wc -c <'Makefile'`; then
    echo shar: \"'Makefile'\" unpacked with wrong size!
fi
# end of 'Makefile'
fi
if test -f 'README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'README'\"
else
echo shar: Extracting \"'README'\" \(4485 characters\)
sed "s/^X//" >'README' <<'END_OF_FILE'
X/***************************************************************************
X * U. Minnesota LPD Software * Copyright 1987, 1988, Patrick Powell
X ***************************************************************************
X * MODULE: README
X * Comments about the use of the LPD software
X ***************************************************************************
X * Revision History: Created Fri Mar 11 14:31:45 CST 1988 Patrick Powell
X * $Log$
X ***************************************************************************/
This directory contains the source  of the PLP software.
This software is functionally  compatible with the 1983 Berkeley LPD software,
but with enhanced capabilites.  See  "PLP - Public Line Printer Spooler"
in the doc directory.
X
Directories:
RCS            bin            doc            filters        man
printcap       src            test
X
XFiles:
README
X
bin:	place to put binaries; cd bin; see Makefile
doc:	documentation- PLP - Public Line Printer Spooler Manual
filters:	basic set of filters
man:	man pages for lpr, etc.
printcap:	basic set of printcap entries.
src:	source files for the PLP software
test:	set of tests
RCS:	RCS files for src- may not be supplied with distribution.
imagen:	modified imagen support software- may not be supplied with distribution.
Transcript:	modified Transcript support software- may not be
X        supplied with distribution.
X
Brief Installation Guide.
X
X1.	make a ./bin directory, copy src/Makefile to ./bin.
X2.	make a ./lint directory; this will be used by lint to put lint output
X
X3.  bin/: Check out the Makefile,  and select the system you are compiling for.
The "IS_SUN" is for SUNs running UNIX 3.4 and up, the "IS_VAX" is for
BSD 4.3,  and the "IS_DATAGEN" is for Data Generals.  These flags are
used mainly to set some of the values of defines for lint and other
things;  there are some diablical differences in determining what is
an executable file.
X	It is strongly suggested that you make a test version (XPERIMENT option
in Makefile).  This version uses /tmp/printcap and /tmp/printerperms
instead of /etc/printcap and /etc/printerperms.  In addition,  it does
NOT run SUID root.  It is a safe,  clean,  and sane way to debug this
stuff.  The remainder of this document assumes you try the test version
first.
X
X4.  bin/: Pray for world peace and enlightenment.  While this probably won't
help with the next step,  it will give you a perspective on problems.  Do:
X
make clean
make test
X
You now have compiled everything.
X
X5.  Read the test procedures in ./doc/PLP,  and try them out.
X	The test directory has a set of files and printcaps that
X	can be used for test purposes.
X
X6.  backup/
Still feeling brave?  You should save the exisiting version of LPD;
the backup directory has a set of programs (shell scripts) to do this.
The lpr.save file contains a list of things to save and 
lpr.delete is a list of Berkelely things to delete.  Do:
X
cd ../backup
save.lpr
X
If you want to restore things quickly,  you can do:
cd ../backup
restore.lpr <date of save file>
X
and you are back to where you were before.
X
X7.  Working verions: bin/Makefile
X	comment out XPERIMENT flag, and do:
X	make clean
X	make all
X
X8.  Setting up printcap and printer perms
X	The /etc/printcap and other files have been moved to a new location:
X	/usr/spool/lpd/printcap.<host> - printcap for <host>
X	/usr/spool/lpd/printer_perms.<host> - printer perms for <host>
X	/usr/spool/lpd/lpd.lock.<host> - lock file for <host>
X	/usr/spool/lpd/log.<host> - log file for <host>
X	
X	If you are running an NFS environment, this allows you to share
X	a common spool directory for all of the lpd daemons.  Note that
X	the use of symbolic links from /usr/spool/lpd/printcap.<host>
X	to the old /etc/printcap file can be used temporarily to get
X	you going.
X
X9.  After you have set up the printcap and other files,  you can try
X	and installing the new version.
X	make install
X
X10.  And what is a system without documentation?  install the man pages by
hand.
X
X11. You will probably find that your filters need fumbling with.
If you have problems with the Imagen stuff,  we have a version that is
ALMOST civilized.  The standard Imagen installation procedures are TOO
clever by half;  what we did was to rip out only the imprint,
ipr, and the communications stuff.
Contact us if you need these.  
X
X12. Similarly we have a somewhat civilized version of the Adobe Transcript
software.  The existing version is (as far as we can tell) functionally
compatible with PLP.
END_OF_FILE
if test 4485 -ne `wc -c <'README'`; then
    echo shar: \"'README'\" unpacked with wrong size!
fi
# end of 'README'
fi
if test ! -d 'backup' ; then
    echo shar: Creating directory \"'backup'\"
    mkdir 'backup'
fi
if test -f 'backup/Makefile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'backup/Makefile'\"
else
echo shar: Extracting \"'backup/Makefile'\" \(262 characters\)
sed "s/^X//" >'backup/Makefile' <<'END_OF_FILE'
X#
X# Save, Delete, and Restore the UCB Printer Spooler
X#
X# Thu Mar 17 17:11:04 CST 1988 Patrick Powell
X
save:
X	save.lpr
X
restore:
X	restore.lpr `echo backup.lpr.* | sed -e 's/backup.lpr.//g' `
X
remove:
X	rm -f `cat lpr.remove`
X
clean:
X	-rm backup.lpr.* perms.lpr.*
END_OF_FILE
if test 262 -ne `wc -c <'backup/Makefile'`; then
    echo shar: \"'backup/Makefile'\" unpacked with wrong size!
fi
# end of 'backup/Makefile'
fi
if test -f 'backup/lpr.remove' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'backup/lpr.remove'\"
else
echo shar: Extracting \"'backup/lpr.remove'\" \(66 characters\)
sed "s/^X//" >'backup/lpr.remove' <<'END_OF_FILE'
X/usr/ucb/lpr
X/usr/ucb/lprm
X/usr/ucb/lpq
X/usr/lib/lpd
X/usr/etc/lpc
END_OF_FILE
if test 66 -ne `wc -c <'backup/lpr.remove'`; then
    echo shar: \"'backup/lpr.remove'\" unpacked with wrong size!
fi
# end of 'backup/lpr.remove'
fi
if test -f 'backup/lpr.save' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'backup/lpr.save'\"
else
echo shar: Extracting \"'backup/lpr.save'\" \(80 characters\)
sed "s/^X//" >'backup/lpr.save' <<'END_OF_FILE'
X/usr/ucb/lpr
X/usr/ucb/lprm
X/usr/ucb/lpq
X/usr/lib/lpd
X/usr/etc/lpc
X/etc/printcap
END_OF_FILE
if test 80 -ne `wc -c <'backup/lpr.save'`; then
    echo shar: \"'backup/lpr.save'\" unpacked with wrong size!
fi
# end of 'backup/lpr.save'
fi
if test -f 'backup/restore.lpr' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'backup/restore.lpr'\"
else
echo shar: Extracting \"'backup/restore.lpr'\" \(408 characters\)
sed "s/^X//" >'backup/restore.lpr' <<'END_OF_FILE'
X#!/bin/csh -f
echo $0
if (  ${?argv} == 0 || ${#argv} != 1 ) then
X	echo "usage: $0 date  (date is in format ddMONyyyy)"
X	exit 1
endif
set suffix=$1
rm -f `cat lpr.save`
tar xpvf backup.lpr.${suffix}
ls -lg `cat lpr.save` > /tmp/perms$$
diff perms.lpr.${suffix} /tmp/perms$$
set stat=$status
rm -f /tmp/perms$$
if ($stat != 0) then
X	echo WARNING: restored LPR is not the same as it should be
endif
exit $stat
END_OF_FILE
if test 408 -ne `wc -c <'backup/restore.lpr'`; then
    echo shar: \"'backup/restore.lpr'\" unpacked with wrong size!
fi
chmod +x 'backup/restore.lpr'
# end of 'backup/restore.lpr'
fi
if test -f 'backup/save.lpr' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'backup/save.lpr'\"
else
echo shar: Extracting \"'backup/save.lpr'\" \(156 characters\)
sed "s/^X//" >'backup/save.lpr' <<'END_OF_FILE'
X#!/bin/csh -f
set df=(`date`)
set suffix="${df[3]}${df[2]}${df[6]}"
ls -lg `cat lpr.save` > perms.lpr.${suffix}
tar cvf backup.lpr.${suffix} `cat lpr.save`
END_OF_FILE
if test 156 -ne `wc -c <'backup/save.lpr'`; then
    echo shar: \"'backup/save.lpr'\" unpacked with wrong size!
fi
chmod +x 'backup/save.lpr'
# end of 'backup/save.lpr'
fi
if test ! -d 'doc' ; then
    echo shar: Creating directory \"'doc'\"
    mkdir 'doc'
fi
if test ! -d 'doc/PLP' ; then
    echo shar: Creating directory \"'doc/PLP'\"
    mkdir 'doc/PLP'
fi
if test -f 'doc/PLP/08.t' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/PLP/08.t'\"
else
echo shar: Extracting \"'doc/PLP/08.t'\" \(1064 characters\)
sed "s/^X//" >'doc/PLP/08.t' <<'END_OF_FILE'
X.ig
X$Header: 08.t,v 1.1 88/05/21 18:39:46 papowell Locked $
X$log$
X..
X.bp
X.NH 1
Shared or NFS File Systems
X.PP
In an NFS environment,
a common or shared spool directory can be used to avoid needless
copying or duplicate fules.
The
X.I lpr
program places jobs in the shared spooling directory
and then requests the
X.I lpd
daemon on the appropriate remote machine to start unspooling actions.
The
X.B nw
X(networked file system)
flag and
X.B rm
X(remote machine)
are used to indicate this type of file system organization.
X.PP
In this environment,
only machines which have printers attached or are acting as
forwarding systems to other machines need to have an
X.I lpd
daemon running.
X.PP
One of the problems with the current implementation of the NFS
distributed file system support is the current lack of support for
X.I "file locking"
across file systems.
The current implemenation of PLP uses either the
X.I lockf
or
X.I flock
facility,
selected at compilation time.
Work is underway to use a network supported file locking facility to
better support shared file systems.
END_OF_FILE
if test 1064 -ne `wc -c <'doc/PLP/08.t'`; then
    echo shar: \"'doc/PLP/08.t'\" unpacked with wrong size!
fi
# end of 'doc/PLP/08.t'
fi
if test -f 'doc/PLP/Makefile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/PLP/Makefile'\"
else
echo shar: Extracting \"'doc/PLP/Makefile'\" \(287 characters\)
sed "s/^X//" >'doc/PLP/Makefile' <<'END_OF_FILE'
X#
X#$Header: Makefile,v 1.1 88/05/21 18:39:56 papowell Locked $
X#$Log:	Makefile,v $
X# Revision 1.1  88/05/21  18:39:56  papowell
X# Initial revision
X# 
X#	Make the manual.
X#	needs tbl, -ms macros
X#	tbl *.t | troff -ms 
X#	typeset -t -ms -Tdumb *.t >paper.n
all:
X	typeset -rC1 -t -ms -Ti *.t
END_OF_FILE
if test 287 -ne `wc -c <'doc/PLP/Makefile'`; then
    echo shar: \"'doc/PLP/Makefile'\" unpacked with wrong size!
fi
# end of 'doc/PLP/Makefile'
fi
if test -f 'doc/PLP/README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/PLP/README'\"
else
echo shar: Extracting \"'doc/PLP/README'\" \(186 characters\)
sed "s/^X//" >'doc/PLP/README' <<'END_OF_FILE'
X# Thu Dec 17 10:07:13 CST 1987 Patrick Powell
The PLP manual is an updated version of the PLP documentation.
It needs tbl to format properly.
X
There are many updates, read it carefully.
END_OF_FILE
if test 186 -ne `wc -c <'doc/PLP/README'`; then
    echo shar: \"'doc/PLP/README'\" unpacked with wrong size!
fi
# end of 'doc/PLP/README'
fi
if test -f 'doc/PLP/dict' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/PLP/dict'\"
else
echo shar: Extracting \"'doc/PLP/dict'\" \(319 characters\)
sed "s/^X//" >'doc/PLP/dict' <<'END_OF_FILE'
X(null)
X(null)
Aprinter
Bprinter
CS
CW
Dept
Dprinter
XEprinter
XFC
Imagen
LPC
LPD
Ops
SUID
admin
daemon
daemons
dev
formatter
gethostent
host.equiv
hostname
inet
lib
lpc
lpd
perms
printcap
printer,tcp
printerperms
prioritize
prioritized
queueing
rc
rc.local
rcmd
rshd
server.adm
spoolqueues
userid
userids
wildcard
X(null)
END_OF_FILE
if test 319 -ne `wc -c <'doc/PLP/dict'`; then
    echo shar: \"'doc/PLP/dict'\" unpacked with wrong size!
fi
# end of 'doc/PLP/dict'
fi
if test -f 'doc/PLP/macros' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/PLP/macros'\"
else
echo shar: Extracting \"'doc/PLP/macros'\" \(129 characters\)
sed "s/^X//" >'doc/PLP/macros' <<'END_OF_FILE'
X.	\" CW - L - Helvetica
X.de L
X.nr pq \\n(.f
X.if t .ft CW
X.if n .ft 1
X.if !\e\\$1\e\e \&\\s-\\n(Ls\\$1\|\\s+\\n(Ls\f\\n(pq\\$2
X..
END_OF_FILE
if test 129 -ne `wc -c <'doc/PLP/macros'`; then
    echo shar: \"'doc/PLP/macros'\" unpacked with wrong size!
fi
# end of 'doc/PLP/macros'
fi
if test ! -d 'filters' ; then
    echo shar: Creating directory \"'filters'\"
    mkdir 'filters'
fi
if test -f 'filters/Makefile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'filters/Makefile'\"
else
echo shar: Extracting \"'filters/Makefile'\" \(848 characters\)
sed "s/^X//" >'filters/Makefile' <<'END_OF_FILE'
X# Public Domain LPD Copyright 1988 Patrick Powell
X# Filters:
X# Filters consist of a front end program (main.c), which sets up
X# arguments and then calls filter(stopstr).  If filter hits the
X# "stopstr" in its input,  is should suspend itself.  On resumption,
X# it should take whatever actions are needed (ioctl call, etc.)
X# to reset the printer to a known state.
X#
X
CFLAGS=	-g
LIB=	/usr/local/new/lib
X
PRINTER=lpf
X
VARIAN=	vpf vdmp
X
X
ALL= ${PRINTER} ${VARIAN}
X
all:	${ALL}
X
lpf:	main.o lpf.c
X	${CC} -o lpf -DPRINTRONIX ${CFLAGS} main.o lpf.c
X
X
vpf:	main.o lpf.c
X	${CC} -o vpf -DVERSATEC ${CFLAGS} main.o lpf.c
X
vdmp:	main.o vdmp.c
X	${CC} -o vdmp ${CFLAGS} main.o vdmp.c
X
install: ${ALL}
X	-for i in ${ALL}; \
X	do \
X		install -c $$i ${DESTDIR}${LIB}; \
X	done;
X
clean:
X	rm -f ${ALL} *.o
X
print:
X	@pr Makefile
X	@${CXREF} *.c | pr -h XREF
X	@pr *.h *.c
END_OF_FILE
if test 848 -ne `wc -c <'filters/Makefile'`; then
    echo shar: \"'filters/Makefile'\" unpacked with wrong size!
fi
# end of 'filters/Makefile'
fi
if test ! -d 'man' ; then
    echo shar: Creating directory \"'man'\"
    mkdir 'man'
fi
if test -f 'man/Makefile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'man/Makefile'\"
else
echo shar: Extracting \"'man/Makefile'\" \(219 characters\)
sed "s/^X//" >'man/Makefile' <<'END_OF_FILE'
MAN=	/usr/man/
all:
clean:
install:
X	for i in *.1; \
X	do	\
X		install -c $i $(MAN)/man1;	\
X	done;
X	for i in *.5; \
X	do	\
X		install -c $i $(MAN)/man5;	\
X	done;
X	for i in *.8; \
X	do	\
X		install -c $i $(MAN)/man8;	\
X	done;
END_OF_FILE
if test 219 -ne `wc -c <'man/Makefile'`; then
    echo shar: \"'man/Makefile'\" unpacked with wrong size!
fi
# end of 'man/Makefile'
fi
if test -f 'man/README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'man/README'\"
else
echo shar: Extracting \"'man/README'\" \(110 characters\)
sed "s/^X//" >'man/README' <<'END_OF_FILE'
Mon Nov  9 08:51:07 CST 1987 Patrick Powell
Update printer.1 and printers.1 to reflect your local operations.
END_OF_FILE
if test 110 -ne `wc -c <'man/README'`; then
    echo shar: \"'man/README'\" unpacked with wrong size!
fi
# end of 'man/README'
fi
if test ! -d 'printcap' ; then
    echo shar: Creating directory \"'printcap'\"
    mkdir 'printcap'
fi
if test -f 'printcap/Makefile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/Makefile'\"
else
echo shar: Extracting \"'printcap/Makefile'\" \(184 characters\)
sed "s/^X//" >'printcap/Makefile' <<'END_OF_FILE'
X#Wed Nov 25 12:24:47 CST 1987 Patrick Powell
X# This is an ugly file that will attempt to make your specified device
X
SHELL=/bin/sh
X
all:
X	genpc hosts/*
clean:
X	-rm printcap/*.printcap
END_OF_FILE
if test 184 -ne `wc -c <'printcap/Makefile'`; then
    echo shar: \"'printcap/Makefile'\" unpacked with wrong size!
fi
# end of 'printcap/Makefile'
fi
if test -f 'printcap/README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/README'\"
else
echo shar: Extracting \"'printcap/README'\" \(1061 characters\)
sed "s/^X//" >'printcap/README' <<'END_OF_FILE'
Created Mon Nov 23 14:08:45 CST 1987 Patrick Powell and Scott Fischer
X
This directory contains two major directories involved in creating a
printcap file for the Line Printer Spooler.
X
The "printers" directory contains printcap entries for each printer, to
be used "locally" or "remotely"; if the printer is attached to the
host, the "local" entry should be in the /etc/printcap; if it is not on
the machine, then the "remote" entry should be present.
X
The "hosts" directory contains two entries for each host:
X1.  a host.printcap file, generated by the genpc shell script
X2.  a host printer description file which contains a list of
X	printers available to the host
X
XFor example, the file ./hosts/cs contains a list of printers
local to the VAX and remote:
X	imagen_lind27.local diablo_lind136.local epson_lind27.local
X	dgt_lind27.remote laserjet_lind25.remote
X	....
Remote printers have the entry <printername>.remote, local use
X<printername>.local
X
The genpc program will create the printcap file for the
specified host and put it in host/<host>.printcap file
END_OF_FILE
if test 1061 -ne `wc -c <'printcap/README'`; then
    echo shar: \"'printcap/README'\" unpacked with wrong size!
fi
# end of 'printcap/README'
fi
if test -f 'printcap/genpc' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/genpc'\"
else
echo shar: Extracting \"'printcap/genpc'\" \(743 characters\)
sed "s/^X//" >'printcap/genpc' <<'END_OF_FILE'
X#!/bin/csh -f
set HOSTDIR = hosts/
set PRINTCAP = printcap/
set PRINTERDIR = printers/
X
foreach host ($*)
X	set host = $host:t
X	set host = $host:r
X	if ( ! -e ${HOSTDIR}${host} || ! -f ${HOSTDIR}${host} ) then
X		echo Host ${host} does not exist 
X		exit 1
X	endif
X	echo Updating printcap for ${host}
X	echo  "# printcap file created " `date` > ${PRINTCAP}${host}.printcap
X	if( $status ) then
X		echo "error creating ${HOSTDIR}${host}.printcap"
X		exit 1
X	endif
X	echo host $host has the following printers:
X	cat ${HOSTDIR}${host}
X	foreach printer (`cat ${HOSTDIR}${host}`)
X		if ( -f ${PRINTERDIR}${printer}) then
X			cat ${PRINTERDIR}${printer} >> ${PRINTCAP}${host}.printcap
X		else
X			echo No printcap for ${printer}
X			exit 1
X		endif
X	end
end
exit 0
END_OF_FILE
if test 743 -ne `wc -c <'printcap/genpc'`; then
    echo shar: \"'printcap/genpc'\" unpacked with wrong size!
fi
chmod +x 'printcap/genpc'
# end of 'printcap/genpc'
fi
if test ! -d 'printcap/hosts' ; then
    echo shar: Creating directory \"'printcap/hosts'\"
    mkdir 'printcap/hosts'
fi
if test -f 'printcap/hosts/dg' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/hosts/dg'\"
else
echo shar: Extracting \"'printcap/hosts/dg'\" \(220 characters\)
sed "s/^X//" >'printcap/hosts/dg' <<'END_OF_FILE'
imagen_lind27.remote
diablo_lind136.remote
epson_lind27.remote
dgt_lind27.remote
dg1_lind1.remote
dg2_lind25.remote
dg3_lind25.remote
hp_lind54.remote
laserjetplus_lind25.remote
hp2563_lind25.remote
apple_lind26a.remote
END_OF_FILE
if test 220 -ne `wc -c <'printcap/hosts/dg'`; then
    echo shar: \"'printcap/hosts/dg'\" unpacked with wrong size!
fi
# end of 'printcap/hosts/dg'
fi
if test -f 'printcap/hosts/julius' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/hosts/julius'\"
else
echo shar: Extracting \"'printcap/hosts/julius'\" \(200 characters\)
sed "s/^X//" >'printcap/hosts/julius' <<'END_OF_FILE'
imagen_lind27.remote
diablo_lind136.remote
dgt_lind27.remote
dg1_lind1.remote
dg2_lind25.remote
dg3_lind25.remote
hp_lind54.remote
laserjetplus_lind25.remote
hp2563_lind25.remote
apple_lind26a.remote
END_OF_FILE
if test 200 -ne `wc -c <'printcap/hosts/julius'`; then
    echo shar: \"'printcap/hosts/julius'\" unpacked with wrong size!
fi
# end of 'printcap/hosts/julius'
fi
if test -f 'printcap/hosts/umn-cs' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/hosts/umn-cs'\"
else
echo shar: Extracting \"'printcap/hosts/umn-cs'\" \(184 characters\)
sed "s/^X//" >'printcap/hosts/umn-cs' <<'END_OF_FILE'
imagen_lind27.local
dgt_lind27.forward
dg1_lind1.forward
dg2_lind25.forward
dg3_lind25.forward
hp_lind54.forward
laserjetplus_lind25.forward
hp2563_lind25.forward
diablo_lind136.local
END_OF_FILE
if test 184 -ne `wc -c <'printcap/hosts/umn-cs'`; then
    echo shar: \"'printcap/hosts/umn-cs'\" unpacked with wrong size!
fi
# end of 'printcap/hosts/umn-cs'
fi
if test ! -d 'printcap/printcap' ; then
    echo shar: Creating directory \"'printcap/printcap'\"
    mkdir 'printcap/printcap'
fi
if test ! -d 'printcap/printers' ; then
    echo shar: Creating directory \"'printcap/printers'\"
    mkdir 'printcap/printers'
fi
if test -f 'printcap/printers/apple_lind26a.local' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/apple_lind26a.local'\"
else
echo shar: Extracting \"'printcap/printers/apple_lind26a.local'\" \(530 characters\)
sed "s/^X//" >'printcap/printers/apple_lind26a.local' <<'END_OF_FILE'
X# Apple laserwriter
X# attached to whatever we have
X# Thu Dec 10 21:51:54 CST 1987
apple_lind26a|ai-laser|ai|ps|postscript|PostScript:\
X	:lp=/dev/ai:sd=/usr/spool/lp-ai:\
X	:lf=/usr/adm/ai-log:af=/usr/adm/ai.acct:\
X	:br#9600:rw:fc#0000374:fs#0000003:xc#0:xs#0040040:mx#0:sf:sb:\
X	:if=/usr/local/lib/ps/psif:\
X	:of=/usr/local/lib/ps/psof:gf=/usr/local/lib/ps/psgf:\
X	:nf=/usr/local/lib/ps/psnf:tf=/usr/local/lib/ps/pstf:\
X	:rf=/usr/local/lib/ps/psrf:vf=/usr/local/lib/ps/psvf:\
X	:cf=/usr/local/lib/ps/pscf:df=/usr/local/lib/ps/psdf:
END_OF_FILE
if test 530 -ne `wc -c <'printcap/printers/apple_lind26a.local'`; then
    echo shar: \"'printcap/printers/apple_lind26a.local'\" unpacked with wrong size!
fi
# end of 'printcap/printers/apple_lind26a.local'
fi
if test -f 'printcap/printers/apple_lind26a.remote' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/apple_lind26a.remote'\"
else
echo shar: Extracting \"'printcap/printers/apple_lind26a.remote'\" \(189 characters\)
sed "s/^X//" >'printcap/printers/apple_lind26a.remote' <<'END_OF_FILE'
X# Apple laserwriter
X# attached to whatever we have
X# Thu Dec 10 21:51:54 CST 1987
apple_lind26a|ai-laser|ai|ps|postscript|PostScript:\
X	:lp=:rm=??:rp=apple_lind26a:\
X	:sd=/usr/spool/lp-ai:
END_OF_FILE
if test 189 -ne `wc -c <'printcap/printers/apple_lind26a.remote'`; then
    echo shar: \"'printcap/printers/apple_lind26a.remote'\" unpacked with wrong size!
fi
# end of 'printcap/printers/apple_lind26a.remote'
fi
if test -f 'printcap/printers/dg1_lind1.forward' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/dg1_lind1.forward'\"
else
echo shar: Extracting \"'printcap/printers/dg1_lind1.forward'\" \(295 characters\)
sed "s/^X//" >'printcap/printers/dg1_lind1.forward' <<'END_OF_FILE'
X# Tue Dec  1 19:38:11 CST 1987 Patrick Powell
X# The dglpf filter uses the name printer, must be of form "dgxxx"
X# where xxx is destination line printer on dg.
dglpr1|dg1_lind1|dg1|dg-lpr1:\
X	:lp=/dev/null:sd=/usr/spool/lp-dglpr1:\
X	:af=acct:if=/usr/local/new/lib/remotesite -prefix=dg -site=dg:
END_OF_FILE
if test 295 -ne `wc -c <'printcap/printers/dg1_lind1.forward'`; then
    echo shar: \"'printcap/printers/dg1_lind1.forward'\" unpacked with wrong size!
fi
# end of 'printcap/printers/dg1_lind1.forward'
fi
if test -f 'printcap/printers/dg1_lind1.remote' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/dg1_lind1.remote'\"
else
echo shar: Extracting \"'printcap/printers/dg1_lind1.remote'\" \(184 characters\)
sed "s/^X//" >'printcap/printers/dg1_lind1.remote' <<'END_OF_FILE'
X# Tue Dec  1 19:38:11 CST 1987 Patrick Powell
X# send this to the vax, which forwards to the DG
X# 
dglpr1|dg1_lind1|dg1|dg-lpr1:\
X	:lp=:rm=umn-cs:rp=dglpr1:\
X	:sd=/usr/spool/lp-dglpr1:
END_OF_FILE
if test 184 -ne `wc -c <'printcap/printers/dg1_lind1.remote'`; then
    echo shar: \"'printcap/printers/dg1_lind1.remote'\" unpacked with wrong size!
fi
# end of 'printcap/printers/dg1_lind1.remote'
fi
if test -f 'printcap/printers/dg2_lind25.forward' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/dg2_lind25.forward'\"
else
echo shar: Extracting \"'printcap/printers/dg2_lind25.forward'\" \(296 characters\)
sed "s/^X//" >'printcap/printers/dg2_lind25.forward' <<'END_OF_FILE'
X# Tue Dec  1 19:38:11 CST 1987 Patrick Powell
X# The dglpf filter uses the name printer, must be of form "dgxxx"
X# where xxx is destination line printer on dg.
dglpr2|dg2_lind25|dg2|dg-lpr2:\
X	:lp=/dev/null:sd=/usr/spool/lp-dglpr2:\
X	:af=acct:if=/usr/local/new/lib/remotesite -prefix=dg -site=dg:
END_OF_FILE
if test 296 -ne `wc -c <'printcap/printers/dg2_lind25.forward'`; then
    echo shar: \"'printcap/printers/dg2_lind25.forward'\" unpacked with wrong size!
fi
# end of 'printcap/printers/dg2_lind25.forward'
fi
if test -f 'printcap/printers/dg2_lind25.remote' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/dg2_lind25.remote'\"
else
echo shar: Extracting \"'printcap/printers/dg2_lind25.remote'\" \(246 characters\)
sed "s/^X//" >'printcap/printers/dg2_lind25.remote' <<'END_OF_FILE'
X# Tue Dec  1 19:38:11 CST 1987 Patrick Powell
X# The dglpf filter uses the name printer, must be of form "dgxxx"
X# where xxx is destination line printer on dg.
dglpr2|dg2_lind25|dg2|dg-lpr2:\
X	:lp=:rm=umn-cs:rp=dglpr2:\
X	:sd=/usr/spool/lp-dglpr2:
END_OF_FILE
if test 246 -ne `wc -c <'printcap/printers/dg2_lind25.remote'`; then
    echo shar: \"'printcap/printers/dg2_lind25.remote'\" unpacked with wrong size!
fi
# end of 'printcap/printers/dg2_lind25.remote'
fi
if test -f 'printcap/printers/dg3_lind25.forward' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/dg3_lind25.forward'\"
else
echo shar: Extracting \"'printcap/printers/dg3_lind25.forward'\" \(296 characters\)
sed "s/^X//" >'printcap/printers/dg3_lind25.forward' <<'END_OF_FILE'
X# Tue Dec  1 19:38:11 CST 1987 Patrick Powell
X# The dglpf filter uses the name printer, must be of form "dgxxx"
X# where xxx is destination line printer on dg.
dglpr3|dg3_lind25|dg3|dg-lpr3:\
X	:lp=/dev/null:sd=/usr/spool/lp-dglpr3:\
X	:af=acct:if=/usr/local/new/lib/remotesite -prefix=dg -site=dg:
END_OF_FILE
if test 296 -ne `wc -c <'printcap/printers/dg3_lind25.forward'`; then
    echo shar: \"'printcap/printers/dg3_lind25.forward'\" unpacked with wrong size!
fi
# end of 'printcap/printers/dg3_lind25.forward'
fi
if test -f 'printcap/printers/dg3_lind25.remote' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/dg3_lind25.remote'\"
else
echo shar: Extracting \"'printcap/printers/dg3_lind25.remote'\" \(246 characters\)
sed "s/^X//" >'printcap/printers/dg3_lind25.remote' <<'END_OF_FILE'
X# Tue Dec  1 19:38:11 CST 1987 Patrick Powell
X# The dglpf filter uses the name printer, must be of form "dgxxx"
X# where xxx is destination line printer on dg.
dglpr3|dg3_lind25|dg3|dg-lpr3:\
X	:lp=:rm=umn-cs:rp=dglpr3:\
X	:sd=/usr/spool/lp-dglpr3:
END_OF_FILE
if test 246 -ne `wc -c <'printcap/printers/dg3_lind25.remote'`; then
    echo shar: \"'printcap/printers/dg3_lind25.remote'\" unpacked with wrong size!
fi
# end of 'printcap/printers/dg3_lind25.remote'
fi
if test -f 'printcap/printers/dgt_lind27.forward' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/dgt_lind27.forward'\"
else
echo shar: Extracting \"'printcap/printers/dgt_lind27.forward'\" \(317 characters\)
sed "s/^X//" >'printcap/printers/dgt_lind27.forward' <<'END_OF_FILE'
X# Tue Dec  1 19:38:11 CST 1987 Patrick Powell
X# The dglpf filter uses the name printer, must be of form "dgxxx"
X# where xxx is destination line printer on dg.
dglpt|dgt_lind27|dgt|dg-lprt|dglprt|dg-lpt|lprt|lpt:\
X	:lp=/dev/null:sd=/usr/spool/lp-dglpt:\
X	:af=acct:if=/usr/local/new/lib/remotesite -prefix=dg -site=dg:
END_OF_FILE
if test 317 -ne `wc -c <'printcap/printers/dgt_lind27.forward'`; then
    echo shar: \"'printcap/printers/dgt_lind27.forward'\" unpacked with wrong size!
fi
# end of 'printcap/printers/dgt_lind27.forward'
fi
if test -f 'printcap/printers/dgt_lind27.remote' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/dgt_lind27.remote'\"
else
echo shar: Extracting \"'printcap/printers/dgt_lind27.remote'\" \(266 characters\)
sed "s/^X//" >'printcap/printers/dgt_lind27.remote' <<'END_OF_FILE'
X# Tue Dec  1 19:38:11 CST 1987 Patrick Powell
X# The dglpf filter uses the name printer, must be of form "dgxxx"
X# where xxx is destination line printer on dg.
dglpt|dgt_lind27|dgt|dg-lprt|dglprt|dg-lpt|lprt|lpt:\
X	:lp=:rm=umn-cs:rp=dglpt:\
X	:sd=/usr/spool/lp-dglpt:
END_OF_FILE
if test 266 -ne `wc -c <'printcap/printers/dgt_lind27.remote'`; then
    echo shar: \"'printcap/printers/dgt_lind27.remote'\" unpacked with wrong size!
fi
# end of 'printcap/printers/dgt_lind27.remote'
fi
if test -f 'printcap/printers/diablo_lind136.local' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/diablo_lind136.local'\"
else
echo shar: Extracting \"'printcap/printers/diablo_lind136.local'\" \(217 characters\)
sed "s/^X//" >'printcap/printers/diablo_lind136.local' <<'END_OF_FILE'
X# Diablo 630 printer
X# Wed Dec  9 11:01:09 CST 1987
X# Paper Feed Option
diablo_lind136|lp2|lind136|diablo:\
X	:sc:sf:\
X	:lp=/dev/lp2:br#1200:sd=/usr/spool/lp-lpd2:\
X	:if=/usr/local/lib/dpf:fc#00010:fs#00022:xs#040000:
END_OF_FILE
if test 217 -ne `wc -c <'printcap/printers/diablo_lind136.local'`; then
    echo shar: \"'printcap/printers/diablo_lind136.local'\" unpacked with wrong size!
fi
# end of 'printcap/printers/diablo_lind136.local'
fi
if test -f 'printcap/printers/diablo_lind136.remote' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/diablo_lind136.remote'\"
else
echo shar: Extracting \"'printcap/printers/diablo_lind136.remote'\" \(168 characters\)
sed "s/^X//" >'printcap/printers/diablo_lind136.remote' <<'END_OF_FILE'
X# Diablo 630
X# Wed Dec  9 11:00:22 CST 1987 Patrick Powell
X# Remote
diablo_lind136|lp2|lind136|diablo:\
X        :lp=:rm=umn-cs:rp=lp2:\
X        :sd=/usr/spool/lp-lpd2:
END_OF_FILE
if test 168 -ne `wc -c <'printcap/printers/diablo_lind136.remote'`; then
    echo shar: \"'printcap/printers/diablo_lind136.remote'\" unpacked with wrong size!
fi
# end of 'printcap/printers/diablo_lind136.remote'
fi
if test -f 'printcap/printers/epson_lind27.remote' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/epson_lind27.remote'\"
else
echo shar: Extracting \"'printcap/printers/epson_lind27.remote'\" \(128 characters\)
sed "s/^X//" >'printcap/printers/epson_lind27.remote' <<'END_OF_FILE'
X#
X# Entry for the EPSON printer
X# - attached to CRUDO
X# - serial line, 9600 BPS
X# - etc...
epson_lind27|epson:\
X	:lp=/dev/null:
END_OF_FILE
if test 128 -ne `wc -c <'printcap/printers/epson_lind27.remote'`; then
    echo shar: \"'printcap/printers/epson_lind27.remote'\" unpacked with wrong size!
fi
# end of 'printcap/printers/epson_lind27.remote'
fi
if test -f 'printcap/printers/hp2563_lind25.forward' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/hp2563_lind25.forward'\"
else
echo shar: Extracting \"'printcap/printers/hp2563_lind25.forward'\" \(302 characters\)
sed "s/^X//" >'printcap/printers/hp2563_lind25.forward' <<'END_OF_FILE'
X# Tue Dec  1 19:38:11 CST 1987 Patrick Powell
X# The hp filter uses the name printer, must be of form "dgxxx"
X# where xxx is destination line printer on dg.
hplp2563|hp2563_lind25|hp3|hpline:\
X	:sc:sf:\
X	:lp=/dev/null:sd=/usr/spool/lp-hplp3:\
X	:if=/usr/local/new/lib/remotesite -prefix=hp -site=donald:
END_OF_FILE
if test 302 -ne `wc -c <'printcap/printers/hp2563_lind25.forward'`; then
    echo shar: \"'printcap/printers/hp2563_lind25.forward'\" unpacked with wrong size!
fi
# end of 'printcap/printers/hp2563_lind25.forward'
fi
if test -f 'printcap/printers/hp2563_lind25.remote' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/hp2563_lind25.remote'\"
else
echo shar: Extracting \"'printcap/printers/hp2563_lind25.remote'\" \(251 characters\)
sed "s/^X//" >'printcap/printers/hp2563_lind25.remote' <<'END_OF_FILE'
X# Tue Dec  1 19:38:11 CST 1987 Patrick Powell
X# The hp filter uses the name printer, must be of form "dgxxx"
X# where xxx is destination line printer on dg.
hplp2563|hp2563_lind25|hp3|hpline:\
X	:lp=:rm=umn-cs:rp=hplp2563:\
X	:sd=/usr/spool/lp-hplp2563:
END_OF_FILE
if test 251 -ne `wc -c <'printcap/printers/hp2563_lind25.remote'`; then
    echo shar: \"'printcap/printers/hp2563_lind25.remote'\" unpacked with wrong size!
fi
# end of 'printcap/printers/hp2563_lind25.remote'
fi
if test -f 'printcap/printers/hp_lind54.forward' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/hp_lind54.forward'\"
else
echo shar: Extracting \"'printcap/printers/hp_lind54.forward'\" \(137 characters\)
sed "s/^X//" >'printcap/printers/hp_lind54.forward' <<'END_OF_FILE'
X#
X# Send this using uux
hp_lind54|hp1|grad|john|johnpr:\
X	:sc:sf:\
X	:lp=/dev/null:sd=/usr/spool/lp-johnpr:\
X	:if=/usr/local/lib/johnlpf:
END_OF_FILE
if test 137 -ne `wc -c <'printcap/printers/hp_lind54.forward'`; then
    echo shar: \"'printcap/printers/hp_lind54.forward'\" unpacked with wrong size!
fi
# end of 'printcap/printers/hp_lind54.forward'
fi
if test -f 'printcap/printers/hp_lind54.remote' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/hp_lind54.remote'\"
else
echo shar: Extracting \"'printcap/printers/hp_lind54.remote'\" \(118 characters\)
sed "s/^X//" >'printcap/printers/hp_lind54.remote' <<'END_OF_FILE'
X#
X# Send this using uux
hp_lind54|hp1|grad|john|johnpr:\
X	:lp=:rm=umn-cs:rp=hp_lind54:\
X	:sd=/usr/spool/lp-hp_lind54:
END_OF_FILE
if test 118 -ne `wc -c <'printcap/printers/hp_lind54.remote'`; then
    echo shar: \"'printcap/printers/hp_lind54.remote'\" unpacked with wrong size!
fi
# end of 'printcap/printers/hp_lind54.remote'
fi
if test -f 'printcap/printers/imagen_lind27.local' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/imagen_lind27.local'\"
else
echo shar: Extracting \"'printcap/printers/imagen_lind27.local'\" \(1660 characters\)
sed "s/^X//" >'printcap/printers/imagen_lind27.local' <<'END_OF_FILE'
X# printcap file created  Sat Dec 5 07:22:16 CST 1987
X# printcap file created  Wed Dec 2 09:02:43 CST 1987
X#
X# imagen_* : good for all imagens
X#	Mon Nov 30 14:34:28 CST 1987 Patrick Powell - Created
X#	Wed Dec  2 08:58:42 CST 1987 Patrick Powell - fx and -d flags for filters
X#	Sat Dec  5 20:07:12 CST 1987 Patrick Powell - sc and sf, dimp.old
X#		Note: uses the UMN imfilter 
X#	NOTE: the imagen software uses the name of the accounting file "af"
X#	to determine what device it is to use.  You MUST have an AF entry
X# -- fx sets the allowable formats: just about all right now
X# -- sc suppresses copies; sf no form feeds;
X# -- lp, af, sd are the device, accounting and spool; defaults for lock and log
X# -- br is bitrate, fc/fs are clear/set bits for ioctl.  Magic values
X# -- af-zf are filters; -v (verbose) option logs a message in log file
X# -- note the -Ddimp.old uses old dimp, in /usr/local/new/bin/dimp.old
X# -- note the -Ddimp.new uses new dimp;  this allows both to be available.
X#    The typeset command will temporarily use the -Fx format.
imagen_lind27|cs-imagen|csimagen|csi|imagen:\
X	:fx=cdginfrvt:\
X	:sc:sf:\
X	:lp=/dev/lp4:\
X	:af=cs-imagen:\
X	:sd=/usr/spool/lp-cs-imagen:\
X	:br#19200:\
X	:fc#0177777:\
X	:fs#040:\
X	:cf=/usr/local/new/lib/icif -v:\
X	:df=/usr/local/new/lib/idvi -v:\
X	:gf=/usr/local/new/lib/igraph -v:\
X	:if=/usr/local/new/lib/ipf -v:\
X	:nf=/usr/local/new/lib/idimp -v -Ddimp.old:\
X	:rf=/usr/local/new/lib/ifort -v:\
X	:tf=/usr/local/new/lib/icat -v:\
X	:vf=/usr/local/new/lib/imp -v:\
X	:xf=/usr/local/new/lib/idimp -v -Ddimp.new:\
X	:mx#10000:\
X	:pl#60:\
X	:pw#80:\
X	:px#2016:\
X	:py#2624:\
X	:rw:\
X	:sb=U of M CSci Department:\
X	:S:\
X	:sh:
END_OF_FILE
if test 1660 -ne `wc -c <'printcap/printers/imagen_lind27.local'`; then
    echo shar: \"'printcap/printers/imagen_lind27.local'\" unpacked with wrong size!
fi
# end of 'printcap/printers/imagen_lind27.local'
fi
if test -f 'printcap/printers/imagen_lind27.remote' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/imagen_lind27.remote'\"
else
echo shar: Extracting \"'printcap/printers/imagen_lind27.remote'\" \(249 characters\)
sed "s/^X//" >'printcap/printers/imagen_lind27.remote' <<'END_OF_FILE'
X# Remote connection to imagen_lind27
X# currently on umn-cs
X# Tue Dec  1 08:10:28 CST 1987 Patrick Powell - Created
X#
imagen_lind27|cs-imagen|csimagen|csi|imagen:\
X	:fx=cdginfrvt:\
X	:sd=/usr/spool/lp-imagen_lind27:\
X	:lp=:rm=umn-cs:rp=imagen_lind27:
END_OF_FILE
if test 249 -ne `wc -c <'printcap/printers/imagen_lind27.remote'`; then
    echo shar: \"'printcap/printers/imagen_lind27.remote'\" unpacked with wrong size!
fi
# end of 'printcap/printers/imagen_lind27.remote'
fi
if test -f 'printcap/printers/laserjetplus_lind25.forward' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/laserjetplus_lind25.forward'\"
else
echo shar: Extracting \"'printcap/printers/laserjetplus_lind25.forward'\" \(313 characters\)
sed "s/^X//" >'printcap/printers/laserjetplus_lind25.forward' <<'END_OF_FILE'
X# Tue Dec  1 19:38:11 CST 1987 Patrick Powell
X# The hp filter uses the name printer, must be of form "dgxxx"
X# where xxx is destination line printer on dg.
hplp|laserjetplus_lind25|laserjet|hp2|hplaser:\
X	:sc:sf:\
X	:lp=/dev/null:sd=/usr/spool/lp-hplp:\
X	:if=/usr/local/new/lib/remotesite -prefix=hp -site=donald:
END_OF_FILE
if test 313 -ne `wc -c <'printcap/printers/laserjetplus_lind25.forward'`; then
    echo shar: \"'printcap/printers/laserjetplus_lind25.forward'\" unpacked with wrong size!
fi
# end of 'printcap/printers/laserjetplus_lind25.forward'
fi
if test -f 'printcap/printers/laserjetplus_lind25.remote' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'printcap/printers/laserjetplus_lind25.remote'\"
else
echo shar: Extracting \"'printcap/printers/laserjetplus_lind25.remote'\" \(255 characters\)
sed "s/^X//" >'printcap/printers/laserjetplus_lind25.remote' <<'END_OF_FILE'
X# Tue Dec  1 19:38:11 CST 1987 Patrick Powell
X# The hp filter uses the name printer, must be of form "dgxxx"
X# where xxx is destination line printer on dg.
hplp|laserjetplus_lind25|laserjet|hp2|hplaser:\
X	:lp=:rm=umn-cs:rp=hplp:\
X	:sd=/usr/spool/lp-hplp:
END_OF_FILE
if test 255 -ne `wc -c <'printcap/printers/laserjetplus_lind25.remote'`; then
    echo shar: \"'printcap/printers/laserjetplus_lind25.remote'\" unpacked with wrong size!
fi
# end of 'printcap/printers/laserjetplus_lind25.remote'
fi
if test ! -d 'src' ; then
    echo shar: Creating directory \"'src'\"
    mkdir 'src'
fi
if test -f 'src/IDENT' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/IDENT'\"
else
echo shar: Extracting \"'src/IDENT'\" \(900 characters\)
sed "s/^X//" >'src/IDENT' <<'END_OF_FILE'
X/***************************************************************************
X * U. Minnesota LPD Software * Copyright 1987, 1988, Patrick Powell
X ***************************************************************************
X * MODULE: 
X ***************************************************************************
X * Revision History: Created
X
X * $Log:	IDENT,v $
X# Revision 3.1  88/06/18  09:33:47  papowell
X# Version 3.0- Distributed Sat Jun 18 1988
X# 
X# Revision 3.0  88/06/18  09:29:58  papowell
X# Version 3.0- Distributed Sat Jun 18 1988
X# 
X# Revision 2.1  88/05/09  10:07:18  papowell
X# PLP: Released Version
X# 
X# Revision 1.1  88/03/25  14:57:20  papowell
X# Initial revision
X# 
X ***************************************************************************/
X#ifndef lint
static char id_str1[] =
X	"$Header: IDENT,v 3.1 88/06/18 09:33:47 papowell Exp $ PLP Copyright 1988 Patrick Powell";
X#endif lint
END_OF_FILE
if test 900 -ne `wc -c <'src/IDENT'`; then
    echo shar: \"'src/IDENT'\" unpacked with wrong size!
fi
# end of 'src/IDENT'
fi
if test -f 'src/README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/README'\"
else
echo shar: Extracting \"'src/README'\" \(1678 characters\)
sed "s/^X//" >'src/README' <<'END_OF_FILE'
X/***************************************************************************
X * U. Minnesota LPD Software * Copyright 1987, 1988, Patrick Powell
X ***************************************************************************
X * MODULE: src/README
X * Comments about the use of the LPD software
X ***************************************************************************
X * Revision History
X ***************************************************************************/
This directory contains the source  of the LPD software.
This software is functionally  compatible with the 1983 Berkeley LPD software,
but with enhanced capabilites.  See  "U-MN LPD Installation Guide"
in the ../doc directory.
X
To install the software,  you should do the following:
X1. make a ../bin directory
X2. copy the src/Makefile to ../bin and edit it to reflect your system
X3. run the Makefile in ../bin
X
You will probably want to construct a test version first;  this version uses
X/tmp/printcap instead of /etc/printcap,  and does NOT repeat NOT run as
SUID root.  You generate this version by setting the XPERIMENT flag in
the Makefile.  The ../test directory has some test versions of /etc/printcap
that it will install;  see the Makefile and README in ../test for details.
X
XExcept for a few specified pieces of code that do banner printing and
some network connection code,  all of the PLP software was written from
a VERY high level description of the Berkeley LPD software.  Due to the
authors familiarity with the Berkeley LPD software,  some names and algorithms
are the same (why invent a new square wheel?), but in general there is
little commonality between implementations of the two programs.
END_OF_FILE
if test 1678 -ne `wc -c <'src/README'`; then
    echo shar: \"'src/README'\" unpacked with wrong size!
fi
# end of 'src/README'
fi
if test -f 'src/patchlevel.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/patchlevel.h'\"
else
echo shar: Extracting \"'src/patchlevel.h'\" \(4 characters\)
sed "s/^X//" >'src/patchlevel.h' <<'END_OF_FILE'
X3.2
END_OF_FILE
if test 4 -ne `wc -c <'src/patchlevel.h'`; then
    echo shar: \"'src/patchlevel.h'\" unpacked with wrong size!
fi
# end of 'src/patchlevel.h'
fi
if test -f 'src/setstatus.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/setstatus.c'\"
else
echo shar: Extracting \"'src/setstatus.c'\" \(1673 characters\)
sed "s/^X//" >'src/setstatus.c' <<'END_OF_FILE'
X/***************************************************************************
X * U. Minnesota LPD Software * Copyright 1987, 1988, Patrick Powell
X ***************************************************************************
X * MODULE: setstatus.c
X * Set the lpd status into a status file
X ***************************************************************************
X * Revision History: Created Sat Jan  9 14:49:44 CST 1988
X * $Log:	setstatus.c,v $
X * Revision 3.1  88/06/18  09:35:43  papowell
X * Version 3.0- Distributed Sat Jun 18 1988
X * 
X * Revision 2.1  88/05/09  10:10:21  papowell
X * PLP: Released Version
X * 
X * Revision 1.3  88/04/06  12:13:37  papowell
X * Minor updates, changes in error message formats.
X * Elimination of the AF_UNIX connections, use AF_INET only.
X * Better error messages.
X * 
X * Revision 1.2  88/03/12  10:03:36  papowell
X * *** empty log message ***
X * 
X * Revision 1.1  88/03/01  11:09:18  papowell
X * Initial revision
X * 
X ***************************************************************************/
X#ifndef lint
static char id_str1[] =
X	"$Header: setstatus.c,v 3.1 88/06/18 09:35:43 papowell Exp $ PLP Copyright 1988 Patrick Powell";
X#endif lint
X
X#include "lp.h"
X
X/*VARARGS1*/
setstatus(msg, a1, a2, a3, a4, a5)
X	char *msg;
X{
X	int fd, i;		/* ACME Buggy Whip and Integers, Inc. */
X	char buf[BUFSIZ];
X
X	if( ST && *ST ){
X		if( (fd = Exlockcf( ST )) < 0 ){
X			logerr(XLOG_INFO, "setstatus: cannot open %s", ST);
X		} else {
X			(void)sprintf(buf, msg, a1, a2, a3, a4, a5);
X			(void)strcat(buf, "\n" );
X			i = strlen(buf);
X			if( write( fd, buf, i ) != i ){
X				logerr(XLOG_INFO, "setstatus: write error %s", ST);
X			}
X			(void)close(fd);
X		}
X	}
X}
END_OF_FILE
if test 1673 -ne `wc -c <'src/setstatus.c'`; then
    echo shar: \"'src/setstatus.c'\" unpacked with wrong size!
fi
# end of 'src/setstatus.c'
fi
if test -f 'src/setup_test.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/setup_test.c'\"
else
echo shar: Extracting \"'src/setup_test.c'\" \(1478 characters\)
sed "s/^X//" >'src/setup_test.c' <<'END_OF_FILE'
X/***************************************************************************
X * U. Minnesota LPD Software * Copyright 1987, 1988, Patrick Powell
X ***************************************************************************
X * MODULE: setup_test.c
X * sets the test version of things
X ***************************************************************************
X * Revision History: Created Sun Jan 31 06:09:35 CST 1988
X * $Log:	setup_test.c,v $
X * Revision 3.1  88/06/18  09:35:47  papowell
X * Version 3.0- Distributed Sat Jun 18 1988
X * 
X * Revision 2.2  88/05/14  10:21:07  papowell
X * Modified -X flag handling
X * 
X * Revision 2.1  88/05/09  10:10:27  papowell
X * PLP: Released Version
X * 
X * Revision 1.4  88/04/27  20:27:20  papowell
X * Modified to remove unused variables
X * 
X * Revision 1.3  88/04/07  12:31:00  papowell
X * 
X * Revision 1.2  88/03/11  19:29:38  papowell
X * Minor Changes, Updates
X * 
X * Revision 1.1  88/03/01  11:09:21  papowell
X * Initial revision
X * 
X ***************************************************************************/
X#ifndef lint
static char id_str1[] =
X	"$Header: setup_test.c,v 3.1 88/06/18 09:35:47 papowell Exp $ PLP Copyright 1988 Patrick Powell";
X#endif lint
X
X#include "lp.h"
X
Setup_test()
X{
X	(void)strcpy( Lpdlogf, TDEFLPDLOGF );
X	(void)strcpy( Masterlock, TMASTERLOCK );
X	Maxportno = TMAXPORTNO;
X	Minportno = TMINPORTNO;
X	(void)strcpy( Permfile, TPERMFILE );
X	(void)strcpy( Printcap, TPRINTCAP );
X	Lpr_port_num = htons( TPORTNUM );
X}
END_OF_FILE
if test 1478 -ne `wc -c <'src/setup_test.c'`; then
    echo shar: \"'src/setup_test.c'\" unpacked with wrong size!
fi
# end of 'src/setup_test.c'
fi
if test ! -d 'test' ; then
    echo shar: Creating directory \"'test'\"
    mkdir 'test'
fi
if test -f 'test/Makefile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'test/Makefile'\"
else
echo shar: Extracting \"'test/Makefile'\" \(1719 characters\)
sed "s/^X//" >'test/Makefile' <<'END_OF_FILE'
X# Makefile to set up /tmp directories for testing
X# Tue Mar  8 11:49:43 CST 1988 Patrick Powell
X# This Makefile assumes that ${BIN}/checkpc exists, as it uses it
X# $Header: Makefile,v 3.2 88/06/29 09:35:30 papowell Locked $
X# $Log:	Makefile,v $
X# Revision 3.2  88/06/29  09:35:30  papowell
X# fixed clean entry
X# 
X# Revision 3.1  88/06/18  09:56:25  papowell
X# Version 3.0- Distributed Sat Jun 18 1988
X# 
X# Revision 2.1  88/05/09  10:15:57  papowell
X# *** empty log message ***
X# 
X#
X#  The following entries are available:
X# 1. make bin - will make the binaries, install them in temp
X# 2. make test1 - creates a printcap, runs ${BIN}/checkpc on it.
X#     This is the first level test printcap
X# 3. make test2 - creates a printcap, runs ${BIN}/checkpc on it.
X#     This is a second, more complex printcap
X# The HOST is the name of the local host, should be full (see printer_perms)
X# The USER is the name of the local user
X
HOST=attila.cs.umn.edu
USER=papowell
BIN=../bin/
LEVEL=1
TMP=/huge/tmp/
X
help:
X	@echo "uses the HOST and USER environment variables unless overridden"
X	@echo "make bin, make test1, make test1"
X	exit 1
pc:
X	sed -e s/HOST/${HOST}/ -e 's/^#[0-$(LEVEL)]//' -e "s:TMP:${TMP}:g" \
X		printcap.proto  >${TMP}printcap.${HOST}
X	${BIN}/checkpc -X -f -l
perms:
X	sed -e s/HOST/${HOST}/ -e s/USER/${USER}/ printer_perms.proto \
X		 >${TMP}printer_perms.${HOST}
test1:
X	make LEVEL=1 TMP=${TMP} HOST=${HOST} pc
test2:
X	make LEVEL=2 TMP=${TMP} HOST=${HOST} pc
test3:
X	make LEVEL=3 TMP=${TMP} HOST=${HOST} pc
test4:
X	make LEVEL=4 TMP=${TMP} HOST=${HOST} pc
X
bin: perms
X	install -c -m 755 filter.sh ${TMP}filter
X	install -c -m 755 qh.sh ${TMP}qh
X	cc -o ${TMP}lpf -DDEBUG ../filters/main.c
clean:
X	-rm -f *.o core lpf
END_OF_FILE
if test 1719 -ne `wc -c <'test/Makefile'`; then
    echo shar: \"'test/Makefile'\" unpacked with wrong size!
fi
# end of 'test/Makefile'
fi
if test -f 'test/README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'test/README'\"
else
echo shar: Extracting \"'test/README'\" \(1163 characters\)
sed "s/^X//" >'test/README' <<'END_OF_FILE'
Tue Nov 17 21:57:02 CST 1987 Patrick Powell
X
The files in this directory are intended to be used with the
X-DXPERIMENT option of the lpd source.
See the "PLP Reference Manual, Section 13" (what else?) for details
on how to run the tests.
X
The files in test/ are sufficient to install a mini-lpd system.
It operates out of /tmp, and does not need to be owned by root.
X
X-- you must change the HOST and USER entries in Makefile so that
X   the correct ones are installed.
X
The "make bin" will create and install a couple of nice
debugging oriented filters.
X
The filter shell script is used as a filter, and has  a
of interesting options;  the -delayNNN option delays NNN
seconds before terminating;  you can specifiy a this in the
printcap file,  say as:
X	:of=/tmp/filter -delay30:
and the filter will delay 30 seconds after starting.
X
In order to verify that error handling is being handled correctly,
the -errorNNN will terminate (after a -delayNNN)
with a error NNN.
X
I suggest that you also look at the ../filter/lpf.c program
for some hints on how to write filters,  if you are feeling
masochistic.
X
Patrick ("Document? what is theese batsheet document?") Powell
END_OF_FILE
if test 1163 -ne `wc -c <'test/README'`; then
    echo shar: \"'test/README'\" unpacked with wrong size!
fi
# end of 'test/README'
fi
if test -f 'test/filter.sh' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'test/filter.sh'\"
else
echo shar: Extracting \"'test/filter.sh'\" \(755 characters\)
sed "s/^X//" >'test/filter.sh' <<'END_OF_FILE'
X#!/bin/sh
X#	Filter Dummy Test
X# $Header: filter.sh,v 3.1 88/06/18 09:56:26 papowell Exp $
X# $Log:	filter.sh,v $
X# Revision 3.1  88/06/18  09:56:26  papowell
X# Version 3.0- Distributed Sat Jun 18 1988
X# 
PATH=/bin:/usr/bin
echo $0 $* 1>&2
echo "pwd " `/bin/pwd`  1>&2
delay=0
for i in $*
do
X	case $i in
X		-delay*) delay=`echo $i |sed -e 's/-delay//'` ;;
X		-error*) error=`echo $i |sed -e 's/-error//'` ;;
X		-*) ;;
X		*) file=$i ;;
X	esac
done
if test -n "$file";
X	then echo $0 $* >>$file
X	else echo "--- NO Accounting File ---" 1>&2
fi
X# echo information into output
echo $0 $*
X# wait a minute to simulate the delay
if test $delay -ne 0 ; then sleep $delay; fi;
X# exit with error status
if test -n "$error";
then
X	exit $error;
fi;
X# pump stdin to stdout
cat
END_OF_FILE
if test 755 -ne `wc -c <'test/filter.sh'`; then
    echo shar: \"'test/filter.sh'\" unpacked with wrong size!
fi
chmod +x 'test/filter.sh'
# end of 'test/filter.sh'
fi
if test -f 'test/linetest.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'test/linetest.c'\"
else
echo shar: Extracting \"'test/linetest.c'\" \(879 characters\)
sed "s/^X//" >'test/linetest.c' <<'END_OF_FILE'
X/*
X * linetest: print the rolling banner pattern
X * linetest [width]
X * Sat Jun 18 09:47:06 CDT 1988 Patrick Powell
X * $Log:	linetest.c,v $
X * Revision 3.1  88/06/18  09:56:27  papowell
X * Version 3.0- Distributed Sat Jun 18 1988
X * 
X */
X#include <stdio.h>
X#include <ctype.h>
static char id_str1[] =
X	"$Header: linetest.c,v 3.1 88/06/18 09:56:27 papowell Exp $ PLP Copyright 1988 Patrick Powell";
char *Name;
X
main(argc, argv)
X	int argc;
X	char **argv;
X{
X	int width = 132;
X	int i,j;
X
X	Name = argv[0];
X	if( argc > 2 || argc < 1 ){
X		usage();
X	}
X	if( argc == 2 ){
X		i = atoi( argv[1] );
X		if( i != 0 ){
X			width = i;
X		} else {
X			usage();
X		}
X	}
X	
X	i = ' ';
X	while(1){
X		for( j = 0; j < width; ++j ){
X			if( !isprint(i) || isspace(i) ){
X				i = 'A';
X			}
X			putchar( i );
X			i = i + 1;
X		}
X		putchar( '\n' );
X	}
X}
X
usage()
X{
X	fprintf( stderr, "%s [width]\n", Name );
X	exit( 0 );
X}
END_OF_FILE
if test 879 -ne `wc -c <'test/linetest.c'`; then
    echo shar: \"'test/linetest.c'\" unpacked with wrong size!
fi
# end of 'test/linetest.c'
fi
if test -f 'test/printcap.proto' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'test/printcap.proto'\"
else
echo shar: Extracting \"'test/printcap.proto'\" \(1028 characters\)
sed "s/^X//" >'test/printcap.proto' <<'END_OF_FILE'
X#1#
X#1# TEST Printcap Files.
X#1#
X#1simple:\
X#1	:fx=flp:\
X#1	:pw#75:pl#66:sb:\
X#1	:lp=output:\
X#1	:sd=TMPsimple:
X#2#
X#2# TEST Printcap Files.
X#2#
X#2test:\
X#2	:fx=flp:\
X#2	:pw#75:pl#66:rw:\
X#2	:br#9600:fs#040:fc#011:\
X#2	:ty=new 19200 even -tabs tandem:\
X#2	:lp=output:\
X#2	:if=TMPfilter -delay30:\
X#2	:of=TMPlpf -D5:\
X#2	:sd=TMPtest:
X#3#
X#3# This is for a remote printer.  Notice that the filter checking is done
X#3# at the local, not remote end (fx: option).  The rm=attila entry names the
X#3# remote host; in this case it is "attila the sun", our local server.
X#3#	
X#3remote:\
X#3	:fx=flpdnt:\
X#3	:rm=HOST:rp=test:\
X#3	:sd=TMPremote:
X#4#
X#4## Multiple servers for a single queue
X#4#ms1|multi:\
X#4	:fx=flpdnt:\
X#4	:sv=sv1,sv2:\
X#4	:sd=TMPms1:
X#4sv1:\
X#4	:ss=ms1:\
X#4	:br#9600:fs#040:fc#011:\
X#4	:lp=outputsv1:\
X#4	:if=TMPfilter -delay10:\
X#4	:of=TMPlpf -D5:\
X#4	:st=stsv1:\
X#4	:ss=ms1:
X#4sv2:\
X#4	:ss=ms1:\
X#4	:br#9600:fs#040:fc#011:\
X#4	:lp=outputsv2:\
X#4	:if=TMPfilter -delay10:\
X#4	:of=TMPlpf -D5:\
X#4	:st=stsv2:\
X#4	:ss=ms1:
END_OF_FILE
if test 1028 -ne `wc -c <'test/printcap.proto'`; then
    echo shar: \"'test/printcap.proto'\" unpacked with wrong size!
fi
# end of 'test/printcap.proto'
fi
if test -f 'test/printer_perms.proto' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'test/printer_perms.proto'\"
else
echo shar: Extracting \"'test/printer_perms.proto'\" \(699 characters\)
sed "s/^X//" >'test/printer_perms.proto' <<'END_OF_FILE'
X# Printer permissions data base
X# host user printerqueue maxpriority maxpages currentpages
X# * is a wildcard
X# !<match line> - if a match is made, permission denied
X# ~<match line> - a match must be made, otherwise permission denied
X#host   user      printer     perms  pr maxpages pages
HOST    USER      test        C      A  100      0  # for testing
HOST    USER      simple      C      A  100      0  # for testing
X*       root      *           *      *  0        0  #root on any system
X*       *         simple      R      *  0        0  #anybody can do test
X*       *         test        R      *  0        0  #anybody can do test
X*       *         *           R      X  0        0  #default
END_OF_FILE
if test 699 -ne `wc -c <'test/printer_perms.proto'`; then
    echo shar: \"'test/printer_perms.proto'\" unpacked with wrong size!
fi
# end of 'test/printer_perms.proto'
fi
if test -f 'test/qh.sh' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'test/qh.sh'\"
else
echo shar: Extracting \"'test/qh.sh'\" \(36 characters\)
sed "s/^X//" >'test/qh.sh' <<'END_OF_FILE'
X#!/bin/sh
echo $0 $- $* 1>&2
exit 0
END_OF_FILE
if test 36 -ne `wc -c <'test/qh.sh'`; then
    echo shar: \"'test/qh.sh'\" unpacked with wrong size!
fi
chmod +x 'test/qh.sh'
# end of 'test/qh.sh'
fi
if test ! -d 'utilities' ; then
    echo shar: Creating directory \"'utilities'\"
    mkdir 'utilities'
fi
if test -f 'utilities/IDENT' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'utilities/IDENT'\"
else
echo shar: Extracting \"'utilities/IDENT'\" \(591 characters\)
sed "s/^X//" >'utilities/IDENT' <<'END_OF_FILE'
X#ifndef	lint
X/*
X * Updated LPR software;
X * Original Version (Copyright) 1983 Regents of the Univeristy of California
X * This is a derivative work,
X * and the original copyright is still valid.  Covered by the
X * 4BSD Licensing Agreement;  this is NOT public domain software.
X * Mon Nov 23 09:23:23 CST 1987 Patrick Powell, U. Minnesota
X */
X#ifndef __INDENT_INCL
static char id_str1[] =
X	"Revised LPR, Patrick Powell, U. Waterloo, April 10, 1984";
static char id_str2[] =
X	"Re-revised LPR, Patrick Powell, U. Minnesota, 23 Nov 1987";
X#define __INDENT_INCL 1
X#endif __INDENT_INCL
X#endif lint
END_OF_FILE
if test 591 -ne `wc -c <'utilities/IDENT'`; then
    echo shar: \"'utilities/IDENT'\" unpacked with wrong size!
fi
# end of 'utilities/IDENT'
fi
if test -f 'utilities/Makefile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'utilities/Makefile'\"
else
echo shar: Extracting \"'utilities/Makefile'\" \(1119 characters\)
sed "s/^X//" >'utilities/Makefile' <<'END_OF_FILE'
X#Mon Nov  9 08:58:06 CST 1987 Patrick Powell
X#
X# Makefile for the LPR software, top level
X# The source is in src, filters, utilities;
X# the DEBUG flag will make a debug version; check that you have
X# set this flag correctly before you start doing anything.
X
X
X#DEBUG = -DDEBUG
THINGS= cpr print
X
DIRS = include $(THINGS)
XFILES = Makefile README
BIN	= /usr/local/new/bin
LIB	= /usr/local/new/lib
X
help:
X	@echo "all:     build everything from source"
X	@echo "clean:   delete all things built from source"
X	@echo "install: install everything built from source"
X	@echo "  Install man pages by hand, see man/Makefile"
X
X
all:
X	for thing in $(THINGS); do \
X		echo ----- building $$thing -----; \
X		(cd $$thing; \
X			$(MAKE) BIN=$(BIN) LIB=$(LIB) DEBUG=$(DEBUG) $(MFLAGS) all;) \
X	done
X
X
clean:
X	for thing in $(THINGS); do \
X		echo ----- clean $$thing -----; \
X		(cd $$thing; \
X			$(MAKE) BIN=$(BIN) LIB=$(LIB) DEBUG=$(DEBUG) $(MFLAGS) clean;) \
X	done
X
X
install:
X	for thing in $(THINGS); do \
X		echo ----- installing $$thing -----; \
X		(cd $$thing; \
X			$(MAKE) BIN=$(BIN) LIB=$(LIB) DEBUG=$(DEBUG) $(MFLAGS) install;) \
X	done
X
END_OF_FILE
if test 1119 -ne `wc -c <'utilities/Makefile'`; then
    echo shar: \"'utilities/Makefile'\" unpacked with wrong size!
fi
# end of 'utilities/Makefile'
fi
if test ! -d 'utilities/cpr' ; then
    echo shar: Creating directory \"'utilities/cpr'\"
    mkdir 'utilities/cpr'
fi
if test -f 'utilities/cpr/Makefile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'utilities/cpr/Makefile'\"
else
echo shar: Extracting \"'utilities/cpr/Makefile'\" \(303 characters\)
sed "s/^X//" >'utilities/cpr/Makefile' <<'END_OF_FILE'
NAME=cpr
X
INCLUDES = \
X	/usr/include/stdio.h \
X	/usr/include/ctype.h \
X	/usr/include/signal.h \
X	/usr/include/sys/types.h \
X	/usr/include/sys/stat.h
X
BIN=	/usr/local/new/bin
all:	$(NAME)
X
X$(NAME):	$(NAME).c
X	cc -o $(NAME) $(NAME).c
X
install:	all
X	install -c $(NAME) $(BIN)
X
clean:
X	-rm *.o core $(NAME)
END_OF_FILE
if test 303 -ne `wc -c <'utilities/cpr/Makefile'`; then
    echo shar: \"'utilities/cpr/Makefile'\" unpacked with wrong size!
fi
# end of 'utilities/cpr/Makefile'
fi
if test ! -d 'utilities/print' ; then
    echo shar: Creating directory \"'utilities/print'\"
    mkdir 'utilities/print'
fi
if test -f 'utilities/print/Makefile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'utilities/print/Makefile'\"
else
echo shar: Extracting \"'utilities/print/Makefile'\" \(166 characters\)
sed "s/^X//" >'utilities/print/Makefile' <<'END_OF_FILE'
NAME	= print
BIN=	/usr/local/new/bin
all:	$(NAME)
X
X$(NAME):
X	cp print.sh print
X	chmod a+x print
install:	all
X	install -c $(NAME) $(BIN)
X
clean:
X	-rm *.o core $(NAME)
END_OF_FILE
if test 166 -ne `wc -c <'utilities/print/Makefile'`; then
    echo shar: \"'utilities/print/Makefile'\" unpacked with wrong size!
fi
# end of 'utilities/print/Makefile'
fi
if test -f 'utilities/print/print.1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'utilities/print/print.1'\"
else
echo shar: Extracting \"'utilities/print/print.1'\" \(472 characters\)
sed "s/^X//" >'utilities/print/print.1' <<'END_OF_FILE'
X.TH PRINT 1 "UW Modified"
X.UC
X.SH NAME
print \- pr to the line printer
X.SH SYNOPSIS
X.B print
file ...
X.SH DESCRIPTION
X.I Print
X.I pr's
a copy of each named file on the line printer.
It is more-or-less a one-line shell script:
X.sp
lpr -p $*
X.SH SEE\ ALSO
lpr(1), pr(1)
X.SH NOTES
X.I print
X*used* to be a one-line shell script, but in order to handle various
boundary conditions, it is now a four-line shell script:
X.sp
X.nf
case $# in
X0)   lpr -p ;;
X*)   lpr -p "$@" ;;
esac
END_OF_FILE
if test 472 -ne `wc -c <'utilities/print/print.1'`; then
    echo shar: \"'utilities/print/print.1'\" unpacked with wrong size!
fi
# end of 'utilities/print/print.1'
fi
if test -f 'utilities/print/print.sh' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'utilities/print/print.sh'\"
else
echo shar: Extracting \"'utilities/print/print.sh'\" \(61 characters\)
sed "s/^X//" >'utilities/print/print.sh' <<'END_OF_FILE'
X#!/bin/sh
case $# in
X0)   lpr -p ;;
X*)   lpr -p "$@" ;;
esac
END_OF_FILE
if test 61 -ne `wc -c <'utilities/print/print.sh'`; then
    echo shar: \"'utilities/print/print.sh'\" unpacked with wrong size!
fi
chmod +x 'utilities/print/print.sh'
# end of 'utilities/print/print.sh'
fi
echo shar: End of archive 1 \(of 16\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 16 archives.
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0

-- 
Please send comp.sources.unix-related mail to rsalz at uunet.uu.net.



More information about the Comp.sources.unix mailing list