id	summary	reporter	owner	description	type	status	priority	milestone	component	resolution	keywords	cc	branch	branch_author	launchpad_bug
3279	Mac OS X installer	thijs		"= Mac OS X Installer =
Use [http://www.sveinbjorn.org/platypus Platypus] to create a Mac OS X installer from a Python script that copies/installs the files (and possibly lets the user pick their python version)?

== Building ==
Make sure you have the command-line feature in Platypus enabled and run the [source:branches/osx-installer-3279-2/bin/admin/build-mac-installer build-mac-installer] script with the path to the (unpacked) Twisted distribution (the working directory):
{{{
chbranch osx-installer-3279-2
cd osx-installer-3279-2
bin/admin/build-mac-installer .
}}}

This will create {{{Twisted-9.0.0-macosx.dmg}}} in {{{dist}}}. Files in that mounted {{{.dmg}}} volume:
{{{
/Volumes/Twisted 9.0.0 Installation$ ls -l
total 120
drwxr-xr-x  4 thijstriemstra  staff    136 28 Feb 05:44 Documentation
-rw-r--r--  1 thijstriemstra  staff   1020 25 Dec 17:43 INSTALL
-rw-r--r--  1 thijstriemstra  staff   1654 17 Jan 02:03 LICENSE
-rw-r--r--  1 thijstriemstra  staff  47511 30 Nov 17:15 NEWS
-rw-r--r--  1 thijstriemstra  staff   3817 30 Nov 17:15 README
drwxr-xr-x  3 thijstriemstra  staff    102 28 Feb 05:43 Twisted 9.0.0 Installer.app
}}}

That documentation folder has copies of the compiled API docs and [source:trunk/doc howto]'s:

{{{
$ ls -l Documentation/
total 0
drwxr-xr-x   2 thijstriemstra  staff   68 28 Feb 05:44 api
drwxr-xr-x  16 thijstriemstra  staff  544 28 Feb 02:35 howto
}}}

== Running ==
The compiled {{{Twisted 9.0.0 Installer.app}}} application contains the {{{twisted}}} source, command-line tools from [source:branches/osx-installer-3279-2/bin bin], and the Python installer {{{script}}}:

{{{
$ ls -l Twisted\ 9.0.0\ Installer.app/Contents/Resources/
-rw-r--r--   1 thijstriemstra  staff    831 28 Feb 05:43 AppSettings.plist
drwxr-xr-x   4 thijstriemstra  staff    136 28 Feb 05:43 English.lproj
-rwxr-xr-x   1 thijstriemstra  staff  46595 27 Feb 13:33 appIcon.icns
drwxr-xr-x  14 thijstriemstra  staff    476 28 Feb 05:43 bin
-rw-r--r--@  1 thijstriemstra  staff    639 28 Feb 05:43 script
drwxr-xr-x  37 thijstriemstra  staff   1258 27 Feb 21:02 twisted
}}}

The {{{twisted}}} folder contains a copy of the source for installation but is also added to the Python path so it can be used in the Python installer script.

That {{{script}}} file is a copy of the [source:branches/osx-installer-3279-2/macosx/installer-app.py installer-app.py] file, that prints in the installer status textfield:
{{{
Running...
Welcome to the Twisted 9.0.0 Installer!
Using bundled Twisted 9.0.0 from /Volumes/Twisted 9.0.0 Installation/Twisted 9.0.0 Installer.app/Contents/Resources

todo - actually copy/install:
 - source
 - man files?
 - cmdline tools?
}}}

== Open Issues ==

 I have numerous versions of Python installed on my system, which one(s) should be updated?

{{{
OSX 10.6.2 - macbook pro
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
}}}

|| Manufacturer || Version || Twisted || OSX || Location ||
|| PSF !MacPython ||  2.6 || - || - || `/Library/Frameworks/Python.framework/Versions/2.6` ||
|| PSF || Source 2.6 || - || - || `/usr/local/lib/python2.6` ||
|| PSF || Source 2.7 || - || - || `/usr/local/lib/python2.7` ||
|| PSF || Source 3.1 || - || - || `/usr/local/lib/python3.1` ||
|| Apple || 2.3 || 8.2 || 10.4 || `/System/Library/Frameworks/Python.framework/Versions/2.3` ||
|| Apple || 2.5 || 8.2 || 10.5 || `/System/Library/Frameworks/Python.framework/Versions/2.5` ||
|| Apple || 2.6 || 8.2 || 10.6 || `/System/Library/Frameworks/Python.framework/Versions/2.6` ||




"	task	closed	normal	Twisted-10.0	release management	wontfix	osx, review	thijs dreid	branches/osx-installer-3279-2	thijs	
