Construir o seu SliTaz
Todo pacote e toda imagem do SliTaz é construído a partir de receitas simples em shell, com ferramentas instaladas no próprio SliTaz. Este capítulo dá os primeiros passos; os manuais das ferramentas têm os detalhes, e as páginas de desenvolvimento do site explicam como o projeto funciona: o wok, o servidor de build, o Mercurial e como contribuir.
Pacotes com o cookutils
O Cookutils constrói pacotes a partir de receitas mantidas no
wok, /home/slitaz/wok. Ele está no SliTaz Core
e no Firefox x86_64; nos demais, instale-o:
# spk-add cookutils # grep ^ARCH /etc/slitaz/cook.conf # deve corresponder ao seu sistema # cook setup # diretórios e ferramentas de build # cook setup --wok # também clona o wok oficial (precisa do mercurial) # cook new mypkg # nova receita em /home/slitaz/wok/mypkg/ # nano /home/slitaz/wok/mypkg/receipt # cook mypkg # spk-add /home/slitaz/packages/mypkg-1.0-x86_64.tazpkg
No x86_64, verifique se ARCH="x86_64" está definido em
/etc/slitaz/cook.conf: o pacote 5.1 traz
i486 ali. O log de build é
/home/slitaz/log/mypkg.log.
O cook doctor verifica o ambiente de build e o
cook-tui é uma interface em modo texto. As configurações
estão em /etc/slitaz/cook.conf. Em um sistema em execução, o
cook trabalha em uma camada descartável sobre o sistema: as dependências
de build instaladas para o cook desaparecem quando ele termina, e nada é
instalado no sistema até que você o faça.
A receita
Uma receita é um arquivo shell com algumas variáveis e funções:
# 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
}
O compile_rules compila e instala em
$install, e o genpkg_rules copia para
$fs o que pertence ao pacote. O
manual do Cookutils
descreve todas as variáveis, o formato de receita v2 com pacotes
divididos, e o cooker, o robô de build.
Construir em um chroot
Para construir em um sistema limpo, que não dependa do que está
instalado no seu, use um chroot. O tazdev cria um e entra
nele:
# 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
Sair do shell do chroot o desmonta. Para i486, use
--arch=i486 e o mirror i486. Para construir pacotes
SliTaz a partir de outra distribuição GNU/Linux, use o
tazlab
(spk-add tazlab no SliTaz).
Imagens live com o tazlito
Um flavor descreve uma imagem: uma lista de pacotes, arquivos adicionados ao sistema de arquivos raiz e ao CD, e uma receita. Os flavors oficiais estão no repositório flavors. Para construir uma imagem i486 a partir de um flavor com o tazlito, em um sistema ou 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
Edite o flavor (packages.list, rootfs/) antes de
empacotá-lo para criar o seu. O tazlito gen-iso reconstrói a
imagem depois de alterar a árvore em distro/, e o
tazlito clean-distro a remove. Veja o
manual do Tazlito.
O Tazlito constrói as imagens i486 oficiais. As imagens híbridas BIOS e UEFI x86_64 são construídas com uma ferramenta mais nova, o metier, ainda não empacotada.
Remasterizar um sistema live
A partir de um sistema live i486 que você personalizou (pacotes,
configurações, arquivos em /home), o tazlito pode gravar
uma nova imagem dele:
# tazlito writeiso lzma my-slitaz
O kernel e os arquivos de boot são tirados da mídia live, que deve estar
montada em /media/cdrom.
SliTaz Doc