[Pythonmac-SIG] Let's discuss MacPython distributions for january
Jack Jansen
Jack.Jansen at cwi.nl
Fri Dec 24 00:12:57 CET 2004
With the next version of Ambulant out the door and a whole week off
(well, only from work, not from the kid or the wife:-) I'd like to get
some work done on Python again. And with Python 2.3.5 and probably
2.4.1 imminent that seems to be good timing.
Part of this email is highly technical, but part is (somewhat) end-user
oriented, so feel free to comment only on the parts that interest you.
In january I'd like to get two MacPythons out:
- MacPython 2.4.1 (full installer for Panther, time permitting for
Jaguar too)
- MacPython 2.3 additions, version 3
The main feature of these is that they should coexist peacefully. With
each other, and with user-built (or fink-installed, or whatever) Python
2.3.5 or 2.4.1. And MacPython 2.4.1 should coexist peacefully with an
unmodified Apple Python 2.3 (possibly after making slight modifications
to that 2.3 installation). More on this below.
The second feature is that they'll finally have the newer version of
Package Manager (or, actually, the underlying pimp module), which
allows the maintainer (me:-) to have a single database for all 10.3.X
releases of MacOSX.
And, of course, there's bug fixes for things like the PythonIDE scripts
folder bug and such.
First question: what am I missing? Anything that should really go into
either (or both) of these? Any serious bugs that you want fixed?
Second question: I think the solution to peaceful coexistence is that
all Pythons adopt the solution sketched in Bob's mail
<http://mail.python.org/pipermail/pythonmac-sig/2004-December/
012292.html>. That discussion is rather technical, but what it boils
down to is that all Pythons (on 10.3) build their extensions with
"-undefined dynamic_lookup", thereby forestalling that extensions
inadvertently pull in a second, different, Python framework.
Fixing this for 2.4.1 and 2.3.5 themselves is rather easy (and sketched
in the mail mentioned above). Fixing this in the Apple-installed 2.3 is
a bit more difficult, though. We can either modify it in-place (with
admin permission) or do a complicated patch that Ronald came up with
last year. While in general you should not muck with Apple-installed
things I think that for this once I have a preference for the simple
in-place modification over the slightly convoluted patch. Opinions,
anyone?
Then there's the question of how to get the patch in place, and here I
need a bit of help. For people building Python 2.4.1 from source I can
add a test (in "make frameworkinstall") for an unpatched Apple 2.3 and
print a warning that people need to apply the patch. The MacPython
2.4.1 and 2.3-additions-version-3 installers could simply apply the
patch. But I'm not sure what to do about Pythons installed by Fink and
darwinports and other such packages.
There's also the question of the form of the patch. What needs to be
done (in case of the in-place modification) is a one-line change to
/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/
config/Makefile. The patch could either be a shell script (containing a
simple "ed" command to patch the file, or maybe a Python script so it
can do some checking) or a .pkg file. The former is easiest for people
building from source, the latter would also be a partial solution for
fink users (partial, because it would allow them to apply the patch,
but there's still no way to warn them that it is needed). Or should we
do both?
--
Jack Jansen, <Jack.Jansen at cwi.nl>, http://www.cwi.nl/~jack
If I can't dance I don't want to be part of your revolution -- Emma
Goldman
More information about the Pythonmac-SIG
mailing list