minibuild – mein kleines Build-Script

Wie der eine oder andere vielleicht mitbekommen hat, baue ich seit einiger Zeit selber rpm-Pakete und veröffentliche diese auf COPR.

Da das Bauen der Pakete aus einigen Arbeitsschritten besteht, die sich zum Glück relativ einfach automatisieren lassen, habe ich kurz nachdem ich angefangen habe, Pakete zu bauen, mir ein kleines Shellscript geschrieben, das die notwendigen Schritte automatisiert. Inzwischen ist dieses Script knapp 550 Zeilen lang, GPL lizenziert und auf GitHub veröffentlicht.

Das Script ist mittlerweile so mächtig geworden, das es den kompletten Build-Prozess, bestehend aus

  • dem Download der Quelltexte von der Projektseite,
  • dem Erzeugen der src.rpm Pakete,
  • dem Durchführen eines lokalen Testbuilds mit mock,
  • dem anschließenden Validieren der Pakete (Binary und src.rpm) sowie des Spec-Files mittels rpmlint,
  • dem Upload des src.rpm Paketes auf einen FTP-Space sowie
  • dem Start des finalen COPR-Builds

vollständig automatisiert. Das Script ist ferner in der Lage, in begrenztem Umfang Platzhalter in der Quelltext-URL aufzulösen und die korrekte URL zu erzeugen.

Gesteuert wird das Script hauptsächlich durch 3 Konfigurationsdateien:

  • chroots.conf: Hier werden die zu verwendenden chroots eines Projektes eingetragen, sofern ein Projekt nicht für alle chroots eines COPRs gebaut werden soll.
  • coprs.conf: Hier werden den Projekten (Name des Spec-Files) die COPRs zugeordnet, sofern der Projektname nicht dem Namen des COPRs entspricht.
  • ftp.conf: Hier werden die URL des FTP-Space, der Pfad innerhalb des FTP-Space sowie die notwendigen Zugangsdaten eingetragen.

Ich würde mich freuen, wenn mein Script auch anderen Paket-Maintainern helfen kann, ihnen Arbeit beim Bauen ihrer Pakete abzunehmen. Genau so sehr freue ich mich über Verbesserungsvorschläge, Anregungen und konstruktive Kritik.