Univention Bugzilla – Bug 21476
Verwendung von debhelper
Last modified: 2011-12-13 15:50:53 CET
Wir sollten in den UCS Paketen ab UCS 3.0 cdbs verwenden. Ich denke das erleichtert das Erstellen von Univention Paketen deutlich. Im Idealfall importieren wir eine cdbs-Datei und dort werden die notwendigen Tools aufgerufen, bspw.: kdeutils-4.4.5/debian/rules #!/usr/bin/make -f DEB_CMAKE_CUSTOM_FLAGS += -DINSTALL_PRINTER_APPLET:BOOL=TRUE include /usr/share/pkg-kde-tools/qt-kde-team/1/debian-qt-kde.mk binary-install/printer-applet:: dh_pysupport -pprinter-applet
cdbs ist wenn es Probleme gibt oder man Abweichungen vom Standard hat aufwendig zu debuggen. Für die UCS-Pakete wäre es IMO sinnvoller bei debhelper zu bleiben und stattdessen die dh-Erweiterung einzusetzen, dazu haben wir auch schon einen Bug: https://forge.univention.org/bugzilla3/show_bug.cgi?id=17975
(In reply to comment #1) > cdbs ist wenn es Probleme gibt oder man Abweichungen vom Standard hat aufwendig > zu debuggen. +1 > Für die UCS-Pakete wäre es IMO sinnvoller bei debhelper zu bleiben und > stattdessen die dh-Erweiterung einzusetzen, dazu haben wir auch schon einen > Bug #17975 Statt cdbs sollte dann eher das neue d(eb)h(elper) [78] <http://kitenet.net/~joey/code/debhelper/> verwenden, was ähnlich einfache Makefiles ermöglicht und auch gut erweitert werden kann. debian/rules: #!/usr/bin/make -f %:; dh $@
OK, gerne auch die neueren debhelper Optionen. Im SVN gibt es jetzt ein Beispiel-Paket: dev/branches/ucs-3.0/ucs/packaging/univention-package-template Die rules-Datei: #!/usr/bin/make -f override_dh_auto_install: univention-install-config-registry dh_auto_install # make ucslint happy # 76univention-package-template.inst univention-install-config-registry-info override_dh_auto_build: ucslint dh_auto_build %: dh $@
univention-config-registry-dev sollte nach Möglichkeit dann noch folgende Debhelper-Erweiterung in <file:/usr/lib/perl5/Debian/Debhelper/Sequence/univention_config_registry.pm> mitliefert, damit man sich den expliziten Aufruf der u-i-* Tools sparen kann: #!/usr/bin/perl # debhelper sequence file for univention specific extensions use warnings; use strict; use Debian::Debhelper::Dh_Lib; insert_before("dh_link", "univention-install-config-registry"); insert_before("dh_link", "univention-install-config-registry-info"); insert_before("dh_link", "univention-install-service-info"); 1 Dann reicht folgende debian/rules-Datei: #!/usr/bin/make -f %: dh --with univention-config-registry $* Bitte davor unbedingt Bug #18924 und Bug #16644 Comment 3 beachten.
Created attachment 3025 [details] Angepasstes test-pkg Folgendes Fehlverhalten von "test-pkg" ist mir gerade mit einem debhlper7 Projekt aufgefallen: DH_VERBOSE=1 test-pkg -h xen5 dh --with python-central,univention-config-registry binary tar: Anlegen eines leeren Archivs wird feige verweigert. „tar --help“ oder „tar --usage“ gibt weitere Informationen. tar: Das sieht nicht wie ein „tar“-Archiv aus. tar: Fehler beim Beenden, verursacht durch vorhergehende Fehler. dh hat hier erkannt, das nichts zu tun ist (das Projekt hatte ich gerade schon mal lokal gebaut und es gab keine Änderungen). text-pkg ist hier aber auf die Ausgabe von dem alten debian/rules angewiesen, weil es daraus die Namen der Debian Paket Dateien extrahiert, um diese auf den Zielhost zu kopieren. Das müsste dann auch bis dahin korrigiert werden, kann aber auch schon jetzt unabhängig davon gefixt werden. (test-pkg sollte einfach ./debian/files auswerten, da stehen nach einem Build alle Pakete drin)
Die Pakete werden über eigene Bugs übernommen. Changelog bzgl. debhelper und neuen Template Paketen wurde hinzugefügt.
Die dh-Templates funktionieren und wurden für 3.0 für die Paketübernahme eingesetzt. Ich habe den Changelog-Eintrag noch ergänzt, so dass auch dh erwähnt wird (Revision 1072) Zur Aktualisierung der Entwickler-Dokumentation habe ich Bug 23822 angelegt.
UCS 3.0-0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"