(no commit message)
authorhttp://petefoth.myopenid.com/ <http://petefoth.myopenid.com/@web>
Fri, 4 Nov 2011 11:29:24 +0000 (07:29 -0400)
committerwww-data <www-data@project-moonshot.org>
Fri, 4 Nov 2011 11:29:24 +0000 (07:29 -0400)
design/librarymacinstallerplan.mdwn

index 5b6c57f..8dfe3e3 100644 (file)
@@ -1 +1,104 @@
 ##Plan Mac Installer for GSS EAP and SASL GS2 libraries
+###Introduction:
+This document describes the intended behaviour of a Mac installer for the Moonshot GSS EAP and SASL GS2 libraries for Mac OS 10.6 (“Snow Leopard”) and 10.7 (“Lion”). It describes the intended locations of all installed files, system configuration modifications and any other pertinent information. It explains how it conforms to Apple’s relevant guidelines to developers.
+
+###Installer functionality:
+Apple's Developer documentation (Ref. 1) states
+> public frameworks should be installed at the local level in /Library/Frameworks.
+Frameworks installed here are available to all users of the machine.
+
+The installer will install the libraries listed below in a directory named Moonshot, a sub-directory of /Library/Frameworks on the main drive of the machine. The installer will create the Moonshot directory if it is not already present. (It may already be present because any shared libraries developed as part of the Moonshot UI / Identity Selector software will also be installed to this directory). The structure of the Moonshot directory is described below.
+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 with a lower version number is present, the new installation will terminate with a message - text TBD - explaining why.
+
+If an installation with the same version number as version being installed is present, a message is displayed to the User asking them to confirm whether the existing installation should be overwritten?
+
+The User will not be able to configure the installation to install only some of the components.
+
+The exact text to be used in messages displayed to the user will be specified as part of the implementation of the installer.
+
+The appearance of the installer will not be customized to use special icons and window backgrounds.
+
+###Structure of the Moonshot directory tree.
+The Moonshot directory will have the following sub-directory structure, allowing future versions to be installed without breaking applications that rely on an earlier version:
+
+    /Commands -> (alias to Versions/Current/bin)
+    /Headers -> (alias to Versions/Current/include)
+    /Home -> (alias to Versions/Current)
+    /Libraries -> (alias to Versions/Current/lib)
+    /Versions
+      /1.0.1
+      /1.0.2
+      ...
+      /3.1.2
+      /Current --> (alias to most recently installed version e.g /Versions/3.1.2)
+Each numbered version sub-directory will have the necessary directories from the file system hierarchy e.g.
+
+    /bin
+    /etc
+    /include
+    /man
+    /etc
+    /lib
+    /sbin
+    /share
+      /doc
+      /xml
+    /var
+      /log
+
+###Deliverables:
+An installer package (or packages) that, when run, will install the necessary files to the required places in the files system. (See Outstanding questions/issues 1)
+
+A compressed disk image file containing the installer package(s), which can be mounted to run the installer package. (See Outstanding questions/issues 2)
+
+Instructions and scripts for creating the installers and disk images from source. PackageMaker, (the tool provided by Apple to build installer packages - see Ref. 2) does not have a command line interface, and there do not appear to be any freely available alternatives which do, so it will probably not be possibly to automate the production of the installer package(s). 
+
+###Package and Component Properties
+The Package properties will be 
+
+    Provider Identifier (Organization): org.janet.moonshot
+    Target OS (Minimum Target): Mac OS 10.6 Snow Leopard
+
+For each component in the package, properties will be
+
+    Destination (To): The appropriate subdirectory of the /Library/Frameworks/Moonshot directory tree
+    Custom destination consent (Allow custom location): False.
+    Package identifier: org.janet.moonshot.xxxx (where xxx identifies the individual library)
+    Package version number: 1 for first release, incremented in future releases
+    Finalization action (Post-install): None
+    Administrator-authentication requirement (Require admin authorization): True
+    Relocatable: False
+    Downgradeable: False
+    No pre- or post-installation scripts are planned (but this may change during implementation)
+    The owner will be root and the group admin. The owner, group, and access permissions of the component files will be determined during implementation.
+(See Ref.2 for an explanation of these properties)
+
+####Delivered components and files
+The installer will install the following libraries  (See Outstanding questions/issues 3):
+
+#####lib???
+The lib??? component consists of the following files installed in the following locations:
+
+<table border="0">
+<tr>
+<td>/bin</td> <td>list of files in /bin</td>
+</tr>
+<tr>
+<td>/include</td> <td>list of files in /include</td>
+</tr>
+<tr>
+<td>/lib</td><td>list of files in /lib</td>
+</tr>
+</table>
+
+###Outstanding questions/issues:
+1. One package each for "Snow Leopard" and "Lion", or a single package that works for both?
+2. One disk image each for "Snow Leopard" and "Lion", or a single disk image containing both packages?
+3. Which libraries, consisting of which files in which sub directories?
+
+###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/)