[906] in Kerberos_V5_Development
incoming include file instability in the source tree...
daemon@ATHENA.MIT.EDU (Theodore Ts'o)
Thu Apr 20 11:29:09 1995
Date: Thu, 20 Apr 1995 11:28:41 +0500
From: Theodore Ts'o <tytso@MIT.EDU>
To: krbdev@MIT.EDU
In a few minutes, I'll be checking in a whole series of chages to the
krb5 tree; the changes are to actually enforce the design decision which
John Gilmore and I had agreed upon several weeks ago --- that is, that
krb5.h and gssapi.h should be the *only* include files which need to be
present in order to compile application programs which link against
libkrb5.a or libgssapi.a.
When I took a look at the include files last night, it became clear to
me that they were a mess, and that because of how we had to avoid using
slashs in #include statements for the Macintosh, it would be nearly
impossible to install the header files such that an application compiled
outside of the krb5 tree would be able to find the .h files correctly.
This inspired me to take action and fix things. :-)
In order to do this, I had to inline a whole series of
include files into krb5.h: (these files will be deleted shortly, so if
you have any pending changes to those files, please make the relevant
changes to krb5.h)
wordsize.h
base-defs.h
hostaddr.h
encryption.h
fieldbits.h
proto.h
macros.h
error_def.h
safepriv.h
ccache.h
rcache.h
keytab.h
func-proto.h
k5-free.h
This results in a krb5.h which is roughly 60k long. Obviously, we need
to do some pruning to move the internal interfaces of krb5.h into
k5-int.h, which is the include file which the krb5 library routines need
to include. (Wow! We're actually going to try to define the formal
interface which application programs are allowed to use. :-)
One change which I had to make in order to do this was to #include of
k5-config.h from krb5.h to k5-int.h. Most of the things in k5-config.h
have no business being in the externally exported interface file for
krb5.h. Unfortunately, that's also where the MS-DOS windows
FAR/NEAR/INTERFACE hackery is done. I tried to copy few definitions in
k5-config.h which are actually needed by krb5.h into krb5.h, so
hopefully I didn't break anything, but I didn't have the opportunity to
actually test this.
What's remaining to be done is to actually move krb5.h to be krb5.h.in,
and so that the error tables and the autoconf-defined #defines are added
in. Hopefully that will be done by tonight.
- Ted