SLKBUILD, le SlackBuild pour les nuls

[Slkbuild] est un outil dont le but est de simplifier la construction d'un paquet destiné aux systèmes d'exploitation [Slackware] et dérivés.

La manière habituelle de réaliser un paquet Slackware est d'écrire un script shell, plus communément appelé [slackbuild] (monbopaquet.SlackBuild).

Le contenu de ce slackbuild est très répétitif, il doit se charger de :

L'utilisation d'un squelette, d'un slackbuild modèle peut également se faire, mais il est vrai qu'à la fin toutes ces tâches redondantes sont un peu parasites et font perdre du temps. Car, ce qui nous intéresse n'est autre que ce qui est nécessaire à la compilation, à la fabrication du programme. Le tout a donc été automatisé un peu (beaucoup) à la manière d' [ArchLinux], Slkbuild est d'ailleurs très fortement inspiré de *makepkg* utilisé par cette dernière.

Les avantages à utiliser *slkbuild* sont nombreux, on peut citer :

Typiquement, pour créer facilement un paquet :

,----

| $ mkdir monbopaquet-1.0

| $ cd monbopaquet

| $ slkbuild -g # vous obtenez un SLKBUILD modèle pour compilation standard (existe aussi en gpython/gperl ...)

| $ vim SLKBUILD

`----

,----

| #Packager: fredg

| pkgname=monbopaquet

| pkgver=1.0

| pkgrel=1fg

| #arch=noarch

| source=(http://ou/se/trouve/$pkgname-$pkgver.tar.gz)

| sourcetemplate=http://people.salixos.org/fredg/packages/$pkgname/$pkgver/

| docs=("readme" "install" "copying" "changelog" "authors" "news" "todo")

| url=http://maisondupaquet.fr

| #dotnew=() # pour gestion des fichiers de configuration .new, laisser tel que si gestion classique

| #CFLAGS= # si vous souhaitez autre chose que les options standard de Slackware

| #CXXFLAGS= # idem

| #doinst() {

| # écriture du doinst.sh si nécessaire (à décommenter)

| #}

| slackdesc=\

| (

| #|-----handy-ruler------------------------------------------------------|

| "écriture de votre slack-desc"

| )

| build() {

| cd $startdir/src/$pkgname-$pkgver

| ./configure --prefix=/usr --libdir=/usr/lib${LIBDIRSUFFIX} --localstatedir=/var --sysconfdir=/etc --build=$arch-slackware-linux

| make -j $numjobs || return 1

| make install DESTDIR=$startdir/pkg

| #

| # si paquet traditionnel, rien à faire

| }

| :wq # quitte vim ;)

| --

| $ fakeroot slkbuild -X

| $ ls

| $ SLKBUILD monbopaquet-0.1.tar.gz monbopaquet-0.1-x86_64-1fg.txz

| monbopaquet-0.1-x86_64-1fg.md5 monbopaquet-0.1-x86_64-1fg.src

| build-monbopaquet-0.1-x86_64-1fg.log

| $ su # on passe root

| # installpkg monbopaquet-0.1-x86_64-1fg.txz # et voilà

`----

Slkbuild est utilisé activement par Salix OS qui est, je le rappelle, totalement compatible avec Slackware, les dépôts sont les mêmes. Vous pouvez voir ceux de Salix comme un [extra]. De nombreux exemples de SLKBUILD sont disponibles, par exemple sur le [répertoire des sources de la version -current].

Slkbuild

Slackware

slackbuild

ArchLinux

répertoire des sources de la version -current

Quelques liens

http://slkbuild.sourceforge.net/

Building packages with slkbuild

http://freshmeat.net/projects/slkbuild