Blame
Date:
Sun Jun 28 20:43:02 2020 UTC
Message:
logo adjust
001
2020-06-28
dev
Title: SLKBUILD, le SlackBuild pour les nuls
002
2020-06-28
dev
Date: 2011-02-22
003
2020-06-28
dev
Category: Tech
004
2020-06-28
dev
005
2020-06-28
dev
006
2020-06-28
dev
[Slkbuild](http://slkbuild.sourceforge.net/) est un outil dont le but est de
007
2020-06-28
dev
simplifier la construction d'un paquet destiné aux systèmes d'exploitation
008
2020-06-28
dev
[Slackware](http://www.slackware.com) et dérivés.
009
2020-06-28
dev
010
2020-06-28
dev
La manière habituelle de réaliser un paquet Slackware est d'écrire un script
011
2020-06-28
dev
shell, plus communément appelé [slackbuild](http://www.slackbuilds.org/)
012
2020-06-28
dev
(monbopaquet.SlackBuild).
013
2020-06-28
dev
014
2020-06-28
dev
Le contenu de ce slackbuild est très répétitif, il doit se charger de :
015
2020-06-28
dev
016
2020-06-28
dev
- déterminer l'architecture sur laquelle pourra s'installer le paquet
017
2020-06-28
dev
- la mise en place de la documentation au bon endroit (/usr/doc/)
018
2020-06-28
dev
- la mise en place des pages man ou info au bon endroit (/usr/man....)
019
2020-06-28
dev
- la compression de ces pages man/info
020
2020-06-28
dev
- le nettoyage des fichiers/dossiers dans le répertoire de compilation
021
2020-06-28
dev
- garder une trace (log) du processus
022
2020-06-28
dev
- la gestions des droits et permissions des fichiers et répertoires
023
2020-06-28
dev
- la gestion des fichiers de configuration pour les mises à jour (.new)
024
2020-06-28
dev
- la gestion des icônes/fichiers .desktop...
025
2020-06-28
dev
- le stripping des binaires
026
2020-06-28
dev
- et ... la fabrication du dit paquet
027
2020-06-28
dev
028
2020-06-28
dev
L'utilisation d'un squelette, d'un slackbuild modèle peut également se faire,
029
2020-06-28
dev
mais il est vrai qu'à la fin toutes ces tâches redondantes sont un peu
030
2020-06-28
dev
parasites et font perdre du temps. Car, ce qui nous intéresse n'est autre que
031
2020-06-28
dev
ce qui est nécessaire à la compilation, à la fabrication du programme. Le tout
032
2020-06-28
dev
a donc été automatisé un peu (beaucoup) à la manière d'
033
2020-06-28
dev
[ArchLinux](http://www.archlinux.com/), Slkbuild est
034
2020-06-28
dev
d'ailleurs très fortement inspiré de **makepkg** utilisé par cette dernière.
035
2020-06-28
dev
036
2020-06-28
dev
Les avantages à utiliser **slkbuild** sont nombreux, on peut citer :
037
2020-06-28
dev
038
2020-06-28
dev
- la conformité du paquet est assurée (vérification slack-desc,
039
2020-06-28
dev
.desktop,...))
040
2020-06-28
dev
- copie des sources de fabrication (slkbuild, patchs, ...) dans/usr/src/
041
2020-06-28
dev
monbopaquet-1.0
042
2020-06-28
dev
- gestion des flags de compilation automatique en fonction de l'architecture
043
2020-06-28
dev
- l'édition du script est très aisée
044
2020-06-28
dev
- le processus de fabrication du paquet est plus rapide
045
2020-06-28
dev
046
2020-06-28
dev
Typiquement, pour créer facilement un paquet :
047
2020-06-28
dev
```
048
2020-06-28
dev
$ mkdir monbopaquet-1.0
049
2020-06-28
dev
$ cd monbopaquet
050
2020-06-28
dev
$ slkbuild -g # vous obtenez un SLKBUILD modèle pour compilation standard (existe aussi en gpython/gperl ...)
051
2020-06-28
dev
$ vim SLKBUILD
052
2020-06-28
dev
```
053
2020-06-28
dev
054
2020-06-28
dev
```
055
2020-06-28
dev
#Packager: fredg
056
2020-06-28
dev
pkgname=monbopaquet
057
2020-06-28
dev
pkgver=1.0
058
2020-06-28
dev
pkgrel=1fg
059
2020-06-28
dev
#arch=noarch
060
2020-06-28
dev
source=(http://ou/se/trouve/$pkgname-$pkgver.tar.gz)
061
2020-06-28
dev
sourcetemplate=http://people.salixos.org/fredg/packages/$pkgname/$pkgver/
062
2020-06-28
dev
docs=("readme" "install" "copying" "changelog" "authors" "news" "todo")
063
2020-06-28
dev
url=http://maisondupaquet.fr
064
2020-06-28
dev
#dotnew=() # pour gestion des fichiers de configuration .new, laisser tel que si gestion classique
065
2020-06-28
dev
#CFLAGS= # si vous souhaitez autre chose que les options standard de Slackware
066
2020-06-28
dev
#CXXFLAGS= # idem
067
2020-06-28
dev
#doinst() {
068
2020-06-28
dev
# écriture du doinst.sh si nécessaire (à décommenter)
069
2020-06-28
dev
#}
070
2020-06-28
dev
slackdesc=\
071
2020-06-28
dev
(
072
2020-06-28
dev
#|-----handy-ruler------------------------------------------------------|
073
2020-06-28
dev
"écriture de votre slack-desc"
074
2020-06-28
dev
)
075
2020-06-28
dev
build() {
076
2020-06-28
dev
cd $startdir/src/$pkgname-$pkgver
077
2020-06-28
dev
./configure --prefix=/usr --libdir=/usr/lib${LIBDIRSUFFIX} --localstatedir=/var --sysconfdir=/etc --build=$arch-slackware-linux
078
2020-06-28
dev
make -j $numjobs || return 1
079
2020-06-28
dev
make install DESTDIR=$startdir/pkg
080
2020-06-28
dev
#
081
2020-06-28
dev
# si paquet traditionnel, rien à faire
082
2020-06-28
dev
}
083
2020-06-28
dev
:wq # quitte vim ;)
084
2020-06-28
dev
--
085
2020-06-28
dev
$ fakeroot slkbuild -X
086
2020-06-28
dev
$ ls
087
2020-06-28
dev
$ SLKBUILD monbopaquet-0.1.tar.gz monbopaquet-0.1-x86_64-1fg.txz
088
2020-06-28
dev
monbopaquet-0.1-x86_64-1fg.md5 monbopaquet-0.1-x86_64-1fg.src
089
2020-06-28
dev
build-monbopaquet-0.1-x86_64-1fg.log
090
2020-06-28
dev
$ su # on passe root
091
2020-06-28
dev
# installpkg monbopaquet-0.1-x86_64-1fg.txz # et voilà
092
2020-06-28
dev
```
093
2020-06-28
dev
094
2020-06-28
dev
Slkbuild est utilisé activement par Salix OS qui est, je le rappelle,
095
2020-06-28
dev
totalement compatible avec Slackware, les dépôts sont les mêmes. Vous pouvez
096
2020-06-28
dev
voir ceux de Salix comme un [extra]. De nombreux exemples de SLKBUILD sont
097
2020-06-28
dev
disponibles, par exemple sur le
098
2020-06-28
dev
[répertoire des sources de la version -current](http://127.0.0.1:8000/az/%22http://download.salixos.org/x86_64/current/source/pkglist64.html).
099
2020-06-28
dev
100
2020-06-28
dev
## Quelques liens
101
2020-06-28
dev
102
2020-06-28
dev
- [http://slkbuild.sourceforge.net/](http://slkbuild.sourceforge.net )
103
2020-06-28
dev
- [Building packages with slkbuild](http://www.salixos.org/wiki/index.php/Building_packages_with_slkbuild)
104
2020-06-28
dev
- [http://freshmeat.net/projects/slkbuild](http://freshmeat.net/projects/slkbuild)
105
2020-06-28
dev
Frédéric Galusik