Build Service

aus openSUSE, der freien Wissensdatenbank

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

openSUSE Build Service Web-Schnittstelle für Entwickler
vergrößern
openSUSE Build Service Web-Schnittstelle für Entwickler


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

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.
  • 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.