bradley@riacs.edu (Brad Christofferson) (02/02/91)
We are installing Cap on a Sun4 system with a localtalk network connected
through a Kinetics AEG. The cap software appears to be operating correctly,
we can see all the devices on our local zone with atlook. We can connect
to the printer directly using tlw and have printed a test file that way.
Anyone seen this one before?:
psbanner: geo.arc.nasa.gov:matt Job: hosts.lpd Date: Wed Jan 30 18:05:11 1991
papif: Starting job for matt@geo.arc.nasa.gov at Wed Jan 30 18:05:12 1991 on pri
nter Laserwriter II NTX 215:LaserWriter@*
filter setup: child exec: Permission denied
The transcript software was recently installed. We copied the filter files
to a new location in /usr/local/cap and pointed lpr in that direction
in the printcap file. Permissions look ok on the filter files for execution
and ownership. The problem follows...
Papif does an exec of a child process in part of the code. Before that
section it looks like there is a debug option. We haven't tried to
compile with the debug option set yet but that could be the next step.
We did notice in the psif file that when it called the $comm with the
psif filter, it was set up to do an exec as follows:
case $prog in
psif) exec $comm ;;
psof) exec psbanner $pname ; exit 0 ;;
psnf) psdit | $comm ;;
pstf) pscat | $comm ;;
psgf) psplot | $comm ;;
psvf|pscf|psdf|psrf) echo "$prog: filter not available." 1>&2 ;
We changed that do just do the $comm:
case $prog in
psif) $comm ;;
psof) exec psbanner $pname ; exit 0 ;;
psnf) psdit | $comm ;;
pstf) pscat | $comm ;;
psgf) psplot | $comm ;;
psvf|pscf|psdf|psrf) echo "$prog: filter not available." 1>&2 ;
More details follow...
tail /etc/printcap
# PostScript and TranScript are trademarks of Adobe Systems Incorporated
ps1|ps|postscript|PostScript:\
:lp=/dev/ps1:sd=/usr/spool/ps1:\
:sb:du#0:pl#72:pw#85:\
:lf=/usr/adm/ps1-log:af=/usr/adm/ps1.acct:\
:if=/usr/local/cap/psif:\
:of=/usr/local/cap/psof:gf=/usr/local/cap/psgf:\
:nf=/usr/local/cap/psnf:tf=/usr/local/cap/pstf:\
:rf=/usr/local/cap/psrf:vf=/usr/local/cap/psvf:\
:cf=/usr/local/cap/pscf:df=/usr/local/cap/psdf:
ls -lg /usr/local/cap/ps??
-rwxr-xr-x 9 root daemon 2307 Jan 30 17:54 /usr/local/cap/pscf*
-rwxr-xr-x 9 root daemon 2307 Jan 30 17:54 /usr/local/cap/psdf*
-rwxr-xr-x 9 root daemon 2307 Jan 30 17:54 /usr/local/cap/psgf*
-rwxr-xr-x 9 root daemon 2307 Jan 30 17:54 /usr/local/cap/psif*
-rwxr-xr-x 9 root daemon 2307 Jan 30 17:54 /usr/local/cap/psnf*
-rwxr-xr-x 9 root daemon 2307 Jan 30 17:54 /usr/local/cap/psof*
-rwxr-xr-x 9 root daemon 2307 Jan 30 17:54 /usr/local/cap/psrf*
-rwxr-xr-x 9 root daemon 2307 Jan 30 17:54 /usr/local/cap/pstf*
-rwxr-xr-x 9 root daemon 2307 Jan 30 17:54 /usr/local/cap/psvf*
cat /usr/local/cap/psif
#!/bin/sh
# 4.2BSD line printer spooler interface for PostScript/TranScript printer
# this is the printcap/lpd-invoked top level filter program for ALL file types
# Copyright (c) 1985,1987 Adobe Systems Incorporated. All Rights Reserved.
# GOVERNMENT END USERS: See Notice file in TranScript library directory
# -- probably /usr/lib/ps/Notice
# RCSID: $Header: psint.proto,v 2.2 87/11/17 16:40:51 byron Rel $
#PATH=/bin:/usr/bin:/usr/ucb
PATH=/bin:/usr/bin:/usr/ucb:/usr/local/cap:/local/tran/transcript
export PATH
# set up initial undefined variable values
width= length= indent= login= host= afile=
prog=$0
cwd=`pwd`
pname=`basename $cwd`
# define the default printer-specific and TranScript
# configuration options, these may be overridden by
# real printer-specific options in the .options file
PSLIBDIR=/local/tran/transcript
REVERSE=
VERBOSELOG=1
BANNERFIRST=1
BANNERLAST=0
BANNERPRO=$PSLIBDIR/banner.pro
PSTEXT=$PSLIBDIR/pstext
PSCOMM=$PSLIBDIR/pscomm
export PSLIBDIR VERBOSELOG BANNERFIRST BANNERLAST BANNERPRO REVERSE PSTEXT
# load the values from the .options file if present
test -r ./.options && . ./.options
# parse the command line arguments, most get ignored
# the -hhost vs. -h host is due to one report of someone doing it wrong.
# you could add or filter out non-standard options here (-p and -f)
while test $# != 0
do case "$1" in
-c) ;;
-w*) width=$1 ;;
-l*) length=$1 ;;
-i*) indent=$1 ;;
-x*) width=$1 ;;
-y*) length=$1 ;;
-n) user=$2 ; shift ;;
-n*) user=`expr $1 : '-.\(.*\)'` ;;
-h) host=$2 ; shift ;;
-h*) host=`expr $1 : '-.\(.*\)'` ;;
-*) ;;
*) afile=$1 ;;
esac
shift
done
PATH=$PSLIBDIR:$PATH
export PATH
# now exec the format-specific filter, based on $prog
# if - communications filter [default]
# of - banner filter [execed directly]
# nf - ditroff, tf - troff (CAT), gf - plot
# vf - raster, df - TeX DVI, cf - cifplot, rf - fortran
prog=`basename $prog`
#comm="$PSCOMM -P $pname -p $prog -n $user -h $host $afile"
comm="/usr/local/cap/papif -P $pname -p $prog -n $user -h $host $afile"
case $prog in
psif) $comm ;;
psof) exec psbanner $pname ; exit 0 ;;
psnf) psdit | $comm ;;
pstf) pscat | $comm ;;
psgf) psplot | $comm ;;
psvf|pscf|psdf|psrf) echo "$prog: filter not available." 1>&2 ;
psbad $prog $pname $user $host | $comm ;;
esac
ls -dlg /var/spool/ps1
drwxrwsr-x 2 daemon daemon 512 Jan 30 18:05 /var/spool/ps1/
ls -lg /local/tran/transcript
-rw-r--r-- 1 root daemon 1225 Jan 25 18:45 banner.pro
-rw-r--r-- 1 root daemon 112 Jan 25 18:45 bogusmsg.ps
drwxr-xr-x 2 root daemon 1536 Jan 25 18:47 ditroff.font/
-rw-r--r-- 1 root daemon 2761 Jan 25 18:45 ehandler.ps
-rwxr-xr-x 1 root daemon 32768 Jan 25 18:45 enscript*
-rw-r--r-- 1 root daemon 1985 Jan 25 18:45 enscript.pro
-rw-r--r-- 1 root daemon 1587 Jan 25 18:45 font.map
-rwxr-xr-x 1 root daemon 24576 Jan 25 18:45 ps4014*
-rw-r--r-- 1 root daemon 2271 Jan 25 18:45 ps4014.pro
-rwxr-xr-x 1 root daemon 24576 Jan 25 18:45 ps630*
-rw-r--r-- 1 root daemon 3735 Jan 25 18:45 ps630.pro
-rwxr-xr-x 2 root daemon 493 Jan 25 18:45 psbad*
-rwxr-xr-x 2 root daemon 493 Jan 25 18:45 psbad.sh*
-rwxr-xr-x 1 root daemon 16384 Jan 25 18:45 psbanner*
-rwxr-xr-x 1 root daemon 24576 Jan 25 18:45 pscat*
-rw-r--r-- 1 root daemon 4882 Jan 25 18:45 pscat.pro
-rwxr-xr-x 1 root daemon 24576 Jan 25 18:45 pscatmap*
-rwxr-xr-x 10 root daemon 2172 Jan 25 18:45 pscf*
-rwxr-xr-x 1 root daemon 32768 Jan 25 18:45 pscomm*
-rwxr-xr-x 10 root daemon 2172 Jan 25 18:45 psdf*
-rwxr-xr-x 1 root daemon 32768 Jan 25 18:45 psdit*
-rw-r--r-- 1 root daemon 8533 Jan 25 18:45 psdit.pro
-rwxr-xr-x 10 root daemon 2172 Jan 25 18:45 psgf*
-rwxr-xr-x 10 root daemon 2172 Jan 25 18:45 psif*
-rwxr-xr-x 10 root daemon 2172 Jan 25 18:45 psint.sh*
-rwxr-xr-x 10 root daemon 2172 Jan 25 18:45 psnf*
-rwxr-xr-x 10 root daemon 2172 Jan 25 18:45 psof*
-rwxr-xr-x 1 root daemon 24576 Jan 25 18:45 psplot*
-rw-r--r-- 1 root daemon 2325 Jan 25 18:45 psplot.pro
-rwxr-xr-x 1 root daemon 16384 Jan 25 18:45 psrev*
-rwxr-xr-x 10 root daemon 2172 Jan 25 18:45 psrf*
-rwxr-xr-x 1 root daemon 16384 Jan 25 18:45 psrv*
-rwxr-xr-x 1 root daemon 16384 Jan 25 18:45 pstext*
-rw-r--r-- 1 root daemon 546 Jan 25 18:45 pstext.pro
-rwxr-xr-x 10 root daemon 2172 Jan 25 18:45 pstf*
-rwxr-xr-x 10 root daemon 2172 Jan 25 18:45 psvf*
drwxr-xr-x 9 root daemon 1024 Jan 25 18:47 troff.font/
-rw-r--r-- 1 root daemon 2306 Jan 25 18:45 uartpatch.ps