Building the Macintosh version of Kerberos 5 and GSS ---------------------------------------------------- (Last updated $Date$) If you have questions or comments about the Macintosh build process, send e-mail to . To build the Macintosh version of Kerberos 5 and GSS: --- Installing tools --- 1) Install CodeWarrior Pro 2, including MPW. 2) Download MacPerl and MacPerl MPW tool from The MacPerl directory contains several versions of the app and the MPW tool. The *_appl and *_tool versions work properly with our scripts, e.g., you should download "Mac_Perl_520r4_appl.bin" and "Mac_Perl_520r4_tool.bin". 3) Install MacPerl and MacPerl MPW tool (by following the installation instructions provided with them). --- Preparing Kerberos v5 build tree --- 4) Launch MPW. 5) Set directory in MPW to the top level of Kerberos 5 distribution (e.g. "GSS-Kerberos5-1.0.5"). 6) Execute "perl :mac:macfile_gen.pl" in MPW. 7) Build target "create-directories" in MPW. 8) Open the projects in "[kerb5 src]:mac:libraries:Metrowerks:CW Pro 2:" in your CW Pro 2 IDE (the projects will not work correctly with CW Pro 3), and build them. IMPORTANT: You must build the Runtime libraries *before* building the C libraries. You will see some link warnings. These are normal and can be ignored. --- Building libraries --- 9) Build target "all" in MPW. Wait. Example build times: 30-40 minutes on a G3 machine, 80 minutes on a PowerMac 9600/233. You may receive some compile warnings about an ignored pragma, and some link warnings. These are normal and can be ignored. On certain machines we have experienced an MPW crash during the link stage of the build. If this happens to you, you should restart MPW and start the build again. We are investigating the causes of this. --- Building the Cygnus Network Security Application --- 10) Open the project file "[kerb5 src]:mac:kconfig:kconfig.prj" in the CodeWarrior Pro 2 IDE. 11) Select "Make" from the "Project" menu. --- Binaries --- The following assumes that you have followed the steps above to build the GSS & Kerberos 5 libraries. What you now have supports both the Kerberos 5 and GSS APIs. Each is supported as both CFM shared libraries and CodeWarrior static link libraries for both 68k & PowerPC Macs. We strongly recommend you use the CFM shared libraries. The following binary components are provided/built in this release: :GSSLib * Fat CFM Shared Library including both GSS and Kerberos 5 libraries. * Not for linking against in your projects; include in distributions to be placed in System Folder:Extensions. :GSSLibrary68K * CFM Shared Library including GSS for 68k Macs. :GSSLibraryPPC * CFM Shared Library including GSS for PowerPC Macs. :K5Library68K * CFM Shared Library including Kerberos 5 for 68k Macs. :K5LibraryPPC * CFM Shared Library including Kerberos 5 for PowerPC Macs. :libgss.68K * Static CodeWarrior library including GSS for 68k Macs :libgss.PPC * Static CodeWarrior library including GSS for PowerPC Macs :libkrb5.68K * Static CodeWarrior library including Kerberos 5 for 68k Macs :libkrb5.PPC * Static CodeWarrior library including Kerberos 5 for PowerPC Macs :mac:kconfig:CNS Config * Kerberos 5 Ticket Manager (aka Cygnus Network Security Configuration) application :mac:krb5.ini * Sample krb5.ini file using CYGNUS.COM as the default realm :include * An include directory containing the files necessary for development --- Installation --- To install the Kerberos 5 system on your Mac: 1) Copy the :mac:krb5.ini file (configured for your site) into the "Preferences" folder in the "System Folder". 2) Install the shared libraries by copying the "GSSLib" file to the "Extensions" folder in the "System Folder". 3) If you are using System 7.6 or earlier on a 68K Mac, install the CFM-68K Runtime Enabler 4.0, available from Apple at: 4) Put the "CNS Config" application in a handy location. --- Getting Started Programming --- You can program using either the Kerberos 5 or GSS APIs. (Currently the GSS Library depends on the krb5 library; this means you will have to link against both if you are using static libraries.) To add Kerberos functionality to a Code Warrior based application: 1) PPC application: use shared libraries: For GSSAPI, add GSSLibraryPPC to your project For Kerberos v5 API, add K5LibraryPPC to your project Set the project options to 4 byte integers and enums treated as ints. 2) CFM-68K application: use shared libraries For GSSAPI, add GSSLibrary68K to your project For Kerberos v5 API, add K5Library68K to your project Set the project options to 4 byte integers and enums treated as ints. 3) Classic 68K application: use glue for shared libraries For GSSAPI, add GSS.CFMglue.c to your project For Kerberos v5 API, add K5.CFMglue.c to your project Set the project options to 4 byte integers and enums treated as ints. A PDF document describing the Kerberos 5 API is located at: (This document was created from tex files in the main krb5 source tree.) The GSSAPI is described in Internet RFC's 1508 and 1509: