Opened 6 years ago

Closed 4 years ago

#3279 task closed wontfix (wontfix)

Mac OS X installer

Reported by: thijs Owned by:
Priority: normal Milestone: Twisted-10.0
Component: release management Keywords: osx, review
Cc: thijs, dreid Branch: branches/osx-installer-3279-2
(diff, github, buildbot, log)
Author: thijs Launchpad Bug:

Description (last modified by thijs)

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 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 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 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 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 6 years ago.
archive with files for osx installer

Change History (18)

Changed 6 years ago by collab

archive with files for osx installer

comment:1 Changed 6 years ago by collab

  • Cc collab dreid added

comment:2 Changed 6 years ago by thijs

  • Cc thijs added; collab removed

comment:3 Changed 6 years ago by thijs

  • Owner changed from radix to thijs
  • Status changed from new to assigned

comment:4 Changed 6 years ago by thijs

  • author set to thijs
  • Branch set to branches/osx-installer-3279

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

comment:5 Changed 6 years ago by thijs

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

comment:6 Changed 6 years ago by thijs

  • Keywords review added
  • Owner changed from thijs to dreid
  • Status changed from assigned to new

comment:7 Changed 6 years ago by dreid

  • Keywords review removed
  • Owner changed from dreid to thijs

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 5 years ago by thijs

  • Status changed from new to assigned

comment:9 Changed 4 years ago by thijs

  • Branch changed from branches/osx-installer-3279 to branches/osx-installer-3279-2

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

comment:10 Changed 4 years ago by thijs

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

comment:11 Changed 4 years ago by thijs

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

comment:12 Changed 4 years ago by thijs

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

comment:13 Changed 4 years ago by thijs

  • Description modified (diff)
  • Keywords review added
  • Milestone set to Twisted-10.0
  • Owner thijs deleted
  • Reporter changed from collab to thijs
  • Status changed from assigned to new

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 4 years ago by thijs

  • Description modified (diff)

add open issues section to description

comment:15 Changed 4 years ago by jml

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

comment:16 Changed 4 years ago by dreid

  • Resolution set to wontfix
  • Status changed from new to closed

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 4 years ago by <automation>

Note: See TracTickets for help on using tickets.