[comp.protocols.kerberos] Porting Kerberos to VMS

bradcj@jfcl.dec.com (Brad C. Johnson) (05/24/89)

I am in the process of evaluating the effort to port Kerberos.  There
are two general areas of my evaluation: first, in general, how much
effort is involved in general portability issues (e.g., compiler
dependencies, system dependencies, UNI*X dependencies, etc.); and
second, specifically, how much effort would be required to port the 
code to a VMS system -- yow!

If anyone has information, insight, comments, or suggestions on this
issue, please get in touch with me.

Thanks in advance.

In the short time I've been evaluating the code, these are the types
of issues that I've identified (in porting it to VMS):

Note: These are not derogatory remarks on Kerberos, rather just
a list of things that would have to be addressed to port the
software to VMS.

Compilation: cc vs. VAX C
	- #include syntax is different in some ways (e.g., <dir/file>)
	- inconsistent data type usage (e.g., mixing char and pointer
		to char)
Configuration:
	- configuration parameters are set at compile time instead
		of execution time

Function calls: C RTL vs. VAX C RTL
	- calls which are available on UN*X and not (implicitly) on VMS
	dbm(), bind(), gethostname(), getopt(), get...()
	ioctl(), socket() [recvfrom(), sendto(), ...], flocl(), index()

Build files: make() vs. MMS
	- MMS build files are similar but not exactly the same as
	makefiles
		- length of a command line is different
		- commands are operating system dependent
		- syntax nits () vs. {}

Files:
	- Unix files are different than VMS file specifications

Coding:
	- Uses TCP/IP
	- Text and constants imbedded in source files
	- Makes assumptions about C language (e.g., if(a) vs if(a == 1))
	- Not robust in contengency handling (usually just logs
		a message and exit()s)

Documentation:
	- No trouble shooting or error message documentation
	- Installation guide is UN*X specific
	- Only programmers guide are man pages

Randall.Dean@CS.CMU.EDU (05/25/89)

The include syntax can be compatible.  The syntax <dir/file> is covered by
a logical name dir pointing to the correct directory.  ie.
$ define sys sys$sysroot:[syslib.sys]

What version of IP are you planning to use.  I heard of at least one
person who implimented a socket interface to CMU/TEK TCP/IP.  It isn't
actually a total nightmare.

Its not impossible to write a awk/sed script to convert makefile to mms for
98% of the code.

Last time I looked, the VAXCRTL accepted unix style path names.  The is because
of the ultrix/vms transportablility desires.


I have never seen a easy unix->vms port where the port wasn't considered
at the design or code-up stage.  This code is better then many things (
like ucb/talk.)

-rwd