Table of Contents

Receitas

Este documento descreve as oportunidades oferecidas pelas “receitas” (arquivos de descrição de pacotes) usadas pelo Tazwok para compilar e gerar pacotes para o SliTaz e o Tazpkg por meio do wok e ferramentas. A receita para um pacote é também usada pelo Tazpkg para instalar/desinstalar e prover informações sobre um pacote .tazpkg. Cada receita começa com um comentário em inglês:

# SliTaz package receipt.

Variáveis

As 5 primeiras variáveis devem sempre estar presentes e definidas. Elas, respectivamente, configuram o pacote ($PACKAGE), sua versão, sua categoria, fornecem uma curta descrição e o nome do mantenedor. Exemplo para um pacote, o gerenciador de arquivos Clex:

PACKAGE="clex"
VERSION="3.16"
CATEGORY="base-apps"
SHORT_DESC="Text mode file manager."
MAINTAINER="pankso@slitaz.org"

Variáveis opcionais

O Tazwok também lida com diversas variáveis opcionais. Pode, por exemplo, usar o nome de outro pacote fonte. Também há variáveis que são usadas pelo Tazpkg para gerenciar dependências ou prover informações sobre o pacote.

DEPENDS="ncurses"
BUILD_DEPENDS="ncurses-dev"
TARBALL="$PACKAGE-$VERSION.tar.gz"
WEB_SITE="http://www.clex.sk/"
WGET_URL="http://www.clex.sk/download/$TARBALL"

Variáveis usadas em funções

O Tazwok configura diversas variáveis que facilitam a compilação e construção de pacotes .tazpkg. Estas são controladas automaticamente pelo Tazwok usando as informações contidas na receita: elas podem ser usadas pela funções compile_rules e genpkg_rules descritas no capítulos Funções.

Funções

Uma receita deve conter 4 funções. O Tazwok lida com as funções contendo as regras de compilação (compile_rules) e as regras usadas para gerar um pacote (genpkg_rules). Estas funções podem conter todos os tipos de comandos padrão GNU/Linux, como sed, awk, patch e variáveis automaticamente configuradas.

compile_rules()

Para compilar um pacote pode-se usar a variável $src para mudar (cd) o diretório de fontes e usar a variável $CONFIGURE_ARGS para incluir argumentos do arquivo de configuração do Tazwok. Para construir um pacote normalmente se roda o “make” sem argumentos, e para instalar um pacote no diretório _pkg é necessário usar o comando “make DESTDIR=$PWD/_pkg install”. Um exemplo genérico:

# Regras para configurar e criar um pacote.
compile_rules()
{
    cd $src
    ./configure --prefix=/usr --infodir=/usr/share/info \
    --mandir=/usr/share/man $CONFIGURE_ARGS
    make
    make DESTDIR=$PWD/_pkg install
}

genpkg_rules()

Para gerar um pacote .tazpkg deve-se especificar comandos na função genpkg_rules. Neste exemplo criamos um pseudo diretório usr/ no sistema de arquivos do pacote, copiamos todos os binários e por fim usamos “strip” para limpar os arquivos:

# Rules to gen a SliTaz package suitable for Tazpkg.
genpkg_rules()
{
    mkdir -p $fs/usr
    cp -a $_pkg/usr/bin $fs/usr
    strip -s $fs/usr/bin/*
}

pre_install() e post_install()

Estas duas funções são iniciadas pelo Tazpkg ao instalar algum pacote. Elas devem ser definidas antes da geração do pacote .tazpkg pelo Tazwok. Se nenhuma regra é passada a estas funções, não há razão para mantê-las e elas podem ser removidas. Exemplo usando o comando “echo” para mostrar algum texto (nenhuma função pode estar vazia):

# Comandos de pré e pós-instalação para o Tazpkg.
pre_install()
{
    echo "Processing pre-install commands..."
}
post_install()
{
    echo "Processing post-install commands..."
}