Project

General

Profile

Build Quassel on Linux (deutsch) » History » Version 9

johu, 09/09/2010 01:59 AM
update git reference to gitorious

1 1 musca
h1. Build Quassel on Linux
2 1 musca
3 8 musca
Schrittweise Anleitung zum Compilieren von Quassel unter Linux 
4 1 musca
5 1 musca
{{toc}}
6 1 musca
7 1 musca
h2. Vorbereitung des Systems
8 1 musca
9 1 musca
Der Buildprozess benötigt 
10 1 musca
 - den Compiler, Linker, cmake, make 
11 1 musca
 - KDE4-, QT4-, OpenSSL- und zlib-Development-Libraries 
12 1 musca
 - und git für die Verwaltung des Quassel-Quellcodes
13 1 musca
14 6 musca
Unter DEBIAN GnU/Linux Squeeze/Sid werden die benötigten Pakete beispielsweise folgendermaßen installiert (als root ausführen):
15 8 musca
<pre><code># 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</code></pre>
16 8 musca
17 5 musca
(bitte für andere Distributionen hier Befehle einfügen)
18 8 musca
19 1 musca
20 1 musca
h2. Verwaltung des Quellcodes
21 1 musca
22 4 musca
Diese Aufgabe wird mit "git":http://de.wikipedia.org/wiki/Git unter einem normalen Benutzerkonto durchgeführt. 
23 1 musca
Der Quellcode wird einmalig mit 'git clone $URL' in der aktuellen Version heruntergeladen
24 1 musca
und im verzeichnis ~/quassel abgelegt. (git könnte auch eigene Beiträge hochladen). 
25 1 musca
26 9 johu
<pre><code>$ cd ~ && git clone git://gitorious.org/quassel/quassel.git </code></pre>
27 1 musca
28 1 musca
Nachdem Erscheinen von Aktualisierungen des Projekts (meist täglich) 
29 1 musca
wird nur noch mit 'git pull origin' die lokale Kopie auf den neuesten Stand abgeglichen.
30 1 musca
31 1 musca
<pre><code>$ cd ~/quassel && git pull origin</code></pre>
32 1 musca
33 1 musca
34 1 musca
h2. Compilieren!
35 1 musca
36 1 musca
Nach Aktualisierungen des Quellcodes kann ein neuer Build erstellt werden.
37 1 musca
Jeder Build sollte in seinem eigenen Verzeichnis erzeugt werden,
38 1 musca
das ermöglicht bei Misserfolgen die Rückkehr zur funktionsfähigen Version im vorherigen Buildverzeichnis.
39 1 musca
<pre><code>$ cd ~/quassel
40 1 musca
$ mkdir build
41 1 musca
</code></pre>
42 1 musca
Im Buildverzeichnis werden mit cmake die eigentlichen make-files erzeugt.
43 1 musca
Die dabei verwendeten Optionen werden in der Datei quassel/INSTALL erläutert.
44 1 musca
<pre><code>$ cd ~/quassel/build
45 7 musca
$ 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"
46 1 musca
</code></pre>
47 1 musca
Der anschließende Aufruf von make führt automatisch die benötigten Aufrufe des Compilers aus.
48 1 musca
<pre><code>$ make</code></pre>
49 1 musca
50 1 musca
h2. Installieren mit checkinstall
51 1 musca
52 1 musca
Die Installation erfolgt angemeldet als root mit dem Tool checkinstall,
53 1 musca
dadurch wird ein Paket (deb, rpm oder tgz) für den Paketmanager (apt, rpm oder installpkg) erzeugt
54 1 musca
und quassel bleibt deinstallierbar.
55 1 musca
checkinstall hat Optionen für verschiedene Distributionen: -D für Debian, -R für RPM, -S für Slackware.
56 1 musca
checkinstall stellt interaktiv einige Fragen, unter anderem zur Paket-Beschreibung:
57 1 musca
58 1 musca
Beispiel für Debian:
59 1 musca
<pre><code>$  checkinstall -D --pkgname quassel-all --pkgversion 0.5.0 --pkgrelease $(date +%y%m%d%H%M%S) make install</code></pre>
60 1 musca
Ausgabe:
61 1 musca
 Bitte geben Sie eine Beschreibung für das Paket ein.
62 1 musca
 Beenden Sie Ihre Beschreibung mit einer leeren Zeile oder EOF.
63 1 musca
64 1 musca
Eingabe:
65 1 musca
 >> [quassel-all enthält quassel-core, quassel-client und quassel (monolithisch).]                                           
66 1 musca
 >> [enter]
67 1 musca
68 1 musca
Ausgabe:
69 1 musca
 Das Paket wird entsprechend dieser Vorgaben erstellt:
70 3 musca
  0 -  Maintainer: [ dein.name@irgendwo.test ]
71 3 musca
  1 -  Summary: [ quassel-all enthält core, client und quassel (monolithisch). ]
72 1 musca
  2 -  Name:    [ quassel-all ]
73 1 musca
  3 -  Version: [ 0.5.0 ]
74 1 musca
  4 -  Release: [ 091021181559 ]
75 1 musca
  5 -  License: [ GPL ]
76 1 musca
  6 -  Group:   [ checkinstall ]
77 1 musca
  7 -  Architecture: [ i386 ]
78 1 musca
  8 -  Source location: [ build_091021181559 ]
79 1 musca
  9 -  Alternate source location: [  ]
80 1 musca
 10 - Requires: [  ]
81 1 musca
 11 - Provides: [ quassel-all ]
82 1 musca
 Geben Sie die betreffende Nummer ein, um die Vorgaben zu ändern:
83 1 musca
Eingabe:
84 1 musca
 [ hier einfach [enter] zum Erstellen des Pakets]
85 1 musca
86 1 musca
Das Ergebnis (hier für Debian):
87 1 musca
88 1 musca
<pre><code>Done. The new package has been installed and saved to
89 1 musca
90 1 musca
  /home/$(user)/quassel/build/quassel-all_0.5.0-091021103522_i386.deb
91 1 musca
92 1 musca
  You can remove it from your system anytime using:
93 1 musca
94 2 musca
  dpkg -r quassel-all
95 1 musca
</code></pre>
96 1 musca
97 1 musca
h2. Entwurf eines Buildscripts
98 1 musca
99 1 musca
Dieser sich häufig wiederholende Ablauf ist im folgenden Buildscript zusammengefasst:
100 1 musca
101 1 musca
<pre><code>#!/usr/bin/bash
102 1 musca
# quick quassel buildscript (Entwurf)
103 1 musca
#
104 1 musca
# einmalige Initialisierung mit diesem Befehl:
105 9 johu
# git clone git://gitorious.org/quassel/quassel.git ~/quassel
106 1 musca
#
107 1 musca
# Aktuellen Stand mit dem Repo abgleichen:
108 1 musca
cd ~/quassel
109 1 musca
git pull origin
110 1 musca
#
111 1 musca
#Neues Buildverzeichnis erstelllen
112 1 musca
export date=$(date +%y%m%d%H%M%S)
113 1 musca
mkdir build_$date
114 1 musca
#
115 1 musca
# cmake: Optionen siehe ~/quassel/INSTALL
116 1 musca
cd build_$date
117 2 musca
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"
118 1 musca
make
119 1 musca
# statt 'make install' den Paketmanager verwenden, Paket mit checkinstall erzeugen
120 1 musca
echo  bitte als root im Verzeichnis ~/quassel/build_$date den folgende Befehle ausführen:
121 1 musca
echo  dpkg -r quassel-all
122 1 musca
echo  checkinstall -D --pkgname quassel-all --pkgversion 0.5.0 --pkgrelease $date make install
123 1 musca
</code></pre>