Kerberos for Macintosh 4.0.3 Classic Installer Documentation

Current as of KfM 4.0.3

Table of Contents

Overview

Kerberos for Macintosh (KfM) 4.0.3 for Mac OS 8 & 9 provides Kerberos 4, KClient, Kerberos 5 and GSS implementations together in one unified package. Kerberos for Macintosh 4.0.3 for Mac OS 8 & 9 consists of the Kerberos control panel, the Kerberos shared libraries, the Kerberos Menu extension, the Kerberos Ticket Keeper background extension, and the Kerberos Control Strip module. Also included is a preference file preconfigured for MIT.

The KfM 4.0.3 Classic installer installs all these components to the correct location on a Mac OS 8 or 9 volume while removing older and out-of-date KfM components.

This documentation covers the externally distributed version of the installer source. The installer source used at MIT is essentially identical.

If you have any questions or comments, please send them to <krbdev@mit.edu> .

System Requirements of Components

The minimum system required for the installer is Mac OS 8.1. Only Power Macintosh machines are supported. The minimum amount of RAM required in the computer for all the Kerberos pieces should be easily covered by the minimum RAM requirement of Mac OS 8.1 and later.

This installer and software does not support native installation on Mac OS X, but can be run in Classic emulation mode to install the KfM 4.0.3 software in the Classic system.

There is a separate installer for KfM 4.0.3 for Mac OS X. You can read about it here.

The Kerberos for Macintosh 4.0.3 Classic installer as distributed from MIT was built with Mindvision VISE 7.3. Bugs in VISE 7.4 prevented us from using it, and VISE 7.4.1 was released too late to qualify it for use with the final installer. While this installer should build without problems in VISE 7.4.1 or later, we do not guarantee it.

Getting Started

If you are working from the KfM installer source distribution, you should copy the KfM 4.0.3 Mac OS 9 binaries from the standard KfM 4.0.3 distribution (which you can download here) into the "Put Binaries Here" folder.

Specifically, copy the contents of Kerberos for Mac 4.0.3:Binaries:Mac OS 9: from the KfM distribution into the "Put Binaries Here" folder of the installer source distribution.The installer should automatically find the binaries once they are copied as described above. Then you can replace or add localized components as necessary.

Packages

Only an Easy Install option is available. Uninstall is also available, but this is not strictly a package.

Easy Install installs the Kerberos control panel, Kerberos Library, Kerberos Support Library, Kerberos Ticket Keeper, Kerberos Menu, Kerberos Control Strip, and Kerberos Preferences (see below for locations).

The installer is set to quit any other programs that are running while performing the installation, and set to "Force Restart" when its done. (The Kerberos Menu is an extension that needs to be loaded at startup time, and we may need to unload the old libraries from memory.) The installer also forces a restart at the end of an uninstall.

Build Targets

There are two build targets in the KfM 4.0.3 Classic installer - "KfM 4.0 Silent" and "Default Build Destination".

The only difference is that "Default Build Destination" will ask you for the name and location of the installer to be built (and you can choose whether to build a debug installer).

You should build this installer as a "Classic" installer. It is not meant to run under Mac OS X, and thus you should not build a "Carbon" version of it.

Guide to Files & Action Items

In the table below, actual files and folders are displayed in bold, whereas action items names are displayed in italics. Each action item has a definition of what it does, and then an explanation of why it does this.

Items are listed in the order in which they appear in the .vct . Some may be inside placeholder folders for organizational purposes; this list is equivalent to the order of items if the hierarchy was flattened.

Many of the Gestalts used are not part of the VISE default Gestalts - they are custom Gestalt checks which are included in the MIT Kerberos for Mac.vct file. See the Gestalt Notes for further information.

Files Install To: Replace Gestalts

Message Action Item: Display Form "Newer KfM" 4.0

Displays the form "Newer KfM Installed" (see VISE's Archive->Forms menu item) if the 'Krbv' Gestalt (installed by KfM) is greater than 4.0.3. (See Gestalt Notes for more information.) The form gives the user two buttons to click on - Cancel (the default) and OK. If the user clicks Cancel, the install stops without installing any items.

n/a   KfM > 4.0.3

Old Kerberos for Mac Files (folder)

A folder to put all the files we're going to remove in. It's installed to the Temporary Items folder initially in case something goes wrong, and so that VISE won't list it as the thing being installed in the disk switching section. This folder is moved to the Trash at the end of the install.

Temporary Items Folder If Newer (Modification Date)  
Clean up prev KClients (placeholder folder - not actually installed) n/a n/a  

Move Action Item: Move KerbClient/KClient fr Ext

Moves extension versions of KClient (also named "Kerberos Client" in early versions) with versions less than 2.1 from Extensions to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator 'INIT'/'krbL' and version less than 2.1. Matches and moves multiple files.

The extension versions are out of date and will cause conflicts with the KClient support of KfM 4.0.3 if installed at the same time. We check for versions less than 2.1 because known existing extension versions are 1.1b1, 1.5, and 2.0d2.

n/a n/a  

Move Action Item: Move KerbClient/KClient Fr Ext-dis

Moves extension versions of KClient (also named "Kerberos Client" in early versions) with versions less than 2.1 from "Extensions (Disabled)" to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator 'INIT'/'krbL' and version less than 2.1. Matches and moves multiple files.

The extension versions are out of date and will cause conflicts with the KClient support of KfM 4.0.3 if installed at the same time. Copies in "Extensions (disabled)" may be accidentally re-enabled later on and cause unexpected problems. See previous action item for explanation of version check.

 n/a  n/a  

Move Action Item: Move KClient Fr CP to OldFiles

Moves control panel versions of KClient with versions less than 2.1 from "Control Panels" to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator 'cdev'/'krBL' and version less than 2.1.

The separate control panel versions of KClient are out of date and will cause conflicts with the KClient support of KfM 4.0.3 if installed at the same time. We check for versions less than 2.1 because known existing control panel versions are 1.9 or less (and we're being paranoid about 2.0d2).

n/a n/a  

Move Action Item: Move KClient Fr CP-dis to OldFi

Moves control panel versions of KClient with versions less than 2.1 from "Control Panels (disabled)" to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator 'cdev'/'krBL' and version less than 2.1.

The separate control panel versions of KClient are out of date and will cause conflicts with the KClient support of KfM 4.0.3 if installed at the same time. Copies in Control Panels (disabled) may be accidentally re-enabled later on and cause unexpected problems. See previous action item for explanation of version check.

n/a n/a  
Clean up prev Kerberos 5's (placeholder folder - not actually installed) n/a n/a  

Move Action Item: Remove GSSLib Fr Extensions

Moves shared library named "GSSLib" from Extensions to "Old Kerberos for Mac Files" folder - makes comparison using name equals "GSSLib" and file type/creator 'shlb'/'cfmg'. Matches and moves aliases.

This is an outdated version of "Kerberos Library" and is not compatible with current versions.

n/a n/a  

Move Action Item: Remove GSSLibrarySAP Fr Exten

Moves shared library named "GSSLibraySAP" from Extensions to "Old Kerberos for Mac Files" folder - makes comparison using name equals "GSSLibrarySAP" and file type/creator 'shlb'/'cfmg'. Matches and moves aliases.

This is an outdated version of "Kerberos Library" and is not compatible with current versions.

n/a n/a  

Move Action Item: Remove MITAthenaLib Fr Ext

Moves shared library named "MITAthenaLib" from Extensions to "Old Kerberos for Mac Files" folder - makes comparison using name equals "MITAthenaLib" and file type/creator 'shlb'/'cfmg'.

This is an outdated version of "Kerberos Support Library" and is not compatible with current versions.

n/a n/a  

Move Action Item: Remove Kerberos5 Logon Fr disk

Moves all copies of Kerberos5 Logon application from the install disk to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator 'APPL'/'RWkc'. (Also removes any copies of the CNS Config application, which has the same file type/creator code.) Matches and moves multiple files

This is an outdated and incompatible Kerberos 5 management app which was installed in a variety of places by previous installers.

n/a n/a  

Move Action Item: Remove Kerberos5 Logon alias

Moves all aliases of Kerberos5 Logon application from the install disk to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator 'adrp'/'RWkc'. Matches and moves multiple files. Matches and moves aliases.

The previous action item doesn't catch aliases (because they have a different file type), which were also sometimes made by previous installers.

n/a n/a  

Move Action Item: Remove Kerberos5 Logout Fr disk

Moves all copies of Kerberos5 Logout application from the install disk to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator 'APPL'/'k5Lo'. Matches and moves multiple files.

This is an outdated and no longer necessary application that erased the ticket cache that was stored on-disk by old Kerberos v5 implementations which was installed in a variety of places by previous installers.

n/a n/a  

Move Action Item: Remove Kerberos5 Logout alias

Moves all aliases of Kerberos5 Logout application from the install disk to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator 'adrp'/'k5Lo'. Matches and moves multiple files.

The previous action item doesn't catch aliases (because they have a different file type), which were also sometimes made by previous installers.

n/a n/a  

Move Action Item: Remove K5 Destroy Fr disk

Moves all copies of K5 Destroy application from the install disk to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator 'APPL'/'k5Ds'. Matches and moves multiple files.

This is an outdated and no longer necessary application that erased the ticket cache that was stored on-disk by old Kerberos v5 implementations which was installed in a variety of places by previous installers.

n/a n/a  

Move Action Item: Remove K5 Destroy alias Fr disk

Moves all aliases of K5 Destroy application from the install disk to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator 'adrp'/'k5Ds'. Matches and moves multiple files.

The previous action item doesn't catch aliases (because they have a different file type), which were also sometimes made by previous installers

n/a n/a  

Move Action Item: Remove CNS Config Prefs

Moves the file CNS Config Prefs (created by Kerberos5 Logon or CNS Config applications) from Preferences folder to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator 'Pref'/'RWkc'.

Since the applications are removed, the prefs for them should be too.

n/a n/a  

Move Action Item: Remove krb5cc file

Moves the file krb5cc (created by Kerberos5 Logon or CNS Config applications) from Preferences folder to "Old Kerberos for Mac Files" folder - makes comparison using name equals "krb5cc", file type/creator 'BINA'/'????'.

This was the credentials file used by the pre-2.x versions of Kerberos for Macintosh. It's no longer used.

n/a n/a  
Control Panels Folder Items (placeholder folder - not installed) n/a n/a  

Move Action Item: Move APPL KCP<=1.6.1 to Old

Move existing and possibly outdated versions of the Kerberos control panel (and Kerberos Manager) found in the Control Panels folder to the "Old Kerberos for Mac Files" folder. Makes comparison by using file type is 'APPL', creator is 'KrbM' and version is less than or equal to 1.6.1. Matches and moves multiple versions (which will catch debug versions too).

n/a n/a  

Move Action Item: Move APPC KCP<=1.6.1 to Old

Move existing and possibly outdated versions of Kerberos Manager found in the Control Panels folder to the "Old Kerberos for Mac Files" folder. Makes comparison by using file type is 'APPC', creator is 'KrbM' and version is less than or equal to 1.6.1. Matches and moves multiple versions (which will catch debug versions too).

We have two separate action items because Kerberos Manager was unfortunately distributed with two different file types in some early KfM versions.

n/a n/a  
Kerberos

Actually an application, but we install it in Control Panels.

After the item is installed, the "SetRoutingBit" external code resource is called on it, which sets the "routing bit" of the extended Finder information on the Kerberos file. This bit is needed to tell the Finder to put the Kerberos application in the Control Panels folder when dragged to the System Folder's icon on some Mac OS 8.x systems. (This is indicated by the "SetRoutingBit" in the "After Installing" pop-up item.)

Control Panels If Newer Version  
Kerberos.debug

Actually an application, but we install it in Control Panels. The debug version for developers.

After the item is installed, the "SetRoutingBit" external code resource is called on it - see notes in previous item.

This item may not be found in all versions of the installer, especially those meant for final releases.

Control Panels If Newer Version  

Appl Support Folder Items (placeholder folder - not installed)

n/a n/a n/a

Move Action Item: Move KL in Ext to OldFiles

Moves any copies of "Kerberos Library" (or "MIT Kerberos Library") from Extensions to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator is 'shlb'/'Krb '. Matches and moves multiple files (this allows us to catch debug versions).

Under Mac OS 8.6 or greater, we install Kerberos Library in the Application Support folder. This action item catches the case where user installed KfM with an OS earlier than 8.6, but then upgraded, so the old library is still in the Extensions folder and won't automatically be overwritten by the new version.

n/a Always (Rename Existing) Mac OS 8.6 or Greater

Move Action Item: Move SL in Ext to OldFiles

Moves any copies of "Kerberos Support Library" (or "MIT Support Library") from Extensions to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator is 'shlb'/'Fuzz'. Matches and moves multiple files (this allows us to catch debug versions).

Under Mac OS 8.6 or greater, we install Kerberos Support Library in the Application Support folder. This action item catches the case where user installed KfM with an OS earlier than 8.6, but then upgraded, so the old library is still in the Extensions folder and won't automatically be overwritten by the new version.

n/a Always (Rename Existing) Mac OS 8.6 or Greater

Move Action Item: Move KL<=4.1.3 in AppSpt to Old

Moves existing and possibly outdated copies of "Kerberos Library" (or "MIT Kerberos Library") from Application Support and any subfolders to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator is 'shlb'/'Krb ' and version is less than or equal to 4.1.3. Matches and moves multiple files (this allows us to catch debug versions too).

With KfM 2.5.1 and later, we install Kerberos Library in an "Kerberos" (in KfM 3.5 and earlier, "MIT") folder inside the Application Support folder. This action item makes sure to remove any copies placed in the root level of the Application Support folder (accidentally or by the KfM 2.0.2 installer) as well, since they won't be replaced automatically. Removes current and outdated copies of both debug and non-debug.

We run this action item on all OS's even though we're not installing to Application Support on OS's less than 8.6 to catch possible mistakes on previous OS's.

n/a Always (Rename Existing)  

Move Action Item: Move SL<=2.1.2 in AppSpt to OldFi

Moves outdated copies of "Kerberos Support Library" (or "MIT Support Library") from Application Support and any subfolders to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator is 'shlb'/'Fuzz', and version is less than 2.1.2. Matches and moves multiple files (this allows us to catch debug versions too).

With KfM 2.5.1 and later, we install Kerberos Support Library in an "Kerberos" (in KfM 3.5 and earlier, "MIT") folder inside the Application Support folder. This action item makes sure to remove any copies placed in the root level of the Application Support folder (accidentally or by the KfM 2.0.2 installer), since they won't be replaced automatically. Removes current and outdated copies of both debug and non-debug.

We run this action item on all OS's even though we're not installing to Application Support on OS's less than 8.6 to catch possible mistakes on previous OS's.

n/a Always (Rename Existing)  

Move Action Item: Move KerbPrefs in AS to OldFile

Moves any existing file with the incorrect file type/creator 'Krb '/'PREF' from Application Support and any subfolders to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator is 'Krb '/'PREF' . Matches and moves multiple files. Some development versions of Kerberos for Mac had the file type and creator backwards; we want to remove those and install a new one.

Otherwise we leave existing Kerberos Preferences alone.

n/a Always (Rename Existing)  

Rename Action Item: Rename "MIT" to "Kerberos"

Renames any existing "MIT" folder in the root level of the Applications Support folder to be named "Kerberos" instead. Makes comparison using name equals "MIT". If there is an existing "Kerberos" folder, no action is taken. (This could cause an MIT folder to be left around in strange cases, but the next action item takes care of that.)

We have decided to change the name of this folder as of 3.5. We cannot just throw out an existing folder and install a new one because it might include Preferences the user wants to keep.

n/a Never  

Move Action Item: Move "MIT" to OldFiles

Moves any folder named "MIT" to the "Old Kerberos for Mac files" folder, in case it was left over from the previous action item. Makes comparison using name equals "MIT".

n/a Always (Rename Existing)  
Kerberos (folder) Application Support Never Mac OS 8.6 or Greater, English Language

Kerberos Preferences

See Installation Location of "Kerberos Preferences" File below for info about why this is installed where.

"Kerberos" folder inside Application Support Never Mac OS 9.0 or Greater, English Language
Kerberos Library

See Installation Location of Shared Libraries below for info about why this is installed where.

"Kerberos" folder inside Application Support If Newer Version Mac OS 8.6 or Greater, English Language

Kerberos Library.debug

See Installation Location of Shared Libraries below for info about why this is installed where.

The debug version for developers. This item may not be found in all versions of the installer, or it may be included but not marked for installation (this is the case for the 4.0.3 installer). Generally, you should not install it.

"Kerberos" folder inside Application Support If Newer Version Mac OS 8.6 or Greater, English Language

Kerberos Support Library

See Installation Location of Shared Libraries below for info about why this is installed where.

"Kerberos" folder inside Application Support If Newer Version Mac OS 8.6 or Greater, English Language

Kerberos Support Library.debug

See Installation Location of Shared Libraries below for info about why this is installed where.

The debug version for developers. This item may not be found in all versions of the installer, or it may be included but not marked for installation (this is the case for the 4.0.3 installer). Generally, you should not install it.

"Kerberos" folder inside Application Support If Newer Version Mac OS 8.6 or Greater, English Language
Control Strip Modules Items (placeholder folder - not actually installed) n/a n/a  

Move Action Item: Move KCSM<=1.1 to OldFiles

Moves existing and possibly outdated copies of "Kerberos Control Strip" from Control Strip Modules to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator is 'sdev'/'KMcs' and version is less than or equal to 1.1. Matches and moves multiple files.

n/a Always (Rename Existing)  

Kerberos Control Strip

Control Strip Modules If Newer Version  
Extensions Folder Items (placeholder folder - not actually installed) n/a n/a  

Move Action Item: Move KL<=4.1.3 in Ext to OldFiles

Moves existing and possibly outdated copies of "Kerberos Library" (or "MIT Kerberos Library") from Extensions to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator is 'shlb'/'Krb ' and version is less than or equal to 4.1.3. Matches and moves multiple files (this allows us to catch debug versions too).

Gestalt checks for Mac OS 8.1 through 8.5.1 because we're only installing in Extensions folder on those systems. This is not strictly correct for non-English systems (see installation notes below), but the only bad thing that will happen there is instead of old versions getting moved out of the way, they'll be overwritten, and the Gestalt expression needed to fix this is more complication than VISE can handle.

n/a Always (Rename Existing) Mac OS 8.1 or Greater, Less than Mac OS 8.6

Move Action Item: Move SL<=2.1.2 in Ext to OldFiles

Moves existing and possibly outdated copies of "Kerberos Support Library" (or "MIT Support Library") from Extensions to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator is 'shlb'/'Fuzz', and version is less than or equal to 2.1.2. Matches and moves multiple files (this allows us to catch debug versions too).

Gestalt checks for Mac OS 8.1 through 8.5.1 because we're only installing in Extensions folder on those systems. This is not strictly correct for non-English systems (see installation notes below), but the only bad thing that will happen there is instead of old versions getting moved out of the way, they'll be overwritten, and the Gestalt expression needed to fix this is more complication than VISE can handle.

n/a Always (Rename Existing) Mac OS 8.1 or Greater, Less than Mac OS 8.6

Move Action Item: Move TK<=2.1.1 to OldFiles

Moves existing and possibly outdated copies of "Kerberos Ticket Keeper" (or "MIT Ticket Keeper") from Extensions to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator is 'appe'/'TixK', and version is less than or equal to 2.1.1.

n/a Always (Rename Existing)  

Move Action Item: Move KMenu<=1.1 to OldFiles

Moves existing and possibly outdated copies of "Kerberos Menu" from Extensions to "Old Kerberos for Mac Files" folder - makes comparison using file type/creator is 'INIT'/'KMnu', and version is less than or equal to 1.1. Matches and moves multiple files.

n/a Always (Rename Existing)  
Kerberos Ticket Keeper

A background-only application, installed in Extensions so it will be launched at startup.

Extensions If Newer Version  

Kerberos Menu

An extension that provides a system-wide Kerberos menu displaying ticket status and allowing access to common Kerberos commands.

Extensions If Newer Version  

Kerberos Preferences (VISE shadow item)

See Installation Location of "Kerberos Preferences" File below for info about why this is installed where.

Extensions Never Mac OS 9.0 or Greater, Not English Language

Jump Action Item: Jump Over if >=8.6&English

On Mac OS 8.1 through 8.5.1 or non-English systems, we want to put the shared libraries in the Extensions folder because the CFM search paths don't include the Application Support folder (see notes below). This action item tells the installer to skip over installing the shared libraries on other systems (i.e., Mac OS 8.6 and greater English-language systems).

n/a n/a Mac OS 8.6 or Greater, English Language
Kerberos Library (VISE shadow item)

See Installation Location of Shared Libraries below for info about why this is installed where.

Extensions If Newer Version Mac OS 8.1 or Greater, Less than Mac OS 8.6
Kerberos Library.debug (VISE shadow item)

See Installation Location of Shared Libraries below for info about why this is installed where.

The debug version for developers. This item may not be found in all versions of the installer, or it may be included but not marked for installation (this is the case for the 4.0.3 installer). Generally, you should not install it.

Extensions If Newer Version Mac OS 8.1 or Greater, Less than Mac OS 8.6
Kerberos Support Library (VISE shadow item)

See Installation Location of Shared Libraries below for info about why this is installed where.

Extensions If Newer Version Mac OS 8.1 or Greater, Less than Mac OS 8.6
Kerberos Support Library.debug (VISE shadow item)

See Installation Location of Shared Libraries below for info about why this is installed where.

The debug version for developers. This item may not be found in all versions of the installer, or it may be included but not marked for installation (this is the case for the 4.0.3 installer). Generally, you should not install it.

Extensions If Newer Version Mac OS 8.1 or Greater, Less than Mac OS 8.6
Preferences Folder Items (placeholder folder - not actually installed) n/a n/a  

Move Action Item: Move krb5.ini to Old Files

Moves any existing file named "krb5.ini" (the old Kerberos 5 configuration file) in the Preferences folder to "Old Kerberos for Mac Files" folder - makes comparison using name equals "krb5.ini".

The krb5.ini file is out of date as of KfM 2.5.

n/a Always (Rename Existing)  

Move Action Item: Move Kerberos Client Preferences to Old Files

Moves any existing file named "Kerberos Client Preferences" (the old KClient configuration file) in the Preferences folder to "Old Kerberos for Mac Files" folder - using file type/creator is 'PREF'/'krbL' . Matches and moves multiple files (this gets rid of any "Kerberos Client Preferences.bak" files created by previous installers).

This "Kerberos Client Preferences" file is out of date as of KfM 3.0.

n/a Always (Rename Existing)  

Move Action Item: Move Kerberos Preferences to Old Files

Moves any existing file named "Kerberos Preferences" with the incorrect filetype in the Preferences folder to "Old Kerberos for Mac Files" folder - using file type/creator is 'Krb '/'PREF' . Matches and moves multiple files. Some development versions of Kerberos for Mac had the file type and creator backwards; we want to remove those and install a new one.

Otherwise we leave existing Preferences alone.

n/a Always (Rename Existing)  

Kerberos Preferences (VISE Shadow Item)

See Installation Location of "Kerberos Preferences" File below for info about why this is installed where.

Preferences If Newer Modification Date Less Than Mac OS 9.0

Move Action Item: Move "Old Kerb Files" to Trash

Moves the "Old Kerberos for Mac Files" folder, where all the files to be removed are, from the Temporary Items folder to the Trash.

n/a Always (Rename Existing)  

Uninstall Action Items (placeholder folder - not actually installed)

All the action items contained in this folder are only run when the user chooses to do an uninstall. These are the only action items that run at uninstall time. See the notes about uninstall below.

n/a n/a  

Move Action Item: Trash APPL KM<=1.6.1

Moves any copies of the Kerberos Control Panel (or Kerberos Manager) from the Control Panels folder to the Trash. Makes comparison using file type/creator is 'APPL'/'KrbM' and version is less than or equal to 1.6.1. Matches and moves multiple files (this allows us to catch debug versions too).

Only runs on uninstalls. See the notes about uninstall below.

n/a Always (Rename Existing)  

Move Action Item: Trash "Kerberos" folder

Move the "Kerberos" folder and its contents (which normally include the shared libraries and the system Kerberos Preferences) from the Application Support folder to the Trash. Makes comparison using name is "Kerberos" and item is a folder.

Only runs on uninstalls. See the notes about uninstall below.

n/a Always (Rename Existing)  

Move Action Item: Trash KL<=4.1.3 in ApplSpt SF

Moves any copies of "Kerberos Library" from Application Support and any subfolders to the Trash - makes comparison using file type/creator is 'shlb'/'Krb ' and version is less than or equal to 4.1.3. Matches and moves multiple files (this allows us to catch debug versions too).

Redundant with the "Trash Kerberos folder" action item (since the "Kerberos" folder should contain the Kerberos Library files), but we have this for safety and to remove pre-4.0.3 KfM versions.

Only runs on uninstalls. See the notes about uninstall below.

n/a Always (Rename Existing)  

Move Action Item: Trash SL<=2.1.2 in ApplSpt SF

Moves any copies of "Kerberos Support Library" from Application Support and any subfolders to the Trash - makes comparison using file type/creator is 'shlb'/'Fuzz', and version is less than or equal to 2.1.2. Matches and moves multiple files (this allows us to catch debug versions too).

Redundant with the "Trash Kerberos folder" action item (since the "Kerberos" folder should contain the Kerberos Library files), but we have this for safety and to remove pre-4.0.3 KfM versions.

Only runs on uninstalls. See the notes about uninstall below.

n/a Always (Rename Existing)  

Move Action Item: Trash KL<=4.1.3 in Ext

Moves any copies of "Kerberos Library" from Extensions to the Trash - makes comparison using file type/creator is 'shlb'/'Krb ' and version is less than or equal to 4.1.3. Matches and moves multiple files (this allows us to catch debug versions too).

In theory these files are only in the Extensions folder on certain systems (Mac OS 8.1 through 8.5.1 and non-English systems), but it doesn't hurt to run this action item on all systems when uninstalling.

Only runs on uninstalls. See the notes about uninstall below.

n/a Always (Rename Existing)  

Move Action Item: Trash SL<=2.1.2 in Ext

Moves any copies of "Kerberos Support Library" from Extensions to the Trash - makes comparison using file type/creator is 'shlb'/'Fuzz', and version is less than or equal to 2.1.2. Matches and moves multiple files (this allows us to catch debug versions too).

In theory these files are only in the Extensions folder on certain systems (Mac OS 8.1 through 8.5.1 and non-English systems), but it doesn't hurt to run this action item on all systems when uninstalling.

Only runs on uninstalls. See the notes about uninstall below.

n/a Always (Rename Existing)  

Move Action Item: Trash KSCM<=1.1

Moves any copies of the "Kerberos Control Strip" module from the Control Strip Modules folder to the Trash. Makes comparison using file type/creator is 'sdev'/'KMcs' and version is less than or equal to 1.1. Matches and moves multiple files.

Only runs on uninstalls. See the notes about uninstall below.

n/a Always (Rename Existing)  

Move Action Item: Trash TK<=2.1.1

Moves any copies of "Kerberos Ticket Keeper" from the Extensions folder to the Trash. Makes comparison using file type/creator is 'appe'/'TixK' and version is less than or equal to 2.1.1. Matches and moves multiple files.

Only runs on uninstalls. See the notes about uninstall below.

n/a Always (Rename Existing)  

Move Action Item: Trash KMenu<=1.1

Moves any copies of "Kerberos Menu" from the Extensions folder to the Trash - makes comparison using file type/creator is 'INIT'/'KMnu', and version is less than or equal to 1.1. Matches and moves multiple files.

Only runs on uninstalls. See the notes about uninstall below.

n/a Always (Rename Existing)  

Move Action Item: Trash Kerberos Preferences-Pref

Moves any copies of "Kerberos Preferences" from the Preferences folder to the Trash - makes comparison using file type/creator is 'pref'/'Krb '. Matches and moves multiple files.

The "Trash Kerberos Folder" action item above will remove any Kerberos Preferences installed in the Application Support folder.

Only runs on uninstalls. See the notes about uninstall below.

n/a Always (Rename Existing)  

Move Action Item: Trash Kerberos Preferences-Ext

Moves any copies of "Kerberos Preferences" from the Extensions folder to the Trash - makes comparison using file type/creator is 'pref'/'Krb '. Matches and moves multiple files.

The Kerberos Preferences file could be installed in the Extensions folder on foreign-language systems running Mac OS 9. See Installation Location of "Kerberos Preferences" File below for info about why this is installed where.

Only runs on uninstalls. See the notes about uninstall below.

n/a Always (Rename Existing)  

Message Action Item: Message "Restart Uninstall"

This action item shows a dialog warning the user that the installer is going to restart when an uninstall finishes. There is no option to cancel the restart, because leaving some Kerberos stuff running in memory after removing it would be bad.

The action item is set to call the external code resource "Restart" after the message is displayed, since VISE does not provide a built-in way to force a Restart after an uninstall.

Only runs on uninstalls. See the notes about uninstall below.

n/a n/a  

Message Action Item: Message "Restart Install"

This action item shows a dialog warning the user that the installer is going to restart when an install finishes. There is no option to cancel the restart, because the user must restart to make the Kerberos Menu active after installation.

Unlike the restart message for uninstalls, this action item does not call an external code resource, we use VISE's built-in restart after an install function. However, in the installer settings we have told VISE to suppress "success" dialogs in order to suppress an excess message during uninstall, and it turns out that the standard VISE restart warning is considered a "success" dialog, and as a result is suppressed too. Since it's kind of alarming for the installer to restart without any warning when it's done, this message action item simply emulates the original VISE behavior.

n/a n/a  

Installer Notes

Installation Location of Shared Libraries

The two shared libraries, "Kerberos Library" and "Kerberos Support Library" (along with debug versions, depending on if the installer is a final release installer or not), are installed in different locations depending on the version of Mac OS running. Applications use the "CFM search path" to locate shared libraries for use, and different versions of the Mac OS have different search paths. The Extensions folder has always been part of the CFM search path, so originally shared libraries were installed there. However, Apple eventually decided that Application Support was the right place for shared libraries, so in Mac OS 8.5 they added it to the CFM search paths. However, a bug in Mac OS 8.5 keeps the Application Support folder from being searched on certain newer Macs (such as iMacs and Blue&White G3's), so the first Mac OS you can really count on the CFM search path including the Application Support folder on all Macs is Mac OS 8.6.

However again, we've discovered that on some non-English language versions of the Mac OS, even Mac OS 9.2 does not include the Application Support folder in the CFM search paths. So on non-English language systems, you cannot count on the Application Support folder being part of the search paths.

Therefore, on Mac OS 8.5.1 and below and non-English systems, the shared libraries are installed in the Extensions folder. On English Mac OS 8.6 and higher, the shared libraries are installed in an "Kerberos" folder in Application Support. It has become customary for applications to create a subfolder in the Application Support for their files, so we decided to follow suit. (Subfolders of the Application Support folder are also searched as part of the CFM search path.)

Installation Location of "Kerberos Preferences" File

The "Kerberos Preferences" file is installed in two different locations depending on the version of Mac OS running. You might think that we always want to install the preferences file in the Preferences folder, but we don't because of the Mac OS 9 Multiple Users feature. Kerberos for Macintosh 3.0 and later fall back to a "system" prefs file in the Application Support folder if it doesn't find a "user" prefs file in the Preferences folder. We support this behavior for the Multiple Users feature of Mac OS 9 so that the machine's administrator can provide a base set of preferences for all users (because the Application Support folder is shared between them all), and then each user can have customizations (because each user gets their own Preferences folder). It's not necessary to install a "user" Kerberos Preferences, because the base one should contain all the information a user needs to operate Kerberos, and KfM will create the user Kerberos Preferences file automatically if necessary.

You can find more information about the design of the preferences file location system by reading the Kerberos for Macintosh Preferences Documentation.

Thus, on English language systems, we install the Kerberos Preferences file in the "Kerberos" folder in Application Support on Mac OS 9 and higher so that those machines will be all ready to go if they turn Multiple Users on (if there's just a prefs file in Preferences folder, when Multiple Users is turned on, only the master user will get the prefs file in his Preferences folder).

However, on non-English language systems, we don't install the shared libraries in the Application Support folder due to bugs in the CFM search paths (see above). On non-English Mac OS 9 and later, we put the "system" copy of the Kerberos Preferences file in the Extensions folder along with the shared libraries, since the Extensions folder is also shared between all users.

Uninstall

Uninstall support has been built into the installer. Files that will be uninstalled are: the Kerberos control panel (both debug and non-debug), Kerberos Library (in both Application Support and Extensions, both debug and non-debug), Kerberos Support Library (in both Application Support and Extensions, both debug and non-debug), Kerberos Ticket Keeper, Kerberos Menu, Kerberos Control Strip, and Kerberos Preferences (in both Application Support and Preferences).

Instead of using the VISE built-in uninstall feature, the KfM installer uses a set of action items that move the files to the Trash, and then a special external code resource to force a restart afterwards.

We don't use the built-in uninstall feature because it attempts to delete items outright, which causes two problems - you cannot recover the files if they are deleted directly, and some of the items cannot be deleted outright because they are still in use even when all applications are quit. The Kerberos Menu causes the problem, because it's a system extension; since it's still active, the shared libraries are also still in use, and VISE will give an error if you try to delete any of those three files. So instead we use action items to move all the files to the Trash, which you can do while they're still in use.

The next problem is that we'd like to force a restart at the end of uninstall, since the Kerberos Menu is still active even though KfM has been uninstalled. However, VISE does not provide a way to force a restart at the end of uninstalls. So we wrote an external code resource called "Restart" that is called on uninstall after we display a message warning the user that we're going to restart.

Some of the uninstall action items are virtual duplicates of the ones we use at install time to move outdated versions out of the way. In theory we could have reused those on uninstall by checking the "run on uninstall" checkbox for them, but in practice that doesn't work because they all move files to the "Old Kerberos for Mac Files" folder, which doesn't exist at uninstall time (since it's only created on install, and there's no way to install it at uninstall time). Thus, we have two separate action items, one for install and one for uninstall.

Gestalt Notes

The Kerberos for Macintosh installer contains a variety of custom Gestalt checks beyond the ones included with VISE. These are easily created and edited with VISE's Archive->Gestalts menu item. Most of the custom Gestalts we've set up are system version checks and they will not be detailed here because they are straightforward uses of the 'sysv' selector. Here is some information about the non-obvious ones.

KfM > 4.0.3

Since version 3.0, Kerberos for Macintosh installs a Gestalt selector saying what version is installed. The selector key is 'Krbv'. This custom Gestalt check reads that selector to see what version is installed and check to see if it's greater than KfM 4.0.3. We use this Gestalt to warn the user if they appear to be trying to install KfM 4.0.3 over a newer version.

Gestalt versions are in hexadecimal. The 'Krbv' version consists of two parts: the first 4 digits are the version number, and the second 4 digits are the build number. The build number indicates if the KfM version is alpha, beta, or final. For final releases, the build number is always "8000".

Sample versions of the 'Krbv' selector are:
KfM 3.0 = 03008000
KfM 3.0.1 = 03018000
KfM 4.0 = 04008000
KfM 4.0.3 = 04038000

So this Gestalt checks for 'Krbv' being greater that 0403800 .

English Language

While standard Mac OS Gestalts do not provide a way to determine the language of an operating system, VISE provides a special gestalt selector 'InLg' to do this. Since we need to install some files in different location on non-English language installations of the OS, we set up two Gestalt checks that call VISE's special selectors.

This Gestalt checks that 'InLg' = 00000000, which is means the OS is English language.

Not English Language

This Gestalt checks that 'InLg' <> 00000000, which is means the OS is some non-English language version.

Code Resources

The Kerberos for Macintosh installer uses several external code resources to add functionality to VISE. The code for these resources along with compiled binaries is included with the installer distribution. The code resources require CodeWarrior 7.2 to be compiled, although you shouldn't need to make changes to them and recompile them. Here are some brief explanatory notes about them.

Set Routing Bit

For the installer file specified, this code resource will set the "routing bit" of the extended Finder information on the Kerberos file. This bit tells the Finder to look inside the file for a 'rout' resource so that the Finder knows which sub-folder of the System Folder to put the file in when the file is dragged to the System Folder. (This is only necessary on some versions of Mac OS 8 - on later systems the Finder looks for the 'rout' resource automatically.) Specifically, we want the Kerberos control panel, which is really an application, to go into the Control Panels folder. We actually have the "routing bit" set on the original file, but VISE does not preserve the extended Finder information, so we need to reset it using this code resource.

Restart

On Mac OS 8 & 9, sends a restart AppleEvent to the Finder. On Mac OS X, sends a restart AppleEvent to the LoginWindow.

Used to force a restart after uninstall in the Mac OS 8 & 9 installer, used to force a restart after both install and uninstall on OS X (Vise's restart is unreliable on OS X).

Timebomb

Displays a dialog warning that the installer will expire on a certain day, and once that day arrives, tells the installer to refuse to run.

Installers that contain development and prerelease versions of KfM include and call the Timebomb code. Final versions do not. The installer source distribution does not include references to the Timebomb external code resource or the code resource itself.


Questions or comments? Send mail to macdev@mit.edu
Last updated on $Date: 2003/11/19 20:36:47 $
Last modified by $Author: smcguire $