Ceci est une ancienne révision du document !
Table des matières
Les scripts SlackBuild
Un script SlackBuild est un 'shell script' (généralement compatible avec le shell Bourne.) dont le rôle est d'automatiser la configuration, la compilation et la création de paquets Slackware (des fichiers *.tgz, *.txz, *.tbz) à partir d'archives du code source.
Sommaire
La méthode générale pour créer un paquet Slackware package à partir des sources peut être résumée comme suit, même si certains détails peuvent varier d'un système de construction à l'autre.
- Décompresser l'archive source (habituellement un fichier .tar.gz ou .tar.bz2) dans un “répertoire de travail.”
- Créer un fichier
slack-desc
, qui décrit le logiciel suivant un format normalisé. - Configurer le fichier source, et appliquer les correctifs si nécessaire.
- Lancer la compilation/construction sur les fichiers-source afin de produire les fichiers binaires.
- Installer le programme dans un répertoire provisoire. Cette étape est éventuellement un peu délicate, suivant comment le
make install
(ou un outil semblable) du système de “construction” travaille. In standard GNU Makefiles, theDESTDIR
variable passed to themake install
command should be sufficient. In non-standard Makefiles and build systems which don't support that option, this might involve patching theMakefile
(or similar file) or editing a build configuration setting of the build system. - Copy the program documentation and other necessary files (including post-installation scripts) to the appropriate subdirectories in the temporary installation directory. These locations should adhere to default directory structure used by Slackware to store applications installed by the package manager, viz. inside the
/usr/
folder. - Use the
makepkg
utility from the temporary directory (installation location) to create a Slackware package that can then be installed using theinstallpkg
utility.
While the above steps can be done by hand, the process is tedious, sometimes complex, and involves typing in a lot of commands. Automating the process by a shell script allows the user to share the process with the community at large. It also makes sense to use and modify existing SlackBuild scripts for upgrading the same program to a newer version.
Creating SlackBuild scripts
A good hands-on tutorial on creating a SlackBuild script can be found here, and there are also a few templates available to get a feeling for what is needed from a script.
However, software may be written in different programming languages, use different build systems, or may even simply be written in an interpreted programming language with no obvious way to “install” it. In such cases, many steps involved in writing a SlackBuild script will differ from the standard way. Blindly copying and pasting commands from other SlackBuild scripts may or may not work.
It is recommended that anybody who wishes to write a SlackBuild script, study and understand the build system of a software project before attempting to write a SlackBuild script for it. A degree of proficiency in writing shell scripts is also a definite benefit, as it is the practice to use Bourne shell compatible scripts for SlackBuilds. Ideally, simple C projects which use the standard GNU Make system is a good way to start practicing writing SlackBuild scripts.
Submitting SlackBuild scripts to a public repository such as http://www.slackbuilds.org may additionally require adherence to certain conventions and coding standards. For instance, it would be necessary for the script to determine the target architecture at runtime rather than hard-coding it into the script. These standards attempt to make SlackBuild scripts as portable as possible.