Cross-Platform Packages Build

Die letzten Tage durfte ich auf der Arbeit Cobbler updaten auf die neue Cross-Distro Specfile. Dabei bin ich auf einige Probleme gestoße die ich dabei gelöst habe. Da die Doku hierfür tatsächlich nur schwer zu finden ist und auch meine Kollegen geholfen habe, möchte ich die Infos hier mal für andere und mich selbst zusammen fassen.

Mein Testprojekt/Package mit dem ich gearbeitet habe: https://build.opensuse.org/package/show/home:SchoolGuy/cobbler-test

Im Grunde sah am Anfang alles komplett kaputt aus, allerdings habe ich es dank Hilfe meiner Kollegen auf drei Probleme herunterbrechen können:

  1. Redhat basierte Distros: Die Open Build Service Source Services waren nicht verfügbar.
  2. Redhat basierte Distros: Es gab für python3-sphinx für die Auflösung der Abhängigkeiten mehrere Varianten, dies führt zu einem Abbruch.
  3. Deb basierte Distros: Bauten gar nicht, weil sie damit gerechnet haben über die dsc Dateien gebaut zu werden.

Open Build Service Source Services nicht verfügbar

  • Package Directory wechseln
  • osc meta prj -e
  • Den path mit openSUSE:Tools hinzufügen
  • Speichern

Paket-XYZ: Für die Auflösung der Abhängigkeiten gibt es mehrere Varianten

Fedora: Wahl zwischen zwei Paketen: In der Projekt config ein prefer

  • Package Directory wechseln
  • osc meta prjconf -e
  • Eintragen: "Prefer: python3-sphinx:environment-modules"
  • Speichern

Paket baut nicht: "Die Projektkonfiguration hat den Bau ausgeschlossen"

  • Package Directory wechseln
  • osc meta prj -e
  • Den path mit debbuild hinzufügen
  • Speichern

Nützliches

Sofern man sich die Infos ansehen möchte die der Buildservice sich für den Bau des Paketes überlegt hat, so kann man sich diese ausgeben lassen mit:

osc -A api.opensuse.org buildinfo Fedora_30

Möchte man dies debuggen, weil bspw ein Fehler auftritt, so kann dies geschehen mithilfe von:

osc -A api.opensuse.org buildinfo -d Fedora_30 | less

Allgmein ein guter Guide für den Einstieg ist: https://en.opensuse.org/openSUSE:Build_Service_cross_distribution_howto

Ansonsten viel Geduld und Gefühl mitbringen. Nicht jeder Fehler zeigt direkt was der eigentliche Fehler ist, manchmal können auch Warnungen den eigentlichen Fehler provozieren und mit dem fixen der Warning verschwindet auch der Fehler.

Comments

No Comments

Write comment

* These fields are required