Files
cpython/Mac/BuildScript
Georg Brandl 7167b00542 Merged revisions 67653,67655,67682-67683,67724,67755,67780-67783,67786,67789,67841,67843,67865,67881,67884,67925,67929,67931 via svnmerge from
svn+ssh://svn.python.org/python/branches/py3k

........
  r67653 | neal.norwitz | 2008-12-07 23:42:03 +0100 (Sun, 07 Dec 2008) | 1 line

  Remove unnecessary import
........
  r67655 | georg.brandl | 2008-12-07 23:45:56 +0100 (Sun, 07 Dec 2008) | 2 lines

  #4586: fix usage of Py_InitModule.
........
  r67682 | georg.brandl | 2008-12-10 00:48:44 +0100 (Wed, 10 Dec 2008) | 1 line

  #4592: fix embedding example with new C API changes.
........
  r67683 | fred.drake | 2008-12-10 07:02:39 +0100 (Wed, 10 Dec 2008) | 2 lines

  simplify imports
........
  r67724 | benjamin.peterson | 2008-12-13 04:03:41 +0100 (Sat, 13 Dec 2008) | 1 line

  string.maketrans -> str.maketrans
........
  r67755 | benjamin.peterson | 2008-12-14 16:09:34 +0100 (Sun, 14 Dec 2008) | 1 line

  tip-toe around dictionary keys view in the tutorial
........
  r67780 | jeremy.hylton | 2008-12-15 04:00:50 +0100 (Mon, 15 Dec 2008) | 2 lines

  Use True/False for ints instead of 1/0.  That's so Python 2.0.
........
  r67781 | jeremy.hylton | 2008-12-15 04:08:30 +0100 (Mon, 15 Dec 2008) | 2 lines

  Reflow long line.
........
  r67782 | georg.brandl | 2008-12-15 09:28:37 +0100 (Mon, 15 Dec 2008) | 2 lines

  #4667: fix some 2.x leftovers in the tutorial.
........
  r67783 | georg.brandl | 2008-12-15 09:29:32 +0100 (Mon, 15 Dec 2008) | 2 lines

  #4668: wrap iterator returns in list() in functional howto.
........
  r67786 | georg.brandl | 2008-12-15 09:43:10 +0100 (Mon, 15 Dec 2008) | 2 lines

  #4603: Note that inconsistent tab/space use is now illegal.
........
  r67789 | georg.brandl | 2008-12-15 10:16:15 +0100 (Mon, 15 Dec 2008) | 2 lines

  Use :samp: role.
........
  r67841 | kristjan.jonsson | 2008-12-18 18:08:57 +0100 (Thu, 18 Dec 2008) | 2 lines

  Add missing Py_CHARMASK when calling isspace().
  Found by enabling runtime tests on windows, by disabling the _set_invalid_parameter_handler() fiddling.
........
  r67843 | kristjan.jonsson | 2008-12-18 18:15:54 +0100 (Thu, 18 Dec 2008) | 5 lines

  Fix an issue in the tokenizer, where a file is opened by fd, but the underlying PyFileIO object wasn created with the closefd attribute true.
  Also fix error handling for close() int _fileio.c .  It was incorrect, looking for a negative refcount, and so errors weren't raised.  This is why this issue wasn't caught.
  There is a second reason why it isn't seen:  Class IOBase in io.py has a try:/except: around the close() funtion in the __del__() method.  This also masks these error conditions.

  This issue was discovered by removing the _set_invalid_parameter_handler() fiddling, thus enabling the C runtime checks on windows.
........
  r67865 | benjamin.peterson | 2008-12-20 04:20:23 +0100 (Sat, 20 Dec 2008) | 1 line

  fix syntax
........
  r67881 | benjamin.peterson | 2008-12-20 23:50:25 +0100 (Sat, 20 Dec 2008) | 1 line

  unpy3kize this; it require 2.x only Mac modules
........
  r67884 | benjamin.peterson | 2008-12-21 00:06:29 +0100 (Sun, 21 Dec 2008) | 1 line

  don't build bsddb anymore
........
  r67925 | benjamin.peterson | 2008-12-24 17:27:25 +0100 (Wed, 24 Dec 2008) | 1 line

  return the module object from PyMODINIT_FUNC
........
  r67929 | benjamin.peterson | 2008-12-27 03:58:34 +0100 (Sat, 27 Dec 2008) | 1 line

  string -> bytes in error message #4745
........
  r67931 | hirokazu.yamamoto | 2008-12-27 05:21:44 +0100 (Sat, 27 Dec 2008) | 2 lines

  Issue #4740: Use HIGHEST_PROTOCOL in pickle test. This enables test for protocol 3
  (== HIGHEST_PROTOCOL in 3.x)
........
2009-01-03 23:25:33 +00:00
..

Building a MacPython distribution
=================================

The ``build-install.py`` script creates MacPython distributions, including
sleepycat db4, sqlite3 and readline support.  It builds a complete 
framework-based Python out-of-tree, installs it in a funny place with 
$DESTROOT, massages that installation to remove .pyc files and such, creates 
an Installer package from the installation plus other files in ``resources`` 
and ``scripts`` and placed that on a ``.dmg`` disk image.

Prerequisites
-------------

* A MacOS X 10.4 (or later)

* XCode 2.2 (or later), with the universal SDK

* No Fink (in ``/sw``) or DarwinPorts (in ``/opt/local``), those could
  interfere with the build.

* The documentation for the release must be available on python.org
  because it is included in the installer.


The Recipe
----------

Here are the steps you need to follow to build a MacPython installer:

*  Run ``./build-installer.py``. Optionally you can pass a number of arguments
   to specify locations of various files. Please see the top of
  ``build-installer.py`` for its usage.

  Running this script takes some time, I will not only build Python itself
  but also some 3th-party libraries that are needed for extensions.

* When done the script will tell you where the DMG image is (by default
  somewhere in ``/tmp/_py``).

Testing
-------

The resulting binaries should work on MacOSX 10.3.9 or later. I usually run
the installer on a 10.3.9, a 10.4.x PPC and a 10.4.x Intel system and then
run the testsuite to make sure.


Announcements
-------------

(This is mostly of historic interest)

When all is done, announcements can be posted to at least the following
places:
-   pythonmac-sig@python.org
-   python-dev@python.org
-   python-announce@python.org
-   archivist@info-mac.org
-   adcnews@apple.com
-   news@macnn.com
-   http://www.macupdate.com
-   http://guide.apple.com/usindex.lasso
-   http://www.apple.com/downloads/macosx/submit
-   http://www.versiontracker.com/ (userid Jack.Jansen@oratrix.com)
-   http://www.macshareware.net (userid jackjansen)

Also, check out Stephan Deibels http://pythonology.org/market contact list