[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