buildrpm - Ein Wrapper für rpmbuild

buildrpm ist ein Shellscript, dass im Grunde nichts weiteres macht, als rpmbuild auf ein SPEC-File loszulassen. Es prüft vorher aber, ob alle benötigten Abhängigkeiten (eingetragen als “BuildRequires” im Spec) installiert sind und fragt nötigenfalls nach dem root-Passwort, um fehlende über yum nachzuinstallieren. Ausserdem wird die benötigte Zeit zum bauen des RPMs berechnet (ohne jedesmal ein time voranzustellen).

Die Features als Liste:

  • automatischer Download des Sourcefiles
  • Installation fehlender Abhängigkeiten über yum (bei Abfrage des root-Passwortes)
  • Möglichkeit, die Installation der Abhängigkeiten zu automatisieren (über sudo)
  • Überprüfung, ob alle Sourcen und Patches im richtigen Verzeichnis liegen
  • “grafische Ausgabe” der Befehle möglich
  • Darstellung der benötigten Bauzeit
  • Überprüfung des RPMs mit rpmlint
  • Ausführung eines Befehls, wenn das Bauen erfolgreich war (z.B. ein beepen des Speakers)
  • Mehrfachauswahl an SPEC-Files, die dann nacheinander gebaut werden (Wildcard * auch möglich)
  • Funktioniert auch unter CentOS

Wo es noch hackt:

  • bei der Erkennung der angegebenen Abhängigkeiten
  • Wenn “Name” und “Version” nicht direkt angegeben sind, bricht es ab (also bei %define name ..)
  • Fehlermeldungen manchmal unvollständig oder nicht vorhanden
  • bei meinem Englisch

Installation:

  1. Download und entpacken des Tarballs
  2. Nach /usr/local/bin kopieren und gegebenfalls ausführbar machen
  3. Aufruf von “buildrpm –check” für das Erstellen der Configdatei ~/.buildrpm.conf
  4. Gegebenfalls Anpassung der Variable RPMBUILDTREE in der Configdatei (wenn das Topdir nicht ~/rpmbuild ist)
  5. buildrpm foo.spec

Das ganze ist als kleine Übung zum Lernen des Bash-Scriptings gedacht. Fehler können dabei durchaus vorkommen.

Aktuelle Version: 0.3.2