Spek 0.5 – Mac OS X port
by Alexander Kojevnikov
I’m happy to announce the release of version 0.5 of Spek, a multi-platform acoustic spectrum analyser.

Changes since the previous release:
- Significantly speed up spectral analysis by using the optimal number of frequency bands.
- DTS files support.
- Distribute Windows version as a ZIP archive in addition to the MSI installer.

- Mac OS X installer.
- Use Pango to render text.
- Brand new icon.
This is the first version of Spek that features a Mac OS X port. All binaries in the app bundle are compiled completely from scratch using a slightly modified version of Aaron‘s excellent bockbuild project (the same tool that is used to package Banshee for OS X).
If your project uses the GNOME stack and you want to port it to Mac OS X — give bockbuild a try. Check Spek’s bundle script for gory details.
Thanks for pointing out bockbuild, I am going to look into it shortly for creating a binary app bundle for our open source project.
Before I get into the details, could you point out how it handles numerous library dependencies? Does it require the entire stack to be recompiled on Mac OS X and dropped into one gigantic bundle? (e.g. All of GTK+, Pango, etc. for just the Spek app?)
@pundit: Each library in bockbuild is described by a small Python script, check the `packages` directory. It’s easy to add your own packages, change versions, configure flags, etc… in fact, I’m doing exactly that for Spek in my github fork of bockbuild.
Bockbuild bundles everything together to avoid problems when different apps want conflicting versions of the same library. If you want a package manager-like system, take a look at MacPorts.
OK, thanks! I currently use a mixture of MacPorts (for underlying libraries) and an elaborate bash script to fetch, compile and install our code on top of it.
I guess I need to create a blockbuild script for every dependency (replacing what is in MacPorts) and then proceed to write blockbuild scripts for every one of our tools to create a binary of our project.
Does this sound correct?
Either that, or if you are happy with your MacPorts set up, you can just use the solitary tool from bockbuild to get all binary dependencies from your MacPorts install. Check solitary/Entry.cs, bockbuild/profile.py and bockbuild/darwinprofile.py for usage details.
Excellent, thank you! I think this is what I am going to try, as otherwise I need to spend way too much time figuring out how to compile dependencies that MacPorts already handles well.