CDBS är ett verktyg som använder debhelper för att göra det ännu enklare att bygga och underhålla Debianpaket. Det har många fördelar:
Det producerar en kort, läsvänlig och effektiv debian/rules
Det automatiserar debhelper och autotools åt dig, så att du slipper bry dig om återkommande uppgifter.
Det hjälper dig att fokusera på viktigare paketproblem, eftersom det hjäper till utan att begränsa anpassning
Det har vältestade klasser, så att du slipper använda olika fulhack för att lösa vanliga problem
Det är enkelt att byta till CDBS
Det är utbyggbart
Att använda CDBS för Ubuntu-paket är väldigt enkelt. Efter att ha lagt till cdbs till Build-Depends i debian/control
kan en grundläggande debian/rules
-fil med CDBS få plats på två rader. För ett enkelt program skrivet i C/C++ utan några extra regler, som hello, kan debian/rules
se ut såhär:
#!/usr/bin/make -f include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/autotools.mk
Det här är allt du behöver för att bygga programmet! CDBS hanterar installation och upprensning. Du kan sedan använda filerna .install
och .info
för att anpassa ditt program med de vanliga debhelper-funktionerna i olika delar av debian/rules
.
Använd inte DEB_AUTO_UPDATE_DEBIAN_CONTROL:=yes för att automatiskt ändra debian/control
. Det kan orsaka dåliga saker, och Debian anser att det är ett skäl till att neka ett paket från att komma in i arkiven. Läs http://ftp-master.debian.org/REJECT-FAQ.html för mer information.
Som du kan se fungerar CDBS i princip genom att inkludera .mk
Makefiles i debian/rules
. Paketet cdbs ger dig sådana filer i /usr/share/cdbs/1/
som låter dig göra utföra paketeringsuppgifter. Andra paket, som till exempel quilt, lägger till moduler till CDBS och kan användas som Build-Depends. Notera att du också kan använda dina egna CDBS-regler och inkludera dessa i paketet. De mest användbara modulerna som ingår i cdbs är:
rules/debhelper.mk
: Anropar debhelper på alla platser det behövs
rules/dpatch.mk
: Låter dig använda dpatch för att förenkla att patcha källkoden
rules/simple-patchsys.mk
: Erbjuder ett väldigt enkelt sätt att patcha källkoden
rules/tarball.mk
: Låter dig bygga paket med komprimerade tarbollar i paketet
class/autotools.mk
: Anropar autotools på alla platser det behövs
class/gnome.mk
: Bygger GNOME-program (kräver motsvarande Build-Depends i debian/control
)
class/kde.mk
: Bygger KDE-program (kräver motsvarande Build-Depends i debian/control
)
class/python-distutils.mk
: Bygger Python-program
För mer information om CDBS, se Marc Dequènes guide på https://perso.duckcorp.org/duck/cdbs-doc/cdbs-doc.xhtml.