Hallo Steffen!
Da bis jetzt noch keiner geantwortet hat, geb ich mal meinen Senf dazu. Bin zwar noch kein offizieller Debian Developer, aber sechs Pakete sind ja trotzdem schon von mir.
Am 2003-07-16 14:09 +0200 schrieb Steffen Schwigon:
Baut hier einer Debianpakete?
s. o.
Mich interessiert, ob ich es "richtig" mache.
Wenn lintian das Paket ohne meckern durchgehen lässt, dann kann es nicht völlig falsch sein. Der Rest ist nur eine Frage des Aufwandes.
Und zwar gibt es im Netz Anleitungen, wie man mit den dh_*-Tools aus einem Verzeichnisbaum ein Debianpaket macht. Dabei werden bereits die Pfadnamen genutzt, um Versionsinfos zu ermitteln. Die Anleitungen sind aber irgendwie nicht für regelmäßige, automatisch ablaufende Erzeugung gedacht.
dh_make ist eigentlich für regelmäßiges, automatisches Bauen nicht unbedingt gedacht, sondern eher als Hilfe für diejenigen, die das allererste Mal ein Paket bauen. Am Anfang fand ich es auch sehr nützlich, mittlerweile benutze ich es nicht mehr, sondern schreibe das debian/-Verzeichnis selbst (natürlich auch mit copy&paste).
Ich habe CVS-verwaltete Projekte, deren Programmkomponenten ich mittels Automake kompiliere/installiere. Die Versionsnummer ist Teil des configure-Skripts, aber nicht in irgendwelchen Pfadnamen. Und ich [...]
Der Automatismus läuft jetzt wie folgt: ich nutze "make dist" von Automake, um mir ein .tgz-File zu erzeugen, welches Versionsnummern in Pfaden enthält. Dieses entpacke ich wiederum in einem temporären Subdir, rufe "dh_make" auf, kopiere die anfänglich aufgehobenen Dateien (control, conffiles,rules) drüber und mache dann ein "dpkg-buildpackage".
Das klingt eigentlich recht kompliziert. Ein Debian-Quellpaket besteht ja (vom dsc mal abgesehen) aus orig.tar.gz und diff.gz. Ersteres bekommst Du ja offensichtlich schon geliefert und das diff.gz sollte nach der reinen Lehre eigentlich nur das Verzeichnis debian/ hinzufügen und den Originalquellcode nicht anfassen (höchstens mit patches, die innerhalb von debian/ liegen). AFAICS ist also das einzige, was Du in debian/ ändern musst, die Versionsnummer im changelog (der jeweils oberste Eintrag bestimmt die Versionsnummer des gebauten debs). Vielleicht könntest Du in das Makefile, was Dir das orig.tar.gz erzeugt, noch einen kleinen sed- (oder besser noch ed)-Befehl reinschreiben, der im changelog einen neuen Eintrag erzeugt.
- es geht automatisch
Das würde dann immer noch gehen.
- es wird implizit mein "make dist" und "make install" überprüft, d.h. die erzeugten .tgz-files sind auch einzeln distributierbar und funktionieren.
Das orig.tar.gz ist ja prinzipiell nichts anderes als das Originalpaket.
Aber:
- es wird mehrmals ein- und ausgepackt nämlich erst ein .tgz erzeugt, nur um es sofort wieder zu entpacken.
Das wäre dann nicht mehr der Fall. Aber um ein .deb draus zu machen, musst Du es schon wenigstens entpacken, sonst kann man es ja nicht compilieren. Aber wenigstens wird es nicht nochmal neu gepackt.
-> Und falls einer schonmal Perl-Modul-Installationen innerhalb von ansonsten Automake-verwalteten Projekten durchgeführt hat,
Nee, sorry!
Ich hoffe, dass ich das Problem halbwegs verstanden habe, es ist schon recht spät ;-)
Gute Nacht!
Pitti