Updates für Cobbler
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:
- Redhat basierte Distros: Die Open Build Service Source Services waren nicht verfügbar.
- 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.
- 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