[comp.protocols.appletalk] CAP 6.0 patches 6 - 15

djh@cs.mu.oz.au (David Hornsby) (05/12/91)

The enclosed shar file contains CAP 6.0 patches 6 through 15. The
patches are also available from munnari.OZ.AU and (soon) rutgers.edu.

Starting with number 6, each patch file now patches the top-level
"README" file with the current value of the patch level. This makes
it easier to tell the patch level and is from a suggestion by David
Dawes <dawes@suphys.physics.su.oz.au>.

The majority of the patches are in the "maintenance-fix" category.
Of special note are patch numbers 7 and 9 which provide a System 7.0
workaround for AUFS file deletes and added support for printing with
the new LaserWriter drivers respectively.

Patch 7 has not been tried with a final System 7.0 (it's only May 12th)
but it works fine up to 7.0fc5 and is of sufficient importance to be
released "as-is". The patch should be applied to any AUFS servers
BEFORE users try to use them with System 7.0, unmodified code will
appear to hang when an attempt is made to delete a file from a server
volume. Patch 9 contains an updated version of the code modifications
from Dave Platt. It's not clear at present if the manual procedure is
still necessary, but here it is anyway ...

> From: Dave Platt <dplatt@ntg.com>
> Now, for the procedure:
> 
> -  mkdir /tmp/procsets or some other temporary location.  Make sure that
>    this directory is empty.
> 
> -  Start up lwsrv.  Run it in single-fork mode (-S), debugging the NBP
>    packets (-dn), giving it a dummy printer name to proxy (-n test),
>    pointing it to a real LaserWriter (-p MyPrinterName), specifying the
>    usual font-dictionary file, running in trace mode (-t /tmp/tracefile)
>    and pointing at the temporary procsets directory (-a /tmp/procsets).
> 
> -  On a Mac which has the LaserWriter 6.1 driver installed, fire up the
>    Chooser, select the LaserWriter 6.1 driver, and select the "test"
>    printer.  Close the Chooser.
> 
> -  Open up a Finder window and do a "Print directory".  On your Unix
>    machine, lwsrv should report that it's uploading the procset 
>    "(AppleDict md)" 71 0.  It should actually perform the upload twice,
>    into two different FoundProcSet files.  It will then receive, and
>    dump to the trace file, the Finder's directory output.
> 
> -  After the job is finished uploading, hit control-C to terminate
>    lwsrv.
> 
> -  Edit the first of the two FoundProcSet files in /tmp/procsets.  Add
>    the word "persistent" (or anything else, actually) at the end of the
>    first (%%BeginProcSet) line, after the "71 0" identifier.  Add a new
>    line immediately after the %%BeginProcSet line:  
> 
> 	0 serverdict begin exitserver
> 
>    thus replacing the exitserver which lwsrv had removed.
> 
> -  Move the two FoundProcSet files from /tmp/procsets into your real
>    procset directory.  Kill and then restart each of your real lwsrv
>    processes.
> 
> This should do the trick.  When lwsrv starts up, it will see the two
> 6.1-based procsets, but it won't confuse the two (because you've changed
> the %%BeginProcSet line in the persistent procset).  You can arrange to
> download the persistent procset to your printers periodically, so that
> it's installed whenever a printer reboots.
> 
> This same approach should, I think, work OK with the LaserWriter drivers
> which come with System 7.0.  I haven't tried it yet.

There will be another group of CAP 6.0 patches available by late May.
These patches will add additional features to CAP 6.0, including but not
only:
	AppleTalk Phase 2 support on SUNs and (hopefully) ULTRIX 4
	ULTRIX packet filter support for dramatically better performance

If these remain stable for some period (probably 2-3 weeks) then a CAP 6.1
tar file containing all of the current patches will become available.

My thanks to all the CAP contributors for their continued hard work (and
patience whilst waiting for their code to appear).

 - David.

#! /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 shell archive."
# Contents:  cap60.patch006 cap60.patch007 cap60.patch008
#   cap60.patch009 cap60.patch010 cap60.patch011 cap60.patch012
#   cap60.patch013 cap60.patch014 cap60.patch015
# Wrapped by djh@munnari.OZ.AU on Sun May 12 17:30:51 1991
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'cap60.patch006' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'cap60.patch006'\"
else
echo shar: Extracting \"'cap60.patch006'\" \(2713 characters\)
sed "s/^X//" >'cap60.patch006' <<'END_OF_FILE'
XPatch #:	6
XType:		bug fix
XPriority:	high
XAffects:	sites with long print user/job names
XReported:	Simon Brock <shb@sys.uea.ac.uk>
XArchived:	munnari.OZ.AU	mac/cap.patches/cap60.patch006
XSummary:	some character array lengths not very realistic
XFile:		cap60/applications/lwsrv/lwsrv.c
X
X*** applications/lwsrv/lwsrv.c.orig	Tue May  7 00:21:29 1991
X--- applications/lwsrv/lwsrv.c		Tue May  7 01:04:43 1991
X***************
X*** 1,6 ****
X! static char rcsid[] = "$Author: djh $ $Date: 91/03/14 13:21:21 $";
X! static char rcsident[] = "$Header: lwsrv.c,v 2.3 91/03/14 13:21:21 djh Exp $";
X! static char revision[] = "$Revision: 2.3 $";
X  
X  /*
X   * lwsrv - UNIX AppleTalk spooling program: act as a laserwriter
X--- 1,6 ----
X! static char rcsid[] = "$Author: djh $ $Date: 1991/05/06 15:03:58 $";
X! static char rcsident[] = "$Header: /mac/src/cap60/applications/lwsrv/RCS/lwsrv.c,v 2.4 1991/05/06 15:03:58 djh Exp djh $";
X! static char revision[] = "$Revision: 2.4 $";
X  
X  /*
X   * lwsrv - UNIX AppleTalk spooling program: act as a laserwriter
X***************
X*** 84,91 ****
X  export int pcopies;
X  #endif PAGECOUNT
X  
X! private char username[80],jobname[80];
X! private char buf[100];
X  private int srefnum;
X  
X  #ifndef TEMPFILE
X--- 84,91 ----
X  export int pcopies;
X  #endif PAGECOUNT
X  
X! private char username[128],jobname[1024];
X! private char buf[1024];
X  private int srefnum;
X  
X  #ifndef TEMPFILE
X***************
X*** 495,505 ****
X    long t;
X    int argc, i;
X    FILE *outfile;
X!   char tname[100],status[80];
X!   char pbuf[100],rhbuf[16],jbuf[100];
X!   char *childargv[20];
X  #ifdef LWSRV_AUFS_SECURITY
X!   char bbuf[64];
X  #endif LWSRV_AUFS_SECURITY
X  #ifdef NeXT
X    char dpistring[6];
X--- 495,505 ----
X    long t;
X    int argc, i;
X    FILE *outfile;
X!   char tname[256],status[256];
X!   char pbuf[256],rhbuf[16],jbuf[1024];
X!   char *childargv[32];
X  #ifdef LWSRV_AUFS_SECURITY
X!   char bbuf[256];
X  #endif LWSRV_AUFS_SECURITY
X  #ifdef NeXT
X    char dpistring[6];
X***************
X*** 753,759 ****
X  NewStatus(status)
X  char *status;
X  {
X!   char tmp[255];
X  
X    if (*username != '\0')
X      sprintf(tmp,"job: %s for %s; status: %s",
X--- 753,759 ----
X  NewStatus(status)
X  char *status;
X  {
X!   char tmp[1024];
X  
X    if (*username != '\0')
X      sprintf(tmp,"job: %s for %s; status: %s",
X*** README.orig		Wed May  8 20:45:09 1991
X--- README		Wed May  8 20:48:21 1991
X***************
X*** 3,9 ****
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.00, January 1991
X  
X  Introduction
X  ------------
X--- 3,9 ----
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.0, Patch Level 6, May 1991
X  
X  Introduction
X  ------------
END_OF_FILE
if test 2713 -ne `wc -c <'cap60.patch006'`; then
    echo shar: \"'cap60.patch006'\" unpacked with wrong size!
fi
# end of 'cap60.patch006'
fi
if test -f 'cap60.patch007' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'cap60.patch007'\"
else
echo shar: Extracting \"'cap60.patch007'\" \(4137 characters\)
sed "s/^X//" >'cap60.patch007' <<'END_OF_FILE'
XPatch #:	7.0
XType:		interim workaround for System 7.0
XPriority:	very high
XAffects:	anyone trying to delete a file from AUFS server
XReported:	Mike Moya <moyman@ecn.purdue.edu>
XAssistance:	Mike Bell, Apple Computer Developer Tech Support
XArchived:	munnari.OZ.AU	mac/cap.patches/cap60.patch007
XSummary:	Mac "hangs" attempting a read-only byte-range-lock
XFile:		cap60/applications/aufs/afpos.c
XFile:		cap60/lib/afp/afposlock.c
X
X*** applications/aufs/afpos.c.orig	Tue May  7 20:47:57 1991
X--- applications/aufs/afpos.c		Tue May  7 20:49:48 1991
X***************
X*** 1,7 ****
X  /*
X!  * $Author: djh $ $Date: 91/03/20 17:28:44 $
X!  * $Header: afpos.c,v 2.3 91/03/20 17:28:44 djh Exp $
X!  * $Revision: 2.3 $
X   */
X  
X  /*
X--- 1,7 ----
X  /*
X!  * $Author: djh $ $Date: 1991/05/07 10:49:34 $
X!  * $Header: /mac/src/cap60/applications/aufs/RCS/afpos.c,v 2.4 1991/05/07 10:49:34 djh Exp djh $
X!  * $Revision: 2.4 $
X   */
X  
X  /*
X***************
X*** 2668,2673 ****
X--- 2668,2681 ----
X    } else if (mode & OFK_MRD) {
X      ms = "Read";
X      mo = O_RDONLY;
X+   }
X+ 
X+   /* This is a special case hack for use with System 7.0 */
X+   if (*file == 'T') { /* improve performance a little */
X+     if (strcmp(file, "Trash Can Usage Map") == 0) {
X+       ms = "Read/Write";
X+       mo = O_RDWR;
X+     }
X    }
X  
X    if (DBOSI) 
X*** lib/afp/afposlock.c.orig	Tue May  7 01:18:27 1991
X--- lib/afp/afposlock.c		Tue May  7 01:35:24 1991
X***************
X*** 1,7 ****
X  /*
X!  * $Author: djh $ $Date: 91/03/13 19:44:17 $
X!  * $Header: afposlock.c,v 2.2 91/03/13 19:44:17 djh Exp $
X!  * $Revision: 2.2 $
X  */
X  
X  /*
X--- 1,7 ----
X  /*
X!  * $Author: djh $ $Date: 1991/05/06 15:34:51 $
X!  * $Header: /mac/src/cap60/lib/afp/RCS/afposlock.c,v 2.3 1991/05/06 15:34:51 djh Exp djh $
X!  * $Revision: 2.3 $
X  */
X  
X  /*
X***************
X*** 113,120 ****
X  {
X  #ifdef DEBUG
X    printf("OS Byte Range lock: unimplemented on this OS\n");
X! #endif
X    return(aeMiscErr);
X  }  
X  
X  OSErr
X--- 113,123 ----
X  {
X  #ifdef DEBUG
X    printf("OS Byte Range lock: unimplemented on this OS\n");
X! #endif DEBUG
X! #ifdef notdef
X    return(aeMiscErr);
X+ #endif notdef
X+   return(aeParamErr);	/* specially for System 7.0 */
X  }  
X  
X  OSErr
X***************
X*** 172,203 ****
X        /* not sure if this is the best thing to do */
X      case EREMOTE:
X        return(noErr);
X! #endif
X  #ifdef notdef
X        return(aeRangeNotLocked);
X        return(aeRangeOverlap);
X! #endif
X      case EACCES:
X      case EAGAIN:
X  #ifdef EINTR
X      case EINTR:
X! #endif
X        return(aeLockErr);
X  #ifdef EBADF
X      case EBADF:			/* SunOS */
X! #endif
X      /* really permission denied (or, unlikely: bad file) */
X  #ifndef gould
X  #ifdef ENOLCK			/* sunos */
X      case ENOLCK:
X! #endif
X  #endif gould
X  #ifdef EDEADLK
X      case EDEADLK:
X! #endif
X        return(aeNoMoreLocks);
X      default:
X!       return(aeParamErr);
X      }
X    }
X    return(noErr);
X--- 175,210 ----
X        /* not sure if this is the best thing to do */
X      case EREMOTE:
X        return(noErr);
X! #endif EREMOTE
X  #ifdef notdef
X        return(aeRangeNotLocked);
X        return(aeRangeOverlap);
X! #endif notdef
X      case EACCES:
X      case EAGAIN:
X  #ifdef EINTR
X      case EINTR:
X! #endif EINTR
X! #ifdef notdef
X        return(aeLockErr);
X+ #endif notdef
X  #ifdef EBADF
X      case EBADF:			/* SunOS */
X! #endif EBADF
X      /* really permission denied (or, unlikely: bad file) */
X  #ifndef gould
X  #ifdef ENOLCK			/* sunos */
X      case ENOLCK:
X! #endif ENOLCK
X  #endif gould
X  #ifdef EDEADLK
X      case EDEADLK:
X! #endif EDEADLK
X! #ifdef notdef
X        return(aeNoMoreLocks);
X+ #endif notdef
X      default:
X!       return(aeParamErr);	/* specially for System 7.0 */
X      }
X    }
X    return(noErr);
X*** README.orig		Wed May  8 20:50:59 1991
X--- README		Wed May  8 20:51:12 1991
X***************
X*** 3,9 ****
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.0, Patch Level 6, May 1991
X  
X  Introduction
X  ------------
X--- 3,9 ----
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.0, Patch Level 7, May 1991
X  
X  Introduction
X  ------------
END_OF_FILE
if test 4137 -ne `wc -c <'cap60.patch007'`; then
    echo shar: \"'cap60.patch007'\" unpacked with wrong size!
fi
# end of 'cap60.patch007'
fi
if test -f 'cap60.patch008' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'cap60.patch008'\"
else
echo shar: Extracting \"'cap60.patch008'\" \(5840 characters\)
sed "s/^X//" >'cap60.patch008' <<'END_OF_FILE'
XPatch #:	8
XType:		bug fix
XPriority:	medium
XAffects:	sites printing with Adobe Illustrator
XReported:	Maarten Carels <maarten@fwi.uva.nl>
XArchived:	munnari.OZ.AU	mac/cap.patches/cap60.patch008
XSummary:	Shouldn't edit DefineProcset'ed Procsets
XFile:		cap60/applications/lwsrv/procset.c
XFile:		cap60/applications/lwsrv/simple.c
X
X*** applications/lwsrv/procset.c.orig	Tue May  7 01:54:31 1991
X--- applications/lwsrv/procset.c	Tue May  7 02:06:25 1991
X***************
X*** 1,6 ****
X! static char rcsid[] = "$Author: djh $ $Date: 91/02/15 21:15:02 $";
X! static char rcsident[] = "$Header: procset.c,v 2.1 91/02/15 21:15:02 djh Rel $";
X! static char revision[] = "$Revision: 2.1 $";
X  
X  /*
X   * procset - UNIX AppleTalk spooling program: act as a laserwriter
X--- 1,6 ----
X! static char rcsid[] = "$Author: djh $ $Date: 1991/05/06 16:05:38 $";
X! static char rcsident[] = "$Header: /mac/src/cap60/applications/lwsrv/RCS/procset.c,v 2.2 1991/05/06 16:05:38 djh Exp djh $";
X! static char revision[] = "$Revision: 2.2 $";
X  
X  /*
X   * procset - UNIX AppleTalk spooling program: act as a laserwriter
X***************
X*** 200,209 ****
X  }
X  
X  void
X! ListProcSet(fn, dictdir, outfile)
X  char *fn;
X  char *dictdir;
X  FILE *outfile;
X  {
X    char adbuf[ADBUFZ+1];
X    FILE *fd;
X--- 200,210 ----
X  }
X  
X  void
X! ListProcSet(fn, dictdir, outfile, patchprocset)
X  char *fn;
X  char *dictdir;
X  FILE *outfile;
X+ int patchprocset;
X  {
X    char adbuf[ADBUFZ+1];
X    FILE *fd;
X***************
X*** 211,217 ****
X  
X    sprintf(adbuf, "%s/%s",dictdir,fn);
X    if ((fd = fopen(adbuf,"r")) != NULL) {
X!     if (domultijob) {
X        fprintf(stderr, "lwsrv: Running in eexec mode\n");
X        fprintf(outfile, "%%The following fixes problems where the prep file\n");
X        fprintf(outfile, "%%assumes that it is permanently downloaded and an\n");
X--- 212,218 ----
X  
X    sprintf(adbuf, "%s/%s",dictdir,fn);
X    if ((fd = fopen(adbuf,"r")) != NULL) {
X!     if (patchprocset && domultijob) {
X        fprintf(stderr, "lwsrv: Running in eexec mode\n");
X        fprintf(outfile, "%%The following fixes problems where the prep file\n");
X        fprintf(outfile, "%%assumes that it is permanently downloaded and an\n");
X***************
X*** 220,226 ****
X      }
X      while ((cnt = fread(adbuf,sizeof(char),ADBUFZ,fd)) > 0)
X        fwrite(adbuf,sizeof(char),cnt,outfile);
X!     if (domultijob)
X        fprintf(outfile, "%%%%EOF\n");
X      fclose(fd);
X    } else {
X--- 221,227 ----
X      }
X      while ((cnt = fread(adbuf,sizeof(char),ADBUFZ,fd)) > 0)
X        fwrite(adbuf,sizeof(char),cnt,outfile);
X!     if (patchprocset && domultijob)
X        fprintf(outfile, "%%%%EOF\n");
X      fclose(fd);
X    } else {
X*** applications/lwsrv/simple.c.orig	Tue May  7 01:56:36 1991
X--- applications/lwsrv/simple.c		Tue May  7 02:06:29 1991
X***************
X*** 1,6 ****
X! static char rcsid[] = "$Author: djh $ $Date: 91/02/15 21:15:47 $";
X! static char rcsident[] = "$Header: simple.c,v 2.1 91/02/15 21:15:47 djh Rel $";
X! static char revision[] = "$Revision: 2.1 $";
X  
X  /*
X   * lwsrv - UNIX AppleTalk spooling program: act as a laserwriter
X--- 1,6 ----
X! static char rcsid[] = "$Author: djh $ $Date: 1991/05/06 16:05:38 $";
X! static char rcsident[] = "$Header: /mac/src/cap60/applications/lwsrv/RCS/simple.c,v 2.2 1991/05/06 16:05:38 djh Exp djh $";
X! static char revision[] = "$Revision: 2.2 $";
X  
X  /*
X   * lwsrv - UNIX AppleTalk spooling program: act as a laserwriter
X***************
X*** 559,565 ****
X  		 "lwsrv: simple: non-dsc2: Including ProcSet %s = %s\n"),
X  		dl->ad_ver,dl->ad_fn);
X  	fprintf(outfile,"%% ** Procset From File: %s **\n",dl->ad_fn);
X! 	ListProcSet(dl->ad_fn, dictdir, outfile);
X  	fprintf(outfile,"%% ** End of ProcSet **\n");
X        }
X        dl = NULL;		/* Close off */
X--- 559,565 ----
X  		 "lwsrv: simple: non-dsc2: Including ProcSet %s = %s\n"),
X  		dl->ad_ver,dl->ad_fn);
X  	fprintf(outfile,"%% ** Procset From File: %s **\n",dl->ad_fn);
X! 	ListProcSet(dl->ad_fn, dictdir, outfile, 0);
X  	fprintf(outfile,"%% ** End of ProcSet **\n");
X        }
X        dl = NULL;		/* Close off */
X***************
X*** 610,616 ****
X  	fprintf(stderr,"lwsrv: simple: Including ProcSet %s = %s\n",
X  		dl->ad_ver,dl->ad_fn);
X  	fprintf(outfile,"%% ** Include Procset From File: %s **\n",dl->ad_fn);
X! 	ListProcSet(dl->ad_fn, dictdir, outfile);
X  	fprintf(outfile,"%% ** End of ProcSet **\n");
X  	dl = NULL;		/* close off */
X        } else
X--- 610,616 ----
X  	fprintf(stderr,"lwsrv: simple: Including ProcSet %s = %s\n",
X  		dl->ad_ver,dl->ad_fn);
X  	fprintf(outfile,"%% ** Include Procset From File: %s **\n",dl->ad_fn);
X! 	ListProcSet(dl->ad_fn, dictdir, outfile, 1);
X  	fprintf(outfile,"%% ** End of ProcSet **\n");
X  	dl = NULL;		/* close off */
X        } else
X***************
X*** 697,703 ****
X  	NewStatus(status);
X  	fprintf(stderr,"lwsrv: simple: Using ProcSet %s = %s\n",ver,dl->ad_fn);
X  	fprintf(outfile,"%% ** Prepending ProcSet from: %s **\n",dl->ad_fn);
X! 	ListProcSet(dl->ad_fn, dictdir, outfile); /* prepend appledict */
X  	fprintf(outfile,"%% ** End of ProcSet **\n");
X        }
X      } else {
X--- 697,703 ----
X  	NewStatus(status);
X  	fprintf(stderr,"lwsrv: simple: Using ProcSet %s = %s\n",ver,dl->ad_fn);
X  	fprintf(outfile,"%% ** Prepending ProcSet from: %s **\n",dl->ad_fn);
X! 	ListProcSet(dl->ad_fn, dictdir, outfile, 1); /* prepend appledict */
X  	fprintf(outfile,"%% ** End of ProcSet **\n");
X        }
X      } else {
X*** README.orig		Wed May  8 20:51:56 1991
X--- README		Wed May  8 20:52:04 1991
X***************
X*** 3,9 ****
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.0, Patch Level 7, May 1991
X  
X  Introduction
X  ------------
X--- 3,9 ----
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.0, Patch Level 8, May 1991
X  
X  Introduction
X  ------------
END_OF_FILE
if test 5840 -ne `wc -c <'cap60.patch008'`; then
    echo shar: \"'cap60.patch008'\" unpacked with wrong size!
fi
# end of 'cap60.patch008'
fi
if test -f 'cap60.patch009' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'cap60.patch009'\"
else
echo shar: Extracting \"'cap60.patch009'\" \(6387 characters\)
sed "s/^X//" >'cap60.patch009' <<'END_OF_FILE'
XPatch #:	9
XType:		upgrade
XPriority:	high
XAffects:	printing with LaserWriter drivers 6.1, 6.2 and 7.0 (?)
XReported:	Dave Platt <dplatt@ntg.com>
XArchived:	munnari.OZ.AU	mac/cap.patches/cap60.patch009
XSummary:	Cope with multiple procsets per print job
XFile:		cap60/applications/lwsrv/procset.c
XFile:		cap60/applications/lwsrv/procset.h
XFile:		cap60/applications/lwsrv/simple.c
X
X*** applications/lwsrv/procset.c.orig	Tue May  7 19:04:49 1991
X--- applications/lwsrv/procset.c	Tue May  7 19:19:58 1991
X***************
X*** 1,6 ****
X! static char rcsid[] = "$Author: djh $ $Date: 1991/05/06 16:05:38 $";
X! static char rcsident[] = "$Header: /mac/src/cap60/applications/lwsrv/RCS/procset.c,v 2.2 1991/05/06 16:05:38 djh Exp djh $";
X! static char revision[] = "$Revision: 2.2 $";
X  
X  /*
X   * procset - UNIX AppleTalk spooling program: act as a laserwriter
X--- 1,6 ----
X! static char rcsid[] = "$Author: djh $ $Date: 1991/05/07 09:19:15 $";
X! static char rcsident[] = "$Header: /mac/src/cap60/applications/lwsrv/RCS/procset.c,v 2.3 1991/05/07 09:19:15 djh Exp djh $";
X! static char revision[] = "$Revision: 2.3 $";
X  
X  /*
X   * procset - UNIX AppleTalk spooling program: act as a laserwriter
X***************
X*** 68,74 ****
X--- 68,82 ----
X    return(NULL);
X  }
X  
X+ void ClearProcSetsSent()
X+ {
X+   DictList *dl;
X  
X+   for (dl = dicthead; dl != (DictList *) NULL; dl = dl->ad_next) {
X+     dl->ad_sent = FALSE;
X+   }
X+ }
X+ 
X  /*
X   * checks if the file is there and should be readable
X   *
X***************
X*** 175,180 ****
X--- 183,189 ----
X      }
X      dl->ad_ver = strdup(psn);		/* remember proc set name */
X      dl->ad_fn = strdup(dp->d_name);	/* remember file name */
X+     dl->ad_sent = FALSE;
X  baddict:
X      free(dp);
X    }
X*** applications/lwsrv/procset.h.orig	Tue May  7 19:09:19 1991
X--- applications/lwsrv/procset.h	Tue May  7 19:20:48 1991
X***************
X*** 1,6 ****
X! /* "$Author: djh $ $Date: 91/02/15 21:15:06 $" */
X! /* "$Header: procset.h,v 2.1 91/02/15 21:15:06 djh Rel $" */
X! /* "$Revision: 2.1 $" */
X  
X  /*
X   * procset - UNIX AppleTalk spooling program: act as a laserwriter
X--- 1,6 ----
X! /* "$Author: djh $ $Date: 1991/05/07 09:20:28 $" */
X! /* "$Header: /mac/src/cap60/applications/lwsrv/RCS/procset.h,v 2.2 1991/05/07 09:20:28 djh Exp djh $" */
X! /* "$Revision: 2.2 $" */
X  
X  /*
X   * procset - UNIX AppleTalk spooling program: act as a laserwriter
X***************
X*** 21,28 ****
X--- 21,30 ----
X    struct Dict_List *ad_next;		/* pointer to next */
X    char *ad_fn;				/* the file name */
X    char *ad_ver;				/* the version number */
X+   int ad_sent;				/* downloaded during this job? */
X  } DictList;
X  
X  DictList *GetProcSet();		/* DictList *GetProcSet(char *) */
X+ void ClearProcSetsSent();
X  void newdictionary();		/* void newdictionary(DictList *) */
X  void ListProcSet();
X*** applications/lwsrv/simple.c.orig	Tue May  7 19:13:01 1991
X--- applications/lwsrv/simple.c		Tue May  7 19:20:50 1991
X***************
X*** 1,6 ****
X! static char rcsid[] = "$Author: djh $ $Date: 1991/05/06 16:05:38 $";
X! static char rcsident[] = "$Header: /mac/src/cap60/applications/lwsrv/RCS/simple.c,v 2.2 1991/05/06 16:05:38 djh Exp djh $";
X! static char revision[] = "$Revision: 2.2 $";
X  
X  /*
X   * lwsrv - UNIX AppleTalk spooling program: act as a laserwriter
X--- 1,6 ----
X! static char rcsid[] = "$Author: djh $ $Date: 1991/05/07 09:20:28 $";
X! static char rcsident[] = "$Header: /mac/src/cap60/applications/lwsrv/RCS/simple.c,v 2.3 1991/05/07 09:20:28 djh Exp djh $";
X! static char revision[] = "$Revision: 2.3 $";
X  
X  /*
X   * lwsrv - UNIX AppleTalk spooling program: act as a laserwriter
X***************
X*** 511,519 ****
X        echo = FALSE;
X        stripspaces(ts);			/* clear off extra spaces */
X        if ((dl = GetProcSet(ts)) != NULL) {
X! 	fprintf(stderr, "lwsrv: simple: procset already known\n");
X  	break;
X        }
X  #ifdef xenix5
X        sprintf(tmpstr, "%s/Found.%d",dictdir,time(0));
X  #else xenix5
X--- 511,520 ----
X        echo = FALSE;
X        stripspaces(ts);			/* clear off extra spaces */
X        if ((dl = GetProcSet(ts)) != NULL) {
X! 	fprintf(stderr, "lwsrv: simple: procset %s already known\n", ts);
X  	break;
X        }
X+       sleep(1); /* raise odds of unique timestamp */
X  #ifdef xenix5
X        sprintf(tmpstr, "%s/Found.%d",dictdir,time(0));
X  #else xenix5
X***************
X*** 533,538 ****
X--- 534,540 ----
X  	dl->ad_ver = strdup(ts);
X  	dl->ad_fn = strdup(tmpstr+strlen(dictdir)+1);
X  	dl->ad_next = NULL;
X+ 	dl->ad_sent = FALSE;
X  	fprintf(procsetfile, "%%%%BeginProcSet: %s\n", ts);
X        }
X        /* copy from BPS to end into file or memory */
X***************
X*** 552,558 ****
X  	newdictionary(dlnew);
X  	dlnew = NULL;		/* close off */
X        }
X!       if (dl) {
X  	fprintf(stderr,
X  		((adobe_dsc2_conformant) ?
X  		 "lwsrv: simple: dsc2: document supplied procset %s = %s\n" :
X--- 554,560 ----
X  	newdictionary(dlnew);
X  	dlnew = NULL;		/* close off */
X        }
X!       if (dl && !dl->ad_sent) {
X  	fprintf(stderr,
X  		((adobe_dsc2_conformant) ?
X  		 "lwsrv: simple: dsc2: document supplied procset %s = %s\n" :
X***************
X*** 561,566 ****
X--- 563,569 ----
X  	fprintf(outfile,"%% ** Procset From File: %s **\n",dl->ad_fn);
X  	ListProcSet(dl->ad_fn, dictdir, outfile, 0);
X  	fprintf(outfile,"%% ** End of ProcSet **\n");
X+ 	dl->ad_sent = TRUE;
X        }
X        dl = NULL;		/* Close off */
X        break;
X***************
X*** 649,654 ****
X--- 652,658 ----
X    }
X    if (procsetfile) {
X      fclose(procsetfile);
X+     procsetfile = NULL;
X      if (dlnew) {
X        unlink(dlnew->ad_fn);
X        free(dlnew->ad_fn);	/* free fn */
X***************
X*** 699,704 ****
X--- 703,709 ----
X  	fprintf(outfile,"%% ** Prepending ProcSet from: %s **\n",dl->ad_fn);
X  	ListProcSet(dl->ad_fn, dictdir, outfile, 1); /* prepend appledict */
X  	fprintf(outfile,"%% ** End of ProcSet **\n");
X+ 	dl->ad_sent = TRUE;
X        }
X      } else {
X        fprintf(stderr,"lwsrv: simple: Unknown ProcSet file for '%s'\n",ver);
X*** README.orig		Wed May  8 20:52:53 1991
X--- README		Wed May  8 20:53:05 1991
X***************
X*** 3,9 ****
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.0, Patch Level 8, May 1991
X  
X  Introduction
X  ------------
X--- 3,9 ----
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.0, Patch Level 9, May 1991
X  
X  Introduction
X  ------------
END_OF_FILE
if test 6387 -ne `wc -c <'cap60.patch009'`; then
    echo shar: \"'cap60.patch009'\" unpacked with wrong size!
fi
# end of 'cap60.patch009'
fi
if test -f 'cap60.patch010' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'cap60.patch010'\"
else
echo shar: Extracting \"'cap60.patch010'\" \(3966 characters\)
sed "s/^X//" >'cap60.patch010' <<'END_OF_FILE'
XPatch #:	10
XType:		bug fix
XPriority:	medium
XAffects:	sites periodically deleting lwsrv log file
XReported:	Rakesh Patel <rapatel@khnphwzhn.njin.net>
XArchived:	munnari.OZ.AU	mac/cap.patches/cap60.patch010
XSummary:	log file only opened once at startup
XFile:		cap60/applications/lwsrv/lwsrv.c
X
X*** applications/lwsrv/lwsrv.c.orig	Tue May  7 23:45:03 1991
X--- applications/lwsrv/lwsrv.c		Wed May  8 00:09:59 1991
X***************
X*** 1,6 ****
X! static char rcsid[] = "$Author: djh $ $Date: 1991/05/06 15:03:58 $";
X! static char rcsident[] = "$Header: /mac/src/cap60/applications/lwsrv/RCS/lwsrv.c,v 2.4 1991/05/06 15:03:58 djh Exp djh $";
X! static char revision[] = "$Revision: 2.4 $";
X  
X  /*
X   * lwsrv - UNIX AppleTalk spooling program: act as a laserwriter
X--- 1,6 ----
X! static char rcsid[] = "$Author: djh $ $Date: 1991/05/07 14:09:39 $";
X! static char rcsident[] = "$Header: /mac/src/cap60/applications/lwsrv/RCS/lwsrv.c,v 2.5 1991/05/07 14:09:39 djh Exp djh $";
X! static char revision[] = "$Revision: 2.5 $";
X  
X  /*
X   * lwsrv - UNIX AppleTalk spooling program: act as a laserwriter
X***************
X*** 280,285 ****
X--- 280,312 ----
X  	exit(0);
X  }
X  
X+ openlogfile()
X+ {
X+     int i;
X+ 
X+     if (logfile != NULL) {
X+       if ((i = open(logfile,O_WRONLY|O_APPEND)) < 0)
X+ 	i = creat(logfile,0666);
X+       if (i != 2) {
X+ #ifndef NODUP2
X+ 	(void) dup2(i,2);
X+ #else   NODUP2
X+ 	close(2);			/* try again */
X+ 	(void) dup(0);			/* for slot 2 */
X+ #endif  NODUP2
X+ 	(void) close(i);
X+       }
X+ #ifdef LWSRV_LPR_LOG	/* Set up logfile to be also stdout/stderr for lpr */
X+ #ifdef NODUP2
X+       close(1);
X+       dup(2);
X+ #else  NODUP2
X+       dup2 (2, 1);
X+ #endif NODUP2
X+ #endif LWSRV_LPR_LOG
X+     }
X+ }
X+ 
X  main(argc,argv)
X  int argc;
X  char **argv;
X***************
X*** 322,348 ****
X  #else   NODUP2
X        (void) dup(0);			/* for slot 2 */
X  #endif  NODUP2
X!     } else {
X!       if ((i = open(logfile,O_WRONLY|O_APPEND)) < 0)
X! 	i = creat(logfile,0666);
X!       if (i != 2) {
X! #ifndef NODUP2
X! 	(void) dup2(i,2);
X! #else   NODUP2
X! 	close(2);			/* try again */
X! 	(void) dup(0);			/* for slot 2 */
X! #endif  NODUP2
X! 	(void) close(i);
X!       }
X! #ifdef LWSRV_LPR_LOG	/* Set up logfile to be also stdout/stderr for lpr */
X! #ifdef NODUP2
X!       close(1);
X!       dup(2);
X! #else  NODUP2
X!       dup2 (2, 1);
X! #endif NODUP2
X! #endif LWSRV_LPR_LOG
X!     }
X  #ifdef TIOCNOTTY
X      if ((i = open("/dev/tty",2)) > 0) {
X        ioctl(i, TIOCNOTTY,(char *) 0);
X--- 349,356 ----
X  #else   NODUP2
X        (void) dup(0);			/* for slot 2 */
X  #endif  NODUP2
X!     } else
X!       openlogfile();
X  #ifdef TIOCNOTTY
X      if ((i = open("/dev/tty",2)) > 0) {
X        ioctl(i, TIOCNOTTY,(char *) 0);
X***************
X*** 388,393 ****
X--- 396,402 ----
X  #ifdef LWSRV_AUFS_SECURITY
X      AddrBlock addr;			/* budd */
X  #endif LWSRV_AUFS_SECURITY
X+     openlogfile();
X      NewStatus("idle");
X      err = GetNextJob(srefnum, &cno, &rcomp);
X      if (err != noErr) {
X***************
X*** 472,477 ****
X--- 481,488 ----
X  #endif LWSRV_AUFS_SECURITY
X  
X      if (!singlefork) {
X+       if (logfile != NULL)
X+ 	close(2);		/* close log file */
X        if (fork() != 0) {
X  	PAPShutdown(cno);	/* kill off connection */
X  	continue;
X***************
X*** 481,486 ****
X--- 492,498 ----
X      } else NewStatus("busy, processing job");
X      /* need for multi-forking, nice for single forking */
X      /* handle the connection in cno */
X+     openlogfile();
X      signal(SIGCHLD,SIG_IGN);
X      childjob(p_opn(cno, BUFMAX)); 
X      if (!singlefork)
X*** README.orig		Wed May  8 20:53:43 1991
X--- README		Wed May  8 20:53:57 1991
X***************
X*** 3,9 ****
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.0, Patch Level 9, May 1991
X  
X  Introduction
X  ------------
X--- 3,9 ----
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.0, Patch Level 10, May 1991
X  
X  Introduction
X  ------------
END_OF_FILE
if test 3966 -ne `wc -c <'cap60.patch010'`; then
    echo shar: \"'cap60.patch010'\" unpacked with wrong size!
fi
# end of 'cap60.patch010'
fi
if test -f 'cap60.patch011' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'cap60.patch011'\"
else
echo shar: Extracting \"'cap60.patch011'\" \(6212 characters\)
sed "s/^X//" >'cap60.patch011' <<'END_OF_FILE'
XPatch #:	11
XType:		bug fix
XPriority:	medium
XAffects:	sites requiring non-standard source locations etc.
XReported:	Hitoshi AIDA <aida@escargot.t.u-tokyo.ac.jp>
XReported:	Rakesh Patel <rapatel@khnphwzhn.njin.net>
XReported:	Gilbert Taylor-Wood <gtw@extro.ucc.su.OZ.AU>
XReported:	JQ Johnson <jqj@duff.uoregon.edu>
XArchived:	munnari.OZ.AU	mac/cap.patches/cap60.patch011
XSummary:	hard-coded filenames, abetalk.o not deleted at cleanup
XFile:		cap60/Configure
XFile:		cap60/lib/cap/Makefile.m4
XFile:		cap60/support/uab/Makefile.m4
X
X*** Configure.orig	Wed May  8 02:20:46 1991
X--- Configure		Wed May  8 03:33:17 1991
X***************
X*** 1,7 ****
X  #!/bin/sh
X! # $Author: djh $ $Date: 91/03/13 19:31:17 $
X! # $Header: Configure,v 2.2 91/03/13 19:31:17 djh Exp $
X! # $Revision: 2.2 $
X  # CAP configuration shell script.  This ain't perfect, but it's a start.
X  # Execute with /bin/sh Configure if your system won't run it (ksh is okay too)
X  # 
X--- 1,7 ----
X  #!/bin/sh
X! # $Author: djh $ $Date: 1991/05/07 17:32:55 $
X! # $Header: /mac/src/cap60/RCS/Configure,v 2.3 1991/05/07 17:32:55 djh Exp djh $
X! # $Revision: 2.3 $
X  # CAP configuration shell script.  This ain't perfect, but it's a start.
X  # Execute with /bin/sh Configure if your system won't run it (ksh is okay too)
X  # 
X***************
X*** 756,761 ****
X--- 756,762 ----
X  # MINOR CONFIGURATION: configure various programs
X  
X  #define([columbia],1) # so columbia can do things quickly
X+ #define([rutgers],1) # so rutgers can do things quickly
X  #define([debug],1) # testing things (without disrupting)
X  
X  # location of include files
X***************
X*** 771,776 ****
X--- 772,778 ----
X  define([capsrvrdestdir],[[/usr/local/cap]])
X  # location of some cap data files
X  define([caplibdestdir],[[/usr/local/lib/cap]])
X+ ifdef([rutgers],[define([caplibdestdir],[[/usr/local/cap/lib]])])
X  # location of cap libraries
X  define([libdestdir],[[/usr/local/lib]])
X  # override for aux (doesn't search /usr/local/lib)
X***************
X*** 842,848 ****
X  #
X  # lwrename: set name of file containing list of printers to be renamed
X  #
X! define([lwrenamefile],[[\"/usr/local/lib/cap/lwrename.list\"]])
X  
X  #
X  # papif: see applications/papif/README
X--- 844,850 ----
X  #
X  # lwrename: set name of file containing list of printers to be renamed
X  #
X! define([lwrenamefile],concat([\"],caplibdestdir,[/lwrename.list\"]))
X  
X  #
X  # papif: see applications/papif/README
X***************
X*** 893,899 ****
X  
X  # for cap.printers - uncomment and change the following line to point
X  # papif, et. al. to a location other than /etc/cap.printers.  (Note:
X! # line below would set it to $etcdir/cap.printers)
X  # define([capprinters],concat([\"],etcdest,[/],[cap.printers],[\"]))
X  ifdef([columbia],
X         [define([capprinters],concat([\"],etcdest,[/],[cap.printers],[\"]))])
X--- 895,901 ----
X  
X  # for cap.printers - uncomment and change the following line to point
X  # papif, et. al. to a location other than /etc/cap.printers.  (Note:
X! # line below would set it to $etcdest/cap.printers)
X  # define([capprinters],concat([\"],etcdest,[/],[cap.printers],[\"]))
X  ifdef([columbia],
X         [define([capprinters],concat([\"],etcdest,[/],[cap.printers],[\"]))])
X***************
X*** 901,906 ****
X--- 903,909 ----
X  # (probably shouldn't).  Remember that atalk.local is expected to
X  # be in etcdest
X  define([atalklocal],concat([\"],etcdest,[/],[atalk.local],[\"]))
X+ define([etalklocal],concat([\"],etcdest,[/],[etalk.local],[\"]))
X  define([configdir],concat([\"],etcdest,[\"]))
X  
X  # in case you want to globally change the c compiler
X***************
X*** 1050,1055 ****
X--- 1053,1059 ----
X   define([capprinters],concat([\"],etcdest,[/],[cap.printers],[\"]))
X   define([cflags],concat(cflags,[ -I],includedir))
X   define([atalklocal],concat([\"],etcdest,[/],[atalk.local],[\"]))
X+  define([etalklocal],concat([\"],etcdest,[/],[etalk.local],[\"]))
X   define([configdir],concat([\"],etcdest,[\"]))
X  ])
X  
X*** lib/cap/Makefile.m4.orig	Wed May  8 03:38:20 1991
X--- lib/cap/Makefile.m4		Wed May  8 04:03:49 1991
X***************
X*** 48,54 ****
X  
X  abetalk.o:
X  	(cd ../../support/ethertalk; make abetalk.o)
X! 	cp ../../support/ethertalk/abetalk.o abetalk.o
X  
X  abmkip.o:       abkip.c		${DEPENDS} $I/netat/abnbp.h $I/netat/compat.h
X  	cp abkip.c abmkip.c
X--- 48,54 ----
X  
X  abetalk.o:
X  	(cd ../../support/ethertalk; make abetalk.o)
X! 	mv ../../support/ethertalk/abetalk.o abetalk.o
X  
X  abmkip.o:       abkip.c		${DEPENDS} $I/netat/abnbp.h $I/netat/compat.h
X  	cp abkip.c abmkip.c
X***************
X*** 56,62 ****
X  	/bin/rm abmkip.c
X  
X  atalkdbm.o:     atalkdbm.c	${DEPENDS}
X! 	${CC} ${CFLAGS} -DTAB=atalklocal() -DCONFIGDIR=configdir() -c atalkdbm.c
X  
X  authenticate.o:	authenticate.c	${DEPENDS}
X  	${CC} ${CFLAGS} -DAUTHCONFIG=${AUTHCONFIG} -c authenticate.c
X--- 56,63 ----
X  	/bin/rm abmkip.c
X  
X  atalkdbm.o:     atalkdbm.c	${DEPENDS}
X! 	${CC} ${CFLAGS} -DTAB=atalklocal() -DETAB=etalklocal() \
X! 		-DCONFIGDIR=configdir() -c atalkdbm.c
X  
X  authenticate.o:	authenticate.c	${DEPENDS}
X  	${CC} ${CFLAGS} -DAUTHCONFIG=${AUTHCONFIG} -c authenticate.c
X*** support/uab/Makefile.m4.orig	Wed May  8 03:40:33 1991
X--- support/uab/Makefile.m4		Wed May  8 03:43:18 1991
X***************
X*** 25,31 ****
X  		[${INSTALLER} uab ${DESTDIR}])
X  
X  kip_mpx.o: kip_mpx.c mpxddp.h gw.h node.h ddpport.h
X! 	cc -c ${CFLAGS} kip_mpx.c
X  
X  uab.o: uab.c mpxddp.h gw.h node.h ddpport.h if_desc.h
X  	cc -c ${CFLAGS} -DUAB_PIDFILE=\"/usr/local/lib/cap/uab.pid\" \
X--- 25,31 ----
X  		[${INSTALLER} uab ${DESTDIR}])
X  
X  kip_mpx.o: kip_mpx.c mpxddp.h gw.h node.h ddpport.h
X! 	cc -c ${CFLAGS} -DTAB=etalklocal() -DMTAB=etalklocal() kip_mpx.c
X  
X  uab.o: uab.c mpxddp.h gw.h node.h ddpport.h if_desc.h
X  	cc -c ${CFLAGS} -DUAB_PIDFILE=\"/usr/local/lib/cap/uab.pid\" \
X*** README.orig		Wed May  8 20:54:23 1991
X--- README		Wed May  8 20:54:36 1991
X***************
X*** 3,9 ****
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.0, Patch Level 10, May 1991
X  
X  Introduction
X  ------------
X--- 3,9 ----
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.0, Patch Level 11, May 1991
X  
X  Introduction
X  ------------
END_OF_FILE
if test 6212 -ne `wc -c <'cap60.patch011'`; then
    echo shar: \"'cap60.patch011'\" unpacked with wrong size!
fi
# end of 'cap60.patch011'
fi
if test -f 'cap60.patch012' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'cap60.patch012'\"
else
echo shar: Extracting \"'cap60.patch012'\" \(1595 characters\)
sed "s/^X//" >'cap60.patch012' <<'END_OF_FILE'
XPatch #:	12
XType:		bug fix
XPriority:	medium
XAffects:	sites using LWSRV_AUFS_SECURITY feature
XReported:	Gilbert Taylor-Wood <gtw@extro.ucc.su.OZ.AU>
XArchived:	munnari.OZ.AU	mac/cap.patches/cap60.patch012
XSummary:	need to cleanup auth-file entries if server dies
XFile:		cap60/applications/aufs/aufs.c
X
X*** applications/aufs/aufs.c.orig	Wed May  8 20:10:45 1991
X--- applications/aufs/aufs.c		Wed May  8 20:21:05 1991
X***************
X*** 1,7 ****
X  /*
X!  * $Author: djh $ $Date: 91/03/14 20:00:16 $
X!  * $Header: aufs.c,v 2.2 91/03/14 20:00:16 djh Exp $
X!  * $Revision: 2.2 $
X  */
X  
X  /*
X--- 1,7 ----
X  /*
X!  * $Author: djh $ $Date: 1991/05/08 10:20:39 $
X!  * $Header: /mac/src/cap60/applications/aufs/RCS/aufs.c,v 2.3 1991/05/08 10:20:39 djh Exp djh $
X!  * $Revision: 2.3 $
X  */
X  
X  /*
X***************
X*** 1077,1082 ****
X--- 1077,1085 ----
X    /* Try closing just in case */
X    SPCloseSession(cno, 3, 2, &comp); /* 3 times, .5 seconds */
X    while (comp > 0) { abSleep(30, TRUE); } /* close down if we can */
X+ #ifdef LWSRV_AUFS_SECURITY
X+   clearuserlogin(); /* gtw: delete auth-file entry for dead users */
X+ #endif LWSRV_AUFS_SECURITY
X    exit(0);
X  }
X  
X*** README.orig		Wed May  8 20:55:13 1991
X--- README		Wed May  8 20:55:21 1991
X***************
X*** 3,9 ****
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.0, Patch Level 11, May 1991
X  
X  Introduction
X  ------------
X--- 3,9 ----
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.0, Patch Level 12, May 1991
X  
X  Introduction
X  ------------
END_OF_FILE
if test 1595 -ne `wc -c <'cap60.patch012'`; then
    echo shar: \"'cap60.patch012'\" unpacked with wrong size!
fi
# end of 'cap60.patch012'
fi
if test -f 'cap60.patch013' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'cap60.patch013'\"
else
echo shar: Extracting \"'cap60.patch013'\" \(2623 characters\)
sed "s/^X//" >'cap60.patch013' <<'END_OF_FILE'
XPatch #:	13
XType:		bug fix
XPriority:	medium
XAffects:	use of the man keyword flag (-k)
XReported:	Dan Kegel <dank@jpl.nasa.gov>
XArchived:	munnari.OZ.AU	mac/cap.patches/cap60.patch013
XSummary:	formatting commands not advisable for .SH NAME entries
XFile:		cap60/man/AUFS.1
XFile:		cap60/man/AUFS.8
XFile:		cap60/man/UAB.8
XFile:		cap60/man/atprint.1
X
X*** man/AUFS.1.orig	Wed May  8 21:16:08 1991
X--- man/AUFS.1		Wed May  8 21:20:52 1991
X***************
X*** 1,6 ****
X  .TH AUFS 1 "20 Jun 1990" "Columbia University"
X  .SH NAME
X! .B aufs 
X  \- AppleTalk file protocol UNIX File Server
X  .SH SYNOPSIS
X  AUFS is an implementation of a file server on a UNIX host connected
X--- 1,6 ----
X  .TH AUFS 1 "20 Jun 1990" "Columbia University"
X  .SH NAME
X! aufs 
X  \- AppleTalk file protocol UNIX File Server
X  .SH SYNOPSIS
X  AUFS is an implementation of a file server on a UNIX host connected
X*** man/AUFS.8.orig	Wed May  8 21:16:44 1991
X--- man/AUFS.8		Wed May  8 21:22:24 1991
X***************
X*** 1,6 ****
X  .TH aufs 8 "21 June 1990" "Columbia University"
X  .SH NAME
X! .B aufs
X  \- daemon program to establish AppleTalk filing protocol UNIX File Server
X  .SH SYNOPSIS
X  .B aufs 
X--- 1,6 ----
X  .TH aufs 8 "21 June 1990" "Columbia University"
X  .SH NAME
X! aufs
X  \- daemon program to establish AppleTalk filing protocol UNIX File Server
X  .SH SYNOPSIS
X  .B aufs 
X*** man/UAB.8.orig	Wed May  8 21:17:14 1991
X--- man/UAB.8		Wed May  8 21:23:01 1991
X***************
X*** 1,6 ****
X  .TH uab 8
X  .SH NAME
X! .I uab
X  \- Unix AppleTalk Bridge
X  .SH SYNTAX
X  .I uab
X--- 1,6 ----
X  .TH uab 8
X  .SH NAME
X! uab
X  \- Unix AppleTalk Bridge
X  .SH SYNTAX
X  .I uab
X*** man/atprint.1.orig	Wed May  8 21:17:53 1991
X--- man/atprint.1	Wed May  8 21:23:03 1991
X***************
X*** 1,6 ****
X! .TH "AppleTalk Printing" 1 "20 June 1990" "Columbia University"
X  .SH NAME
X- .B
X  lwpr, iwpr, tlw, papif, lwsrv, isrv 
X  \- UNIX access to AppleTalk printers and UNIX print spoolers for AppleTalk
X  .SH DESCRIPTION
X--- 1,5 ----
X! .TH AppleTalkPrinting 1 "20 June 1990" "Columbia University"
X  .SH NAME
X  lwpr, iwpr, tlw, papif, lwsrv, isrv 
X  \- UNIX access to AppleTalk printers and UNIX print spoolers for AppleTalk
X  .SH DESCRIPTION
X*** README.orig		Wed May  8 21:47:05 1991
X--- README		Wed May  8 21:47:26 1991
X***************
X*** 3,9 ****
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.0, Patch Level 12, May 1991
X  
X  Introduction
X  ------------
X--- 3,9 ----
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.0, Patch Level 13, May 1991
X  
X  Introduction
X  ------------
END_OF_FILE
if test 2623 -ne `wc -c <'cap60.patch013'`; then
    echo shar: \"'cap60.patch013'\" unpacked with wrong size!
fi
# end of 'cap60.patch013'
fi
if test -f 'cap60.patch014' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'cap60.patch014'\"
else
echo shar: Extracting \"'cap60.patch014'\" \(1527 characters\)
sed "s/^X//" >'cap60.patch014' <<'END_OF_FILE'
XPatch #:	14
XType:		update
XPriority:	low/medium
XAffects:	users of contrib/AufsTools utilities
XReported:	Rakesh Patel <rapatel@khnphwzhn.njin.net>
XArchived:	munnari.OZ.AU	mac/cap.patches/cap60.patch014
XSummary:	add <netinet/in.h> for Pyramid
XFile:		cap60/contrib/AufsTools/mcvert/mactypes.h
XFile:		cap60/contrib/AufsTools/capit/capit.c
X
X*** contrib/AufsTools/mcvert/mactypes.h.orig	Thu May  9 00:15:22 1991
X--- contrib/AufsTools/mcvert/mactypes.h		Thu May  9 00:16:13 1991
X***************
X*** 3,8 ****
X--- 3,9 ----
X  #include <sys/dir.h>
X  #include <sys/stat.h>
X  #include <sys/timeb.h>
X+ #include <netinet/in.h>
X  
X  /* Useful, though not particularly Mac related, values */
X  typedef unsigned char byte;     /* one byte, obviously */
X*** contrib/AufsTools/capit/capit.c.orig	Thu May  9 00:16:54 1991
X--- contrib/AufsTools/capit/capit.c		Thu May  9 00:17:18 1991
X***************
X*** 22,27 ****
X--- 22,28 ----
X  #include <sys/types.h>
X  #include <sys/dir.h>
X  #include <strings.h>
X+ #include <netinet/in.h>
X  
X  #define BSIZE	(128)	/* size of blocks in MacBinary file */
X  typedef long	int4;
X*** README.orig		Thu May  9 00:24:41 1991
X--- README		Thu May  9 00:24:55 1991
X***************
X*** 3,9 ****
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.0, Patch Level 13, May 1991
X  
X  Introduction
X  ------------
X--- 3,9 ----
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.0, Patch Level 14, May 1991
X  
X  Introduction
X  ------------
END_OF_FILE
if test 1527 -ne `wc -c <'cap60.patch014'`; then
    echo shar: \"'cap60.patch014'\" unpacked with wrong size!
fi
# end of 'cap60.patch014'
fi
if test -f 'cap60.patch015' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'cap60.patch015'\"
else
echo shar: Extracting \"'cap60.patch015'\" \(3660 characters\)
sed "s/^X//" >'cap60.patch015' <<'END_OF_FILE'
XPatch #:	15
XType:		bug fix
XPriority:	medium
XAffects:	sites requiring non-standard source locations Mk II
XReported:	William Roberts <liam@dcs.qmw.ac.uk>
XArchived:	munnari.OZ.AU	mac/cap.patches/cap60.patch015
XSummary:	hard-coded file names
XFile:		cap60/Configure
XFile:		cap60/support/uab/Makefile.m4
XFile:		cap60/support/uab/README
X
X*** Configure.orig	Thu May  9 21:19:33 1991
X--- Configure		Thu May  9 21:37:59 1991
X***************
X*** 1,7 ****
X  #!/bin/sh
X! # $Author: djh $ $Date: 1991/05/07 17:32:55 $
X! # $Header: /mac/src/cap60/RCS/Configure,v 2.3 1991/05/07 17:32:55 djh Exp djh $
X! # $Revision: 2.3 $
X  # CAP configuration shell script.  This ain't perfect, but it's a start.
X  # Execute with /bin/sh Configure if your system won't run it (ksh is okay too)
X  # 
X--- 1,7 ----
X  #!/bin/sh
X! # $Author: djh $ $Date: 1991/05/09 11:36:18 $
X! # $Header: /mac/src/cap60/RCS/Configure,v 2.4 1991/05/09 11:36:18 djh Exp djh $
X! # $Revision: 2.4 $
X  # CAP configuration shell script.  This ain't perfect, but it's a start.
X  # Execute with /bin/sh Configure if your system won't run it (ksh is okay too)
X  # 
X***************
X*** 905,910 ****
X--- 905,912 ----
X  define([atalklocal],concat([\"],etcdest,[/],[atalk.local],[\"]))
X  define([etalklocal],concat([\"],etcdest,[/],[etalk.local],[\"]))
X  define([configdir],concat([\"],etcdest,[\"]))
X+ define([uabpidfile],concat([\"],caplibdestdir,[/],[uab.pid],[\"]))
X+ define([uabbrdescr],concat([\"],caplibdestdir,[/],[bridge_desc],[\"]))
X  
X  # in case you want to globally change the c compiler
X  EOT3
X*** support/uab/Makefile.m4.orig	Thu May  9 21:31:38 1991
X--- support/uab/Makefile.m4		Thu May  9 21:39:01 1991
X***************
X*** 28,35 ****
X  	cc -c ${CFLAGS} -DTAB=etalklocal() -DMTAB=etalklocal() kip_mpx.c
X  
X  uab.o: uab.c mpxddp.h gw.h node.h ddpport.h if_desc.h
X! 	cc -c ${CFLAGS} -DUAB_PIDFILE=\"/usr/local/lib/cap/uab.pid\" \
X! 		-DBRIDGE_DESC=\"/usr/local/lib/cap/bridge_desc\" uab.c
X  
X  lint:
X  	lint -h uab.c ${SRCS}
X--- 28,35 ----
X  	cc -c ${CFLAGS} -DTAB=etalklocal() -DMTAB=etalklocal() kip_mpx.c
X  
X  uab.o: uab.c mpxddp.h gw.h node.h ddpport.h if_desc.h
X! 	cc -c ${CFLAGS} -DUAB_PIDFILE=uabpidfile() \
X! 			-DBRIDGE_DESC=uabbrdescr() uab.c
X  
X  lint:
X  	lint -h uab.c ${SRCS}
X*** support/uab/README.orig	Thu May  9 21:45:06 1991
X--- support/uab/README		Thu May  9 21:46:59 1991
X***************
X*** 38,44 ****
X  libraries will be set up for UAB use and UAB will be compiled and installed
X  automatically (in /usr/local/cap by default).
X  
X! YOU MUST STILL MANUALLY EDIT AND INSTALL THE FILE "bridge_desc" in /etc
X  
X  The file /etc/etalk.local is written by UAB when it discovers sufficient
X  information about the connected networks. CAP programs will use this
X--- 38,46 ----
X  libraries will be set up for UAB use and UAB will be compiled and installed
X  automatically (in /usr/local/cap by default).
X  
X! YOU MUST STILL MANUALLY EDIT AND INSTALL THE FILE "bridge_desc" (by default
X! this file is in /usr/local/lib/cap, unless the 'caplibdestdir' variable is
X! modified [for example, to "/etc/"] in m4.setup).
X  
X  The file /etc/etalk.local is written by UAB when it discovers sufficient
X  information about the connected networks. CAP programs will use this
X*** README.orig		Thu May  9 21:40:11 1991
X--- README		Thu May  9 21:40:36 1991
X***************
X*** 3,9 ****
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.0, Patch Level 14, May 1991
X  
X  Introduction
X  ------------
X--- 3,9 ----
X  	       (For use with AppleTalk/Ethernet bridge)
X  
X  	o RELEASE NOTES
X! 	o CAP Distribution 6.0, Patch Level 15, May 1991
X  
X  Introduction
X  ------------
END_OF_FILE
if test 3660 -ne `wc -c <'cap60.patch015'`; then
    echo shar: \"'cap60.patch015'\" unpacked with wrong size!
fi
# end of 'cap60.patch015'
fi
echo shar: End of shell archive.
exit 0