[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[pygame] Recent Mac OS X fixes for pygame



I've fixed up the MacOS X support for pygame to:
only look for framework versions of SDL
depend on PyObjC and use python code to init instead of some gnarly ObjC code
remove support for ghetto versions of python (i.e. Jaguar 2.2)
remove support for "hacking the window manager".. just execute with the pythonw script for christ sake :)

The reason for this is that Python 2.3 is at rc2 (likely to be the final release), and this release of Python will be in Panther. The version in Panther DP is a beta of 2.3, which is largely compatible with 2.3rc2.

The binary installer for Python 2.3rc2 is at: http://www.cwi.nl/ftp/jack/python/mac/MacPython-OSX-2.3rc2-3.dmg
My pygame sourcetree is at: http://undefined.org/python/pygame.tgz

In order to build, you'll need SDL, SDL_image, SDL_ttf, Numeric, etc. http://www.libsdl.org/ has installers for all of these, except smpeg, which you'll have to compile yourself. It's easy, just untarball PBProjects.tar.gz and compile the Project Builder file. Make sure the install path is /Library/Frameworks not @executable_path/../Library/Frameworks. As for Numeric, Package Manager has a copy of Numeric (either source or binary) that works just fine on both 10.2.6 and Panther DP. If you're on Panther DP, you'll have to use this Package Manager URL: http://www.python.org/packman/version-0.3/darwin-6.6- Power_Macintosh.plist because I don't think Jack has setup the Panther DP specific repository yet. You can get PyObjC from Package Manager as well, but you may have to compile it yourself if on Panther DP.

Here's the 'changelog':
Removed the EXTRABASE hacks from Setup.in, config.py
Fixed up config_darwin.py to no longer bother with sdl-config (the libsdl.org installers don't install it), but just look for the frameworks and do the right thing. Also cleaned up compile flags.
Removed src/CPS.h src/SDLmain.m src/setproctitle.c src/setproctitle.h
Added lib/macosx.py (pyobjc init stuff)
Changed lib/__init__.py to make sure Window Manager access is available, and shadow pygame.base.init() with an init function that does the PyObjC initialization (SDL on MacOS X uses Cocoa).
Removed stupid OS X hacks from src/base.c

The rest of the codebase is just included for completeness so someone on OS X can just download and build it.

I'll be adding this to my Package Manager repository sometime in the near future, when I get around to writing installers and dependency checkers for the SDL frameworks, and I'll get Jack to put it in the official repository when he gets the time (he's extremely busy trying to get Python 2.3 final ready for the Aug 1 deadline for OS X 10.3/Darwin 7.0.0).

Oh, also note that this patch (should be) to the current CVS version of pygame.. which may or may not be stable, but it worked for me.

-bob