In the Beta 4 distribution, we have included a new build system, which was built using the Free Software Foundation's autoconf program. This system will hopefully make Kerberos V5 much simpler to build for most people, and reduce the amount of effort required in porting Kerberos V5 to a new platform. The imake system has been removed from this patch release, as most of the tree is now under autoconf control. HOW TO BUILD KERBEROS V5 ======================== A) Find about 65 meg free; untar the krb5 sources. For example, we will assume that you've untar'ed the sources into /u1/krb5, so that the top of the source tree is /u1/krb5/src. B) If you don't want separate build trees for each architecture, then use the following abbreviated procedure. 1) cd /u1/krb5/src 2) ./configure 3) make If you have a make that supports VPATH (GNU make, for example), you can keep your source tree pure by making a build directory, e.g. /u1/krb5/pmax. 1) cd /u1/krb5/pmax 2) ../src/configure 3) make That's all there is to it! It is possible to pass compiler flags to to configure by using, for example, the "--with-ccopts=FLAGS" option. Please take note that if you use the native Ultrix compiler on a DECstation you are likely to lose if you pass no flags to cc; md4.c takes an estimated 33 million years to compile if you provide neither the "-g" flag nor the "-O" flag to cc. It is also possible to explicitly specify a compiler to configure, e.g. "--with-cc=gcc". By default, Kerberos will expect its configuration files to be in /krb5. This can be changed by passing the "--with-krb5-root=/KRB5_ROOT_DIR" option to configure, where /KRB5_ROOT_DIR should be replaced with the appropriate pathname. If you want Kerberos V4 backwards compatibility, pass the "--with-krb4=/KRB4_DIRECTORY" option to configure. This requires that the V4 include files be available in /KRB4_DIRECTORY/include, and that the V4 Kerberos library be available in /KRB4_DIRECTORY/lib. If, for some reason, you want to build with isode-based ASN.1 encoders and decoders rather than our hand-coded ones, use the "--enable-isode" flag to configure. This has not been thoroughly tested, so beware. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= include/krb5/stock/osconf.h: --------------------------- There are several defaults you may wish to adjust in osconf.h: DEFAULT_CONFIG_FILENAME The pathname to the file which defines the known realms and their KDCs. Same format as V4 krb.conf DEFAULT_TRANS_FILENAME The pathname to the file which a priori assigns hosts to realms. Same format as V4 krb.realms DEFAULT_LNAME_FILENAME The pathname to the database mapping authentication names to local account names. See kdb5_anadd(8). DEFAULT_KEYTAB_NAME The type and pathname to the default server keytab file (the equivalent of v4 /etc/srvtab). DEFAULT_KDC_ETYPE The default encryption type for the KDC. DEFAULT_KDC_KEYTYPE The default keytype for the KDC. KDCRCACHE The name of the replay cache used by the KDC. RCTMPDIR The directory which stores replay caches. include/krb5/stock/config.h ---------------------------- You might wish to adjust these flags as well: KRBCONF_VAGUE_ERRORS If defined, give vague and unhelpful error messages to the client... er, attacker. (Needed to meet silly government regulations; most other sites will want to keep this undefined.) KRBCONF_KDC_MODIFIES_KDB Define this if you want to allow the KDC to modify the Kerberos database; this allows the last request information to be updated, as well as the failure count information. Note that this doesn't work if you're using slave servers!!! It also causes the database to be modified (and thus need to be locked) frequently. NOTE for building Kerberos for multiple platforms ================================================= This is how we build Kerberos for multiple platforms here at MIT: Use the synctree program to build a symlink tree. The .rconf files included in the distribution are for use with synctree. You can find the synctree program in the same directory as you found this release, athena-dist.mit.edu. Assuming you have a directory hierarchy which looks something like this: |-decmips- |-hpux---- |-krb5-|-linux--- |-solaris- |-src----- A typical build using synctree might be: cd XXX/krb5 mkdir decmips; cd decmips synctree -s ../src -d . ./configure make