Table of Contents
pkgmake
Was ist pkgmake?
pkgmake erstellt RPM .spec Dateien und baut aus diesen und dem zugehörigen Programm-Code die entsprechenden *.rpm/*.deb Pakete.
Detailliertere Beschreibung
Als Software-Entwickler kommt man hin und wieder an den Punkt, wo eine neue Version veröffentlicht werden soll. Bei den meisten meiner Programme bedeutet dies die immer gleichen Routineaufgaben:
- Eine Kopie des Codes erstellen, z.B.
cp -pr /usr/src/prog /tmp/prog-0.1.2 - Diese Kopie "aufräumen" - z.B. alle existierenden CVS/* und/oder .svn/* Dateien entfernen
- Einen tarball dieser Kopie erstellen (und die Kopie anschließend wieder entfernen)
- Den erstellten Tarball in das SOURCES/ Verzeichnis der Build Umgebung verschieben
- Die .spec Datei anpassen
- rpmbuild und/oder debbuild mit den entsprechenden Parametern starten
Daher schrieb ich pkgmake, um diese Schritte zu automatisieren. Also macht es im Prinzip genau das, was ich gerade beschrieben habe:
- Erstellen einer Kopie (siehe auch zum Kommandozeilen-Parameter -d)
- Bereinigen der Kopie
- Tarball im SOURCES/ Verzeichnis erstellen
- Das benötigte .spec anhand eines Templates (siehe Kommadozeilen-Parameter -t) und den weiteren, an der Kommandozeile übergebenen Parametern (siehe Syntax) erstellen, und rpmbuild/debbuild, je nach Konfiguration, aufrufen
Das sieht doch schon verdächtig nach einem kompletten Build-Prozess aus? Naja, fast. Bei größeren Änderungen im Projekt muss doch hin und wieder mit der %files Sektion der .spec Datei experimentiert werden - sofern der Code nicht von vorn herein die letztendliche Position der Dateien im Dateisystem wiederspiegelt (in welchem Fall dann einfach der Platzhalter __DIR__ in der .spec Template-Datei verwendet werden kann - siehe man pkgmake.tpl).
Weiterführende Links
- [Download pkgmake ChangeLog und Download]
- Freshmeat Projektseite
- relman - ein Frontend für pkgmake, welches dessen Features auch noch um die Distribution der Software erweitert
- IzzySoft Release Framework - Dokumentiert die einzelnen Bestandteile des IzzySoft Release Framework detailliert
