Build Service
aus openSUSE, der freien Wissensdatenbank
|
Fähigkeiten
In der obigen Einführung haben wir gesagt, der Build Service sei eine komplette Distributionsentwicklungsplattform, welche die zur Entwicklung zukünftiger openSUSE-basierter Distributionen benötigten Werkzeuge bereitstellt.
Darüber hinaus bietet er aber auch Dienste an, die das Kompilieren und Paketieren für andere Linux-Distributionen wie Fedora, Ubuntu und viele mehr ermöglichen.
Nutzer von openSUSE können einfach die Benutzerseite der Web-Schnittstelle unter http://software.opensuse.org/ nach den neuesten Paketen durchstöbern und diese dort herunterladen oder die einzelnen Depots in ihre Paketverwaltung einbinden.
Offene Schnittstellen erlauben es externen Diensten (bspw. Source Forge) und Internetseiten mit dem Build Service zu interagieren und seine Ressourcen zu nutzen.
In einem fortgeschrittenem Stadium wird er mit einer Nutzer-/Vertrauensverwaltung ausgestattet sein und jedem offen stehen und in der Lage sein, zukünftige Bauziele (bspw. LSB Xen-Abbilder) zu erstellen.
Vorteile
Für Nutzer
- Sie können ständig die "aktuellste" Software für ihre Distribution von einem der Server herunterladen. Dank einer "Vertrauensverwaltung" (der Endanwender gibt vorher an, welchem Entwickler bzw. Projekt er vertraut) werden nur Pakete aus vertrauenswürdiger Quelle installiert.
- Aktualisierungen bzw. Aufwertungen von älteren Produkten werden möglich (ein aktuelleres KDE 3.5.9 auf einem SUSE Linux 10.0 zum Beispiel)
- Eventuell zunehmende Vereinheitlichung unter den verschiedenen Distributionen führt auch zu zunehmender Stabilität und Attraktivität von Linux im allgemeinen. (Dies muss sich - wie immer - allerdings erst noch zeigen ;-)
Sie können Software einfach über die Endnutzerschnittstelle finden und installieren. Zusätzlich können Sie Pakete auch manuell mit jedem Paketverwalter installieren, schauen Sie dazu hier.
Für Entwickler
- Sie brauchen nicht mehr verschiedene Rechner oder "Compiler-Farmen", die ihre Software für verschiedene Distributionen und Architekturen bauen.
- Erstellen Sie bessere Software: einige Software-Projekte verwenden immer noch 16bit-Prozesse und wundern sich, warum sich ihr Code nicht auf 32bit- oder 64bit-Plattformen kompilieren lässt.
- Automatische Auflösung von Abhängigkeiten zu anderen Paketen. Fall ein Paket von einem anderen Paket abhängt, wird automatisch ein Neubau ausgelöst, wenn das Paket, von dem es abhängt, neu gebaut wurde.
- Verknüpfung zu anderen Projekten: Patches können an den aktuellsten Paketen anderer Projekte getestet werden. Ein Beispiel: Ein Entwickler hat einen Patch für Amarok und möchte diesen in einer bestimmten Umgebung testen. Er kann eine Verknüpfung zum KDE-Projekt erstellen und dieses für seine eigenen Tests verwenden. Das Ergebnis: Seine gepatchte Version von Amarok wird jedes mal für einen Neubau vorgemerkt, sobald das KDE-Projekt einen neuen Bau auslöst.
- Bauen Sie ihre Software für mehrere Linux-Distributionen. Zur Zeit werden die folgenden Distributionen unterstützt:
- SUSE
- openSUSE 10.3
- openSUSE 10.2
- SUSE Linux 10.1
- SUSE Linux Enterprise 10
- SUSE Linux Enterprise 9
- openSUSE Factory
- Debian
- Debian Etch
- Red Hat
- Fedora 8
- Fedora 7
- Fedora 6 + Extras
- Red Hat Enterprise Linux 5
- CentOS 5
- Mandriva Linux
- Mandriva 2008
- Mandriva 2007
- Mandriva 2006
- xUbuntu
- xUbuntu 6.06
- xUbuntu 7.04
- xUbuntu 7.10
- SUSE
Für Distributoren
- Der Build Service ist in der Lage, komplette Distributionen oder angepasste Abbilder zu erstellen, welche verschiedenst verwendet werden können. Eine erste Version von KIWI kann Abbilddateien erstellen, mit welchen Sie über das Netzwerk booten können oder die Sie in XEN oder VMWARE verwenden können.
Zeitplan
Dieses Projekt verfügt über einen eigenen Zeitplan, außerdem wird ein Protokoll kleiner Neuigkeiten gepflegt und im englischen Wiki finden Sie eine Sammlung von Konzepten
für die Zukunft.
Verwendung
Der Build Service kann entweder über die Web-Schnittstelle
, über die Kommandozeilenwerkzeuge oder über jedes andere Werkzeug verwendet werden, welches die öffentliche API
ansprechen kann. Paketbauer wollen vielleicht auch die Anleitung zur Erstellung von Paketen für mehrere Distributionen und die Build-Service-Anleitung lesen.
Um sich beim Build Service anzumelden müssen Sie ihr Novell-Benutzerkonto verwenden (das gleiche wie für dieses Wiki). Weitere Informationen dazu finden Sie im entsprechenden Abschnitt in der Build-Service-Anleitung.
Einige Hinweise können auf der Seite Build Service Tipps & Tricks gefunden werden.
Google Summer of Code
Es laufen verschiedene Projekte im Rahmen des Google Summer of Code die sich mit dem openSUSE Build Service befassen:
Build Service Quellcode
SVN-Depot
Die Quellen und die Dokumentation des Build Service liegen auf forge.novell.com
. Dieses Depot enthält sowohl die Quellen für die Client-Werkzeuge als auch die des Servers.
Nutzen Sie dieses Kommando um den aktuellen Quellcode auszuchecken:
svn co https://forgesvn1.novell.com/svn/opensuse/trunk/buildservice
Pakete
Pakete befinden sich mittlerweile auch im Build Service, nur sind sie noch nicht wirklich für den Produktivbetrieb geeignet. Es muss immer noch etwas Arbeit investiert werden, bevor sie endgültig fertig sind. Die Pakte finden Sie im openSUSE:/Tools-Depot. Halten Sie dort Ausschau nach Paketen namens obs-* (openSUSE Build Server).
Mithelfen
Wie bei den meisten quelloffenen Projekten sollten Sie mit dem Schreiben von Patches oder einem Konzept von dem, was Sie machen wollen, einsteigen. Leute die gezeigt haben, dass sie funktionierenden Code beitragen, erhalten Schreibzugriff auf das SVN-Depot.
Es gab bereits Google Summer of Code-Projekte mit Fokus auf den openSUSE Build Service:
Dokumentation
- Die Build-Service-Anleitung führt Sie durch die ersten Schritte bei der Erstellung eines Projekts und von Paketen.
- Die Build Service-Installationsanleitung erklärt, wie Sie den Build Service auf einem lokalen Server aufsetzen.
- Die Tipps & Tricks erklären einige Fähigkeiten und Tricks.
- Spezifische Informationen zum Bau von .deb-Paketen.
- Die neuesten Informationen können Sie auf der Neuigkeitenseite finden.
- Wir bieten zwei englische Vorträge vom FOSDEM über den Build Service an. Der erste Vortrag gibt einen Überblick über die Idee und die Infrastruktur die hinter dem Build Service stehen. Der zweite Vortrag beshreibt das Projektmodell im Detail und erklärt, wie Sie Pakete für mehrere Distributionen bauen, einschließlich openSUSE, Fedora, Mandriva und Debian.
- Ein wichtiges Stück ist die Dokumentation über die API
. Die API ist eine einfache und allgemeine Schnittstelle um mit dem Build Server zusammenzuarbeiten. Sie können sie nutzen, um sie in ihre eigenen Werkzeuge zu integrieren, um mit diesen dann Kodeänderungen zu übertragen, den aktuellen Status ihres Projekts zu überprüfen oder um etwas ganz anderes, tolles zu machen.
- Sie mögen unsere Web-Schnittstelle oder unsere Kommandozeilenwerkzeuge nicht? Sie können sie entweder verbessern oder ihre eigenen Schnittstellen schreiben. Von beiden sind die Quellen im Forge-Depot verfügbar.
Kontakt
Schreiben Sie sich auf der opensuse-buildservice-Mailing-Liste ein (Archiv). Rückmeldungen sind willkommen, noch willkommener sind Patches, neue Werkzeuge und Ideen.
Einige von uns hängen auch im #openSUSE-buildservice-Kanal auf freeenode rum.
Sie können Fehler im Build Service über unser Bugzilla melden.
Das Build Service Team.
Build Service Clients
Die auf einer REST API basierende Architektur erlaubt es, einfach verschiedene Clients zu schreiben. Dies gibt uns die Möglichkeit die Wünsche und Voraussetzungen von verschiedenen Nutzertypen anzugehen. Die Clients können sich so schwerpunktmäßig auf verschiedene Anwendungsfälle konzentrieren.
Web-Client
Der web-basierte Klient für den openSUSE Build Service ermöglicht einen einfachen Zugriff auf alle Funktionen des Build Service und ist der leistungsfähigste grafische Klient.
Kommandozeilenwerkzeuge
Zur Zeit gibt es zwei Kommandozweilenwerkzeuge für den Build Service. Beide werden hier beschrieben:
Wenn Sie ein Build-Service-Entwickler sind interessieren Sie sich vielleicht auch noch dafür, wie Sie die Build Service REST API direkt via curl verwenden.
KDE Rich Client
Es existiert ein Projekt im Rahmen des Google Summer of Code, welches es sich zum Ziel gesetzt hat, einen umfangreichen Client für KDE zu entwickeln. Weitere Informationen dazu erhalten Sie hier.
Yet Another Build Service Client
Yabsc ist ein PyQt4-Klient für den Buid Service, der zur Zeit nur das Anzeigen von Informationen unterstützt.

