Skip to content. | Skip to navigation

Sections
Personal tools
Log in
You are here: Home News openSUSE conference 2009
Navigation
« June 2013 »
June
MoTuWeThFrSaSu
12
3456789
10111213141516
17181920212223
24252627282930
 
 

openSUSE conference 2009

Bericht von openSUSE conference 2009: openSUSE Build Service, YaST, DBUS und PolicyKit

Vom 17. bis zum 20. September fand in Nürnberg erstmalig die openSUSE Conference statt. Laut Veranstalter nahmen es ca. 250 Personen teil. Diese waren recht international. Viele von ihnen sind/waren irgendwann mal bei SUSE/Novell beschäftigt. Einer von ihnen war ich selbst, der von 2000 bis 2003 als Consultant bei der SUSE Rhein-Ruhr beschäftigt war.

Auch wenn kein Vortrag dies direkt im Fokus hatte, so behandelten viele Vorträge Aspekte des openSUSE Build Service (OSB). Dies ist auch nicht weiter verwunderlich, ist es doch die grundlegende Basis der SUSE-Distributionen. Und nicht nur dieser. Wie Anas Nashif (Intel) in seinem Vortag "Building Moblin the openSUSE Way" darstellte, wird auch Moblin Distribution mit dem OSB erzeugt, obwohl dieses von Fedora 9 abgeleitet wurde.

Ohnehin ist es eine riesige Erleichterung, ein Build System zur Verfügung zu haben, dass derart viele Distibutionen unterstützt (u.a. Debian 4/5, Ubuntu, RHEL 4/5, SLES 9/10/11, openSUSE 10.0 - Factory). Während wir früher noch einen einfachen Build Mechanismus verwendeten, setzen wir mittlerweile hauptsächlich auf den openSUSE Build Service.

Paketierung kann es hochkomplexes Unterfangen sein. Der Vortrag "Git in the Build Service" von Andreas Gruenbacher vermittelte einige der Probleme, die bei der Zusammenarbeit oder speziell beim Branchen und Mergen entstehen. Dort fällt dann negativ auf, dass im Hintergrund des Build Service eben kein Standard Versionierungssystem steckt, sondern eine Eigenentwicklung. Andreas schlägt vor, dies durch das mächtige GIT abzulösen und damit auch die Möglichkeit eröffnen, sämtliche GIT Tools nutzen zu können. Nicht alle sehen aber nur Vorteile in dieser Lösung und vor allem, wird der Umstellungsaufwand auf 2 Monate geschätzt. Zuviel derzeit und so ist dieses Projekt erst einmal zurück gestellt. Der Vortrag vermittelte aber einen guten Überblick über interne Strukturen und daraus resultierende Probleme. Diese betreffen hauptsächlich der SUSE-Entwickler selbst, wenn sie aktuelle Pakete für die nächste Distribution (Factory) erstellen. Wer einfach nur Pakete für bestimmte Distributionen bauen möchte, bleibt hiervon verschont.

Auch der Vortrag "Visualizing Package Dependencies" von Klaus Kampf bezog sich indirekt auf den openSUSE Build Service. Zwar handelte er primär davon, Paket Abhängigkeiten sichtbar zu machen. Aber der Grund hierfür ist eben auch, Abhängigkeiten die im Build System existieren besser einschätzen, sortieren und ggf. verbessern zu können. Bei der Visualisierung wurde sich nicht auf ein 2D Darstellung mit Graphviz beschränkt, sondern zur besseren Übersicht auch die 3D- und sogar interaktive 3D-Darstellungen vorgestellt. Hierbei lassen sich interaktiv Filterkriterien ändern und damit natürlich ein deutlich besserer Überblick verschaffen. Diskutiert wurde, wie sich dies sinnvoll in das Webinterface des openSUSE Build Service integrieren lassen würde. Wünschenswert erschien es weiterhin, dieses zu nutzen, um den Status eines Build Vorganges darstellen zu können, d.h. welche Pakete müssen noch  gebaut werden, bevor mein eigenes an die Reihe kommt.

Die andere Grundsäule einer SUSE Distribution ist zweifellos der YaST. YaST war schon immer mächtig. Allerdings war es immer für die interaktive GUI Benutzung ausgelegt. Die Hürde, die es durch seine eigene Programmiersprache (YCP) legt wurde auch erst relativ spät durch das Einbinden weitere Skriptsprachen verringert. Für die Erstinstallation gibt es mit AutoYaST seit dem Jahr 2002 eine gute Ergänzung. Aber eben nur für die Installation. Mit dem jetzt eingeführten yast-dbus-server wird YaST endlich skriptbar. In openSUSE Factory ist es bereits enthalten. Ab openSUSE 11.2 wird es allen zur Verfügung stehen. Es soll auch Bestandteil von SLES11-SP1 werden. Ladislav Slezak von SUSE Prague hat in seinem Vortrag "Dbus, PolicyKit, and YaST" Einblicke in dieses Thematik gegeben. Hintergrund der Entwicklung war nicht in erster Linie, eine skriptbares YaST zu erhalten sondern diese Entwicklung wurde für das WebYaST vorgenommen. Obwohl der erste Ansatz darin bestand, WebYaST auf libUI aufzusetzen zu lassen, auf dem schon die Ausgabe für Ncurses, Qt und GTK basieren, hat sich dies als nicht erfolgreich herausgestellt. Stattdessen musste ein neues Interface für WebYaST geschaffen werden. Hier hat man sich entschieden, auf dem Standard Schnittstellen für lokale Kommunikation aufzusetzen: DBUS. Da das Webinterface nicht als root laufen soll, brauchte man auch eine detailierte Rechteverwaltung. Dafür würde die andere sich immer weiter durchsetzende Schnittstelle PolicyKit verwendet. Somit lassen sich einzelne Funktionen für bestimmte Benutzer freischalten oder eben sperren.
So wird es z.B. möglich, als normaler Benutzer über DBUS ein Samba-Share durch Nutzung der vorhandenen YaST-Funktionen hinzufügen. Natürlich ist dies dann auch leicht in ein KDE-Kontextmenü einzubetten. Versprochen ist, dass alle YaST Funktionen über DBUS ansprechbar werden.

Ich sehe die Einsatzmöglichkeiten z.B. bei der nachträglichen Hardware-Einbindung. In unserem Linux Desktop Mangement Projekt SmartClient ist es erforderlich, die Netzwerk-Schnittstelle nachträglich zu konfigurieren. Danach lassen sich rechnerspezifische Informationen aus dem Verzeichnisdienst LDAP auslesen und die Hardware entsprechend zu konfigurieren (Scanner, Dual-Head Grafikkarten, ...) Dies wurde bis jetzt über eigene Mechanismen gelöst. Diese waren aber von Distributionsrelease zu Distributionsrelease anzupassen. Zukünftig verspreche ich mir hier, ein stabiles Interface zu besitzen und die ohnehin bereits im YaST vorhandenen Mechanismen zu nutzen.

Insgesamt, eine Konferenz die gute Einblicke in die derzeitige und zukünftige Entwicklungen bei SUSE gibt. Ich freue mich, im nächstes Jahr wieder teilnehmen zu können.

Document Actions
Filed under: