Build Service
Aus openSUSE
Der openSUSE Build Service ist eine offene und vollständige Plattform zur Entwicklung von Distributionen, welche die Infrastruktur zur Entwicklung der kommenden openSUSE-basierten Distributionen bereitstellt.
Der Dienst versorgt Software-Entwickler mit einem Werkzeug, mit dem sie quelloffene Software für openSUSE und andere Linux-Distributionen einfach für verschiedene Hardware-Architekturen und eine große Nutzerschaft erstellen und veröffentlichen können. Nutzer können die von ihnen gesuchten Open Source-Pakete in aktuellen Versionen finden und sie nutzen. Der Dienst bietet eine Brücke zwischen Entwicklern und Nutzern mit Funktionen zur Rückmeldung und Bewertung. Für Entwickler ist er durch sein Projektmodell ein effizienter Ort, um Gruppen zu bilden und um zusammenzuarbeiten.
Kategorie Build Service
Inhaltsverzeichnis |
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. Falls 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.
Für Entwickler eingebetteter Systeme
- Bauen Sie ihre Software für andere Prozessorplattformen.
Die plattformübergreifende Entwicklung mit qemu wird vom aktuellen OBS-Code unterstützt. Auch Unterstützung für ARM hat bereits in den öffentlichen OBS Einzug gehalten. Die Nutzung der lokalen Baufunktion über osc/build wird ebenfalls voll unterstützt. Technische Informationen dazu erhalten Sie im Cross Development Concept and Example
. Für die QEMU-Nutzung ist VFPv3 bis zu ARMv7 EABI in einem nutzbaren Stadium. Im Planer für arm gibt es drei Klassen: armv4l, armv5el und armv7el.
Für die powerpc-Architektur wird ein zweiter Ansatz genutzt. PowerPC ist eine gut unterstützte Server-Architektur und der OBS unterstützt auch die Nutzung nativer lokaler Bauten und auch Worker Build auf PowerPC-Maschinen. Aus Sicherheitsgründen sind die PowerPC Worker im öffentlichen OBS noch nicht für die allgemeine Nutzung verfügbar. Der OBS-Zeitplan enthält weitere Details dazu, was noch fehlt und wann es verfügbar sein wird. Davon abgesehen kann PowerPC nun in privaten OBS-Installationen genutzt werden, wenn Sie Linux für die OBS Worker oder den lokalen Bauprozess (chrooted OBW Worker, lokale Bauten) auf einer PowerPC-Maschine laufen haben.
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.
Eine Liste vorgeschlagener Funktionen
finden Sie in openFATE.
Verwendung
Die Build-Service-Dokumentation
ist online verfügbar und zur Zeit noch in Bearbeitung. Die DocBook-Quelle der Anleitung ist via SVN verfügbar (siehe unten) und Patches sind willkommen.
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 gibt ein paar Vorschläge für den Summer of Code 2009, die sich mit dem Build Service befassen. Schauen Sie sich dazu die Build Service-Ideen
auf der GSoC-Seite an.
Projekte aus den Vorjahren:
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 auf dem Bauserver. Die Pakete finden Sie im Paketdepot openSUSE:/Tools. Schauen Sie 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 gibt einige kleinere Projekte, die einen guten Einstieg in den Code und das Entwicklerteam bieten.
Dokumentation
- Die Build-Service-Anleitung führt Sie durch die ersten Schritte bei der Erstellung eines Projekts und von Paketen.
- Es gibt ein vom Lessons-for-Lizards-Projekt
initiiertes Buchprojekt über den Build Service.
- 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.
- Überblickpräsentation über den Bau von Appliances und Produkten mit dem OBS.
- 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-Mailingliste 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-Klienten
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
Der Kommandozeilenklient "osc" bietet Zugriff auf alle Funktionen des Build Service und ist die kompletteste Kommandozeilenschnittstelle.
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.
Grafische Nutzerschnittstelle (GUI) und Rahmenwerk
MonoOSC ist ein neues Projekt um 100%-igen C#-Zugriff auf die API zu haben, mehr darüber finden Sie hier (Entwicklung im Gange): http://sourceforge.net/projects/monoosc/
PoweredBy-Nutzer
Build Service/PoweredBy
- Liste von Menschen, die eine lokale Version des openSUSE Build Service laufen haben. Fügen Sie sich selbst oder ihre Firma hinzu, wenn Sie eine lokale Version vom openSUSE Build Service laufen haben.
Modell der Projektzusammenarbeit
Build Service/Zusammenarbeit - Der Build Service bietet verschiedene Wege zur Zusammenarbeit an, die hier aufgeführt werden.

