(no commit message)
[devwiki.git] / design / librarymacinstallerplan.mdwn
index 81dcc77..e2f1d54 100644 (file)
@@ -2,7 +2,7 @@
 ###Introduction:
 This document describes Codethink's plan for producing an installer for the Moonshot GSS EAP and SASL GS2 libraries for Mac OS X 10.6 (“Snow Leopard”) and 10.7 (“Lion”). The installer will include the libraries and all dependencies, and will perform any configuration necessary to allow the libraries to be used.
 
-The Moonshot GSS EAP library implements the EAP mechanism for use by the GSS API. The GSS API is implemented by the Kerberos whoich ships with the OS (but see Issues below)
+The Moonshot GSS EAP library implements the EAP mechanism for use by the GSS API. The GSS API is implemented by the Kerberos implementation which ships with Mac OS (but see Issues below).
 
 The SASL GS2 Library implements the GS2 SASL mechanism for use by the SASL2 library.
 
@@ -85,9 +85,9 @@ There are two parts to the installation:
 
 1: The installer will install library and header files in /usr/local/lib and /usr/local/include, as for the Linux 'make install'. 
 
-2: SASL2 Framework: in addition, the installer will install Cyrus SASL framework will be installed in /Library/Frameworks/SASL2.framework (as in the existing Cyrus SASL 'make install' and as recommended by Apple's guidelines to developers). The Moonshot GSS EAP framework will be installed in /Library/Frameworks/MoonshotGSS_EAP.framework. The installer will create the .framework directories if they are not already present. The frameworks are wrappers for symlinks to the respective dynamic libraries in /usr/local/lib (libsasl2.dylib and mech_eap.dylib).
+2: SASL2 Framework: in addition, the installer will install Cyrus SASL framework will be installed in /Library/Frameworks/SASL2.framework (as in the existing Cyrus SASL 'make install' and as recommended by Apple's guidelines to developers). The framework is a wrapper for a symlink to the dynamic library in /usr/local/lib/libsasl2.dylib and mech_eap.dylib.
 
-If an installation with a lower version number is present, the new installation will be installed, and the /Versions/Current alias changed to refer to the new installation.
+If an installation of the SASL library with a lower version number is present, the new installation will be installed.
 
 If an installation with a higher version number is present, the new installation will terminate with a message explaining why.
 
@@ -107,7 +107,7 @@ The Package properties will be
 
 For each component in the package, properties will be
 
-    Destination (To): The appropriate subdirectory of the /Library/Frameworks/Moonshot directory tree
+    Destination (To): The appropriate directory 
     Custom destination consent (Allow custom location): False.
     Package identifier: net.ja.moonshot.xxxx (where xxx identifies the individual library)
     Package version number: 1 for first release, incremented in future releases
@@ -125,36 +125,61 @@ This library consists of the following files installed in the following location
 To be completed (See Outstanding questions/issues 3)
 <table border="1">
 <tr>
-<td>/bin</td> <td>list of files in /bin</td>
+<td>File</td> <td>location</td> <td>notes</td>
 </tr>
 <tr>
-<td>/include</td> <td>list of files in /include</td>
+<td>mech_eap.dylib</td> <td>/usr/local/lib/gss</td> <td>The dynamic library</td>
 </tr>
 <tr>
-<td>/lib</td><td>list of files in /lib</td>
+<td>gssapi_eap.h</td><td>/usr/local/include/gssapi</td> <td>header file for the EAP GSS mechanism</td>
 </tr>
 </table>
+The following configuration files will be modified:
+<table border="1">
+<tr>
+<td>File</td> <td>change</td> <td>notes</td>
+</tr>
+<tr>
+<td></td> <td></td> <td> </td>
+</tr>
+</table>
+
+
 #####Cyrus SASL Library
 This library consists of the following files installed in the following locations:
 To be completed (See Outstanding questions/issues 3)
 
+Plugins go in /usr/lib/sasl (which should be a symlink to /usr/local/lib/sasl).
+
 <table border="1">
 <tr>
-<td>/bin</td> <td>list of files in /bin</td>
+<td>File</td> <td>location</td> <td>notes</td>
 </tr>
 <tr>
-<td>/include</td> <td>list of files in /include</td>
+<td>sasl2.dylib</td> <td>/usr/local/lib/</td> <td> </td>
 </tr>
 <tr>
-<td>/lib</td><td>list of files in /lib</td>
+<td>Sasl2</td> <td>/Library/Frameworks/SASL2.framework</td> <td>The framework binary - symlink to /usr/local/lib/libsasl2.dylib</td>
+</tr>
+<tr>
+<td>??</td> <td></td> <td> </td>
+</tr>
+</table>
+
+The following configuration files will be modified:
+<table border="1">
+<tr>
+<td>File</td> <td>change</td> <td>notes</td>
+</tr>
+<tr>
+<td></td> <td></td> <td> </td>
 </tr>
 </table>
 
 #####Dependencies
 The installer will not include any dependencies which are present by default in the installed version Mac OS X.
 
-For any dependencies which are not present by default in the installed version Mac OS X, the installer will install the needed versions in the /Library/Frameworks/Moonshot directory tree. It will not attempt to locate or use existing installations of these dependencies. This means that if such existing implementations are uninstalled in the future, the Moonshot libraries will not be broken. This decision has a cost in terms of disk space, but is justified because it a: decreases the complexity of the installation and b: protects the installation from potential failure.
-
+For any dependencies which are not present by default in the installed version Mac OS X, the installer will install the needed versions. 
 ###References:
 1. [Mac OS X Developer Library, Framework Programming Guide, Installing Your Framework](https://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPFrameworks/Tasks/InstallingFrameworks.html#//apple_ref/doc/uid/20002261-BBCCFBJA)
 2. [Mac OS X Developer Library, PackageMaker User Guide](https://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/PackageMakerUserGuide/)