Home Log À propos RSS

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.

Quelques liens

Discussion via la liste de diffusion (Mailing-List)