[comp.protocols.appletalk] CAP ported to Amdahl/UTS 580

howard@uts.amdahl.com (The CaseMaster) (06/07/89)

Since everyone typically reads the first couple of lines of a posting, we interrupt
this posting to bring you a request:

	Has anyone put ADSP protocol handling into CAP?

If so, can you post it?  Everyone's going ADSP and I don't want to be left out. :-)
( Actually I want to use MacWorkstation through something other than a serial port.)
Apologies if this has been posted or something, I've just recently got back into
reading the group.  Now back to our regularly sheduled posting...


I might as well add my machine to the list of "I ported CAP to my machine too".
I'm happy to say CAP and AUFS have been ported to Amdahl UTS/580 Release 2.0.
( I haven't tried porting it to a back level 1.2 system yet. )

We are currently using lwpr to print from multiple UTS machines to all available
network printers.  I have run AUFS and continue to test its performance.
It seems fast but not as fast as I would have expected (especially when
you first open a window of a volume on the Mac).

The port went as smooth as probably any System V port does, with a bunch of help
from a "libbsd" one of our guys wrote that has a couple of BSDish functions.
I kept track of my porting effort in a outline in MORE II.  Here is a brief synopsis
of it for anyone who might be needing/wondering/caring.

**********************************************************************************

+  CAP Porting
+  Edit conf.func.sh to add any libraries to the cc(1) that
	checks for a function call
	-  add "-la", "-lsocket" and "-lbsd"
+  edit conf.sysv.sh shell script adding entries for uts
	-  Add liba.a, libsocket.a and libbsd.a to nm(1) checklist
		for functions needed
+  execute conf.sysv.sh
	-  creates sysv.cpp
+  edit netat/sysvcompat.h
	-  include any definitions generated in sysv.cpp in an
		appropriate ifdef for uts
	-  add some needed header files to the ifdef uts
		# include <sys/types.h>  /* if it hasn't been included yet, */
					 /* do it for socket */
		# include <sys/socket.h> /* for fd_set */
		# include <dirent.h>     /* for MAXNAMLEN */
		# include <arpa/ftp.h>   /* for MAXPATHLEN */
		
	-  add some missing defines to the ifdef uts
		# define LOCK_SH         1
		# define LOCK_EX         2
		# define LOCK_NB         4
		# define LOCK_UN         8
		# define L_SET    0
		# define L_INCR   1
		# define L_XTND   2
		#define F_OK            0
		#define X_OK            1
		#define W_OK            2
		#define R_OK            4
		
+  edit Configure shell script adding entries for uts
	-  uname will return "uts"
	-  Add liba.a, libsocket.a and libbsd.a to nm(1) checklist for
		functions needed
	-  Add a porting statement to concat -DNEEDMSGHDR for CFLAGS
	-  Add special libraries -lsocket -lbsd and -la
	-  Add a line for uts to the config. param. that replaces "ranlib"
		with "lorder|tsort"
	-  Modify etc dir to be /usr/lib/cap for atalk.local file
	-  Modify libdestdir for uts to be /usr/lib since uts doesn't search
		/usr/local/lib by default
	-  Modify caplibdestdir (server programs) for uts to be /usr/lib/cap
+  execute Configure shell script
	-  creates gen.makes and m4.setup files
+  execute gen.makes
	-  creates makefiles for the directories
+  edit lib/cap/abkip.c
	-  fix all uses of "msghdr" and the definition of it to be "iovmsghdr"
*** current anomaly in our msghdr definition in the include file
*** should clear up soon
+  edit lib/afp/afposlock.c
	-  add a "uts" define to afposlock.c for several items missing from file.h
		#define LOCK_SH         1
		#define LOCK_EX         2
		#define LOCK_NB         4
		#define LOCK_UN         8
		
		#define L_SET           0
		#define L_INCR          1
		#define L_XTND          2
		
+  make libsmade
	-  might have to prime directories the libs are going
		into the first time (install failure)
+  make programs
	-  problems with dirent.h items being declared twice
	-  edit files that include both netat/appletalk.h and
		netat/sysvcompat.h and get rid of sysvcompat.h
	-  add a hack to lwpr to accept stdin like all good programs should

**********************************************************************************

Problems:  Our network (at least the part I care about) has two (soon three)
FastPath 4's on it using the Ether as a backbone.  From what I can tell, I can't
tell CAP about more than one FastPath in the atalk.local file.  Is this a fact?
Or can I? If I can, is there some reason I would want to (redundancy in case a
gateway went out)?  Now for the problem, sometimes (possibly whenever a gateway
is reloaded) CAP will stop talking. No getzones, no atlook, no nothing.  I have
magically fixed the problem by switching the gateway it talks to in the atalk.local
file.  Is there some master/slave relationship with the FastPaths and CAP that
depends upon who's been up before the other (that's my best guess to date)?

That's really been the only problem so far.  I was looking forward to using
CAP to write a couple of prototype Mainframe/Macintosh applications (preferably
via HyperCard or MacWorkstation) but the worlds going ADSP and CAP hasn't yet.
Guess I'll keep my serial port for now and see what comes down the net...
-- 
We aim to please. (sometimes we miss)                        Howard C. Simonson
                                                             amdahl!howard

[ The disclaimer for this message may be found in a previous article ]