Difference between revisions of "Getting Started/Build/KDE4 (de)"

Jump to: navigation, search
m (Text replace - "<code bash>" to "<syntaxhighlight lang="bash">")
m (Text replace - "<code>" to "<syntaxhighlight lang="text">")
Line 111: Line 111:
 
Sie können die stabilen ebuilds verwenden. Vergessen Sie nur nicht, ihr Portage zu synchronisieren, bevor Sie fortfahren.
 
Sie können die stabilen ebuilds verwenden. Vergessen Sie nur nicht, ihr Portage zu synchronisieren, bevor Sie fortfahren.
  
Von folgenden Paketen müssen instabile Versionen verwendet werden. Um das zu erreichen, nehmen Sie die Paketnamen in die Datei <code>package.keywords</code> auf.
+
Von folgenden Paketen müssen instabile Versionen verwendet werden. Um das zu erreichen, nehmen Sie die Paketnamen in die Datei <syntaxhighlight lang="text">package.keywords</code> auf.
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Line 371: Line 371:
 
* Sie benötigen die libungif-Bibliothek, ansonsten erhalten Sie eine Fehlerausgabe ähnlich "<tt>Could NOT find GIF</tt>".
 
* Sie benötigen die libungif-Bibliothek, ansonsten erhalten Sie eine Fehlerausgabe ähnlich "<tt>Could NOT find GIF</tt>".
 
* Qt-4.3-Upgrade: Wenn Sie einen Verknüpfnugsfehler in kjsembed erhalten, der auf die QScriptEngine bezogen ist, editieren Sie CMakeCache.txt in kdelibs und entfernen Sie die Zeilen, die sich auf QT_QTUITOOLS_LIBRARY beziehen, und führen Sie den make-Befehl erneut aus (diese statische Bibliothek hat eine neue Abhängigkeit und der cmake-Code, der diese hinzufügt, benötigt sie, um ausgeführt zu werden).
 
* Qt-4.3-Upgrade: Wenn Sie einen Verknüpfnugsfehler in kjsembed erhalten, der auf die QScriptEngine bezogen ist, editieren Sie CMakeCache.txt in kdelibs und entfernen Sie die Zeilen, die sich auf QT_QTUITOOLS_LIBRARY beziehen, und führen Sie den make-Befehl erneut aus (diese statische Bibliothek hat eine neue Abhängigkeit und der cmake-Code, der diese hinzufügt, benötigt sie, um ausgeführt zu werden).
* Wenn Sie die Fehlerausgabe <code>CMake Error: KDE Requires Qt to be built with SSL support</code> erhalten, installieren Sie openssl-devel, und rekompilieren Sie Qt.
+
* Wenn Sie die Fehlerausgabe <syntaxhighlight lang="text">CMake Error: KDE Requires Qt to be built with SSL support</code> erhalten, installieren Sie openssl-devel, und rekompilieren Sie Qt.
  
 
== kdepimlibs ==
 
== kdepimlibs ==

Revision as of 21:46, 29 June 2011


Contents

Getting_Started/Build/KDE4


KDE4 aus dem Quellcode bauen

Übersicht

Diese Anleitung zeigt einen Weg, KDE auf Linux- und BSD-Systemen zu komplieren und auszuführen. Als Grundlage verwenden wir die Shell. Wenn Sie sich für die Installation auf anderen Systeme wie etwa Solaris, MacOS oder Microsoft Windows interessieren, besuchen Sie bitte Build und folgen Sie den Links am Ende der Seite.

{{{3}}}
 
noframe
Stellen Sie sich auf verstärkt auftretende Buildprobleme an Montagen ein, da die Entwickler an diesem Wochentag kritische Änderungen vornehmen. Das Dashboard zeigt unerwartete Probleme beim Kompilieren an.
Warnung


Benötigte Software

Folgendes muss installiert sein, um dieses Tutorial erfolgreich durchführen zu können:

  • gcc und g++ vom gcc Projekt, vorzugsweise Version 4.1 oder höher
  • svn, der subversion revision control client
  • pkg-config
  • devel-(Entwicklungs-)Bibliotheken und -header für X11, OpenGL (mesa-common-dev und libglu1-mesa-dev), libjpeg, libpng, libungif, libclucene, librdf, libxml2 und libxslt
  • Das makeobj Skript, welches Teil von kdesdk ist. Sie können es als Teil von kdesdk (kdesdk-scripts in Debian) installieren oder von hier einzeln herunterladen: WebSVN
  • das shared-mime-info Paket, welches der freedesktop-MIME-Standard ist, den KDE nun nutzt
  • boost, welches von kdebase gebraucht wird. Nach dem Kompilieren und/oder Installieren von boost fügen Sie das boost-Verzeichnis (das, welches das include-Unterverzeichnis enthält) zu CMAKE_INCLUDE_PATH hinzu, oder kreieren Sie eine Umgebungsvariable namens BOOST_ROOT, die zum boost-Verzeichnis verweist, um cmake den Ort von boost mitzuteilen (FindBoost).

Weiterhin ist es zu empfehlen, folgende Software bereits installiert zu haben:

  • bash

Kubuntu

In Kubuntu 7.04 (Feisty) können alle zum Bau der Pakete benötigte Software mit folgendem Befehl installiert werden:

sudo aptitude install build-essential cdbs debhelper cmake libungif4-dev \
libxml2-dev libxslt1-dev libbz2-dev libclucene-dev librdf-dev \
shared-mime-info libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \
libxext-dev libjpeg-dev libpng-dev libsm-dev libxinerama-dev \
libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen
</code>
 
Die manuelle Installation von Qt 4.3, CMake 2.4.6 und DBus kann durch die Installation der folgenden Pakete und ihrer Abhängigkeiten vermieden werden:
<syntaxhighlight lang="bash">
sudo aptitude install libqt4-dev-kdecopy libdbus-1-dev cmake
</code>
 
{{warning (de)|Alle KDE-Releases nach Alpha1 funktionieren nur mit Qt4.3. Kubuntu hat aber nur Pakete für Qt 4.3-Beta. Um neuere Versionen zu kompilieren, ist  das offizielle Release nötig.
}}
 
Für eine voll funktionstüchtige [[apidox]]-Umgebung wird ebenfalls zusätzliche Software benötigt:
<syntaxhighlight lang="bash">
sudo aptitude install graphviz
</code>
 
=== openSUSE ===
{{note (de)|
Der openSUSE build service stellt ebenfalls tagesaktuelle KDE-4-Pakete bereit, die das gesamte auf dieser Seite beschriebene Vorgehen überflüssig machen. Weitere Informationen findet man direkt im openSUSE wiki unter [http://de.opensuse.org/KDE4 KDE4].
}}
 
In OpenSuse können Pakete mit Hilfe von [http://de.opensuse.org/Zypper Zypper] installiert werden:
<syntaxhighlight lang="bash">
sudo zypper install <package-name>
</code>
 
In älteren SUSE-Versionen geht dies nur mit Yast:
<syntaxhighlight lang="bash">
yast2 -i <packagename>
</code>
 
Die meisten zum Bau von KDE 4 nötigen Pakete sind:
<syntaxhighlight lang="bash">
xorg-x11-devel
libxml2-devel
kdesdk3
clucene-core-devel
libjpeg-devel
liblrdf-devel
libpng-devel
libxslt-devel
Mesa-devel
giflib-devel
subversion
gcc
gcc-c++
pcre-devel
</code>
 
Wenn ihr suse 10.3 benutzt, müsst ihr neuere Versione von folgenden Paketen installieren. (Repository: http://download.opensuse.org/repositories/KDE:/KDE4:/STABLE:/Desktop/openSUSE_10.3/ )
 
<syntaxhighlight lang="bash">
libqt4-devel
libqca2-devel
soprano
libsoprano-devel
strigi
strigi-devel
</code>
 
Bereits vorkompilierte CMake-Pakete für openSUSE sind direkt verfügbar im  [http://software.opensuse.org/download/devel:/tools:/building/ openSUSE build service].
 
=== Gentoo ===
 
Sie können die stabilen ebuilds verwenden. Vergessen Sie nur nicht, ihr Portage zu synchronisieren, bevor Sie fortfahren.
 
Von folgenden Paketen müssen instabile Versionen verwendet werden. Um das zu erreichen, nehmen Sie die Paketnamen in die Datei <syntaxhighlight lang="text">package.keywords</code> auf.
 
<syntaxhighlight lang="bash">
# echo 'x11-libs/qt' >> /etc/portage/package.keywords
# echo 'dev-util/cmake' >> /etc/portage/package.keywords
# echo 'dev-cpp/clucene' >> /etc/portage/package.keywords
# echo '>dev-cpp/clucene-0.9.16a' >> /etc/portage/package.mask
</code>
 
Dies sind die zu installierenden Pakete. Einige könnten bereits installiert sein. Diese können übersprungen werden, indem das "update"-flag in emerge gesetzt wird.
 
<syntaxhighlight lang="bash">
$ emerge -avu ebuild/name
</code>
 
 sys-devel/gcc
 dev-util/subversion
 dev-util/pkgconfig
 x11-base/xorg-x11
 media-libs/glut
 media-libs/mesa
 media-libs/jpeg
 media-libs/libpng
 media-libs/giflib
 dev-cpp/clucene
 dev-util/cppunit
 media-libs/liblrdf
 dev-libs/libxml2
 dev-libs/libxslt
 x11-misc/shared-mime-info
 dev-libs/boost
 x11-libs/qt
 dev-util/cmake
 sys-apps/dbus
 redland
 
Beginnen Sie nun, [[Getting_Started/Build/KDE4#Strigi|Strigi]] zu kompilieren.
 
Viel Erfolg!
 
== Ein Benutzer für die KDE-4-Entwicklung ==
 
{{Note (de)|
Einige Menschen ziehen es vor, für KDE 4 einen separaten Nutzer-Account einzurichten, um nicht aus Versehen durch noch bestehende Bugs oder ähnliches Daten zu verlieren. Die Anleitung hier basiert auf der Herangehensweise.
 
Es ist jedoch deutlich effizienter alles mit einem einzigen Nutzer-Account zu machen. Unter [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts|Increased Productivity in KDE4 with Scripts]] findet man mehr Details dazu.
 
In diesem Fall ist die folgende Anleitung noch immer gültig, jedoch sollten die nötigen Umgebungsvariablen nicht in die <tt>.bashrc</tt>, sondern in eine separate Datei geschrieben werden, die dann bei Bedarf eingelesen wird.
}}
 
=== Option 1: Kommandozeile ===
<syntaxhighlight lang="bash">
useradd -m kde-devel
passwd kde-devel
</code>
 
=== Option 2: Über KControl ===
 
Anstatt der oben genannten Befehle kann man auch mit Hilfe des Benutzer-Moduls im KDE-Kontrollzentrum (kcontrol) einen weiteren Benutzer einrichten.
 
=== Einrichten der Entwicklungsumgebung ===
 
Kopieren Sie die Datei {{path|~/.bashrc}} von Ihrem normalen Benutzer-Account zu Ihrem neuen kde-devel-Account. Danach fügen Sie den Inhalt der Seite [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|example .bashrc]] in die Datei {{path|~kde-devel/.bashrc}} ein. Stellen Sie sicher, dass die Zeile <tt>alias make=makeobj</tt> auskommentiert ist falls auf Ihrem System das Programm <tt>[[Getting Started/Build/KDE4#Required Software|makeobj]]</tt> nicht verfügbar ist.
Die neue {{path|~/.bashrc}} wird mit folgendem Befehl eingelesen:
<syntaxhighlight lang="bash">
source ~/.bashrc
</code>
 
Nun haben Sie Zugriff auf Befehle wie <tt>cmakekde</tt>, die in dieser Anleitung genutzt werden. Auch wird so sichergestellt, dass alle wichtigen Umgebungsvariablen (z. B. für die Pfadangaben von Qt, KDE und CMake) richtig gesetzt sind.
 
Für weitere Informationen lesen Sie bitte [[Getting Started/Increased Productivity in KDE4 with Scripts]].
 
=== Zum neuen Benutzer wechseln ===
 
Sie können sich nun als Benutzer kde-devel anmelden (der Bindestrich ist wichtig!):
<syntaxhighlight lang="bash">
su - kde-devel
</code>
 
Der Rest dieser Anleitung geht davon aus, dass Sie alle Befehle als <tt>kde-devel</tt> ausführen.
 
== Die Shell des Entwicklungsbenutzers ==
Auf manchen Systemen nutzen neue Benutzer standardmäßig {{path|/bin/sh}}. Wenn dies auf Ihrem System nicht der Fall ist, können Sie diesen Abschnitt überspringen. {{path|/bin/sh}} zu nutzen kann sich als sehr unangenehm erweisen. Daher sollten Sie erwägen, zu {{path|/bin/bash}} oder einer anderen Shell zu wechseln.
 
=== Option 1: Als kde-devel-Benutzer ===
Wenn Sie keine root-Privilegien haben und Ihr System das Wechseln der eigenen Shell mittels <tt>chsh</tt> unterstützt, können Sie versuchen, Ihre Shell zu {{path|/bin/bash}} zu wechseln, indem Sie Folgendes eingeben:
<syntaxhighlight lang="bash">
chsh -s /bin/bash kde-devel
</code>
 
=== Option 2: Als root-Benutzer ===
Wenn Ihr System die Anwendung <tt>usermod</tt> beinhaltet, können Sie den folgenden Befehl als root-Benutzer eingeben: <tt>usermod -s /bin/bash kde-devel</tt>.
 
Eine weitere Möglichkeit ist die Nutzung der Anwendung <tt>vipw</tt> als root-Benutzer, um auf sichere Art {{path|/etc/passwd}} zu editieren. Machen Sie 'kde-devel' in dieser Datei ausfindig und ändern Sie '{{path|/bin/sh}}' am Zeilenende in '{{path|/bin/bash}}'. Speichern Sie die Änderungen und beenden Sie die Anwendung.
 
Die neue Shell wird automatisch gestartet wenn Sie sich wieder als kde-devel-Benutzer einloggen.
 
== D-Bus ==
QtDBus und KDE arbeiten mit den D-Bus-Versionen 0.6.2, 0.92 und höher zusammen. Die Versionen 0.60 und 0.61 funktionieren eventuell auch, sind aber ungetestet. Die Versionen 0.90 und 0.91 funktionieren definitiv nicht.
 
Wir empfehlen, dass Sie eine aktuelle, stabile Version, also größer Version 1.0, benutzen, wenigstens aber Version 0.94.
 
Wenn Sie eine aktuelle D-Bus-Version auf ihrem System bereits installiert haben oder Ihre D-Bus-Version nicht aktualisieren wollen, können Sie die nächste Sektion überspringen.
 
Bevor Sie die nächsten Schritte durchgehen sollten Sie sicherstellen, dass die X11-header und -Bibliotheken installiert sind. Das Konfigurationsskript sollte in Zeile 5 Folgendes ausgeben:
 Building X11 code:        yes
 
=== Das Kochrezept ===
 
{{tip|Stellen Sie sicher, dass Ihre Umgebung [[Getting_Started/Build/KDE4 (de)#Einrichten der Entwicklungsumgebung|wie beschrieben]] eingerichtet wurde. Das ist wichtig für das Funktionieren der <tt>cs</tt>- und <tt>cb</tt>-Befehle.}}
 
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' ist eine Bash-Funktion, klicken Sie hier, um mehr darüber zu lernen]] 
 wget http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz
 tar -xvzf dbus-1.0.2.tar.gz
 cd dbus-1.0.2/
 ./configure --prefix=$DBUSDIR --localstatedir=$KDEDIR/var
 make
 make install
 dbus-uuidgen --ensure
 
=== Was hier passiert === 
Wir wechseln in Zeile 1 in das Quellen-Verzeichnis, laden in Zeile 2 den Quellcode von freedesktop.org herunter und entpacken diesen in Zeile 3.
In Zeile 4 wechseln wir in das neu erstellte Verzeichnis, und bereiten in Zeile 5 das Kompilieren der Quelldateien vor. Zeile 6 setzt den Kompilier-Vorgang in Gang, Zeile 7 installiert D-Bus, und in Zeile 8 benutzen wir das <tt>dbus-uuidgen</tt>-Werkzeug, um eine Maschinen-Identifikation zu installieren. Das erlaubt dem bus, automatisch mit der Desktop-Sitzung zu starten.
 
Achten Sie darauf, dass Sie Schreibrechte auf {{path|/var}} haben, da Sie sie für die letzten beiden Schritte benötigen. Falls Ihr System kein sudo-Kommando unterstützt, können Sie auch <tt>su</tt> benutzen, z. B. <tt>su -c "make install"</tt>.
 
=== Fehlerbehebung ===
 
Falls Sie die Fehlermeldung '''makeobj: command not found''' bekommen fehlt Ihnen <tt>[[Getting_Started/Build/KDE4#Required_Software|makeobj]]</tt>.
 
== CMake ==
Überspringen Sie diesen Abschnitt, wenn Sie [http://cmake.org/ CMake] >=2.4.5 installiert haben.
Es sollte Ihnen möglich sein, die Binärpakete zu installieren, die hier verfügbar sind: [http://www.cmake.org/HTML/Download.html CMake site]. Dort sind ebenfalls distributionsspezifische Pakete zu finden.
 
=== Das Kochrezept ===
<!--'cs' and 'cb' are NOT typos!-->
 
 cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|'cs' ist eine Bash-Funktion, klicken Sie hier, um mehr zu erfahren]] 
 wget http://www.cmake.org/files/v2.4/cmake-2.4.6.tar.gz
 tar zxf cmake-2.4.6.tar.gz
 mkdir cmake-build
 cd cmake-build 
 ../cmake-2.4.6/bootstrap
 make
 sudo make install
 
=== Was hier passiert ===
Zuerst wechseln wir in das Quellverzeichnis des <tt>kde-devel</tt>-Benutzers (Zeile 1), laden den CMake-Quellcode herunter (Zeile 2) und entpacken ihn (Zeile 3). Dann erstellen wir ein Verzeichnis, in dem wir CMake kompilieren (Zeile 4) und wechseln in dieses (Zeile 5). Hier führen wir das CMake-bootstrap-Skript aus (Zeile 6), dann den make-Befehl (Zeile 7) und schließlich die Installation als root-Benuzter (Zeile 8).
 
Wenn Ihr System den <tt>sudo</tt>-Befehl nicht beinhaltet, können Sie stattdessen Folgendes eingeben: <tt>su -c "make install"</tt>.
 
== Qt ==
Als nächstes wird Qt 4 benötigt; es befindet sich im KDE-Quell-Repository. KDE kompiliert garantiert gegen jedes Qt der Version 4.3. Qt 4.2 und früher sind nicht unterstützt und funktionieren nicht. Da Qt 4.3 erst kürzlich veröffentlicht worden ist, finden sich wahrscheinlich noch keine Pakete für Ihre Distribution (bekannte Ausnahmen sind Kubuntu, Fedora 7 und openSUSE). Sie sollten die Kopie auf den KDE-Subversion-Servern verwenden.
 
=== Das Kochrezept ===
 cd
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/qt-copy
 cd qt-copy
 ./apply_patches
 ./configure -qt-gif -no-exceptions -debug -fast \
  -prefix $QTDIR -qdbus -pch -nomake examples \
  -nomake demos
 make -j2
 # make install: Nur wenn QTDIR nicht das momentane Verzeichnis ist!
 make install
 
=== Was hier passiert ===
Wir wechseln in das Heimverzeichnis des <tt>kde-devel</tt>-Benutzers (Zeile 1) und laden den Quellcode mittels Subversion (svn) herunter (Zeile 2). Nach dem Wechsel in das daraus resultierende Verzeichnis {{path|qt-copy}} (Zeile 3), führen wir ein Skript aus, das die Patches integriert, die mit <tt>qt-copy</tt> kommen (Zeile 4). 
 
Sobald die Patches integriert sind, konfigurieren wir das build mittels des <tt>configure</tt>-Skripts (Zeilen 5-7). Die verschiedenen Kommandozeilenoptionen werden in der Datei {{path|qt-copy/README.qt-copy}} erläutert. Schließlich kompilieren wir die Mininalanforderungen für KDE (Zeile 8) und installieren Qt (Zeilen 9-10). Wenn Sie alle Beispiel- und Demo-Applikationen installieren möchten, können Sie sie entweder einzeln kompilieren oder einfach den Befehl <tt>make</tt> im Verzeichnis {{path|qt-copy}} ausführen.
 
Beachten Sie, dass die Installation keine root-Rechte verlangt, da Qt lokal in {{path|$QTDIR}} installiert wird. Die Installation ist ohnehin nur nötig, wenn {{path|$QTDIR}} sich von {{path|$HOME/qt-copy}} unterscheidet, was nicht der Fall ist, wenn Sie die Anweisungen exakt befolgt haben.
 
=== Fehlerbehebung ===
Wenn Sie die Fehlerausgabe "error: X11/Xlib.h: No such file or directory" erhalten, installieren Sie das devel-Paket von <tt>xorg</tt> (der Name des Pakets kann in verschiedenen Distributionen abweichen, in (K)Ubuntu z. B. ist er <tt>xorg-dev</tt>). 
 
Wenn Sie eine Fehlermeldung im configure-Schritt erhalten, die auf "missing defines" hinweist, prüfen Sie den Wert von <tt>$QMAKESPEC</tt>. Manche Distributionen lassen die Variable direkt auf das standardmäßig installierte Qt verweisen. Wenn der Befehl <tt>unset QMAKESPEC</tt> das Problem löst, sollten Sie überlegen, ihn zum <tt>~/.bashrc</tt>-Skript hinzuzufügen.
 
Wenn Sie die Fehlermeldung ".pch/debug-shared/QtCore" erhalten, bedeutet dies, dass Qt-4.3 zwar die vorkompilierten header aktiviert hat (wenn Ihr gcc dies unterstützt), es jedoch nicht funktioniert. Wenn Sie distcc nutzen, konfigurieren Sie Qt mit der Option -no-pch. Wenn Sie icecream nutzen, führen Sie ein Update zur neuesten Version von icecream im svn trunk durch.
 
Versuchen Sie, irgendeine Qt-Applikation zu starten, beispielsweise {{program|assistant}}. Wenn sie in QSpanData::adjustSpanMethods abstürzt, haben Sie ein Problem mit dem Oxygen style. Versuchen Sie, {{path|lib/kde4/plugins/styles/kstyle-oxygen.so}} und {{path|lib/kde4/plugins/styles/oxygen.so}} zu entfernen, wenn sie sich im KDE-Installationspräfix finden.
 
== kdesupport ==
 
{{warning (de)|Wenn Sie diesen Abschnitt erreicht haben, ohne [[Getting_Started/Build/KDE4 (de)#Einrichten der Entwicklungsumgebung|Einrichten der Entwicklungsumgebung]] zu lesen, '''werden die hier angebotenen Rezepte nicht funktionieren'''. Diese Rezepte sind nicht defekt; <tt>cs</tt> und <tt>cb</tt> sind keine Tippfehler. Ihre Umgebung '''muss''' korrekt eingerichtet sein, damit diese Instruktionen funktionieren.}}
 
Es gibt eine Reihe von Bibliotheken in kdesupport, von denen andere Programme abhängen. Das umfasst Strigi und Soprano für die Datei-Metadaten und für die Suche, eigen für visuelle Effekte z.B. in Kalzium, taglib für Musik-Programme und qca für Kryptographie-Unterstützung.
 
Strigi selbst hat ebenfalls einige Abhängigkeiten: Sie benötigen die Bibliotheken von libz, libbz2, openssl (libcrypto oder libssl), libclucene (=0.9.16; Version 0.9.17 funktioniert '''nicht'''), und entweder libxml2 oder libexpat.
 
=== Das Kochrezept ===
<!--'cs' and 'cb' are NOT typos!-->
 cs # cs is kein Schreibfehler
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/
 cd kdesupport
 cmakekde
 
=== Was hier passiert ===
Wir wechseln in das Quellverzeichnis (Zeile 1), laden den Quellcode von kdesupport mittels Subversion herunter (Zeile 2) und wechseln anschließend in das neue Verzeichnis {{path|~/src/kdesupport}} (Zeile 3). Dann starten wir die Kompilierung (Zeile 4). Wir finden uns im Anschluss an die Kompilierung im build-Verzeichnis von kdesupport wieder.
 
=== Troubleshooting ===
Wenn Sie folgende Fehlermeldung bekommen:
 CMake Error: This project requires some variables to be set,
 and cmake can not find them.
 Please set the following variables:
 LIBXML2_INCLUDE_DIR (ADVANCED)
dann sollten Sie das Entwicklerpaket für libxml2 installieren (z.B. libxml2-devel oder ähnlich).
 
Wenn Sie
 CMake Error: Could NOT find REDLAND
erhalten, benötigen Sie librdf aus den Redland-Bibliotheken.
Wenn Ihre Distribution das librdf-Paket nicht zur Verfügung stellt, können Sie dessen Quellcode hier herunterladen [http://download.librdf.org/source/ http://download.librdf.org/source/] und selbst kompilieren. In Gentoo heißt das  Paket 'redland' anstatt librdf.
 
Wenn Sie 
 Fetching external item into 'kdesupport/admin'
 Error validating server certificate for 'https://...'
erhalten, werfen Sie einen Blick auf [http://techbase.kde.org/Getting_Started/Sources/Using_Subversion_with_KDE Using Subversion with KDE]
 
Bei der Fehlermeldung
 FILE cannot create directory: /usr/lib[64]/qt4/plugins/crypto
benötigen Sie zum Installieren des crypto-plugins Administrations-Rechte, vermutlich weil Sie die Systemweite Installation von qt4 verwenden. Am einfachsten ist es, Sie benutzen wie oben angegeben eine für den lokalen Nutzer erstellte.
 
== kdelibs ==
Nachdem wir Qt 4 und Strigi kompiliert haben, können wir nun mit dem Kompilieren  der KDE-Basisbibliotheken fortschreiten. Wenn Sie die oben genannte Anleitung bezüglich [[Getting Started/Increased Productivity in KDE4 with Scripts/.bashrc|.bashrc]] nutzen, kommen Ihnen diese neuen Funktionen im Folgenden gelegen. 
 
=== Das Kochrezept ===
 
<!--'cs' und 'cb' sind KEINE Tippfehler!-->
 cd $KDE_SRC
 mkdir KDE && cd KDE
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs
 cd kdelibs
 cmakekde
 
=== Was hier passiert ===
Wir wechseln in das KDE-Quellverzeichnis (Zeile 1), erstellen ein Verzeichnis names KDE und wechseln in dieses (Zeile 2). Dann laden wir den Quellcode der kdelibs mittels Subversion herunter (Zeile 3), wechseln in das neue Verzeichnis {{path|~/src/KDE/kdelibs}} (Zeile 4) und starten die Kompilierung (Zeile 5). Wir finden uns anschließend im <tt>kdelibs</tt>-build-Verzeichnis wieder.
 
{{tip|Es könnte einige fehlende Anhängigkeiten auf Ihrem System geben! Sie können in der Ausgabe von <tt>cmakekde</tt> leicht übersehen werden.
Sie können vor dem Kompilieren jeglicher KDE-Module (wie kdelibs, kdepimlibs usw.) <tt>cmake $KDE_SRC/KDE/MODULE_NAME</tt> ausführen.}}
 
=== Zusätzliche KDE-typische CMake-Module ===
Es gibt weitere CMake-Module in {{path|kdelibs/cmake/modules/}}, die für die Kompilierung von KDE4-Applikationen nötig sind. Sie werden mit kdelibs installiert (siehe unten).
 
=== Fehlerbehebung ===
Wenn Sie Schwierigkeiten bei der Kompilierung von kdelibs haben, stellen Sie sicher, dass Sie die Software im obigen Abschnitt [[Getting_Started/Build/KDE4#Required_Software|Required Software]] installiert haben und dass sie funktioniert. Andere mögliche Probleme sind:
* Wenn der Befehl <tt>cmakekde</tt> mit der Ausgabe fehlschlägt, dass CMake ein "out of source" build-Verzeichnis benötigt, entfernen Sie {{path|~/src/KDE/kdelibs/CMakeCache.txt}} und versuchen Sie es erneut.
 
Wenn <tt>cmakekde</tt> dennoch denselben Fehler ausgibt, versuchen Sie Folgendes:
 cd
 cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \
 -DCMAKE_BUILD_TYPE=debugfull \
 -DKDE4_BUILD_TESTS=ON \
 ~/src/KDE/kdelibs
 make
 make install
* Wenn Sie die Fehlerausgabe "Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there." erhalten, müssen Sie in Ihr build-Verzechnis wechseln bevor Sie cmakekde ausführen. (z. B. <tt>cs KDE/kdelibs && cb && cmakekde</tt>)
* Wenn Qt nicht oder in einer falschen Version gefunden wird, stellen Sie sicher, dass das qmake der benötigten Qt-Version an erster Stelle (unter den qmake-Einträgen) im Pfad eingetragen ist.
* Wenn das Problem nach wie vor vorhanden ist, versuchen Sie die CMake make-Option <tt>--keep-going</tt>.
* Sie benötigen die libungif-Bibliothek, ansonsten erhalten Sie eine Fehlerausgabe ähnlich "<tt>Could NOT find GIF</tt>".
* Qt-4.3-Upgrade: Wenn Sie einen Verknüpfnugsfehler in kjsembed erhalten, der auf die QScriptEngine bezogen ist, editieren Sie CMakeCache.txt in kdelibs und entfernen Sie die Zeilen, die sich auf QT_QTUITOOLS_LIBRARY beziehen, und führen Sie den make-Befehl erneut aus (diese statische Bibliothek hat eine neue Abhängigkeit und der cmake-Code, der diese hinzufügt, benötigt sie, um ausgeführt zu werden).
* Wenn Sie die Fehlerausgabe <syntaxhighlight lang="text">CMake Error: KDE Requires Qt to be built with SSL support</code> erhalten, installieren Sie openssl-devel, und rekompilieren Sie Qt.
 
== kdepimlibs ==
Sie müssen ''kdepimlibs'' nach <tt>kdelibs</tt>, aber vor ''kdebase'' installieren.
 
=== Das Kochrezept ===
 
<!--'cs' and 'cb' are NOT typos!-->
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs ist KEIN Tippfehler]]
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs
 cd kdepimlibs
 cmakekde
 
=== Was hier passiert ===
Wir wechseln in das KDE-Quellverzeichnis (Zeile 1), laden den Quellcode für kdepimlibs mittels Subversion herunter (Zeile 2) und wechseln anschließend in das neue Verzeichnis {{path|~/src/KDE/kdepimlibs}} (Zeile 3). Dann starten wir die Kompilierung (Zeile 4). Wir finden uns im Anschluss an die Kompilierung im build-Verzeichnis von <tt>kdepimlibs</tt> wieder.
 
== kdebase ==
Für manche kioslaves könnte kdebase benötigt werden.
<!--'cs' and 'cb' are NOT typos!-->
 cs KDE # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs ist KEIN Tippfehler]]
 svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase
 cd kdebase
 cmakekde
 
=== Fehlerbehebung ===
 
Wenn Sie Schwierigkeiten beim Kompilieren von kdebase haben:
* Stellen Sie sicher, dass die <tt>libxss-Header</tt> installiert sind. (Sollten diese nicht installiert sein, erhalten Sie in der Regel undefinierte Verweise auf xscreensaver-Objekte.)
* <tt>which meinproc4</tt> muss {{path|/home/kde-devel/kde/bin/meinproc4}} ausgeben.
* Wenn cmakekde das kdepimlibs-Verzeichnis nicht finden kann, editieren Sie die Datei {{path|$KDE_BUILD/kdebase/CMakeCache.txt}} und definieren Sie <tt>KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs</tt> manuell.
* Wenn Sie die Fehlerausgabe "Please set the following variables: X11_XTest_LIB (ADVANCED)" erhalten, installieren Sie das devel-Paket von <tt>Xtst</tt>. Auf manchen Systemen ist es separat von <tt>xext</tt> gepackt und heißt <tt>x11proto-xext-dev</tt> oder <tt>libxtst-dev</tt>. Sie müssen eventuell außerdem nach der Installation dieses Paketes die Datei CMakeCache.txt im build Verzeichnis löschen.
* Dasselbe gilt für die analoge Fehlerausgabe betreffend der Variable "X11_Xinerama_LIB (ADVANCED)": Sie benötigen das devel-Paket für <tt>xinerama</tt>.
* Wenn Sie die Fehlerausgabe "Please set the following variables: FONTCONFIG_INCLUDE_DIR, FONTCONFIG_LIBRARIES (ADVANCED)" erhalten, müssen Sie die libfontconfig-Header installieren.
* Wenn Sie die Fehlerausgabe "CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: KMETADATA_LIBRARIES" erhalten, müssen Sie soprano aus kdesupport installieren und dann kdelibs neu kompilieren.
* Wenn Sie die Fehlerausgabe "‘XserverRegion’ does not name a type" erhalten, stellen Sie sicher, dass Sie die libxcomposite header installiert haben. (In Ubuntu heißen diese <tt>libxcomposite-dev</tt>.)
 
== Lokale API-Dokumentation erstellen ==
 
Obwohl die API-Dokumentation für KDE online unter [http://api.kde.org api.kde.org] verfügbar ist, kann es hilfreich sein, sie offline verfügbar zu haben, zum Beispiel wenn Sie [[Getting_Started/Set_up_KDE_4_for_development#KDevelop|KDevelop]] zum Durchsuchen der Dokumentation nutzen oder wenn Sie nicht ständig online sein können.
 
Seien Sie sich bewusst, dass das Generieren der API-Dokumentation mehrere Stunden in Anspruch nehmen kann und knapp ein halbes Gigabyte an Speicherplatz benötigt.
Das Generieren wird von einem Skript in {{path|kdelibs/doc/api}} ausgeführt; Sie benötigen <tt>doxygen</tt>, um es ausführen zu können.
 
Um die API-Dokumentation für kdelibs zu generieren, geben Sie Folgendes ein:
<!--'cs' und 'cb' sind KEINE Tippfehler!-->
 cs KDE/kdelibs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs ist KEIN Tippfehler]]
 $KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \
 --doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .
 
Wiederholen Sie dies nach Bedarf für andere Module.
 
== Auf dem neusten Stand bleiben ==
 
Um die KDE Installation auf dem neusten Stand zu halten, sollte jedes der installierten Module regelmäßig aktualisiert werden. Da Montag der Tag mit den meisten Änderungen ist, kann Dienstag der beste Tag dazu sein. Führen Sie dazu für jedes der ausgecheckten Module, <tt>svn up</tt> und <tt>make</tt> aus.
 
Zum Beispiel:
<syntaxhighlight lang="bash">
cs kdesupport # cs is not a typo
svn up
cb # cb is not a typo
make -j2 VERBOSE=1 && make install
</code>
 
== Allgemeine Fehlerbehebung ==
 
Es kann im Laufe der Zeit nach mehrmaligem Ausführen von <tt>svn up</tt> vorkommen, dass sich das Ausgabeformat einiger Werkzeuge, die in der KDE-Werkzeugkette benutzt werden, ändert. Zum Beispiel werden <tt>kcfg</tt> Dateien vom <tt>kconfig_compiler</tt> gelesen, um die Konfigurationsdialoge zu generieren. Da CMake diese Veränderungen nicht erkennt, kann das Kompilieren fehlschlagen. Eine provisorische Lösung ist, die Regenerierung all dieser Dateien zu erzwingen:
 find $KDE_SRC/kde/kdebase -name "*.kcfg" | xargs touch
Dasselbe gilt für <tt>ui</tt> Dateien wie solche, die mit Qt Designer generiert werden.
 
== Das war's! ==
 
Sie sind nun bereit, andere svn-Module in derselben Weise wie kdebase zu kompilieren, KDE 4 zu benutzen und zu testen, sowie Ihre eigenen Patches und Anwendungen zu schreiben.
 
Siehe auch die Anleitung [[Getting Started/Set up KDE 4 for development|Set up KDE 4 for development]] um Hilfe beim Starten von KDE-4-Anwendungen sowie zur Benutzung von KDevelop zu erhalten.
 
[[Category:Build KDE]]
[[Category:KDE4]]

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal