Project

General

Profile

Build Quassel on Linux

Schrittweise Anleitung zum Compilieren von Quassel unter Linux

Vorbereitung des Systems

Der Buildprozess benötigt
- den Compiler, Linker, cmake, make
- KDE4-, QT4-, OpenSSL- und zlib-Development-Libraries
- und git für die Verwaltung des Quassel-Quellcodes

Unter DEBIAN GnU/Linux Squeeze/Sid werden die benötigten Pakete beispielsweise folgendermaßen installiert (als root ausführen):

# apt-get update && apt-get install build-essential git-core cmake qt4-dev-tools libqt4-dev libqt4-sql-psql zlib1g-dev kdelibs4-dev libphonon-dev kdevelop-dev checkinstall

(bitte für andere Distributionen hier Befehle einfügen)

Verwaltung des Quellcodes

Diese Aufgabe wird mit git unter einem normalen Benutzerkonto durchgeführt.
Der Quellcode wird einmalig mit 'git clone $URL' in der aktuellen Version heruntergeladen
und im verzeichnis ~/quassel abgelegt. (git könnte auch eigene Beiträge hochladen).

$ cd ~ && git clone git://gitorious.org/quassel/quassel.git 

Nachdem Erscheinen von Aktualisierungen des Projekts (meist täglich)
wird nur noch mit 'git pull origin' die lokale Kopie auf den neuesten Stand abgeglichen.

$ cd ~/quassel && git pull origin

Compilieren!

Nach Aktualisierungen des Quellcodes kann ein neuer Build erstellt werden.
Jeder Build sollte in seinem eigenen Verzeichnis erzeugt werden,
das ermöglicht bei Misserfolgen die Rückkehr zur funktionsfähigen Version im vorherigen Buildverzeichnis.

$ cd ~/quassel
$ mkdir build

Im Buildverzeichnis werden mit cmake die eigentlichen make-files erzeugt.
Die dabei verwendeten Optionen werden in der Datei quassel/INSTALL erläutert.
$ cd ~/quassel/build
$ cmake ~/quassel -DWANT_CORE=ON -DWANT_QTCLIENT=ON -DWANT_MONO=ON -DWITH_KDE=ON -DWITH_OPENSSL=ON -DWITH_DBUS=ON -DWITH_PHONON=ON -DWITH_WEBKIT=ON -DLINGUAS="de en_US" 

Der anschließende Aufruf von make führt automatisch die benötigten Aufrufe des Compilers aus.
$ make

Installieren mit checkinstall

Die Installation erfolgt angemeldet als root mit dem Tool checkinstall,
dadurch wird ein Paket (deb, rpm oder tgz) für den Paketmanager (apt, rpm oder installpkg) erzeugt
und quassel bleibt deinstallierbar.
checkinstall hat Optionen für verschiedene Distributionen: -D für Debian, -R für RPM, -S für Slackware.
checkinstall stellt interaktiv einige Fragen, unter anderem zur Paket-Beschreibung:

Beispiel für Debian:

$  checkinstall -D --pkgname quassel-all --pkgversion 0.5.0 --pkgrelease $(date +%y%m%d%H%M%S) make install

Ausgabe:
Bitte geben Sie eine Beschreibung für das Paket ein.
Beenden Sie Ihre Beschreibung mit einer leeren Zeile oder EOF.

Eingabe:
>> [quassel-all enthält quassel-core, quassel-client und quassel (monolithisch).]
>> [enter]

Ausgabe:
Das Paket wird entsprechend dieser Vorgaben erstellt:
0 - Maintainer: [ ]
1 - Summary: [ quassel-all enthält core, client und quassel (monolithisch). ]
2 - Name: [ quassel-all ]
3 - Version: [ 0.5.0 ]
4 - Release: [ 091021181559 ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ i386 ]
8 - Source location: [ build_091021181559 ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ quassel-all ]
Geben Sie die betreffende Nummer ein, um die Vorgaben zu ändern:
Eingabe:
[ hier einfach [enter] zum Erstellen des Pakets]

Das Ergebnis (hier für Debian):

Done. The new package has been installed and saved to

  /home/$(user)/quassel/build/quassel-all_0.5.0-091021103522_i386.deb

  You can remove it from your system anytime using:

  dpkg -r quassel-all

Entwurf eines Buildscripts

Dieser sich häufig wiederholende Ablauf ist im folgenden Buildscript zusammengefasst:

#!/usr/bin/bash
# quick quassel buildscript (Entwurf)
#
# einmalige Initialisierung mit diesem Befehl:
# git clone git://gitorious.org/quassel/quassel.git ~/quassel
#
# Aktuellen Stand mit dem Repo abgleichen:
cd ~/quassel
git pull origin
#
#Neues Buildverzeichnis erstelllen
export date=$(date +%y%m%d%H%M%S)
mkdir build_$date
#
# cmake: Optionen siehe ~/quassel/INSTALL
cd build_$date
cmake ~/quassel -DWANT_CORE=ON -DWANT_QTCLIENT=ON -DWANT_MONO=ON -DWITH_KDE=ON -DWITH_OPENSSL=ON -DWITH_DBUS=ON -DWITH_PHONON=ON -DWITH_WEBKIT=OFF -DLINGUAS="de en_US" 
make
# statt 'make install' den Paketmanager verwenden, Paket mit checkinstall erzeugen
echo  bitte als root im Verzeichnis ~/quassel/build_$date den folgende Befehle ausführen:
echo  dpkg -r quassel-all
echo  checkinstall -D --pkgname quassel-all --pkgversion 0.5.0 --pkgrelease $date make install