[Pythonmac-SIG] Build python app using wxpython on intel-leopard and deploy on powerpc-tiger?
Ned Deily
nad at acm.org
Wed Oct 7 00:37:21 CEST 2009
In article <20091006203908.GA23886 at panix.com>,
Aahz <aahz at pythoncraft.com> wrote:
> What is your recommendation for supporting 10.4, 10.5, and 10.6? Does
> including PPC make any difference?
For python in general (not wx), my experience with building current
python installers is that one can reliably build 2-way 32-bit i386/ppc
("fat") installers on either 10.5 or 10.4 that will work on 10.4, 10.5,
and 10.6. That includes the small set of 3rd party libraries included
in the python.org installers (zlib, bzip2, sqlite3, ncurses, etc). The
python.org installer builds use the 10.4u SDK as sysroot. (It actually
sets MACOSX_DEPLOYMENT_TARGET=10.3 which, in theory, works for
10.3.9(?)+ as well but we don't do any testing on 10.3.)
Since the release of 10.6, I have done some experimenting with trying to
build installers this way on 10.6 and have run into various problems. A
lot of things change in the default build chain on 10.6: gcc-4.2 instead
of -4.0, tools running in 64-bit mode by default, differences in the
10.4 SDK on 10.6 (which is not installed by default). With the number
of other issues involved in getting 2.6.3 out the door, neither Ronald
nor I have spent a lot of time yet trying to work through all the 10.6
build issues; so far, it's been easier to just build on 10.5 (and I've
done test builds on 10.4 as well). The results seem to work equally
well on 10.4, 10.5, and 10.6.
There are some additional complications for a python installer in that,
beyond just an executable to install, it provides a kind of user-build
environment, l.e. distuils, that needs to support user builds of
packages with C extension modules. There were a few things added to
2.6.3 to make that work on 10.6, mainly ensuring a CC=/usr/bin/gcc-4.0
gets injected. So far, that seems to work although it's a little messy
when extensions require additional 3rd-party libraries: they should also
be built with 4.0 and with compatible -archs. But, presumably, most
*apps* built with python would not need to deal with those kinds of
issues.
The python installer build script (in Mac/BuildScript in release26 svn)
also supports a 4-way universal build option that adds 64-bit variants
for intel and ppc g5. That can only be built and run on 10.5 and above
and, while it will install on 10.6, the various options it uses to
select 32- vs 64- don't work correctly there. Typically you always end
up running in 64-bit mode. Building an "intel" 2-way (32-/64-) on 10.6
has some similar issues. This can be a problem if you need any of the
deprecated Macintosh modules from the standard library as most of them
depend on Carbon frameworks available in 32-bit only. So it may be
better to stick to 32-bit only on 10.6 for the moment.
YMMV, of course. Hope that helps.
--
Ned Deily,
nad at acm.org
More information about the Pythonmac-SIG
mailing list