From: prb@ATHENA.MIT.EDU
To: krb5-testers@ATHENA.MIT.EDU
Date: Tue, 09 Oct 90 17:46:35 EDT

Here is my "grumbles" file from trying to build Kerberos V5 on the Cray 2
at M.I.T.  I am sure this file will grow, but I'll send it out now anyhow.

		-Paul Borman
		 Cray Research, Inc
		 prb@cray.com
		 prb@athena.mit.edu

Comerr does not work for system V systems
	com_err_hook is redefined...
	No strcasecmp
	No rindex

Main Imakefile refers to:
	../comerr
	../ss
should be
	./comerr
	./ss

Main Imakefile tries to link

	ln ./ss include/ss

but ss is a directory and cannot be linked on some systems...

The Project.tmpl refers to:

	$(ISODE)/@sys/bin/pepy

It should not make any reference to the AFS @sys macro since that is
not the usual case for most sites...

All the ISODE should be pre processed here.  Include all the stuff to do
it yourself, but do not require isode system to build kerberos.  Kerberos
is depending on too many different non-standards things.

The ISODE stuff doesn't even work on a Cray (I tried to build it, but it
is severly broken)

Perl needs to be included in the distribution.  It is not standard with
UNIX.

THERE ARE TOO MANY NON-STANDARD THINGS IN KERBEROS V5.

krb5/krb5.h and krb5/sysincl.h both include <sys/types.h>
and isode/manifest.h and isode/x25.h
You just can't do that on non-bsd systems

asn.1/u2gen.c does not includ time.h

lib/Imakefile has:

NormalLibraryObjectRule()
        SUBDIRS = ccache keytab krb rcache free os kdb des crc-32

It must be: (note the blank line)

NormalLibraryObjectRule()

        SUBDIRS = ccache keytab krb rcache free os kdb des crc-32


Had to add to lib/ccache/file/fcc.h
	      lib/rcache/rc_io.h

	#ifdef  SYSV
	#include <sys/fcntl.h>
	#endif

	#ifndef L_SET
	#define L_SET           0       /* absolute offset */
	#define L_INCR          1       /* relative to current offset */
	#define L_XTND          2       /* relative to end of file */
	#endif

ELOOP and ENAMETOOLONG are not in all systems.
EDQUOT

lib/rcache/rc_dfl.h has:
	krb5_rc_ops krb5_rc_dfl_ops; /* initialized to the following */
needs to be:
	extern krb5_rc_ops krb5_rc_dfl_ops; /* initialized to the following */


Date: Tue, 9 Oct 90 18:35:06 -0400
From: John T Kohl <jtkohl@ATHENA.MIT.EDU>
To: prb@ATHENA.MIT.EDU, krb5-testers@ATHENA.MIT.EDU
In-Reply-To: [16]

I'm working on addressing some of those problems:

>The Project.tmpl refers to:
>        $(ISODE)/@sys/bin/pepy

cleaned up; Project.tmpl now uses "pepy" and site.def redefines it to
.../@sys/... (for Athena)

>Perl needs to be included in the distribution.  It is not standard with
>UNIX.

It's not needed, just an optimization; I'll make it an option in the
Imakefile stuff.

>asn.1/u2gen.c does not includ time.h

This is because ISODE provides its own time.h.

>lib/Imakefile has:

fixed.

>lib/rcache/rc_dfl.h has:

fixed.

I'm also going to play around more with the libss and libcom_err stuff
to get the includes to work right.

John

Date: Wed, 10 Oct 90 03:10:41 GMT
From: brnstnd@KRAMDEN.ACF.NYU.EDU (Dan Bernstein)
To: brnstnd@nyu.edu, krb5-testers@ATHENA.MIT.EDU

> THERE ARE TOO MANY NON-STANDARD THINGS IN KERBEROS V5.

Quite true, but there are too many necessary features (such as reliable
disk writes) that aren't ``standard'' between UNIX systems. The best we
can do is #ifdef the nonstandard parts. The next best we can do is hope
that everyone will start using POSIX.

> lib/rcache/rc_dfl.h has:
> 	krb5_rc_ops krb5_rc_dfl_ops; /* initialized to the following */
> needs to be:
> 	extern krb5_rc_ops krb5_rc_dfl_ops; /* initialized to the following */

Why? Doesn't this only fail on broken linkers? The change is fine for
readability, but I don't understand why it's necessary...

---Dan