Skip to content

DPotW: cdbs

Eine durchaus umstrittene Debian-Package ist cdbs, das Common Debian Build System, was die Erstellung von Packages deutlich erleichtert.

Wenn man sich die Debian-Policy genauer anguckt, sieht man, wie hoch die Anforderungen an das main package building script,debian/rules, sind. Selbst das debian/rules aus hello-debhelper ist über 50 Zeilen lang. Das ist nicht nur bei der Erstellung viel Arbeit, sondern sorgt bei Änderungen an der Debian-Policy für graue Haare, weil man als Maintainer die Änderungen manuell in jeder Package nachziehen muss.

cdbs erleichtert dies erheblich. Die Package enthält eine Sammlung von make-Include-Files, die für "normale" Packages die debian/rules-Datei zusammenschnurren lassen.

Für eine Package, die sich straghtforward mit dem üblichen "Dreikampf" configure; make; make installdebian/rules mit cdbs nur noch aus drei Zeilen:


#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/autotools.mk

Der Vorteil an der Geschichte ist, dass bei Policy-Änderungen keine lokale Arbeit notwendig ist. Der Nachteil an der Geschichte ist, dass man nicht mehr so detailliert eingreifen kann, wie man es manchmal will. Man kann zwar an vielen Stellen mit Variablen in den Bau der Package eingreifen, aber was die cdbs-Macher nicht vorgesehen haben, geht auch nicht. Somit ist cdbs sicher nicht das Tool der Wahl für komplexe Packages wie exim4, aber so simple Dinge wie rageircd, apg oder ser2net lassen sich mit cdbs einfachst bauen.

Einen typischen Debian-Nachteil hat cdbs ebenfalls: Es ist verhältnismäßig zurückhaltend dokumentiert. Ohne Beispielcode ist man aufgeschmissen. Die Dokumisere hat sich allerdings deutlich gebessert, seit das CDBS-Wiki online gegangen ist. Lektüre, die sich unbedingt lohnt.

Trackbacks

No Trackbacks

Comments

Display comments as Linear | Threaded

No comments

Add Comment

Markdown format allowed
Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
Form options