From: djh@cs.mu.OZ.AU (David Hornsby)
Subject: Re: CAP FAQ?
Organization: Computer Science, University of Melbourne, Australia
Date: Fri, 13 Nov 1992 05:41:09 GMT

CAP FAQ
-------
Last update:
Fri Nov 13 16:32:00 EST 1992


> What is CAP ?

The Columbia AppleTalk Package (CAP) implements the AppleTalk protocol
stack on a variety of UNIX machines.  The main applications provide an
AppleShare 2.0 compatible server (aufs), a LaserWriter Spooler (lwsrv)
and a program to print to LaserWriters (papif).  The latter can be used
to talk to EtherTalk LaserWriters, LocalTalk LaserWriters used on Dayna
EtherPrint cards or on a LocalTalk/EtherTalk gateway.  There are also a
number of contributed packages bundled with CAP (see cap60/contrib).


> What extra hardware is required for CAP ?

On a SUN or ULTRIX machine, CAP can speak Phase 1 or Phase 2 EtherTalk
packets using packet filters based on the Stanford ENET model.  Where
available, CAP can also use Kernel based AppleTalk or run the UNIX
AppleTalk Bridge (UAB) to act as a gateway.  On other UNIX boxes you
need to have a gateway that can translate IPTalk packets.  Suitable
candidates are Shiva FastPath, Cayman GatorBox or Webster MultiPort Gateway.


> What machines will CAP run on ?

The CAP Configure script has specific support for the following
Operating Systems:

	sunos - SUN SunOS
	ultrixnn - DEC Ultrix 1.2, 2.0, 4.N
	irix - Silicon Graphics IRIS/IRIX
	aix - IBM AIX System V
	hpux - HP HP-UX 8.0
	uts - Amdahl UTS
	aux - Apple A/UX 2.0
	encore - Encore MultiMax BSD
	pyr - Pyramid (BSD Universe)
	next - NeXT/MACH
	dynix - Sequent Balance
	newsos - Sony NEWS
	bsd - BSD 4.2, 4.3


> What is the current CAP version ?

CAP is at version 6.0 with (currently) 126 patches to be applied, most of
which add extra functionality to the original.  To determine the current
patch level of your sources, check the cap60/README file for a line of
the form

	o CAP Distribution 6.0, Patch Level 126, July 1992


> Where can I get CAP ?

CAP can be obtained by anonymous FTP from

rutgers.EDU		src/{cap60.tar.Z,cap60.patches/*}
munnari.OZ.AU		mac/{cap60.tar.Z,cap.patches/*}
gatekeeper.DEC.COM	pub/net/appletalk/cap/{cap60.tar.Z,cap.patches/*}
ftp.kuis.kyoto-u.AC.JP	net/cap/{cap60.tar.Z,cap60.patches/*.Z}
src.doc.ic.AC.UK	mac/multigate/{cap60.tar.Z,cap.patches/*}

Please choose an appropriate site and an off-peak time for the transfer.

The patches are available individually or as the files "patches.1-75.tar.Z",
"patches.76-100.tar.Z" and "patches.101-126.tar.Z". Additionally, for new
users, a partially patched source file is available as "cap60.pl100.tar.Z"
(beware: the file cap60.tar.Z is totally unpatched).


> How do I apply the patches ?

To make the process of patching easier, you should get the 'patch' utility
written by Larry Wall, it is normally archived at sites that archive
comp.sources.unix in volume7/patch2.

For each of the patches, run 'patch -p < cap60.patch0NN' from the top level
cap60 directory, for example, in csh

		foreach i (cap60.patches/cap60.patch*)
		patch -p < $i >>& /tmp/patches
		end

and check the /tmp/patches file for patching errors (should be none).
To remove the *.orig files that patch leaves behind (containing the original
version of the file), run 'make spotless' from the top level directory (note
that spotless also removes all makefiles so gen.makes needs to be run to
regenerate them).


> I picked up CAP 6.0 from rutgers.edu, but our Unix system administrator
> refuses to install it because there are 74 patches (can't say I blame him)!

Sigh. Using the patch program to apply patches requires a minimal amount of
time and energy.  Taking time to install the patch program will pay off for
CAP and other program updates.

% date
Sat Mar  7 23:51:05 EST 1992
% touch /tmp/patches
% foreach i (cap60.patches/cap60.patch*)
? patch -p < $i >>& /tmp/patches
? end
% grep rej /tmp/patches
% date
Sat Mar  7 23:54:26 EST 1992

It took just 3:11 to apply 75 patches to the raw CAP tar source.  The extra
overhead is the time to FTP 3 files, cap60.tar.Z, patches.1-74.tar.Z and
cap60.patch075 and uncompress them.  The total time spent on this ... 8:02.


> Is CAP Public Domain ?

No, CAP is distributed with the following condition on its use:

  Copyright (c) 1986, 1987, 1988, The Trustees of Columbia University in
  the City of New York.  Charlie C. Kim, User Services Group, Academic
  Information Services Division, Libraries and Center for Computing
  Activities and Bill Schilit, formerly of Computer Research Facilities,
  Computer Science Department.

  Permission is granted to any individual or institution to use, copy,
  or redistribute this software so long as it is not sold for profit,
  provided that this notice and the original copyright notices are
  retained.  Columbia University makes no representations about the
  suitability of this software for any purpose.  It is provided "as is"
  without express or implied warranty.

Some portions of CAP have other copyrights and are suitably marked.


> Is there a version of CAP available that supports Ethertalk Phase 2 ?

Phase 2 support was added in CAP 6.0 patches 25, 28 & 35 for SUN NIT, ULTRIX
4.n and SUN enet driver respectively.


> Can a workstation with 2 ethernet cards running Cap s/w act as a phaseII
> to (phaseI or phaseII) "Gateway"? If so, what patch level of Cap do I need
> to do this?
 
The UNIX AppleTalk Bridge (UAB) is an EtherTalk gateway.  It can handle
multiple ethernet interfaces and gateway between them.  This is its primary
function but it can also be set up to provide CAP services.  But ...


> Does anyone have a patch that will support the phase 2 appletalk protocol
> on UAB (CAP6.0).

UAB supports Phase 1 only. 


> Is there any standard way yet of implementing a execute only, copy
> protected CAP AUFS server?

The original method of achieving this was to removing read permission from
the data fork of the Application (make it non-zero length if the file is
empty).  The current method involves using the Application Manager added in
patch number 61.  Either of these methods can be circumvented by users who
are either knowledgeable or determined.


> Recently I introduced a new color postscript printer, Tektronix Phaser III
> 4698PXi, under one of the LocalTalks.  It works fine from Macintosh's so I
> tried to use it from papif but failed.

CAP uses DDP checksums by default, the checksum code in the Phaser III PXi
and the Apple Personal LaserWriter NTR incorrectly calculate the checksum
value and the packet is dropped. The programs aufs, lwsrv, papif, atis,
atlooklws and tlw now support the -k option to disable CAP checksums on a
per-program basis. To disable CAP checksums completely, add the following
lines to the m4.features file, rerun gen.makes and remake CAP.

# + DONT_DOCHKSUM no DDP checksums (Tektronix Phaser III PXi & Apple LW NTR)
define(`specialcflags',concat(specialcflags,` -DDONT_DOCHKSUM'))
#

No other code changes are necessary.


> We've just upgraded our DECstations to version 4.2 of ULTRIX, and our CAP
> distribution very neatly broke.

You need to obtain the net_common.o and pfilt.o patches from DEC.  Do not
turn on the ifconfig copyall (stop-gap measure previously suggested on the
net).  Do not define ULT42PFBUG in m4.features.


> When we run aarpd with a command like:
> 	 aarpd pf0 our_zone
> the daemon doesn't start & we get the message 'failed to start ZIS listener'.

This means that something has been allocated the UPD port 774 (768+6)
by 'portmap'. You can check this with the command 'rpcinfo -p'.

There are two solutions, break 'start-cap-servers' into two so that aarpd
and atis is started before portmap. Alternatively, and preferably, install
the NIC assigned port numbers into /etc/services. See the doc in the file
cap60/doc/install.ms for more details.


> I have installed the enet driver. But aarpd won't start successfully.
> Instead the following error message is being printed.
> unix!: # aarpd le0 EtherTalk
> open: /dev/enetXX: No such file or directory

The ENET drivers use devices of the form enet0, enet1 etc. Replace the
string "le0" with "enet0".


> We're running CAP with Native EtherTalk on a network without a router.
> atlook doesn't show our LaserWriter IIg and getzones fails with
> error -1096 getting zone list

Zone names are the responsibility of AppleTalk routers. Without a router,
there are no zones defined for the network and the zone name field in NBP
lookup packets must be * (or nothing at all). To use CAP with Native
EtherTalk in this situation, start 'aarpd' with "*" as the zone name,
any other zone name string may cause the lookup packet to be dropped.



For more information, see the CAP60.README file in the CAP distribution.

Send CAP FAQ contributions to cap@munnari.OZ.AU