Paketbau mit dem openSUSE Buildservice

Jeder Open-Source-Entwickler möchte seine Software so weit wie möglich verbreiten. Dazu braucht er viele Anwender. Nun sollte man als Entwickler dem Anwender die Installation der eigenen Software so einfach wie möglich machen. Dazu bieten sich die distributionseigenen Paketsystem geradezu an. Nun ist es möglich, für jedes Zielsystem eine eigene virtuelle Maschine aufzusetzen und dort die jeweiligen Pakete zu bauen. Jedoch ist der Aufwand sehr hoch und auch unnötig. Es geht auch einfacher.

Der openSUSE Buildserver ist schon seit geraumer Zeit im Netz verfügbar. Jedoch habe ich bisher noch keine nähere Bekanntschaft mit der Buildumgebung gemacht. Bis heute. Endlich habe ich es geschafft für die nächste QSvn-Version den Bau von RPM-Paketen vorzubereiten.

Der openSUSE Buildservice organisiert seine Builds in Projekten und Paketen. Dabei kann jedes Projekt mehrere Pakete beinhalten. Jedes Paket baut ein RPM. Soweit die einfachste Struktur. Da das openSUSE Projekt den Buildservice auch zum Erstellen der eigenen Distribution nutzt, gibt es eine sehr große und ordentlich sortierte Liste öffentlicher Projekte.

Um eigene Pakete bauen lassen zu können, benötigt man als erstes einen Novell Login. Mit diesem kann man sich dann am Buildservice anmelden. Nach der Anmeldung hat man Zugriff auf das eigene Homeprojekt. In diesem kann man nun nach Belieben weitere Unterprojekte anlegen und Pakete hinzufügen.

Für die Entwicklung der nächsten QSvn-Version habe ich mir als erstes ein Development Projekt samt qsvn-Paket angelegt. Als nächstes musste ich die aktuellen Quellen als -src.tar.gz Paket hochladen. Anschließend braucht der Buildserver noch eine .spec Datei mit Angaben zum RPM-Paket. Wie so eine spec-Datei auszusehen hat, kann man in den SUSE Package Conventions nachlesen.

Nachdem die Quellen und das spec-File hochgeladen sind, bleibt nur noch die gewünschten Build Repositories für die verschiedenen Distributionen zum Projekt hinzuzufügen. Dabei stehen derzeit mehrere Versionen von SUSE, Fedora, Red Hat, CentOS und Mandriva zur Auswahl. Sind die gewünschten Repositories hinzugefügt, werden die Builds in eine riesige Warteliste eingefügt und sobald möglich gebaut.

Zum Bauen der einzelnen Pakete startet der Buildservice jeweils eine sauber, mit XEN virtualisierte Distribution. Danach werden die benötigten Pakete installiert und der Compilier- und Packvorgang gestartet. Somit ist sichergestellt, dass jedes Paket in einer sauberen Umgebung erstellt wird. Ohne Störeinflüsse von dritten ausgesetzt zu sein. Perfekt.

Die erstellten Pakete landen nach erfolgreichem Bauen in Paketrepositories und können von dort über die Softwaresuche ganz bequem auf den Rechnern der Anwender installiert werden. Und wer weiß, vielleicht landet somit das eigene Programm irgendwann in einer der offiziellen Distribution. 🙂

Ich finde den frei verfügbaren Service, den Novell dort aufgebaut hat, hervorragend. Zum Einen bringt es enorme Vorteile und Erleichterungen für den einzelnen Entwickler und zum Anderen haben Anwender eine zentrale Anlaufstelle zum Installieren von Software. Übrigens kann der Buildservice auch DEB-Pakete für Debian und xUbuntu erstellen.

Paketbau mit dem openSUSE Buildservice
Markiert in:                            

Kommentar verfassen