control Datei waehrend des Paketbaus veraendern

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
xeeleeuniversum
Beiträge: 8
Registriert: 18.08.2004 13:44:36

control Datei waehrend des Paketbaus veraendern

Beitrag von xeeleeuniversum » 04.07.2005 20:17:46

Hi,

ich hab da eine etwas schwierigere Frage bezueglich des build Prozesses beim Paketbau.

Ich will ein Paket bauen, das von der Kernel-Version abhaengt. und dies soll auch im Paketnamen zu erkennen sein. ZZ mache ich das etwas dirty indem ich in der control datei an den betreffenden Stellen Marker wie zB @@ARCH@@ reingeschrieben hab. und waehrend des configure Prozesses die entsprechenden Stellen mit sed -i "s/@@ARCH@@/das soll wirklich rein/g" editiere.

Meine Frage, ist das ok oder doch nur Pfusch? Ich hab auch schon versucht es mit variablen Substutution zu machen, wie es in der Debian Policy angeschnitten wird, aber so recht schlau bin ich da nicht draus geworden.

Danke schonmal fuer die Antwort. :)

cu alex

Benutzeravatar
godsmacker
Beiträge: 902
Registriert: 16.03.2003 21:50:26
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von godsmacker » 05.07.2005 00:50:07

Schau Dir mal debhelper tools wie dh_perl an. Diese verwenden Debian::Debhelper::Dh_Lib um Funktionen wie addsubstvar() und delsubstvar() zu importieren. Diese aendern debian/$package.substvars so ab, dass beim ausfuehren eines weitern debhelper Skripts diese Werte dann im control file ersetzt werden. So funktionieren Sachen wie ${perl:Depends}, ${Source-Version} oder ${misc:Depends} und andere.

Gruesse,
Flo

xeeleeuniversum
Beiträge: 8
Registriert: 18.08.2004 13:44:36

Beitrag von xeeleeuniversum » 07.07.2005 02:55:06

Hi,

danke fuer die Hilfe. :) Allerdings habe ich jetzt ein neues Problem, nachdem ich meine rules Datei soweit geaendert habe, das der Paketname und ein Feld in der Descriptions gesetzt wird, bricht mir dpkg-genchanges ab wenn ich das Paket, ganz nach Anleitung, mit dpkg-buildpackage -r fakeroot baue ab.

Ausschnitt Bildschirm:

Code: Alles auswählen

dh_link
dh_strip
dh_compress
dh_fixperms
dh_installdeb
dh_shlibdeps
dh_gencontrol -- -DPackage=sge6-core-26 -VXARCH=2.6
dpkg-gencontrol: warning: unknown substitution variable ${shlibs:Depends}
dh_md5sums
dh_builddeb -v
        dpkg-deb --build debian/sge6-core ..
dpkg-deb: building package `sge6-core-26' in `../sge6-core-26_6.0u4-1_i386.deb'.
 signfile sge6-core_6.0u4-1.dsc

You need a passphrase to unlock the secret key for
user: "Hans Wurst <irgendwer@localhost>"
1024-bit DSA key, ID xxxxxxxxxx, created 2545-12-11

                  
 dpkg-genchanges
dpkg-genchanges: including full source code in upload

dpkg-genchanges: failure: cannot open upload file ../sge6-core_6.0u4-1_i386.deb for reading: No such file or directory
an und fuer sich hoert sich die Fehlermeldung logisch an, da er eben genau das Paket nicht finden kann, da ich es ja vorher in der rules umbenannt habe.

Ausschnitt rules:

Code: Alles auswählen

        dh_installdeb 
        dh_shlibdeps 
        dh_gencontrol -- -DPackage=$(PACKAGE) -VXARCH=$(XARCH) 
        dh_md5sums 
        dh_builddeb -v

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure
Die Variablen werden richtig gesetzt, daran liegt es sicher nicht... :(

wenn ich nun dem dh_builddeb diese Parameter ebenfalls mitgebe, passiert dies:

Code: Alles auswählen

dh_installdeb
dh_shlibdeps
dh_gencontrol -- -DPackage=sge6-core-26 -VXARCH=2.6
dpkg-gencontrol: warning: unknown substitution variable ${shlibs:Depends}
dh_md5sums
dh_builddeb -v -- -DPackage=sge6-core-26 -VXARCH=2.6
        dpkg-deb -DPackage=sge6-core-26 -VXARCH=2.6 --build debian/sge6-core ..
dpkg-deb: unknown option -P

Type dpkg-deb --help for help about manipulating *.deb files;
Type dpkg --help for help about installing and deinstalling packages.
dh_builddeb: command returned error code 512
make: *** [binary-arch] Error 1
Gibt es denn die Moeglichkeit, ihm zu sagen, das das Paket jetzt anders heisst und er woanders suchen soll? Oder muss ich das dh_builddeb auseinander fummeln und in die rules reinschreiben?

danke fuer die vorherige Antwort!

cu alex :)

xeeleeuniversum
Beiträge: 8
Registriert: 18.08.2004 13:44:36

Beitrag von xeeleeuniversum » 07.07.2005 03:12:15

Sorry,

http://lists.debian.org/debian-dpkg/200 ... 00082.html
hat mich auf die richtige Idee gebracht. :)

So funktionierts auch. :)

danke, Alex[/url]

Antworten