I have managed to create an all-self-contained Mac app, which is a SpringLobby.app that includes SpringLobby (0.131), spring (0.82.7.1) and all their required libraries; it embeds one mod (XTA) and two maps (Tropical and Levels v2) as a proof-of-concept of embedding minimal contents (so that the user can single-play as soon as the app is there).
It is fully user oriented (that is, the user just has to double-click on it, no Terminal required: springlobby launches prewired to its libunitsync and spring, the "proof-of-concept" mods and maps are already available without configuration (although adding more via ~/.spring works); it works on both Leopard and Snow Leopard, and is a 32 and 64 bits build). When running a TASServer (not included!), I could play a game on LAN between a 10.6 iMac and a 10.5 MacBook. I played as well (well, spectated) to games on the official server.
It is fully buildbot oriented too (see compilation details below).
I would be glad to know if people are interested in this kind of end-user packaging, and in integrating it to a buildbot.
The generated downloadable is here:http://ks31107.kimsufi.com/gui/spring/S ... by.app.zip
(note: the only problem is that Safari seems to garble the Zip while expanding it; curling the URL and then opening it in the Finder works great, though)
The compilation / packaging environment is a suite of shell scripts I have been writing and enhancing for years, a bit similar to what MacPorts does (except mine only rely onÔÇª whatever resides on my dev computer, but I think Apple's Dev Tools, Java, and some basic GNU tools are the only requirement; no root needed.
Specifically, those scripts download, patch, configure, compile and install to a centralized directory, then package, with no human interaction (except launching them from a simple export INSTALLS=/tmp/build SANSSU=1 ; ./springapp, after having possibly cleant /tmp from preceding builds).
Patches consist of some modifications to the software (first to make it compile, then to add features like automagical sibling libraries and data discovery, and so on).
Main entry point is a script called springapp that calls the other ones required, then creates the application; each package script is independant. All rely on a util.sh (and sometimes util.bash) for common functions; util.sh defines three variables that control where everything will go (downloaded source packages cache, compilation directory, and installation directory).
Oh, and every comment and function name is in french. Damn crazy french programmers (hey, doesn't everybody love to include some litterature of its own language in his source code?)ÔÇª
Here is the whole thing:http://ks31107.kimsufi.com/gui/spring/installs.tar.gz
I am not willing to install MacPorts on my computer, but, if anyone is interested in porting my packaging script to create a MacPorts-generated spring and springlobby application, I will gladly help. Hmm, by the way, does MacPorts produces cross-OS-version executables and libraries?