Tuesday, January 17, 2012

Compiling Audacious 3.1.2 for Debian Wheezy

I'm used to organizing my music into folders the way I want, and playing it via a simple player. In Windows I use Winamp, and in Linux I used to use XMMS. Currently, the best choice in Linux seems to be Audacious. Unfortunately, Debian only has version 2.4.4, while the latest version is 3.1.2. Fortunately, it's not too hard to compile Audacious.

Almost all the build dependencies are available in Debian Wheezy. What's needed for building 2.4.4 can be obtained via "apt-get build-dep". In addition, libmpg123-dev is a must have, for MP3 playback. It's also a good idea to install libmodplug-dev and libbs2b-dev. You may also want libnotify-dev, but watch out: the libnotify plugin I built crashes things so badly I get back to the login prompt.

The only dependency which must be built is a newer version libmowgli. I configured it using the --prefix which I intended to use for Audacious. The other dependency you may want to build is libguess, for character set detection. It depends on libmowgli.

To deal with the dependencies, I simply used "export PKG_CONFIG_PATH=/opt/audacious/lib/pkgconfig" at the start of building. That causes pkg-config to automatically find what I install into /opt/audacious. There was just one problem with the installations: the directories created in /opt/audacious were only accessible for root. I ended up fixing that with "sudo find /opt/audacious -type d -print0 | sudo xargs -0 chmod a+rx" after each install.

After building and installing Audacious, you must build and install audacious-plugins. Like Winamp, Audacious is modular, and some plugins are required to actually do stuff with it. When the audacious-plugins configure script finishes, it gives you a long list showing what features will be compiled. That can be used to check if additional dependencies need to be installed.

If you have your own plugins in ~/.local/share/audacious/Plugins/ you may need to update them because the plugin API changed. Skins should just work, though I found a problem with my favourite skin, n3ON. The column in the top right of TITLEBAR.bmp had to be copied into the clear space beside it, so there are two columns side-by-side.

So far, the only problem I see is that the Desktop Notifications (libnotify) plugin totally crashes something and gets me back to the login prompt. That might just be a bug in something else.

You can download the amd64 binary of Audacious 3.1.2 for Debian Wheezy from Dropbox. It's not an actual package; just untar it in the root to create /opt/audacious, and then run /opt/audacious/bin/audacious. There is no need to add that to the path, and the right libmowgli is loaded automatically.

I don't intend to make a habit of this. It's just an experiment and a learning experience. It reminds me of the importance of Linux distributions and package maintainers, but it also reminds me how in Windows, if you want an application you can simply download it and install it.

No comments: