Abbildung 1: Das Partitionierungsmodul von Yast 2 teilt Festplatten auf und legt Mountpoints fest. Das Projekt Yast4Debian hat diesen Programmteil bereits erfolgreich portiert.
Als Yast 2 zum letzten Mal Aufsehen erregte, betraf dies seine Lizenz: Kurz nach der Suse-Übernahme stellte Novell das umfassende Konfigurationswerkzeug der Distribution unter die GPL. Die Yast-2-Quellen waren zwar bereits vorher frei zugänglich, die Lizenz schränkte Verwendung und Weiterverbreitung des Programms jedoch ein.
Yast4Debian
Novell hatte diesen Schritt damit begründet, dass man Yast 2 zu einem weitläufigen Standard machen wolle. Deswegen sollten die verschiedenen Distributoren den Quellcode für ihre Produkte entsprechend anpassen und als universelles Werkzeug für die Konfiguration des Systems etablieren. Das erste größere Projekt, das sich dieser Aufgabe annahm, war Debian. Dieser Distribution fehlt bislang ein zentrales Konfigurationsprogramm, das von null an sehr aufwändig zu programmieren gewesen wäre. Das Projekt Yast4Debian portiert derzeit die mit Suse 9.1 ausgelieferte Yast-2-Version; ein Upgrade auf die Suse-9.2-Version steht bevor.
Yast 2 besteht aus der Bibliothek Libyutil, einem Programmkern und diversen Zusatzmodulen. Beim Kern handelt es sich wiederum nur um einen Interpreter für die Yast-2-eigene Programmiersprache YCP, die diverse Elemente der verschiedenen gängigen Skriptingsprachen vereint und zum Erstellen neuer Module dient. Sowohl die Yast-2-Bibliothek als auch der Kern sind in C++ geschrieben und mit den Autotools vorkonfiguriert, sodass sie sich auf jedem Linux-System kompilieren lassen.
Der Hauptaufwand bei der Portierung betrifft also die Module. Unter diese Kategorie fallen auch die Bedienoberflächen, von Suse bereits bekannt sind das Text-Interface Yast-2-Ncurses und das grafische Yast-2-Qt. Beide Module lassen sich ebenfalls problemlos auf anderen Linux-Systemen kompilieren. Die Portierung der restlichen Komponenten erweist sich jedoch als mühselig. Die zahlreichen Module - sogar die einzelnen Yast-2-Icons bilden jeweils ein eigenes - stehen häufig in Abhängigkeiten zueinander, die auf den ersten Blick wenig Sinn ergeben.
Wer beispielsweise das Partitionierungsmodul kompilieren will, braucht zunächst das Modul Autoyast. Dies zieht einen Rattenschwanz weiterer Abhängigkeiten hinter sich her, denn es setzt das X11-Konfigurationsmodul voraus, das wiederum das X11-Maus- und das X11-Keyboard-Konfigurationsmodul verlangt. Außerdem hängt Autoyast vom Yast-Online-Update-Modul und vom Konfigurationsmodul für den Bootloader ab.
Unter der Haube
Noch komplizierter, als Yast 2 mit den Modulen zu kompilieren, ist es, die auf Suse ausgerichtete Infrastruktur an die Zieldistribution anzupassen. Im Falle von Debian betrifft dies beispielsweise das Paketmanagement. Ein Yast-2-Modul kommuniziert mit der RPM-Datenbank, unter Debian kommt aber das Debian-Paketformat zum Einsatz. Andere Module hingegen bedürfen glücklicherweise geringerer Modifikationen, etwa die Benutzerverwaltung. Weil Debian wie Suse und mittlerweile fast alle anderen Distributionen dabei mit »shadow« verschlüsselte Passwörter einsetzt, können die Entwickler das Modul beinahe unverändert übernehmen.
Erste Erfolge kann Yast4Debian schon aufweisen; außer dem Benutzerkonfigurationsmodul funktioniert nunmehr auch der Partitionierer (Abbildung 1) einwandfrei. Doch der bevorstehende Umstieg auf Yast 2 aus der aktuellen Suse-Version bringt viel neue Arbeit mit sich. Wer sich an der Portierung beteiligen möchte, findet auf der Projekt-Homepage [7] eine Anlaufstelle.
« Zurück
1
2
3
4
Weiter »