George Nurser wrote:
Apologies for perhaps raising an old chestnut here.... but these
issues would not arise if we had separate intel and ppc MacPython
But all sorts of other issues would arise. The tricky bit to all of this is getting/building Universal versions of the various dependencies. I still have no idea why Apple doesn't just provide a few more common libs, like libpng and libfreetype (which is now included with X11, but as I understand it, that's an optional install). Anyway as we don't have any control over what Apples does (and even less control over what they have already not done!), we need other solutions:
We try to build a consensus among the MacPython community about a "standard" way to deal with common dependencies. There is now more-or-less a consensus that we should provide binaries for MacPython (and now 10.5's Apple python) that are statically linked against universal versions of all the dependencies. That works great, but the truth is that it's a pain in the $$%#@ to get those dependencies built right, so we've substantially raised the barrier for folks to build binary packages. Also, it seems a bit silly to separately deal with something like libpng for multiple packages. I think I've got at least four python extensions with libpng.
For example: Fredrik Lundh recently asked on the PIL list for recommendations as to what binaries he should provide for OS-X, and for someone to build them (he doesn't have a Mac). I set out to do it for him, and am still mired in dependency heck. Note that the key dependencies are the same as for Matplotlib (libpng, libfreetype)
My proposal for the "standard" way to provide the libs:
Kyng Chaos (William Kyngesburye)'s Frameworks:
He's got UnixImageIO, which provides libpng and others, and freetype, plus a bunch of others. They are all build as proper versioned OS-X frameworks, as well as a nice little hack where he puts soft links in to create a standard "unixy" hierarchy, so that they can be used by libs that don't understand frameworks.
Yes, it's a bit extra to tell folks to first install these two frameworks, then whatever the python package lib is, but I think it really would make it easier all around, particularly for package builders, and making things easier for package builders means that more binaries would be built properly, which would make things easier for users.
Note: William's Frameworks are all versioned properly, so there would be no harm in installing them multiple times, or having multiple versions installed. In fact, I think you could build a *.mpkg that had both your python package and the frameworks it needs, so that users would have a one download and one click install. It wouldn't hurt to have multiple packages with the same Frameworks installed this way.
Christopher Barker, Ph.D.
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception