Construire son SliTaz
Chaque paquet et chaque image SliTaz est construit à partir de simples recettes en shell, avec des outils installés sur SliTaz même. Ce chapitre donne les premiers pas ; les manuels des outils donnent les détails, et les pages développeurs du site expliquent comment fonctionne le projet : le wok, l'hôte de construction, Mercurial et comment contribuer.
Paquets avec cookutils
Cookutils construit les paquets à partir de recettes (fichiers receipt) rangées
dans le wok, /home/slitaz/wok. Il est présent sur
SliTaz Core et Firefox x86_64 ; ailleurs, installez-le :
# spk-add cookutils # grep ^ARCH /etc/slitaz/cook.conf # doit correspondre à votre système # cook setup # répertoires et outils de construction # cook setup --wok # clone aussi le wok officiel (demande mercurial) # cook new mypkg # nouvelle recette dans /home/slitaz/wok/mypkg/ # nano /home/slitaz/wok/mypkg/receipt # cook mypkg # spk-add /home/slitaz/packages/mypkg-1.0-x86_64.tazpkg
Sur x86_64, vérifiez que ARCH="x86_64" est bien défini
dans /etc/slitaz/cook.conf : le paquet 5.1 y met
i486. Le log de construction est
/home/slitaz/log/mypkg.log.
cook doctor vérifie l'environnement de construction et
cook-tui est une interface en mode texte. Les réglages
sont dans /etc/slitaz/cook.conf. Sur un système en
marche, cook travaille dans une couche jetable posée sur le système :
les dépendances de construction installées pour le cook disparaissent
à la fin, et rien n'est installé sur le système tant que vous ne le
faites pas.
La recette
Une recette est un fichier shell avec quelques variables et fonctions :
# SliTaz package receipt.
PACKAGE="hello"
VERSION="2.12"
CATEGORY="misc"
SHORT_DESC="The GNU Hello program."
MAINTAINER="you@example.org"
LICENSE="GPL3"
WEB_SITE="https://www.gnu.org/software/hello/"
TARBALL="$PACKAGE-$VERSION.tar.gz"
WGET_URL="https://ftp.gnu.org/gnu/$PACKAGE/$TARBALL"
DEPENDS=""
BUILD_DEPENDS=""
compile_rules()
{
./configure --prefix=/usr &&
make && make DESTDIR=$DESTDIR install
}
genpkg_rules()
{
mkdir -p $fs/usr
cp -a $install/usr/bin $fs/usr
}
compile_rules compile et installe dans
$install, genpkg_rules copie dans
$fs ce qui appartient au paquet. Le
manuel de Cookutils
décrit toutes les variables, le format de recette v2 avec paquets
multiples, et cooker, le robot de construction.
Construire dans un chroot
Pour construire dans un système propre qui ne dépend pas de ce qui est
installé sur le vôtre, utilisez un chroot. tazdev en crée
un et y entre :
# spk-add slitaz-dev-tools # tazdev gen-chroot --arch=x86_64 \ --mirror=https://mirror.slitaz.org/x86_64/cooking/packages/ # tazdev chroot --arch=x86_64
Quitter le shell du chroot le démonte. Pour i486, utilisez
--arch=i486 et le miroir i486. Pour construire des
paquets SliTaz depuis une autre distribution GNU/Linux, utilisez
tazlab
(spk-add tazlab sur SliTaz).
Images live avec tazlito
Une saveur (flavor) décrit une image : une liste de paquets, des fichiers ajoutés au système de fichiers racine et au CD, et une recette. Les saveurs officielles sont dans le dépôt flavors. Pour construire une image i486 à partir d'une saveur avec tazlito, sur un système ou un chroot i486 :
# spk-add mercurial # mkdir -p /home/slitaz/$(cat /etc/slitaz-release) # cd /home/slitaz/$(cat /etc/slitaz-release) # hg clone https://hg.slitaz.org/flavors # tazlito pack-flavor core # tazlito get-flavor core # tazlito gen-distro
Modifiez la saveur (packages.list, rootfs/)
avant de l'empaqueter pour en faire la vôtre. tazlito gen-iso
reconstruit l'image après une modification de l'arborescence dans
distro/, et tazlito clean-distro la supprime.
Voir le
manuel de Tazlito.
Tazlito construit les images i486 officielles. Les images hybrides x86_64 BIOS et UEFI sont construites avec un outil plus récent, metier, pas encore disponible en paquet.
Remasteriser un système live
À partir d'un système live i486 que vous avez personnalisé (paquets,
réglages, fichiers dans /home), tazlito peut en écrire
une nouvelle image :
# tazlito writeiso lzma my-slitaz
Le noyau et les fichiers de démarrage sont pris sur le support live,
qui doit être monté sur /media/cdrom.
SliTaz Doc