[comp.protocols.appletalk] Cap 5.0 papif problem?

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