Aufmacher Artikel

Bleeding Edge

Basteln an KDE 4

25.02.2009 Dank der Trunk-Version von KDE 4.1 verfolgen Sie nicht nur tagesaktuell, wie KDE 4 sich entwickelt, Sie entwickeln auch selbst für KDE 4: Plasmoiden, Bibliotheken – was Sie wollen.

Mini-Serie: KDE 4 in der Praxis

Einführung Was ist Plasma?   LU 09/2008
Teil 1 KDE 4 Trunk aufsetzen LU 09/2008
Teil 2 Plasmoiden entwickeln LU 10/2008
Ausblick KDE 4: Woher, wohin? LU 10/2008

"Mittendrin statt nur dabei", tönte einst ein Sportsender. Das kennen KDE-Nutzer auch: Von Release zu Release löffeln sie aus, was ihnen die Entwickler einbrocken, und sind dabei meist auf die KDE-Four-Live-Versionen [1] von Stephan Binner angewiesen, um die neuen Features zu begutachten. Es geht auch anders.

Wollen Sie mittendrin sein, installieren Sie die KDE-Entwicklungsumgebung mit der allerneuesten KDE-Version direkt aus Trunk. Einmal aufgesetzt, laden Sie jederzeit die neuesten Updates herunter, übersetzen nur den geänderten Code und lassen KDE in einem eigenen Fenster – auch im Vollbildmodus – laufen (Abbildung 1). Im Test dienten Ubuntu 7.10 und ein Kubuntu 8.04 als Wirtssysteme.

Abbildung 1

Abbildung 1: Nach der Installation läuft KDE 4 auf Ihrem gewöhnlichen System in einem Extrafenster, wo Sie es in aller Ruhe testen oder gar weiterentwickeln.

Wer selbst Anwendungen für KDE 4 entwickeln will, braucht die Umgebung ohnehin. Wollen Sie Plasmoiden für KDE 4 programmieren, wie es Sebastian Kügler vom KDE-Projekt im nächsten Heft beschreibt, brauchen Sie die Build-Umgebung also auch. Alle für das Aufsetzen der Umgebung relevanten Informationen finden Sie auch auf KDEs Techbase [2] – wir haben die Informationen noch einmal gebündelt und sortiert. Die Online-Plattform liefert auch hilfreiche Ratschläge, um auftretende Probleme zu bewältigen.

Viele Pakete

Bevor es losgeht, müssen Sie für Ihre Linux-Distribution eine Reihe von Paketabhängigkeiten auflösen. Auf Techbase gibt es für die verschiedenen Distributionen Listen mit der zu installierenden Software [3]. Opensuse-Anwender (10.3 und 11) finden 1-Click-Install-Buttons [4], um sämtliche Pakete mit einem Mausklick auf den Rechner zu ziehen. Ubuntu-Nutzer installieren am besten die komplette Liste von Paketen unter [5]. Markieren Sie in der zweiten Auflistung alle Paketnamen unter optional packages (also alles außer sudo aptitude install), kopieren Sie die Namen mit [Strg]+[C] und öffnen Sie eine neue Konsole. Tippen Sie sudo apt-get install und drücken Sie [Strg]+[V], um die Paketnamen einzufügen. Ubuntu fragt nun nach dem Root-Password und spielt die Software ein.

Der Entwicklungshelfer

Für die KDE4-Entwicklung legen Sie einen neuen User namens kde-devel an. Der kennt später die richtigen Umgebungsvariablen, um KDE 4 störungsfrei zu betreiben. Nicht nur zum Entwickeln und Testen melden Sie sich als Benutzer kde-devel an, sondern auch, um KDE 4 zu aktualisieren und neu zu übersetzen. Die Kommandos

$ sudo useradd -m kde-devel -s /bin/bash
$ sudo passwd kde-devel

legt den Entwicklungshelfer an (dafür brauchen Sie Root-Rechte) und vergeben ein Passwort für den Account.

Im Home-Verzeichnis erscheint nun der neue Ordner kde-devel. Der gleichnamige Benutzer drückt nun die Schulbank und lernt neue Funktionen und Variablen kennen.

Bash anpassen

Eine Techbase-Webseite [6] präsentiert einen Codeschnipsel, der die neuen Funktionen enthält (Abbildung 2). Dieses Wissen kommt in die versteckte Datei .bashrc, die Ubuntu beim Anlegen des Benutzers automatisch erzeugt. Die Bash lernt so neue Kommandos, die Sie zum Übersetzen der KDE-Module brauchen.

Abbildung 2

Abbildung 2: So lernt die Bash: KDEs Techbase hält den Code bereit, mit dem Sie aus dem Standarduser kde-devel einen KDE-4-Entwicklungshelfer machen.

Um den Code zu ergänzen, kopieren Sie den Abschnitt unterhalb von The Code bis zum Ende der Seite. Dann drücken Sie [Alt]+[F2] und geben kdesu kate (unter KDE) oder gksu gedit (unter Gnome) ein, um einen Editor mit Root-Rechten aufzurufen. Darin öffnen Sie die Datei ~/.bashrc und fügen den eben kopierten Text hinter der letzten Zeile in die Datei ein. Nach dem Speichern müssen Sie eventuell noch die Rechte an den auszuführenden Benutzer anpassen:

$ sudo chown kde-devel:kde-devel /home/kde-devel/.bashrc

Damit die Bash auch von der neuen Weltordnung erfährt, melden Sie sich erstmals als Benutzer kde-devel an und lesen die Datei dann ein:

$ sux - kde-devel
$ source .bashrc

Dank des zweiten Befehls liest die Bash sämtliche Kommandos, die sie in der veränderten Datei .bashrc findet, und führt sie aus. Um den Erfolg der Operation zu überprüfen, tippen Sie anschließend cm in das Terminal und drücken zweimal [Tab]. In der angezeigten Liste sollte auch der Eintrag cmakekde stehen. Mit dieser Funktion übersetzen Sie später die KDE-Module. Zusätzlich legt der Code ein Verzeichnis namens ~/kde/src an – das Wurzelverzeichnis für die spätere KDE-Entwicklung.

Den Softwarepool plündern

Zum Entwickeln brauchen Sie Code. Also ziehen Sie die notwendigen KDE-Module (die Verzeichnisse kdebase, kdelibs usw.) aus dem Entwicklungszweig Trunk. Wichtig ist, dass Sie die Module in der richtigen Reihenfolge übersetzen (Listing 1). Dank der neuen .bashrc hält der Entwicklungshelfer nun Werkzeuge bereit, die Ihnen dabei helfen.

Listing 1
$ svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/
$ svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs
$ svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs
$ svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase
$ svn checkout svn://anonsvn.kde.org/home/kde/trunk/playground/base/plasma
$ svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdeplasma-addons

TIPP

Scheitert das Übersetzen eines Moduls, fehlt in den meisten Fällen entweder ein anderes KDE-Modul, von dem Ihr gerade übersetztes Modul abhängt, oder ein Entwicklerpaket, was die Fehlermeldung häufig verrät.

Wie der KDE-4-Softwarepool konkret aussieht, erfahren Sie nach dem Besuch der KDE-Trunk-Webseite [7], die den KDE-Entwicklerzweig in voller Schönheit im Web abbildet (Abbildung 3). Bei den einzelnen Ordnern handelt es sich um die KDE-Module, etwa kdelibs oder kdebase. Sie sehen auch, wer zuletzt am Code gearbeitet hat. In Abbildung 3 lässt sich etwa erkennen, dass die neue Revision (also die letzte Änderung) am Modul kdebase gerade einmal 10 Minuten alt ist.

Abbildung 3

Abbildung 3: Der Entwicklerzweig Trunk lässt sich auch im Web beobachten. Im KDE-Modul kdebase wurde vor 10 Minuten Code eingecheckt.

Einige dieser Module laden Sie später über den Subversion-Client herunter. Da KDE-Entwickler Trunk ständig um Code ergänzen, sollten Sie sämtliche Module auf einmal auschecken, bevor Sie sie übersetzen. Es passiert auch, dass der Prozess einige Zeit beansprucht oder gar abbricht, weil die Server überlastet sind. Besonders am Montag laden viele Entwickler offenbar Code auf den Server – meiden Sie diesen Wochentag.

Qt auschecken

Zunächst holen Sie aber – noch immer als Nutzer kde-devel – die neueste Qt-Version. Dazu wechseln Sie über cd in das Home-Verzeichnis. Dann ziehen Sie den Ordner qt-copy, der den Qt-Code enthält, aus dem KDE-4-Zweig:

$ svn checkout svn://anonsvn.kde.org/home/kde/trunk/qt-copy

Nun rauschen auf der Kommandozeile die Dateien vorbei (Abbildung 4). Am Ende steht gewöhnlich Ausgecheckt, Revision 833230, wobei die Zahl der aktuellen Fassung entspricht. Geben Sie ls ein, erscheint der Ordner qt-copy in den Sie via cd wechseln. Zunächst spielen Sie über den Aufruf des Skripts ./apply_patches aktuelle Patches für Qt ein. Dann überprüft Configure, ob es alle Entwicklerpakete gibt, die Qt zum Übersetzen braucht, und erstellt aus den Informationen das Makefile:

$ ./configure --prefix=$HOME/qt-copy
Abbildung 4

Abbildung 4: Über den Subversion-Client greifen Sie auf die Versionsverwaltung des KDE-Projekts zu und laden den aktuellen KDE-Quellcode auf den Rechner.

Über den Präfix sorgt Configure dafür, dass die Installation in das Verzeichnis $HOME/qt-copy erfolgt. Nach dem Abnicken der Lizenzbedingungen über die Eingabe von yes wird Qt konfiguriert. Nun folgt ein etwas längerer Befehl:

$ make -j 2; if [ "$QTDIR" = "`pwd`" ]; then find . -name '*.o' -delete; else make install; fi;

Dieses Kommando kompiliert Qt, setzt die Umgebungsvariable QTDIR auf das aktuelle Verzeichnis, löscht sämtliche Objektdateien in den Unterverzeichnissen und installiert Qt anschließend. Der Prozess dauert ein wenig; danach geben Sie which qmake ein. Das Programm sollte im Verzeichnis /home/kde-devel/qt-copy/bin/qmake liegen.

Im nächsten Schritt checken Sie alle benötigten Module aus und übersetzen Sie. Das alles erledigen Sie weiterhin in der Rolle des Users kde-devel. Die Reihenfolge, in der Sie die Module kompilieren, entnehmen Sie – ebenso wie die SVN-Pfade – dem Listing 1.

Bevor Sie die Module besorgen, wechseln Sie über cs (eine Funktion der neuen .bashrc) in das KDE-Quellverzeichnis, das sich unter /home/kde-devel/kde/src befindet. Hier legen Sie ein Verzeichnis KDE an (mkdir KDE) in das Sie wechseln. Anschließend checken Sie den benötigten Code aus. Natürlich können Sie noch weitere Module holen, zur Entwicklung von Plasmoiden genügen die in der Tabelle genannten. Erscheint während des Auscheckens eine Meldung, die nach einem Schlüssel verlangt, geben Sie "t" ein, um diesen temporär zu akzeptieren. Bricht der Vorgang ab, können Sie ihn selbstverständlich wiederholen.

In der Reihenfolge von Listing 1 übersetzen Sie die Software nun. Wechseln Sie dazu nacheinander in die entsprechenden Modul-Verzeichnisse (etwa /home/kde-devel/kde/src/KDE/kdesupport) und geben Sie dort cmakekde ein. Bei Cmake (siehe Kasten "Make-Nachfolger Cmake") handelt es sich um einen Nachfolger von Make.

Make-Nachfolger Cmake

Bei Linux-Magazin Online gibt es einen kompletten Artikel [8], der sich mit Cmake beschäftigt. Zunächst schaut Cmake, ob es alle Bibliotheken und Header-Dateien zum Übersetzen der Software findet, dann kompiliert es den Code. Bei ungewollten Abbrüchen fehlen meist die Entwicklerpakete einer bestimmten Software, die Fehlermeldung hilft dann weiter. Die Bash-Funktion cmakekde passt Cmake den Bedürfnissen des KDE-Projekts an.

Nach Eingabe des Befehls können Sie sich erstmal einen Kaffee machen oder auch ein Café aufmachen (je nach Geschwindigkeit des Rechners). Das Übersetzen und Installieren der einzelnen Komponenten zieht sich hin – mehrere Stunden kann das durchaus dauern. Glücklicherweise wiederholt sich der Zeitaufwand später nicht.

Nach dem Übersetzen eines Moduls (aber auch nach fehlerbedingten Abbrüchen beim Übersetzen) landen Sie im Build-Verzeichnis. Das heißt /home/kde-devel/kde/build/KDE/Modulname, (beachten Sie das build) wobei Modulname für das gerade übersetze KDE-Modul steht. Um das nächste Modul zu übersetzen oder das aktuelle erneut zu kompilieren, kehren Sie über cs jeweils in das src-Verzeichnis zurück. Glücklicherweise lassen sich spätere Updates wesentlich zeitsparender vornehmen (siehe Kasten "Schnelle Aktualisierung")

Schnelle Aktualisierung

Beim Aktualisieren übersetzen Sie nicht jedes Mal den gesamten Code neu. Hier sind die Schritte, um etwa das Modul kdesupport zu erneuern und zu übersetzen:

  • Über cs wechseln Sie ins KDE-Wurzelverzeichnis,
  • mit cd KDE/kdesupport gelangen Sie ins Verzeichnis des KDE-Moduls.
  • Dort synchronisieren Sie mit svn up die Dateien mit der aktuellen Version von Kde.org und
  • wechseln über cb ins build-Verzeichnis des Moduls.
  • Mit dem Befehl make install übersetzen Sie nur die neuen Code-Passagen.

Auch hier gilt: Holen Sie erst den kompletten Code aus der Versionsverwaltung und übersetzen Sie ihn dann in der richtigen Reihenfolge.

KDE 4 Trunk starten

Um KDE 4 anschließend zu starten, melden Sie sich mit dem Kommando sux - kde-devel wieder als Nutzer kde-devel an. In das Home-Verzeichnis legen Sie das Skript aus Listing 2, das KDE 4 in einem Fenster startet. Nennen Sie es etwa kde4go, machen Sie es über chmod u+x kde4go ausführbar und rufen Sie es über ./kde4go auf.

Listing 2
#!/bin/bash
export KDEDIR=$HOME/kde
export LD_LIBRARY_PATH=$KDEDIR/lib
export PATH=$KDEDIR/bin/:$PATH
export KDEHOME=~/.kde4
Xephyr :1 -extension GLX -fullscreen &
export DISPLAY=:1
startkde

Das Skript exportiert einige Umgebungsvariablen, damit KDE 4 weiß, wo es Programme und Bibliotheken findet. Dann startet es Xephyr, einen X-Server, der auch aktuelle X-Erweiterungen unterstützt (-extension GLX). Das Fenster läuft im Vollbildmodus (-fullscreen), lässt sich aber über -screen 800x600 auch verkleinern. Im Anschluss ruft es KDE 4 über startkde auf Display 1 auf (Abbildung 5). Um KDE 4 wieder zu beenden, wechseln Sie mit [Alt]+[Tab] zurück zur Konsole, über die Sie die Sitzung gestartet haben und drücken dort [Strg]+[C].

Abbildung 5

Abbildung 5: Sie können KDE 4 auch in einem kleineren Fenster laufen lassen, wenn Sie das Startskript anpassen.

Glossar

Trunk

In diesem Online-Softwarepool verwalten die KDE-Entwickler die allerneueste KDE-4-Version, an der sie zur Zeit arbeiten.

Plasmoiden

In KDE 4 die Bezeichnung für kleine Anwendungen, die sich auf dem Desktop platzieren lassen. Der Name leitet sich von der Arbeitsoberfläche Plasma ab.

Tip a friend    Druckansicht beenden Bookmark and Share
Kommentare