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