Vergleich: OpenSuse Build Service vs. Launchpad PPA

Vor kurzem hat Launchpad seinen PPA Service öffentlich zugänglich gemacht und gestern veröffentlichte Novell auch den Quellcode seines OpenSuse Build Services.

Launchpads PPA verspricht das automatisierte bauen von Ubuntu konformen Paketen für jedes Release sowie ein automatisch verwaltetes Ubuntu Repository was sich ganz einfach zu der sources.list hinzufügen lässt.
Der OpenSuse Build Service existiert schon etwas länger und bietet zu der Erstellung von OpenSuse Paketen noch Build auf diversen anderen Plattformen an. Dazu gehören Fedora, Ubuntu & weitere.

Ich habe beide Services zum bauen von Ubuntu 7.10 Paketen getestet und habe folgendes bemerkt:

1. Upload
PPA: Verwendet dput zum Upload, ziemlich komfortabel und kann in Skripten benutzt werden um Upload zu automatisieren
OpenSuse: Upload über HTML-Formular, um schnell mal was hochzuladen von irgendeinem Rechner ohne dput praktisch. Alternativ gibt es das Tool „osc“ was ähnliches bietet wie dput.

2. Zeit bis Build beginnt
PPA: Es dauert erst einmal ca. 5-10 Minuten bis der Upload akzeptiert wird und in der Build-Online-Liste auftaucht. Der Build beginnt je nach Auslastung der Server nach 5-40 Minuten. Meist dauert es bei mir vom Upload an ca. 30 Minuten bis der Build beginnt. Nachdem dieser fertig gestellt wurde dauert es nochmal ca. 10 Minuten bis das deb-Paket im Repository einzusehen ist. Also alles in allem ca. 40 Minuten!
OpenSuse: Nach dem Upload wird sofort versucht den Build zu starten. Bei bisherigen Versuchen war immer ein Server frei oder der Service erlaubt einfach mehrere Builds gleichzeitig (Bei PPA nur 1 Build pro (virtuellen) Server). Außerdem kann man Live einen Konsolenmitschnitt betrachten.

3. Build System
PPA: Das System scheint im Grunde ein minimales Ubuntu zu sein was ungefähr dem entspricht was man mit einem neuen pbuilder environment mit den Ubuntu Paketquellen bekommt. Die lokalen Tests z.B. mit pbuilder entprechen also ziemlich genau dem Ergebnis, welches man mit dem PPA Service erreicht. Ich habe erst einmal ein Problem gehabt, als ich das Paket „eject“ nicht zu den Build Dependencys hinzugefügt hab. Gut ist außerdem, dass als Paketquellen neben main auch universe, multiverse und die eigene PPA Quelle zur Verfügung stehen.
OpenSuse: Das System scheint eine selbst zusammen gemixte Mischung zu sein. Es fehlen manchmal Abhängigkeiten, die man mit einem normalen Ubuntu-Minimal pbuilder Environment nicht bemerkt hat. Wenigstens kann man schnell hintereinander neue Builds testen aber ein Paket was PPA ohne Mühe erstellt funktioniert eher nicht beim OpenSuse Service. Ich vermute mal das gilt nicht für die Erstellung von OpenSuse RPM Paketen. Zu beachten ist, dass der Ubuntu Umgebung Pakete in den Bereichen universe und multiverse nicht zur Verfügung stehen!

4. Verwalten des Repositorys
PPA: Man kann nur hochladen und alte Versionen werden automatisch mit neuen ersetzt. Die alten Versionen werden noch einige Zeit angeboten und dann automatisch gelöscht. Ein Paket kann man aber nicht komplett entfernen, umbenennen, ausblenden oder ähnliches. Die Quellpakete sind alle mit einem „deb-src“ Eintrag abrufbar und so können andere mit „apt-get source“ die eigenen Quellpakete herunterladen und anpassen.
OpenSuse: Man kann alle Pakete löschen, verändern etc. ziemlich komfortabel über die Online GUI. Dies ist auch für den PPA Service geplant, ich hoffe das ist bald möglich. Leider sind in dem Repository was für den „Endverbraucher“ gedacht ist keine Quellpakete enthalten so können dritte nicht nachvollziehen wie die angebotenen Pakete entstanden sind.

Fazit: Der OpenSuse Build Service ist bereits um einiges ausgereifter und ist ja auch schon länger verfügbar. Leider scheint die Ubuntu Unterstützung noch nicht ganz so vollständig zu sein und ich vermute das ändert die Öffnung des Quellcodes auch nicht da ich nicht glaube das irgendjemand privates mal eben so viel Ressourcen für einen öffentlichen Build Service bereit stellen kann. Aber vielleicht gibt es Entwickler die diesen Bereich verbessern und Patches an OpenSuse senden. Als großes Manko gilt für mich, dass die universe und multiverse Pakete nicht beim Build zur Verfügung stehen. Weiterhin kann man beim PPA Service auf bekannte Debian Tools wie dput zurückgreifen wärenddessen man sich beim OpenSuse Service neue Wege erarbeiten muss.

Der PPA Service funktioniert mit den vorhandenen Funktionen wie gewünscht ist nur im Moment (noch?) etwas langsam. Hoffentlich bringt Canoncial demnächst Verbesserungen die ich als Launchpad Beta Tester hoffentlich schnell verwenden kann.

  • deadtronic

    Interessanter Artikel. Allerdings warte ich nun schon seit ca. 2 Stunden auf das bauen eines Pakets im PPA, da tut sich nichts. Die Auslastung scheint deutlich gestiegen zu sein.