[Python-Dev] Fwd: Broken link to download (Mac OS X)
Ned Deily
nad at acm.org
Thu Apr 15 13:41:03 CEST 2010
In article <4BC697D2.4020200 at v.loewis.de>,
"Martin v. Lowis" <martin at v.loewis.de> wrote:
> Greg Ewing wrote:
> > Michael Foord wrote:
> >> Building Python requires, I believe, the XCode development tools to be
> >> installed. Even then, building a full version of Python - with *all*
> >> the C extensions that are part of a Python release - is not a trivial
> >> task.
> > What's non-trivial about it?
> Building a DMG file, in a way that the output will actually work on most
> other systems.
As Ronald pointed out, the installer build script does all of the dirty
work of building the install disk image (the .dmg file), including
downloading and building necessary third-party libraries. What isn't
automatically checked at the moment is that the third-party Tk framework
is in place during the build and that there isn't contamination from the
build user's environment. There is a patch in Issue5651 to do much of
that. It doesn't currently try to handle the possibility of MacPorts
(/opt/local) and Fink (/sw) contamination. I believe that issue should
be addressed by the resolution of Issue7713.
Keep in mind that Python on OS X supports the standard OS X
multi-architecture (Intel vs PPC and/or 32-bit vs 64-bit executables in
the same file) and multi-version features (the current installer builds
are fully supported on 10.6, 10.5, and 10.4 and "best-effort" supported
on 10.3 as well although building is not supported on 10.3) as well as
"Unix" shared library vs OS X framework shared library configurations.
That leads to a rather imposing matrix of potential build systems vs
potential target systems. For the most part, Apple provides excellent
upward compatibility; downward is somewhat trickier. OS X 10.6 (Snow
Leopard) has complicated matters by the change to preferring 64-bit
building and executing where possible. For python builds, some build
configurations that worked by default under 10.5 and earlier no longer
do so on 10.6, primarily due to standard library modules that depend on
APIs, in many cases deprecated ones, that are only available in 32-bit
versions. The old Macintosh modules comprise the biggest group of these
and, while they have been removed in 3.x, they still remain in 2.x. But
there are some others as well, which explain most of the build issues
Michael reported. There are also newer versions of some open source
libraries in 10.6 which cause problems for multi-version builds:
openssl, for one, and Apple's 64-bit version of Tk 8.5.
None of these problems are insolvable but with the very limited
resources (i.e. people time) we've had for working on these issues, and
when there have been so many other more critical problems, it has been
easier up to now to stick with building on 10.5 (or even on 10.4 which I
test build occasionally). I think the single most important thing that
can be done to help right now is to get a robust system of OS X
buildbots going so that many of the critical problems can be detected up
front rather than when one of us gets around to building and install
testing the multi-arch and multi-version installers. Since there are so
many potential configurations, some thought needs to go into which would
be of the most value. I would say that the most important build
configurations are: (1) 32-bit Intel/PPC framework on 10.5 (and
eventually 10.6) targeted for 10.3 through 10.6 (the current installer
config setup); and (2) 32-/64- Intel-only framework for 10.6; followed
by (3) 32-/64- Intel/PPC framework for 10.5 and 10.6. Building the
whole installer and testing on as many targeted systems as possible
would be ideal but that adds more complexity to the automation (again,
not insurmountable). But even just doing framework multi-arch builds,
installs, and tests (using the appropriate options) on only the build
systems themselves without building an installer or third-party libs
would go a long way towards catching many, if not most, problems early.
I'd be happy to supply more detailed suggestions for specific
configuration parameters for those interested in setting up buildbots.
(There may be some delay, though, as I will have limited time and
Internet access for the next three weeks.)
--
Ned Deily,
nad at acm.org
More information about the Python-Dev
mailing list