Friday, August 25, 2006

xmms on linux

There is a new version of xmms, version 2, which works with GTK2 and supports the latest codecs. I started to look at this because I recently obtained a number of music files in m4a format, which the old xmms cannot handle. This blog describes my experience trying to get xmms2 up and running on linux. xmms2 depends on scons (which is installed via python) and SQLite (configure;make;make install). xmms2 will, in theory, build without any other dependencies being satisfied but it is as well to get some other things installed for the optional components of xmm2. First is the mad library for mp3 support (configure;make;make install). Next is ogg/vorbis (configure;make;make install). Next is ALSA support (configure etc...). Next is the crucial one, AAC support via the faac library from www.audiocoding.com. This proved to be some hassle: faac has a slightly non-std build in that ./bootstrap must be run before running configure. When I downloaded faac the bootstrap script has been DOSified so I had to say "dos2unix bootstrap bootstrap" to fix that. The configure script then started to produce the usual output but near the end fell over with: .infig.status: error: cannot find input file: This looked like another DOS-ism and indeed it is. configure.in and Makefile.am also need to be unDOSified but that's not all. I run the following script found on a faac WIKI: #! /bin/bash if [ -d $1 ]; then for i in $1/*; do ./$0 $i done else mv $1 tmp cat tmp tr -d \\r >$1 rm tmp fi I then re-added execute permission (to every file for simplicity). Re-running configure still did not work so I re-ran bootstrap. This generated a configure script that ran to completion. The make then worked although there were several warnings about missing newlines at end of file. Clearly this release still has some rough edges. Finally I was ready to try using scons to build xmm2. Then I found that xmms2 also depends on the command git-rev-parse. I tried to download and build git. Its tarball comes with a Makefile and just typing 'make' seemed to do the trick. One small suprise was that once the build finished, saying make install as root caused lots of other building to happen. However, finally, it did install but when I re-ran scons on xmms2 I still had problems. git installs to /root/bin so I tried running scons as root with /root/bin added to my PATH. The error I got was: fatal: Not a git repository scons seemed to blunder on and got several other later errors such as list index out of range. At this point I gave up for the night. If I return to this I will add notes as comments to this blog entry.

No comments: