Amarok 2 SVN unter K/X/Ubuntu kompilieren
Posted by hyper_ch on 22 Mar 2009 | Tagged as: hyper_ch, KDE, Ubuntu
Amarok 2 auf *buntu 8.10 selbst kompilieren
Update
Dieses Howto ist komplett veraltet, da weitere Sachen aus dem Amarok Repo ausgelagert wurde und weil Amarok selbst einen Wechsel von SVN zu Git durchgeführt hat. Siehe hier für das aktuelle Howto: http://www.simplylinux.ch/amarok-git-unter-kubuntu-9-10-karmic-selbst-kompilieren
Einführung
Amarok ist ein genialer Musikplayer, allerdings hinken die Repo-Versionen stark hinten drein was Aktualität angeht. Amarok Neon Project baut zwar täglich neue Versionen für deren Repo, aber in letzter Zeit hat das nicht mehr geklappt. Wer einfach ein bisschen eine aktualisiertere Version haben will, soll meinen Repo Generator benutzen und dort das Neon Projekt auswählen.
Im nachfolgenden Howto werde ich allerdings auch noch ein paar weitere Dinge einbringen. So das Medibuntu Repo mit den w32/w64codecs (kommt halt darauf an, ob man ein 32- oder 64-bit OS installiert hat). Ebenfalls installiere ich auch direkt die kubuntu-restricted-extras. Damit sollten fast alle üblichen Codecs installiert sein.
Das ganze Howto habe ich auf einer Vanilla-Kubuntu Installation durchgeführt. Je nachdem wie stark dein System modifiziert wurde braucht es Änderungen.
Ein Dank geht speziell an markey und mamarok aus dem #amarok Channel auf irc.freenode.org und insbesondere auch an folgende Seiten:
Installing Amarok 2 from SVN in your home directory
Amarok 2 and MySQL Embedded
Jaunty Benutzer
Für Jaunty Benutzer gibts einige Änderungen.
(1) In Schritt eins muss das Packet “amarok-enginge-xine” nicht entfernt werden, da es nicht installiert ist.
(2) In Schritt 13 muss QtScriptGenerator nicht gepatcht werden.
(3) Bevor Amarok in Schritt 16 gestartet wird, muss das System neu gestartet werden.
Ich habe das auf einer Vanially Kubuntu Jaunty 9.04 Beta Installation gestestet und ein Logfile der ganzen Installation angefertigt. Das Log kann hier heruntergeladen werden. Die entpackte Datei ist 2.5 MB gross und umfasst 30’000 Zeilen.
1: Bisherige Amarok Installation entfernen
sudo apt-get purge amarok amarok-common amarok-engine-xine
Anstelle von “purge” kann man auch “remove” nehmen um so die eigenen Daten weiter aufrecht zu erhalten. Amarok muss entfernt werden, da es sonst Probleme gibt.
2: Sources List updaten
Dazu kann meinen meinen Repo Generator nehmen. Hier ist wichtig, dass man “main, restricted, universe, multiverse”, “security, updates, proposed, backports” sowie “KDE 4.2 PPA, Medibuntu” nimmt. Medibuntu ist freiwillig, ich kanns aber nur empfehlen.
Dann müsste eine Liste wie unten stehend generiert werden:
#############################################################
################### OFFICIAL UBUNTU REPOS ###################
#############################################################
###### Ubuntu Main Repos
deb http://ch.archive.ubuntu.com/ubuntu/ intrepid main restricted universe multiverse
###### Ubuntu Update Repos
deb http://ch.archive.ubuntu.com/ubuntu/ intrepid-security main restricted universe multiverse
deb http://ch.archive.ubuntu.com/ubuntu/ intrepid-updates main restricted universe multiverse
deb http://ch.archive.ubuntu.com/ubuntu/ intrepid-proposed main restricted universe multiverse
deb http://ch.archive.ubuntu.com/ubuntu/ intrepid-backports main restricted universe multiverse
###### Ubuntu Partner Repo
deb http://archive.canonical.com/ubuntu intrepid partner
##############################################################
##################### UNOFFICIAL REPOS ######################
##############################################################
###### 3rd Party Binary Repos
#### KDE 4.2 PPA Repos - http://www.kubuntu.org/news/kde-4.2
## Run this command: gpg --keyserver keyserver.ubuntu.com --recv-keys 493B3065 && gpg --export -a 493B3065 | sudo apt-key add -
deb http://ppa.launchpad.net/kubuntu-experimental/ubuntu intrepid main
#### Medibuntu - http://www.medibuntu.org/
## Run this command: sudo apt-get update && sudo apt-get install medibuntu-keyring && sudo apt-get update
deb http://packages.medibuntu.org/ intrepid free non-free
Mit dieser Liste dann /etc/apt/sources.list ersetzen oder ergänzen.
Zuletzt noch die GPG-Schlüssel imporiteren:
gpg --keyserver keyserver.ubuntu.com --recv-keys 493B3065 && gpg --export -a 493B3065 | sudo apt-key add -
sudo apt-get update && sudo apt-get install medibuntu-keyring && sudo apt-get update
3: Upgraden
Nachdem nun KDE 4.2 vorhanden ist, muss das System geupgraded werden:
sudo apt-get dist-upgrade
Und mit folgendem Befehl kann man noch nicht-länger benötigte Abhängigkeiten beseitigen:
sudo apt-get autoremove
4: Reboot
Danach das System rebooten:
sudo reboot
5: Benötigte Pakete
Danach die benötigten Pakete installieren (wer ein 64-bit OS benutzt soll w64codecs anstelle von w32codecs nehmen):
sudo apt-get install kubuntu-restricted-extras w32codecs build-essential kde-devel subversion libmysqlclient15-dev libncurses5-dev libtag1-dev libstrigiqtdbusclient-dev
6: .bashrc und myenv.sh erweitern
Die .bashrc und myenv.sh Dateien müssen noch erweitert werden. Dazu folgendes im Terminal ausführen:
KDE-Benutzer müssen/sollen das hier ausführen:
echo '' >> ${HOME}/.bashrc
echo 'export PATH=$HOME/kde/bin:$PATH' >> ${HOME}/.bashrc
mkdir -p ${HOME}/.kde/env
touch ${HOME}/.kde/env/myenv.sh
echo '' >> ${HOME}/.kde/env/myenv.sh
echo 'export KDEDIR=$HOME/kde' >> ${HOME}/.kde/env/myenv.sh
echo 'export KDEDIRS=$KDEDIR' >> ${HOME}/.kde/env/myenv.sh
Nicht-KDE-Benutzer müssen das hier ausführen:
echo '' >> ${HOME}/.bashrc
echo 'export PATH=$HOME/kde/bin:$PATH' >> ${HOME}/.bashrc
echo 'export KDEDIR=$HOME/kde' >> ${HOME}/.bashrc
echo 'export KDEDIRS=$KDEDIR' >> ${HOME}/.bashrc
Und mit folgendem überprüfen ob es tatsächlich:
cat ${HOME}/.bashrc
cat ${HOME}/.kde/env/myenv.sh
Natürlich müssen die nicht-KDE-Benutzer nur den ersten Befehl ausführen.
7: .bashrc neu laden
Nun muss das ganze noch neu geladen werden:
source ${HOME}/.bashrc
8: Verzeichnisse kreieren
Nun legt man die folgenden Verzeichnisse an:
mkdir -p ${HOME}/kde/src
mkdir -p ${HOME}/kde/build/amarok
9: Amarok und taglib-extras herunterladen
Nun müssen noch Amarok und taglib-extras heruntergeladen werden:
cd ${HOME}/kde/src
svn co svn://anonsvn.kde.org/home/kde/trunk/extragear/multimedia/amarok amarok
svn co svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib-extras/ taglib-extras
Bei mir hat das folgende Revision gegeben: Checked out revision 942886.
10: MySQL herunterladen
Da MySQL in Amarok 2 integriert ist, brauchen wir noch die MySQL Quellen. Diese können hier heruntergeladen werden (natürlich die tar.gz Version). Derzeit ist die aktuelle Version 5.1.32. Damit die nachfolgenden Befehle alle stimmen, muss nach ${HOME}/kde/src heruntergeladen werden.
Alternative kann auch einfach folgendes ausgeführt werden:
cd ${HOME}/kde/src
wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.32.tar.gz/from/http://mirror.switch.ch/ftp/mirror/mysql/
11: MySQL entpacken und installieren
Dies gilt jetzt natürlich nur, wenn alle Schritte vorher identisch gemacht wurden und MySQL immer noch 5.1.28 ist. Ansonsten muss das geändert werden.
tar xzvf mysql-5.1.32.tar.gz
cd mysql-5.1.32
cp -R ${HOME}/kde/src/amarok/supplementary_scripts/mysqle/* .
Solltest du mehr als 1 CPU/Kern haben, musst du noch folgenden Befehl mit der Anzahl Kerne +1 abändern und ausführen. D.h. bei nem Dualcore wäre es “-j3” und bei nem Quadcore “-j5” (höhere Werte für -j führen seltenerweise zu Probleme. Sollte dies eintreffen, dann einfach -j1 verwenden):
export MAKEOPTS=-j2
Danach kann MySQL kompiliert werden (das dauert):
./build-mysqle.sh --prefix=${HOME}/usr
12: taglib-extras kompilieren
Dies wurde vor kurzem auch aus dem SVN ausgegliedert und muss ebenfalls separat kompiliert werden. Dazu folgendes Schritte ausführen:
cd ${HOME}/kde/src/taglib-extras/
mkdir build
cd build
export LD_LIBRARY_PATH=${HOME}/kde/build/taglib-extras/taglib-extras
cmake -DCMAKE_INSTALL_PREFIX=${HOME}/kde ..
make
make install
13: QtScriptGenerator kompilieren
Dies wurde ebenfalls ausgegliert, aber es gibt noch einige Schwierigkeiten dazu. Zuerst einfach mal folgendes ausführen oder sich den aktuellen Code hier besorgen:
cd ${HOME}/kde/src
wget http://qtscriptgenerator.googlecode.com/files/qtscriptgenerator-src-0.1.0.tar.gz
tar xfvz qtscriptgenerator-src-0.1.0.tar.gz
cd qtscriptgenerator-src-0.1.0
Ebenfalls hier ist auf die Versionsnummer zu achten. Die Version 0.1.0 hat allerdings noch fehler und muss (unter *buntu) gepatcht werden. Dazu im qtscriptgenerator-src-0.1.0 Verzeichnis folgendes ausführen:
nano include_everything.patch
Und nachfolgenden Text einfügen:
--- b/generator/qtscript_masterinclude.h 2009-03-21 20:37:30.719523909 -0400
+++ a/generator/qtscript_masterinclude.h 2009-03-21 21:00:25.108149339 -0400
@@ -31,17 +31,41 @@
#include
-#ifndef QT_NO_XMLPATTERNS
-# include
-#endif
-
-#ifndef QT_NO_WEBKIT
-# include
-#endif
-
-#ifndef QT_NO_PHONON
-# include
-#endif
+#include
+
+#include
+
+#include "phonon/abstractaudiooutput.h"
+#include "phonon/abstractmediastream.h"
+#include "phonon/abstractvideooutput.h"
+#include "phonon/addoninterface.h"
+#include "phonon/audiooutput.h"
+#include "phonon/audiooutputinterface.h"
+#include "phonon/backendcapabilities.h"
+#include "phonon/backendinterface.h"
+#include "phonon/effect.h"
+#include "phonon/effectinterface.h"
+#include "phonon/effectparameter.h"
+#include "phonon/effectwidget.h"
+#include "phonon/mediacontroller.h"
+#include "phonon/medianode.h"
+#include "phonon/mediaobject.h"
+#include "phonon/mediaobjectinterface.h"
+#include "phonon/mediasource.h"
+#include "phonon/objectdescription.h"
+#include "phonon/objectdescriptionmodel.h"
+#include "phonon/path.h"
+#include "phonon/phonondefs.h"
+#include "phonon/phononnamespace.h"
+#include "phonon/platformplugin.h"
+#include "phonon/seekslider.h"
+#include "phonon/streaminterface.h"
+#include "phonon/videoplayer.h"
+#include "phonon/videowidget.h"
+#include "phonon/videowidgetinterface.h"
+#include "phonon/volumefadereffect.h"
+#include "phonon/volumefaderinterface.h"
+#include "phonon/volumeslider.h"
#include "../qtbindings/qtscript_core/qtscriptconcurrent.h"
die Datei dann speichern und folgenden Befehl ausführen um zu patchen:
patch -p1 < include_everything.patch
[/codesyntax]
Danach kann mit folgenden Befehlen das ganze kompiliert werden. Hier muss zuerst ins Verzeichnis generator rein und dann noch in qtbindings:
[codesyntax lang="bash"]
export INCLUDE=/usr/include/qt4
cd generator
qmake
make
./generator
cd ../qtbindings
qmake
make
[/codesyntax]
Am Schluss noch die Plugins nach /usr/lib/qt4/plugins/script kopiert werden.
[codesyntax lang="bash"]
cd ../plugins/script
sudo cp -R * /usr/lib/qt4/plugins/script/
[/codesyntax]
14: Amarok kompilieren
Nun kann endlich Amarok kompiliert werden:
[codesyntax lang="bash"]
cd ${HOME}/kde/src/amarok
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=${HOME}/kde -DCMAKE_BUILD_TYPE=debugfull ${HOME}/kde/src/amarok
make
make install
Dies sollte ohne grössere Fehlermeldungen von statten gehen.
15: KDE Config updaten
Zuletzt muss noch KDE Config geupdated werden:
kbuildsycoca4 --noincremental
16: Amarok starten
Und Amarok kann dann von der Shell aus (ich habs noch nicht anders hingekriegt) mit folgendem Befehl gestartet werden:
amarok
1 Comment »
One Response to “Amarok 2 SVN unter K/X/Ubuntu kompilieren”
on 26 Apr 2009 at 14:54 1.webkatalog said …
Were did you find these informations?