# Handbuch zu &kdesvn-build;

## Einführung

Das Skript &kdesvn-build; hilft Benutzern bei der Installation von &kde; aus dem SVN. Bite beachten Sie auch das Skript kde-build, welches im &kde;-Modul "kdesdk" enthalten ist.

An dieser Stelle sollen die Syntax der Konfigurationsdatei, die Optionen und die Befehlszeilenparameter von &kdesvn-build; beschrieben werden, die nötig sind, um &kde; aus den Quelltexten zu installieren. Dies schließt auch die Schritte ein, die Sie mit anderen Werkzeugen erledigen müssen - also Schritte, die nicht automatisch von &kdesvn-build; durchgeführt werden.

## Erste Schritte

In diesem Kapitel wird erklärt, wie Sie mit Hilfe von &kdesvn-build; die entsprechenden Module aus dem &kde;-Quellcodearchiv herunterladen und kompilieren. Desweiteren werden einige Grundlagen zur Struktur des &kde; SVN und die nötigen Schritte vor dem Ausführen des Skripts erklärt.

Alle in diesem Kapitel angesprochene Punkte werden detaillierter in dem Dokument Building &kde; from Source Step by Step Guide auf der Webseite des &kde; Qualitäts-Sicherungsteam erklärt. Wenn Sie &kde; zum ersten Mal kompilieren, sollten Sie dieses Dokument lesen und bei Fragen als Referenz heranziehen. Darin finden Sie auch Informationen zu Paketierungs-Hilfsprogrammen, Kompilier-Voraussetzungen, häufigen Stolperfallen und allgemeinen Strategien zur Verwendung Ihrer neuen &kde;-Installation.

### Vorbereiten des Systems zum Kompilieren von &kde;

Zum Herunterladen und Kompilieren von &kde; sollten Sie ein normales Benutzerkonto verwenden. Wenn Sie bereits einige &kde;-Programme installiert haben, sollten Sie sogar ein neues, separates Benutzerkonto erzeugen und &kde; unter Verwendung des neuen Benutzers installieren und ausführen. Der Vorteil an dieser Vorgehensweise ist, dass Sie die bestehende &kde;-Installation nicht zerstören und das Sie normal weiterarbeiten können, falls mit der neuen Installation etwas nicht funktioniert.

Sie können die Installation später immer noch systemweit als root durchführen. Das geht allerdings über den Rahmen dieses Handbuchs hinaus. Es wird davon ausgegangen, dass Sie wissen was Sie tun, wenn Sie eine systemweite Installation durchführen.

Bevor Sie &kdesvn-build; (oder eine andere Kompiliermethode) verwenden, müssen Sie die Entwickler-Werkzeuge und -Bibliotheken für &kde; installieren. Sie benötigen Qt 3.3.0 oder neuer, Automake 1.8, Autoconf 2.5x (besser 2.57 oder neuer, weil es für ältere Versionen einen bekannten Bug gibt), den Subversion-Client (svn), den gcc-Compiler mit C++-Unterstützung, libxml2, openssl, libbz2 und einige weitere. Ein vollständige Liste finden Sie unter KDE Compilation Requirements. Üblicherweise werden die benötigen Hilfsprogramme und Bibliotheken mit Ihrer Distribution mitgeliefert und müssen evtl. nur nachinstalliert werden.

Einige der benötigten Pakete werden von den Distributoren in Bibliotheken, Programmdateien oder Werkzeuge und Entwickler-Pakete unterteilt. In diesen Fällen benötigen Sie wenigstens die Programmdateien und das Entwicklungs-Paket. Wenn Sie unsicher sind, installieren Sie am besten alle Pakete zu einem Programm. Die benötigen Bibliotheken sind abhängig von dem KDE-Modul, welches Sie installieren möchten. Unter Building &kde; from Source Step by Step Guide finden Sie mehr Details über die einzelnen Hilfsprogramme und Techniken zur Installation der Abhängigkeiten.

Wahrscheinlich haben Sie &kdesvn-build; bereits auf Ihrem System installiert. Nun müssen Sie die Konfigurationsdatei für &kdesvn-build; mit dem Namen `.kdesvn-buildrc` erzeugen. Die Datei sollte in Ihrem persönlichen Ordner (~/) liegen und entält alle benötigten Optionen und Einstellungen, Compiler-Optionen, den Speicherort der Quelldateien, das Installationsziel, die zu installierenden Module und so weiter. Die Voreinstellungen finden Sie in der Datei `kdesvn-buildrc-sample`. Weitere Informationen zur Syntax der Konfigurationsdatei können Sie in configure-data und kdesvn-buildrc nachlesen.

Es ist nicht schwer, die neueste Version von &kdesvn-build; zu erhalten. Öffnen Sie die Seite kdesdk/scripts unter websvn.kde.org. In dem Ordner kdesdk/scripts finden Sie eine Liste der Dateien. Klicken Sie auf &kdesvn-build; und laden Sie die neueste Version herunter; ebenso laden Sie auch die Datei `kdesvn-buildrc-sample` auf Ihren Rechner. Machen Sie das Skript ausführbar und sorgen Sie dafür, dass es über die Umgebungsvariable PATH gefunden werden kann.

### Festlegen der Einstellungen

Damit das Skript funktioniert, müssen Sie die Datei `.kdesvn-buildrc` in Ihrem persönlichen Ordner haben, in der die allgemeinen Einstellungen festgelegt sind.

Benutzen Sie die Datei `kdesvn-buildrc-sample` als Vorlage und stellen Sie die allgemeinen Optionen und die Module ein, die Sie installieren möchten.

Wählen Sie den Server aus, den Sie für das Herunterladen der SVN-Arbeitskopie verwenden möchten. Den Server legen Sie mit der globalen Einstellung svn-server fest. Voreingestellt ist der Server für anonymes SVN: svn://anonsvn.kde.org, aber Sie können dies ändern, wenn Sie einen &kde; SVN-Zugang haben oder es einen Spiegel in Ihrer Nähe gibt.

Geben Sie besonders acht auf die globalen Variablen kdedir und qtdir. kdedir legt den Zielordner fest, in dem &kde; installiert wird (voreingestellt ist `~/kde`) und qtdir legt fest, wo Qt installiert ist bzw. ob es dort kompiliert und installiert werden soll (voreingestellt ist `~/kdesvn/build/qt-copy`). Die hier festgelegten Einstellungen brauchen Sie später nochmal, um die Umgebungsvariablen zum Ausführen des neuen KDE richtig zu setzen. Prüfen Sie, ob die aufgeführten Module diejenigen sind, die Sie wirklich installieren möchten. Mit den Voreinstellungen aus `kdesvn-buildrc-sample` erhalten Sie eine weitgehend vollständige &kde;-Installation. Speichern Sie Ihre Einstellungen in die Datei `.kdesvn-buildrc` in Ihrem persönlichen Ordner.

Wenn Sie Feineinstellungen an `.kdesvn-buildrc` vornehmen möchten, lesen Sie bitte in kdesvn-buildrc die detaillierten Informationen über alle Konfigurations-Optionen nach.

### Verwenden von &kdesvn-build;

Sie können das Skript nun ausführen. Melden Sie sich in einem Terminal-Fenster als der Benutzer an, den Sie zum Kompilieren und Installieren des neuen &kde; verwenden möchten, und führen Sie das Skript aus:

    %su - Benutzername
    %kdesvn-build

Das Skript sollte nun mit dem Herunterladen der Quellen beginnen und sie kompilieren. Oft schlägt der erste Versuch, &kde; zu kompilieren, fehl. Geben Sie nicht auf! Prüfen Sie die Protokoll-Dateien; möglicherweise fehlt Ihnen noch ein Hilfsprogramm oder entsprechende Entwickler-Pakete. Der Pfad zu den Protokollen ist in der Einstellung log-dir in Ihrer Konfigurationsdatei festgelegt. Manchmal passiert es auch, dass ein KDE-Modul unstabil ist und sich daher nur unter erheblichem Aufwand kompilieren lässt. Haben Sie Geduld, derartige Probleme werden in der Regel sehr schnell behoben. Weitere Dinge, die häufig fehlschlagen, sowie die Lösungen und weitere grundsätzliche Tipps und Tricks zum Kompilieren von &kde; finden Sie im Building &kde; from Source Step by Step Guide.

### Einrichten der neuen &kde;-Umgebung

Im Folgenden wird davon ausgegangen, dass Sie einen separaten Benutzer zum Kompilieren und Installieren von &kde; verwendet haben. Des Weiteren wird davon ausgegangen, dass Sie bereits eine &kde;-Version installiert haben. Wenn dies der Fall ist, muss das neue &kde; Vorrang vor der alten Version erhalten. Bearbeiten Sie die Umgebungsvariablen entsprechend.

Öffnen Sie die Datei `.bash_profile` in Ihrem persönlichen Ordner oder erzeugen Sie eine neue, falls sie noch nicht existiert. Am Ende der Datei fügen Sie folgendes ein:

    KDEDIR=(pfad zu kdedir)
    KDEDIRS=$KDEDIR
    PATH=$KDEDIR/bin:$QTDIR/bin:$PATH
    LD_LIBRARY_PATH=$KDEDIR/lib:$LD_LIBRARY_PATH
    export KDEDIRS PATH LD_LIBRARY_PATH

Wenn Sie das Modul qt-copy installiert haben, fügen Sie dies stattdessen ein:

    QTDIR=(pfad zu qtdir)
    KDEDIR=(pfad zu kdedir)
    KDEDIRS=$KDEDIR
    PATH=$KDEDIR/bin:$QTDIR/bin:$PATH
    MANPATH=$QTDIR/doc/man:$MANPATH
    LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH
    export QTDIR KDEDIRS PATH MANPATH LD_LIBRARY_PATH

Wenn Sie keinen separaten Benutzer verwenden, ändern Sie die Umgebungsvariable `$KDEHOME` in `.bash_profile` für die neue Umgebung.

    export KDEHOME="${HOME}/.kde-svn"

    # Create it if needed
    [ ! -e ~/.kde-svn ] && mkdir ~/.kde-svn

Falls das KDE-Menü später leer oder völlig überfüllt mit Programmen Ihrer Distribution sein sollte, müssen Sie unter Umständen die xdb-Umgebungsvariable in `.bash_profile` anpassen:

    XDG_CONFIG_DIRS="/etc/xdg"
    XDG_DATA_DIRS="${KDEDIR}/share:/usr/share"
    export XDG_CONFIG_DIRS XDG_DATA_DIRS

Nun sollte die Umgebungsvariablen korrekt eingestellt sein. Stellen Sie nun sicher, dass die richtige Version des Start-Skripts startkde verwendet wird:

Öffnen Sie die Datei `.xinitrc` (oder `.xsession`, abhängig von Ihrer Distribution) in Ihrem persönlichen Ordner. Erzeugen Sie sie, falls nötig. Fügen Sie die folgende Zeile hinzu:

    exec ${KDEDIR}/bin/startkde

Starten Sie nun Ihre neues &kde;: In BSD und Linux mit Unterstützung für virtuelle Terminals können Sie die Tastenkombination Strg+Alt+F1...F12 zum wechseln zwischen den Terminals verwenden. Auf diese Weise können Sie mehrere Arbeitsumgebungen gleichzeitig ausführen. Die ersten sechs Terminals sind Text-Terminals, die folgenden sechs sind graphische Terminals.

Falls beim Systemstart der graphische Anmeldungsmanager erscheint, können Sie Ihr neues KDE dennoch verwenden, auch wenn es nicht in der Liste für die graphische Anmeldung aufgeführt ist. Drücken Sie Strg+Alt+F2 um zu einem Text-Terminal zu gelangen. Melden Sie sich als der separate KDE-Benutzer an und geben Sie folgendes ein:

    startx -- :1

Sie können das frisch aus den Quellen installierte und das alte KDE gleichzeitig laufen lassen! Melden Sie sich als regulärer Benutzer wie gewohnt an und starten Sie KDE. Drücken Sie dann Strg+Alt+F2 (oder F1, F3, ...) um zu einem Text-Terminal zu gelangen. Melden Sie sich mit dem separaten KDE-Benutzer an und geben Sie "startx -- :1" ein. Mit der Tastenkombination Strg+Alt+F6 (oder F7, F8, etc.) können Sie zwischen den verschiedenen KDE-Sitzungen hin und her wechseln. Nun können Sie das neue KDE testen und wissen, dass Sie jederzeit zu Ihrer alten, stabilen Version zurückkehren können.

## Besondere Funktionen des Skripts

&kdesvn-build; beinhaltet die folgenden Funktionen und Besonderheiten:

- Automatisches Herunterladen und Aktualisieren der nötigen Module aus dem SVN-Archiv.

- Zeitmessung für den Kompiliervorgang der Module.

- Automatisches Neu-Kompilieren von Modulen, die inkrementelles make verwenden (welches nach verschiedenen Arten von commits fehleranfällig ist).

- Fortsetzen eines vorherigen Skript-Durchlaufs und Starten des Kompiliervorgangs mit einem bestimmten Modul.

- Die voreingestellten Optionen sind gut geeignet für die Installation von &kde; aus dem SVN für einen einzelnen Benutzer.

- Direkte Unterstützung für Unsermake.

- Benutzung der Tilde als Platzhalter in den Optionen. Beispielsweise ist Folgendes ist möglich:

      qtdir ~/kdesvn/build/qt-copy

- Kompilier-, Quell- und Protokoll-Ordner sind frei einstellbar.

- Automatisches herrichten einer Kompilierumgebung, in der der Kompilier-Ordner ungleich dem Quell-Ordner ist. Dadurch wird der Quell-Ordner "sauber" gehalten. Die einzige Ausnahme bildet hier qt-copy, welches nicht für diese Art des Kompilierens vorgesehen ist (es sei denn Sie möchten den Hack qt with a separate build directory hack ausprobieren).

- Es können sowohl globale Einstellungen für alle Module als auch spezifische Einstellungen für bestimmte Module vorgenommen werden.

- In manchen Fällen verlieren die autotools die Synchronisation mit dem Quell-Ordner; daher können Sie erzwingen, dass bestimmte Module vollständig neu kompiliert werden. Dazu müssen Sie im Quell-Ordner des fraglichen Moduls eine Datei namens .refresh-me anlegen oder &kdesvn-build; mit der Option `--refresh-build` aufrufen.

- Es können verschiedene Umgebungsvariablen benutzt werden, die den Kompiliervorgang beeinflussen. Dazu gehören unter anderem `KDEDIR`, `QTDIR`, `DO_NOT_COMPILE` und `CXXFLAGS`.

- Befehls-Protokolle. Alle Protokolle werden durchnummeriert und mit einem Datums-Stempel versehen, sodass Sie pro Skript-Durchlauf ein Protokoll erhalten. Des Weiteren wird mit jedem Skript-Durchlauf ein symbolischer Link namens latest erzeugt, der auf das jeweils letzte Protokoll verweist.

- Wenn Sie &kde; für einen Benutzer anstatt systemweit installieren (wofür Sie Systemverwalter-Rechte benötigen würden), können Sie das Skript zum Installieren verwenden. Ich (der Autor von kdesvn-build) habe den Code des Skripts nicht begutachtet und es macht gebrauch von der Funktion `system()`; Sie sollten das Skript lieber nicht als Systemverwalter ausführen.

- Sie können make-install-prefix verwenden, um dem Kommando make install einen Befehl voranzustellen. Dies ist z. B. für die Verwendung von sudo nützlich.

- Mit Hilfe der Option apidox können Sie veranlassen, dass die API-Dokumentation für einige Module erzeugt und installiert wird.

- Sie können auch nur einzelne Teile von &kde; aus einem SVN-Modul herunterladen lassen. Beispielsweise könnten Sie nur taglib aus kdesupport herunterladen, oder nur K3b aus extragear/multimedia. Das Skript wird automatisch kde-common mit einbeziehen, falls dies zum Kompilieren nötig ist.

- Sie können alle Vorgänge vorgaukeln anstatt sie wirklich ausführen zu lassen. Benutzen Sie dazu die Option `--pretend` oder `-p` und das Skript wird eine detaillierte Beschreibung alle Befehle ausgeben, die es ausführen würde, ohne tatsächlich etwas zu unternehmen.

- Es ist möglich, verschiedene SVN-Verzweigungen für bestimmte Module zu verwenden. Die Unterstützung hierfür ist noch nicht ganz vollständig, sie können aber die zu verwendende Verzweigung (branch) mit der Einstellung module-base-path festlegen.

Dinge, die &kdesvn-build; NICHT macht:

- Auffinden des schnellsten &kde; SVN-Spiegelservers. Derzeit wird mit dem Skript noch nichtmal eine Liste der Spiegelserver mitgeliefert. Außerdem sollte der Standard-Server problemlos funktionieren.

- Ihre Zähne putzen, das müssen Sie schon selbst erledigen ;-)

- Das Skript ist sicherlich nicht fehlerfrei - dafür schonmal vorab entschuldigung.

## Das Format der Datei .kdesvn-buildrc

Für die korrekte Funktion benötigt das Skript eine Datei namens `.kdesvn-buildrc` in Ihrem persönlichen Ordner. Diese beschreibt unter anderem die KDE-Module, die Sie herunterladen und installieren möchten.

Zuerst werden die globalen Einstellungen wie folgt festgelegt:

    global
    option-name option-wert
    [...]
    end global

Danach folgen eine oder mehrere Modul-Abschnitte, die wie folgt aussehen:

    module modul-name
    option-name option-wert
    [...]
    end module

`modul-name` muss ein Modulname aus dem &kde; SVN-Archiv sein (z. B. kdelibs oder kdebase). Einige Optionen überschreiben die globalen Optionen, einige können zusätzlich zu globalen Optionen festgelegt werden und einige globale Optionen lassen sich gar nicht Modul-Spezifisch überschreiben.

Im Folgenden sehen Sie eine alphabetisch geordnete Liste der möglichen Optionen. Klicken Sie auf eine Option, um mehr darüber zu erfahren. Falls eine Option nicht näher dokumentiert ist, schreiben Sie bitte eine E-Mail an den Autor. Die Adresse finden Sie hier.

- apidox: Erstellen der API-Dokumentation

- apply-qt-patches: Verbessern von Qt-copy mit einigen Patches

- binpath: Zum Festlegen der Umgebungsvariable `PATH`

- branch: Zum Herunterladen aus einer bestimmten branch anstelle von /trunk

- build-dir: Legt den Kompilier-Ordner festO

- checkout-only: Nur bestimmte Teile eines Moduls herunterladen

- colorful-output: Farbige Darstellung der Skript-Ausgaben

- configure-flags: Legt fest, welche Parameter an configure eines bestimmten Moduls übergeben werden sollen.

- cxxflags: Legt den Inhalt der Umgebungsvariable `CXXFLAGS` fest

- dest-dir: Zum Ändern des Ordner-Namens für ein Modul

- disable-agent-check: Verhindert die Prüfung des Status für den SSH-Agenten

- do-not-compile: Schließt bestimmte Ordner vom Kompiliervorgang aus

- inst-apps: Hiermit werden nur bestimmte Ordner kompiliert und installiert

- install-after-build: Hierdurch kann die Installation nach dem Kompilieren verhindert werden

- kdedir: Legt den Zielordner für die KDE-Installation fest

- libpath: Legt den Inhalt der Umgebungsvariable `LD_LIBRARY_PATH` fest

- make-install-prefix: Zum Ausführen eines Hilfsprogrammes vor make install (z. B. sudo)

- make-options: Übergibt bestimmte Optionen an das Programm make

- manual-build: Verhindert das automatische Kompilieren eines Moduls

- manual-update: Verhindert das automatische Aktualisieren eines Moduls

- module-base-path: Ändert den Pfad, aus dem ein Modul heruntergeladen werden soll (nützlich für SVN-Verzweigungen und -Tags)

- niceness: Ändert die Laufzeit-Priorität des Skripts

- no-rebuild-on-fail: Verhindert den erneuten Durchlauf von make nach einem Fehler

- qtdir: Legt den Pfad zu Qt fest

- set-env: Zum Einstellen einer UmgebungsvariableFestlegen

- source-dir: Ändert den Pfad für heruntergeladene Quellen

- stop-on-failure: Beendet kdesvn-build sobald ein Fehler auftritt

- svn-server: Ändert den Server, von dem die Quellen heruntergeladen werden

- use-qt-builddir-hack: Legt fest, dass für Qt separate Quell- und Kompilier-Ordner verwendet werden sollen (so wie bei KDE auch)

- use-unsermake: Verwendung des erweiterten Kompilier-Systems unsermake

Im Folgenden finden Sie eine Tabelle mit verschiedenen Optionen und einigen Kommentaren dazu. Optionen, die eine globale Option überschreiben, werden auch den entsprechenden Parameter auf der Kommandozeile überschreiben.

## Tabelle der Optionen

Name der Option | Modul -> Globales Verhalten | Anmerkungen
apidox | Überschreibt die globale Option | Stellen Sie die Option auf true, so wird &kdesvn-build; die API-Dokumentation für das Modul erzeugen und installieren. Dies funktioniert nur mit Modulen, die den Befehl `make apidox` unterstützen (inklusive kdelibs, kdebase, koffice und weiteren).
apply-qt-patches | Überschreibt die globale Option | Diese Option ist nur für qt-copy sinnvoll. Wenn Sie auf einen Wert ungleich Null eingestellt ist, wird das apply-patches-Skript in qt-copy vor dem Kompilieren ausgeführt. Dadurch werden einige inoffizielle Patches auf qt-copy angewandt. Normalerweise sind gerade diese Patches der Grund, qt-copy zu verwenden. Daher sollten Sie diese Option bedenkenlos aktivieren können. Standardmäßig werden die Patches auf qt-copy angewandt.
binpath | Kann nicht überschrieben werden | Mit dieser Option können Sie die Umgebungsvariable PATH für den Kompiliervorgang festlegen. Diese Option lässt sich nicht mit einer Modul-Option überschreiben. Die Voreinstellung ist `/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin`. Diese Umgebungsvariable sollte die Pfade zu den notwendigen Entwicklungs-Werkzeugen beinhalten. Die Pfade `$KDEDIR/bin` und `$QTDIR/bin` werden automatisch hinzugefügt. Sie können auch die Tilde (~) für Pfadangaben verwenden.
branch | Überschreibt die globale Option | Mit dieser Option legen Sie fest, dass die Quellen aus einem bestimmten SVN-Branch anstelle von "trunk" heruntergeladen werden sollen. Um beispielsweise KDE 3.4 herunterzuladen, stellen Sie die Option auf "3.4" ein. Beachten Sie, dass einige Module unterschiedliche Namen für ein SVN-Branch verwenden. Hier ist insbesondere aRts zu erwähnen, welches andere Versionsnummern als KDE verwendet. Die mit KDE 3.4 ausgelieferte Version von aRts war beispielsweise 1.4. Das das Herunterladen einer Branch mit dieser Option fehlschlägt, müssen Sie möglicherweise die korrekte Adresse zum Herunterladen manuell eingeben. Verwenden Sie dazu die Option override-url.
build-dir | Überschreibt die globale Option | Verwenden Sie diese Option zum Ändern des Ordners, in dem die Quellen kompiliert werden sollen. Sie können diese Option auf drei Arten verwenden: Relativ zum &kde; SVN Quellordner (siehe die Option source-dir). Dies ist die Voreinstellung und außerdem die Art und Weise, wie es bis zur Skript-Version 0.61 funktioniert hat. Dieser Modus wird automatisch verwendet, wenn Sie einen Ordner-Namen eingeben, der nicht mit einer Tilde (~) oder einem Schrägstrich (/) beginnt. Die Voreinstellung ist `build`. Absoluter Pfad. Wenn Sie einen Pfad eingeben, der mit einem Schrägstrich (/) beginnt, so wird dieser Pfad wie eingegeben verwendet. Beispiel: `/tmp/kde-obj-dir/`. Relativ zum persönlichen Ordner. Wenn Sie einen Pfad angeben, der mit einer Tile (~) beginnt, so wird der Pfad als relativ zu Ihrem persönlichen Ordner angesehen. Dies funktioniert analog zu der Art und Weise, wie die Shell eine Tilde interpretiert. Beispiel: `~/builddir` würde den Kompilier-Ordner auf `/home/benutzer/builddir` einstellen. Diese Option kann pro Modul separat eingestellt werden.
checkout-only | Überschreibt die globale Option | Mit Hilfe dieser Option können Sie SVN-Module Stück für Stück herunterladen. Die Einstellung für diese Option sollte eine durch Komma getrennte Liste der herunterzuladenden Ordner sein. Wenn Sie den admin-Ordner nicht angeben, wird er automatisch heruntergeladen (falls nötig). Wenn Sie Stück für Stück herunterladen, wird der admin-Ordner aus kde-common eingefügt. Zwar überschreibt diese Option die globale Version, es ist jedoch dennoch nicht sinnvoll, die Option global einzustellen.
configure-flags | Wird der globalen Option angefügt (ausgenommen für qt-copy) | Mit Hilfe dieser Option können Sie die Parameter festlegen, die dem Skript ./configure für das jeweilige Modul übergeben werden. Wenn Sie diese Option global einstellen, wird sie für alle Module angewandt. Für qt-copy wird ein völlig anderer Satz configure-Parameter benutzt als für &kde;, daher überschreibt die Option die globale Einstellung, wenn sie für qt-copy eingestellt wird.
colorful-output | Kann nicht überschrieben werden | Wenn Sie diese Option auf false setzen, wird die farbige Ausgabe von &kdesvn-build; unterbunden. Die Voreinstellung ist true. Beachten Sie, dass &kdesvn-build; die Farbcodes nur auf ein Terminal ausgibt (wie beispielsweise xterm, &konsole; oder die normale Linux-Konsole).
cxxflags | Wird der globalen Option angefügt | Mit dieser Option können Sie die Parameter festlegen, die `./configure` als `CXXFLAGS` übergeben werden sollen. Diese Option wird hier festgelegt und nicht einfach `configure-flags` mit angehängt, weil sie auch die Umgebungsvariable `CXXFLAGS` während dem Kompilieren setzt.
dest-dir | Überschreibt die globale Option | Mit dieser Option können Sie den Modul-Namen für Ihre lokale Kopie auf der Festplatte festlegen. Das Modul extragear/network könnten Sie beispielsweise extragear-network nennen.
disable-agent-check | Kann nicht überschrieben werden | Wenn Sie SSH zum Herunterladen der Quellen aus SVN verwenden, wird kdesvn-build versuchen sicherzustellen, dass Ihr SSH-Agent auch einige SSH-Identitäten verwaltet. Auf diese Weise soll verhindert werden, dass Sie andauern zur Passworteingabe aufgefordert werden. Sie können diese Prüfung unterbinden, indem Sie die Option auf true stellen.
do-not-compile | Überschreibt die globale Option | Mit dieser Option wird die Umgebungsvariable `DO_NOT_COMPILE` gesetzt, bevor das configure-Skript ausgeführt wird. Laut der &kde; Entickler-FAQ sollten auf diese Weise alle Haupt-Ordner beim Kompilieren übersprungen werden, die mit dieser Variable übergeben werden. Trennen Sie mehrere Ordnerangaben durch Leerzeichen. Beachten Sie, dass die Quellen zu den übersprungenen Programmen dennoch heruntergeladen werden. Um auch dies zu unterbinden, können Sie die Option checkout-only verwenden. Geben Sie mit dieser Option nur die Ordner an, die Sie herunterladen möchten.
email-address | Kann nicht überschrieben werden | Mit dieser Option können Sie die E-Mail-Adresse festlegen, die kdesvn-build; als Absender verwenden soll, falls das Senden einer E-Mail nötig sein sollte. Sie können diese Option vernachlässigen, wenn Sie keine Funktionen benutzen, die E-Mails senden. (Diese Funktionen sind in der Voreinstellung deaktiviert.) Derzeit benötigt nur email-on-compile-error diese Option.
email-on-compile-error | Kann nicht überschrieben werden | Mit dieser Option können Sie die E-Mail-Adresse festlegen, an die eine Nachricht gesendet werden soll, falls sich ein Modul nicht kompilieren lässt. kdesvn-build wartet ab, bis alle Module bearbeitet wurden und sendet dann einen Sammelbericht über die fehlgeschlagenen Module per E-Mail. Es wird nur eine E-Mail gesendet, falls ein Modul fehlschlägt. Bitte beachten Sie die Option email-address, mit der die Absenderadresse für diese Funktion eingestellt wird. Die Voreinstellung ist üblicherweise nicht zufriedenstellend.
inst-apps | Überschreibt die globale Option | Dies ist das Gegenteil zu der Option do-not-compile. Mit dieser Option legen Sie fest, dass nur bestimmte Hauptordner kompiliert werden sollen. Mehrere Ordnerangaben müssen mit Leerzeichen getrennt werden. Änderungen an dieser Option werden erst angewendet, nachdem das nächste Mal `make `-f` Makefile.cvs` aufgerufen wurde; entweder automatisch, durch das Skript oder manuell durch die Option `--refresh-build` oder `--recreate-configure`. Beachten Sie, dass die Quellen zu den übersprungenen Programmen dennoch heruntergeladen werden. Um auch dies zu unterbinden, können Sie die Option checkout-only verwenden. Geben Sie mit dieser Option nur die Ordner an, die Sie herunterladen möchten.
install-after-build | Überschreibt die globale Option | Diese Option legt fest, dass ein Paket nach erfolgreichem Kompilieren installiert werden soll. Dies ist in der Voreinstellung eingeschaltet. Wenn Sie dieses Verhalten nicht wünschen, stellen Sie die Option auf 0. Sie können analog auch den Befehlszeilen-Parameter `--no-install` verwenden.
kdedir | Kann nicht überschrieben werden | Mit dieser Option wird der Zielordner festgelegt, in den &kde; nach dem Kompilieren installiert wird. Die Voreinstellung ist `~/kde`. Wenn Sie hier einen Ordner einstellen, für den Systemverwalter-Rechte benötigt werden, sollten Sie auch die Anmerkungen zur Option make-install-prefix lesen.
libpath | Kann nicht überschrieben werden | Mit dieser Option wird die Umgebungsvariable LD_LIBRARY_PATH für den Kompiliervorgang gesetzt. Sie können die Option für jedes Modul separat einstellen. In der Voreinstellung ist sie nicht gesetzt, aber die Pfade `$KDEDIR/lib` und `$QTDIR/lib` werden automatisch hinzugefügt. Sie können für Pfadangaben auch die Tile (~) benutzen.
log-dir | Überschreibt die globale Option | Diese Option wird zum Ändern des Ordners für Protokoll-Dateien des Skripts verwendet. Seit der Version 0.64 können Sie die Option auch pro Modul einstellen.
make-install-prefix | Überschreibt die globale Option | Geben Sie für diese Variable eine Liste mit Befehlen ein. Mehrere Befehle werden durch Leerzeichen getrennt. Die hier eingegebenen Befehle werden vor jedem Aufruf von make install ausgeführt. Dies ist hilfreich, wenn Sie für die Installation einiger Pakete Systemverwalter-Rechte benötigen und daher z. B. sudo aufrufen müssen. Bitte seien Sie umsichtig im Umgang mit Systemverwalter-Rechten!
make-options | Überschreibt die globale Option | Mit Hilfe dieser Variable können Sie Befehlszeilen-Parameter an make übergeben. Dies kann beispielsweise zur Verwendung von distcc nützlich sein. Mit distcc ist es möglich, den Kompiliervorgang auf mehrere Rechner zu verteilen. Um es zu verwenden, müssen Sie die Option `-j` an make übergeben; mit dieser Einstellung ist das möglich. Wenn man nach der Dokumentation geht, entspricht die richtige Einstellung 2 * anzahl_netzwerk_prozessoren. Bei nur einer CPU ist `-j2` die korrekte Einstellung.
manual-build | Überschreibt die globale Option | Stellen Sie diese Option auf true, um zu verhindern, dass kdesvn-build dieses Modul kompiliert. Es wird dennoch weiterhin aktualisiert werden, wenn Quellen aus SVN heruntergeladen werden. Diese Option entspricht dem Befehlszeilen-Parameter `--no-build`.
manual-update | Überschreibt die globale Option | Stellen Sie diese Option auf true, um zu verhindern, dass kdesvn-build dieses Modul aktualisiert (und auch nicht kompiliert und installiert). Wenn Sie diese Option so verwenden, entspricht das im Grunde dem Auskommentieren - es wird völlig übergangen.
module-base-path | Überschreibt die globale Option | Mit dieser Option können Sie den in &kdesvn-build; voreingestellten Pfad zu einem Modul übergehen. Dies kann zum Beispiel verwendet werden, um für ein Modul eine besondere branch oder eine als tag vorhandene Version herunterzuladen. Bei der Suche nach dem richtigen Pfad kann Ihnen das &kde; WebSVN behilflich sein. Beachten Sie: &kdesvn-build; setzt den Pfad nach dem folgenden Schema zusammen: `$svn-server`/home/kde/`$module-base-path``$modul-name`. Die Voreinstellung ist entweder trunk oder trunk/KDE, je nach Modul-Name.
niceness | Kann nicht überschrieben werden | Diese Option können Sie auf einen Wert zwischen 20 und 0 einstellen. Je höher die Zahl, desto niedriger ist die Laufzeit-Priorität für &kdesvn-build;. Die Voreinstellung ist 10.
no-rebuild-on-fail | Überschreibt die globale Option | Stellen Sie diese Option auf true, wenn Sie verhindern möchten, dass &kdesvn-build; ein Modul erneut kompiliert, wenn inkrementelles Kompilieren fehlgeschlagen ist. Normalerweise versucht &kdesvn-build;, ein Modul erneut von vorne zu kompilieren, falls ein SVN update den Kompiliervorgang durcheinander gebracht haben sollte.
override-url | Überschreibt die globale Option | Wenn Sie diese Option einstellen, wird kdesvn-build den eingestellten Wert unverändert als Adresse an Subversion übergeben. Sie können diese Option grundsätzlich verwenden, um eine bestimmte Programmversion herunterzuladen. Dann kann kdesvn-build allerdings nichts mit der Option branch anfangen.
qtdir | Kann nicht überschrieben werden | Diese Option setzt die Umgebungsvariable QTDIR für den Kompiliervorgang. Sie können die Einstellung nicht für einzelne Module überschreiben. Wenn Sie dies nicht setzen, lautet die Voreinstellung ``$(source-dir)`/build/qt-copy`; somit wird die mit &kde; ausgelieferte Version von qt-copy verwendet. Sie können die Tilde (~) verwenden.
remove-after-install | Überschreibt die globale Option | Wenn Sie wenig Festplattenspeicher zur Verfügung haben, können Sie mit Hilfe dieser Option alle Kompilier-Ordner (oder zusätzlich auch den Quell-Ordner) nach der erfolgreichen Installation löschen lassen. Die möglichen Einstellungen für diese Option sind: none - Nichts wird gelöscht (dies ist die Voreinstellung). builddir - Kompilier-Ordner werden gelöscht, aber keine Quell-Ordner. all - Sowohl Kompilier- als auch Quell-Ordner weren gelöscht. Beachten Sie: Die Verwendung dieser Option kann eine negative Auswirkung auf Ihre Internet-Bandbreite und die Gesamtdauer einer KDE-Installation haben, weil kdesvn-build nicht mehr inkrementell kompilieren kann und die Pakete unter Umständen immer wieder neu herunterladen muss. Dies ist insbesondere der Fall, wenn Sie die Option auf all einstellen.
set-env | Überschreibt die globale Option | Diese Option erwartet eine Liste mit durch Leerzeichen getrennten Werten. Der erste Wert ist die zu setzende Umgebungsvariable, die restlichen Werte sind der Inhalt der Variable. Wenn Sie beispielsweise die Umgebungsvariable RONALD auf McDonald setzen möchten, würden Sie diese Einstellung verwenden:
    set-env RONALD McDonald
Das besondere an dieser Option ist, dass Sie sie mehrfach wiederholen können, ohne das die jeweils vorige set-evn-Option im gleichen Abschnitt der Konfigurationsdatei überschrieben wird. Auf diese Weise können Sie pro Modul und auch global mehrere Umgebungsvariablen setzen.
source-dir | Kann nicht überschrieben werden | Diese Option legt den Ordner auf Ihrer Festplatte fest, in dem die &kde; SVN-Quellen gespeichert werden sollen. Wenn Sie die Option nicht setzen, lautet die Voreinstellung `~/kdesvn`. Falls Sie die Option benutzen möchten, müssen Sie einen absoluten Pfad angeben.
svn-server | Kann nicht überschrieben werden | Mit dieser Option können Sie den zu verwendenden SVN-Server festlegen. Die Voreinstellung ist der Server für anonymes SVN svn://anonsvn.kde.org/.der
stop-on-failure | Überschreibt die globale Option | Setzen Sie diese Option auf true, wenn kdesvn-build beendet werden soll, falls beim Kompilieren oder Installieren ein Fehler auftritt. Diese Einstellung ist in der Voreinstellung ausgeschaltet.
tag | Überschreibt die globale Option | Benutzen Sie diese Option, um eine bestimmte Version eines Moduls herunterzuladen. HINWEIS: Im Regelfall ist es sinnvoller, diese Option NICHT zu benutzen. Fertige KDE-Versionen können üblicherweise als Tar-Archiv von der KDE FTP-Seite oder einem der Softwarespiegel heruntergeladen werden. Falls Sie kdesvn-build benutzen, weil Sie Schwierigkeiten mit der Installation einer fertigen KDE-Version haben, sollten Sie lieber Konstruct verwenden, welches grundsätzlich mit den KDE Release-Archiven arbeitet.
use-qt-builddir-hack | Überschreibt die globale Option | Zwar überschreibt diese Option die globale Option, jedoch ist sie nur sinnvoll für qt-copy einzusetzen. Wenn Sie die Option auf true einstellen, wird der experimentelle Kompilier-Modus eingeschaltet, bei dem Kompilier- und Quell-Ordner von qt-copy unterschiedlich sind. Wenn dies aktiviert ist, wird &kdesvn-build; die qt-copy-Quellen in den Kompilier-Ordner kopieren und dort kompilieren. Das hat zur Folge, dass die Umgebungsvariable QTDIR auf `$(qt-copy-build-dir)/qt-copy/lib` eingestellt werden sollte. Außerdem sollten Sie die Option qtdir entsprechend anpassen. Auch in diesem Modus sollte noch inkrementelles Kompilieren möglich sein, weil die Zeitstempel auch noch nach der Kopie vorhanden sind. Wenn Sie apply-qt-patches verwenden, werden die Patches auf den Kompilier-Ordner angewandt, nicht auf den Quell-Ordner. Die Voreinstellung ist true.
use-unsermake | Überschreibt die globale Option | Stellen Sie diese Option auf true, um das experimentelle Programm unsermake anstelle von automake zu verwenden. Dadurch kann die Kompilierzeit drastisch gesenkt werden, insbesondere wenn distcc eingesetzt wird. Diese Option ist voreingestellt auf true (für die meisten Module). Wenn Sie diese Option verwenden, wird unsermake normalerweise automatisch auf dem aktuellen Stand gehalten. Dies könnte aber lästig werden, wenn Sie unsermake lieber selbst verwalten. In dem Fall können Sie die Option auf self stellen. Dann wird unsermake verwendet, aber nicht automatisch durch kdesvn-build aktualisiert.

## Befehlszeilen-Parameter und Umgebungsvariablen

Dieses Skript verwendet keine Umgebungsvariablen. Falls Sie welche für den Kompilier- oder Installationsvorgang benötigen, lesen Sie bitte die Hinweise für die Option set-env.

Das Skript kennt die folgenden Befehlszeilen-Parameter:

`--help`

- Zeigt eine kurze Hilfe zur Verwendung an.

`--version`

- Zeigt die Programmversion an.

`--author`

- Zeigt Kontaktinformationen zum Autor des Skripts an.

`--color`

- Aktiviert die farbige Darstellung der Ausgaben.

`--no-color`

- Deaktiviert die farbige Darstellung der Ausgaben.

`--pretend` (oder `-p`)

- Ein Durchlauf wird simuliert, aber nichts wirklich ausgeführt.NICHTS aus

`--quiet` (oder `-q`)

- Reduziert die Ausgaben auf der Konsole auf ein Minimum.

`--really-quiet`

- Nur Warnungen und Fehler ausgeben.

`--verbose`

- Es werden ausführliche Ausgaben erzeugt, Sie können den genauen Ablauf verfolgen.

`--svn-only`

- Führt nur das Aktualisieren der Quellen aus.

`--build-only`

- Führt nur den Kompiliervorgang durch.

`--ignore-modules`

- die folgenden auf der Befehlszeile angegebenen Module werden bei der Aktualisierung/Kompilierung ignoriert.

`--no-svn`

- Keine Verbindung zum SVN-Server herstellen.Nimmt

`--no-build`

- Den Kompiliervorgang überspringen.

`--no-install`

- Keine Pakete automatisch installieren, nachdem sie kompiliert wurden.

`--debug`

- Aktiviert den Modus zur Fehlersuche. Dies bedeutet, dass alle Ausgaben auf STDOUT ausgegeben und zusätzlich im Protokoll abgelegt werden. Des Weiteren sind die meisten Funktionen wesentlich "gesprächiger".

`--no-rebuild-on-fail`

- Nicht versuchen, ein Modul nach einem Fehler erneut zu kompilieren. Es werden grundsätzlich keine Module neu kompiliert, bei denen es schon einen Versuch, erneut zu komplilieren, gegeben hat.

`--refresh-build`

- Aktualisiert das Kompilier-System und beginnt den Kompiliervorgang von vorne.

`--reconfigure`

- Führt das configure-Skript erneut aus, ohne den Kompilier-Ordner vorher zu bereinigen.

`--recreate-configure`

- Führt `make `-f` Makefile.cvs` erneut aus und erzeugt das configure-Skript neu. Der restliche Kompiliervorgang ist dann ganz normal. Diese Option schließt automatisch `--reconfigure` ein.

`--resume`

- Versucht, den Kompiliervorgang an der Stelle fortzusetzen, wo er zuletzt unterbrochen wurde. Diese Option schließt automatisch `--no-svn` ein. Sie sollten keine weiteren Modul-Namen an der Kommandozeile übergeben.

`--resume-from`

- Verhält sich wie `--resume`, außer das Sie den Modul-Namen angeben können, bei dem fortgesetzt werden soll. Diese Option schließt automatisch `--no-svn` ein. Sie sollten keine weiteren Modul-Namen auf der Kommandozeile übergeben.

`--rc-file`

- Der darauf folgende Parameter ist die Konfigurationsdatei, aus der die Optionen eingelesen werden sollen. Die Voreinstellung für diesen Parameter ist ~/.kdesvn-buildrc.

`--prefix=</pfad/zu/kde>`

- Ermöglicht Ihnen, den Ordner zu wechseln, in dem &kde; installiert wird. Diese Option schließt automatisch `--reconfigure` ein.

`--build-system-only`

- Stoppt nach dem Ausführen von `make `-f` Makefile.cvs`. Das configure-Skript muss dennoch ausgeführt werden; &kdesvn-build; wird dies automatisch für Sie erledigen. Auf diese Weise können Sie alle configure-Skript in einem Durchlauf erzeugen; auf diese Weise können Sie für jedes Modul die Ausgabe von `./configure `--help`` betrachten und entsprechende Optionen festlegen.

`--install`

- Wenn dies der einzige Befehlszeilen-Parameter ist, wird versucht, alle Module zu installieren, die erfolgreich kompiliert wurden - mit Ausnahme von qt-copy, welches nicht installiert werden muss. Wenn Sie nach `--install` weiter Parameter angeben, werden diese als zu installierende Module interpretiert.

`--<option-name>=`

- Dies können Sie verwenden, um eine Option in Ihrer Konfigurationsdatei für jedes Modul zu überschreiben. Beispiel: `--log-dir=/pfad/zu/ordner` würde die Option log-dir überschreiben.

`--<modul-name>,<option-name>=`

- Dies können Sie verwenden, um eine Option in Ihrer Konfigurationsdatei für ein bestimmtes Modul zu überschreiben. Beispiel: Um die Option use-unsermake für kdemultimedia zu überschreiben, geben Sie `--kdemultimedia,use-unsermake=false` ein.

Alle weiteren Parameter werden als Modul-Namen interpretiert, die aktualisiert oder kompiliert werden sollen. Verwechseln Sie Kompilieren nicht mit Installieren!

## Danksagungen und Lizenz

&underFDL;