Opened 9 years ago

Closed 7 years ago

Last modified 5 months ago

#3279 task closed wontfix (wontfix)

Mac OS X installer

Reported by: Thijs Triemstra Owned by:
Priority: normal Milestone: Twisted-10.0
Component: release management Keywords: osx
Cc: Thijs Triemstra, David Reid Branch: branches/osx-installer-3279-2
branch-diff, diff-cov, branch-cov, buildbot
Author: thijs

Description (last modified by Thijs Triemstra)

Mac OS X Installer

Use 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

Attachments (1)

osx.tar.gz (3.0 MB) - added by collab 9 years ago.
archive with files for osx installer

Change History (19)

Changed 9 years ago by collab

Attachment: osx.tar.gz added

archive with files for osx installer

comment:1 Changed 9 years ago by collab

Cc: collab David Reid added

comment:2 Changed 9 years ago by Thijs Triemstra

Cc: Thijs Triemstra added; collab removed

comment:3 Changed 9 years ago by Thijs Triemstra

Owner: changed from radix to Thijs Triemstra
Status: newassigned

comment:4 Changed 9 years ago by Thijs Triemstra

author: thijs
Branch: branches/osx-installer-3279

(In [24539]) Branching to 'osx-installer-3279'

comment:5 Changed 9 years ago by Thijs Triemstra

Added the content of osx.tar.gz to the branch in r24540.

comment:6 Changed 9 years ago by Thijs Triemstra

Keywords: review added
Owner: changed from Thijs Triemstra to David Reid
Status: assignednew

comment:7 Changed 9 years ago by David Reid

Keywords: review removed
Owner: changed from David Reid to Thijs Triemstra

Quick Review,

Version data should be figured out using twisted._version

I am not convinced we should care about tiger. If we do care about tiger the deploy target should be parameterized and zope.interface shouldn't be installed if the system version of zope.interface is good enough. This might mean just a Leopard only installer.

I also don't like that the zope interface version is hard coded in a non-trival to change place and isn't parameterized at all.

I'll need to do a more thorough review later.

comment:8 Changed 7 years ago by Thijs Triemstra

Status: newassigned

comment:9 Changed 7 years ago by Thijs Triemstra

Branch: branches/osx-installer-3279branches/osx-installer-3279-2

(In [28557]) Branching to 'osx-installer-3279-2'

comment:10 Changed 7 years ago by Thijs Triemstra

(In [28568]) Add build-mac-installer script, refs #3279

comment:11 Changed 7 years ago by Thijs Triemstra

(In [28569]) add some docstrings, refs #3279

comment:12 Changed 7 years ago by Thijs Triemstra

(In [28570]) simplified build, refs #3279

comment:13 Changed 7 years ago by Thijs Triemstra

Description: modified (diff)
Keywords: review added
Milestone: Twisted-10.0
Owner: Thijs Triemstra deleted
Reporter: changed from collab to Thijs Triemstra
Status: assignednew

Updated the ticket description, will use it as a 'sandbox' wiki page to write up some docs for this installer.

Some questions:

  • what python are we installing into / can the user choose
  • how/where to install the command line tools

The 'build' part of the installer is up for review. Would be nice to get this into 10.0 so we can build some installers for those (requires changes to _release.py + macosx folder in the root (but that can always be moved elsewhere of course).

comment:14 Changed 7 years ago by Thijs Triemstra

Description: modified (diff)

add open issues section to description

comment:15 Changed 7 years ago by Jonathan Lange

At the recent sprint, someone suggested that it doesn't make much sense to distribute an installer for OS X.

comment:16 Changed 7 years ago by David Reid

Resolution: wontfix
Status: newclosed

OS X > 10.5 ships with a system twisted installation. The default path order on OS X is /System, /Library, and ~/Library. It is completely wrong for an installer to install things into /System, and installing it anywhere else will cause it to never seen by python. The only sensible thing to for a developer to do is install it into something like a virtualenv or mangle their path manually.

Given that we can't easily install twisted on OS X without risking breaking things which depend on the system Twisted the only sensible thing to do is to not build a GUI installer.

Developers should be using something like virtualenv or combinator to mangle their own paths and bunde the specific Twisted they depend on with their applications for their users.

comment:17 Changed 6 years ago by <automation>

comment:18 Changed 5 months ago by hawkowl

Keywords: review removed

[mass edit] Removing review from closed tickets.

Note: See TracTickets for help on using tickets.