How to compile Amarok from source - without kde
posted by: Steve
Compiling amaroK from its source code is a tedious process. However, that is not to say that doing so is a bad idea. Indeed, a direct-from-source compile is necessary when your distribution lacks a package management system, has infrequently updated packages, or simply offers a package that does not suit your needs. Additionally, if you prefer gnome, xfce, enlightenment, fluxbox, or some other window manager and thereby do not use kde, getting amaroK functioning can be quite difficult. Indeed, I prefer the xfce or fluxbox window managers. Nevertheless, I endeavored to try out amaroK, and once I did, I must say I was quite impressed.
If you are interested in doing the same, or have a unique need best served by compile-time configuration, here detailed below is my guide:
- Special considerations before beginning:
- it is assumed that you are either fed up with package managers that are installing conflicted or broken packages and/or you are simply masochistic (or insane) enough to compile everything from source.
- it is assumed that your system has both qt 3.3.3, gtk+ 1.2/Glib1,2 amd glib2.0 or above
- it is also assumed that you do not have kde installed, nor care to have it
- finally it is assumed you want to compile direct from source, have the basic skills to do so
- Download the following source tarballs:
- amarok version 1.3.6 (depends upon kdelibs and taglib)
- gstreamer 0.8.11 (the newer 0.9.x and 0.10.x branches do not work with amarok, dependency of amarok)
- gstreamer-plugin module (mutual dependency of gstreamer and amarok -- no output of sound if lame/ogg not made before compilation.)
- lame mp3 decoder lib (dependency of gstreamer-plugin)
- libogg (dependency of libvorbis)
- libvorbis (dependency of gstreamer-plugin)
- liboil (dependency of gstreamer)
- taglib (dependency of amarok)
- kdelibs 3.4.3 (dependency of amarok)
- popt (dependency of gstreamer)
Before continuing, I suggest making one top level build directory for all of the following, (due to the amount of dependencies) and build from within the untarred directories of each package.
Unless stated otherwise, compile with './configure && make; sudo -c "make install"' or equivalent.
- Install in the following order:
- kdelibs
- special instructions: run configure with ./configure --without-arts --enable-final --disable-debug,
which will a) compile and eat lots of ram, but b) give you a smaller binary in a shorter time, c)
disable debug messages sent to .xsession-errors, and d) prevent the deprecated kde sound engine arts from being created
- lame
- special instructions: none
- libogg
- special instructions: none
- libvorbis
- special instructions: none
- mad decoder
- special instructions: none
- liboil
- special instructions: none
- popt
- special instructions: none
- gstreamer-plugins
- special instructions: when you run configure, pay special attention to the WILL install and WILL NOT install lists.
if you want something included so amarok can play it (divx, xvid, cdaudio, etc), run off and install it before proceeding.
- note: i cant remember whether i compiled gstreamer or the plugins first. i figure plugins then the program proper makes the most sense, and i think thats the way it worked. if you run into configure errors, try flipping the order around.
- note2: if you want to add a plugin later, compile its dependent parts, and then recompile gstreamer-plugins; it will work immediately. no need to recompile anything else.
- gstreamer
- special instructions: none
- taglib
- special instructions: none
- amarok
- note:
- run configure with: --disable-debug --without-arts --prefix=/path/to/kde, where path to kde could be /opt/kde /usr/kde, /usr/local/kde, etc....distibution dependent.
- youre not running kde anyway, so you may not know.
- when all else fails: find / | grep kde
- i did this because, for whatever reason, my path variable was messed up
- and kde-config (installed by kdelibs) couldnt run. if youre lazy, and your $PATH is peachy, just do: --prefix=`kde-config --prefix`
Additional notes:
- Reasoning behind the use of gstreamer:
- gstreamer is simply my choice of multimedia backend. it is also preferred by amarok developers, so i figured this would be a safe choice.
- ymmv; if you disagree, by all means go your own way.
- refer to http://amarok.kde.org/amarokwiki/index.php/Requirements for additional notes.
- Extra Goodies:
- as an added benefit, if you are an xmms user, (and many of us are) any xmms visualization plugins are automatically recognized and integrated into amarok.
Of mice and men:
- note1:
- if, upon installing gstreamer and plugins, you try to configure amarok and it complains
about missing gstreamer stuff, make sure you export:
- export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/path/to/gstreamer-0.ver.sion.pc
- note2:
- if you get an error after running amarok's configure that refers to the gstreamer engine lacking plugins or not being installed at all,
- make sure you installed it, and moreover,
- make sure that you installed lame/ogg/mad before compiling plugins. if you didnt, do it now.
- (i found mad works best)
- note3:
- if you get the error:
- checking if UIC has KDE plugins available...
- configure: error: not found - you need to install kdelibs first.
- it means your qt version was not compiled to use threading. run configure with ./configure -thread and amarok will compile successfully.
Now that this annoying and time consuming compile has finished, go take a walk; get some sun. The odds are good that the basement has seen too much of you. Ater that refresher, come on back and add /path/to/kde/bin (found in the same location you specified with --prefix when running configure for amarok). Then run amaroK, and off you go. Hope all goes well; if it does, you could delete your source tree. ..Which is recommended, actually, given the amount of data you just spewed across your harddrive. However, if you think you may tweak things to your liking, keep it around for a while just in case. Enjoy!