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.

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

openSUSE Build Service Web-Schnittstelle 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.

Für Entwickler eingebetteter Systeme

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


openSUSE Build Service Web-Schnittstelle für Entwickler

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.
  • 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-Projektlogo von Robert Lihm <rlihm@suse.de> 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.