02 July, 2008
Building a package from source (the Debian way)
I've had some troubles with my favorite music player moc. Now it finally seems to work and the maintainer has asked me to test. Let's see if lurking in debian-user and debian-devel has improved my compile-fu :) First I have to find the source: $ apt-cache show moc | grep VCS $ Hhm, no go... Let's try a websearch... Ok, I finally found the maintainer's message looking for a sponsor, so I got some files to download: an .orig.tar.gz, a .diff.gz and a .dsc file. I put them all in a moc folder under ~/src/. Next I unpacked the source with dpkg-source -x *.dsc This created a directory containing the unpacked source. Then I tried to build the package with dpkg-buildpackage, but failed because of missing build dependencies. An apt-get build-dep moc will take care of this (as long as I have a deb-src line in my sources.list ;). Uggh, 49 packages! Well I'll be reinstalling soon (to my NEW LAPTOP), so I'll swallow it. Ok, let's try again: dpkg-buildpackage -rfakeroot -b Still nothing. I'm missing some build-deps. Maybe they changed for this new version? I'll install them by hand. Ok, now the package builds. I installed it with dpkg -i (actually there are two packages, one with the main player and the other one with the ffmpeg plugin) and... it doesn't work! What is going on? I look through the output during the build, no errors. Dependencies are the correct ones (and not the ones from debian-multimedia), but then I think of something intersting. moc will always display some info when starting, but now it didn't. It's just as if it was already running in the background (one of moc greatest features). This would mean I was still running the old version! Start moc, close with Q (which also shuts down the server) and start again, and... IT WORKS!!! Thanks a lot to Elimar Riesebieter, the maintainer of the package, who has been very pacient with me despite bugging him about this bug (this doesn't sound very well) and was able to find the problem and fix it.