slitaz-doc-wiki-data diff pages/pt/cookbook/receipt.txt @ rev 3
Add pages/pt folder.
author | Christopher Rogers <slaxemulator@gmail.com> |
---|---|
date | Sat Feb 26 12:12:42 2011 +0000 (2011-02-26) |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/pages/pt/cookbook/receipt.txt Sat Feb 26 12:12:42 2011 +0000 1.3 @@ -0,0 +1,100 @@ 1.4 +====== Receitas ====== 1.5 + 1.6 +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: 1.7 + 1.8 +<code># SliTaz package receipt.</code> 1.9 + 1.10 +===== Variáveis ===== 1.11 + 1.12 +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: 1.13 + 1.14 +<code>PACKAGE="clex" 1.15 +VERSION="3.16" 1.16 +CATEGORY="base-apps" 1.17 +SHORT_DESC="Text mode file manager." 1.18 +MAINTAINER="pankso@slitaz.org" 1.19 +</code> 1.20 + 1.21 +===== Variáveis opcionais ===== 1.22 + 1.23 +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. 1.24 + 1.25 + * **$DEPENDS**: Define dependências - pode haver muitas dependências separada por um espaço ou por linhas. Esta variável é usada principalmente pelo Tazpkg ao instalar o pacote e pelo Tazwok para construir grandes pacotes como o Xorg. Exemplo para o Clex que depende do ncurses: 1.26 + 1.27 +<code>DEPENDS="ncurses"</code> 1.28 + 1.29 + * **$BUILD_DEPENDS**: Define as dependências de compilação, novamente separadas por espaços ou por linhas. Esta variável é usada pelo Tazwok durante a geração de um pacote. Exemplo: 1.30 + 1.31 +<code>BUILD_DEPENDS="ncurses-dev"</code> 1.32 + 1.33 + * **$TARBALL** : O arquivo é um fonte com a extensão (tar.gz, tgz ou tar.bz2). Em geral, as variáveis $PACKAGE e $VERSION são usadas somente para mudar a extensão, ajudando a atualizar o pacote sem mudar a variável $VERSION. Um exemplo genérico (veja também o exemplo para a variável $SOURCE): 1.34 + 1.35 +<code>TARBALL="$PACKAGE-$VERSION.tar.gz"</code> 1.36 + 1.37 + * **$WEB_SITE** : O website oficial do pacote. Pode ocorrer que algumas bibliotecas não possuam um website, neste caso não há necessidade de especificar uma URL. Note que tanto o Tazwok e o Tazpkg esperam encontram uma URL completa: 1.38 + 1.39 +<code>WEB_SITE="http://www.clex.sk/"</code> 1.40 + 1.41 + * **$WGET_URL** : URL para baixar o arquivo fonte. Em geral, a variável $TARBALL pode ser usada para facilitar a atualização de um pacote sem mudar a variável $VERSION. Usando o arquivo de configuração, o Tazwok pode também configurar por padrão 3 mirrors: $GNU_MIRROR para o mirror GNU, $SF_MIRROR para o SourceForge e $XORG_MIRROR para o mirror do servidor gráfico Xorg. Exemplo para o Clex: 1.42 + 1.43 +<code>WGET_URL="http://www.clex.sk/download/$TARBALL"</code> 1.44 + 1.45 + * **$WANTED** : Os pacotes do SliTaz normalmente dependem da compilação de um pacote fonte. Algumas vezes a receita de um pacote não depende de compilação de regras, então a variável $WANTED é usada para copiar arquivos do fonte para outro pacote usando a variável $src. 1.46 + 1.47 + * **$SOURCE** : Pode ocorrer de o nome do pacote .tazpkg ser diferente do nome do pacote fonte. Um exemplo é o dos pacotes Xorg: o nome da biblioteca X11 é "xorg-libX11" e o nome do pacote fonte é "libX11". Esta variável permite usar as variáveis $src e $_pkg durante a geração de um pacote. Pode-se notar que no caso da libX11, o nome do arquivo fonte torna-se $SOURCE-$VERSION.tar.gz. 1.48 + 1.49 +===== Variáveis usadas em funções ===== 1.50 + 1.51 +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. 1.52 + 1.53 + * **$src** : Define o caminho para o diretório de fontes ainda não arquivados. 1.54 + * **$_pkg** : Define o caminho para os binários compilados instalados via "make DESTDIR=$PWD/_pkg install". Esta variável é usada para copiar os arquivos gerados e criar pacotes .tazpkg. 1.55 + * **$fs** : Define o caminho para o pseudo sistema de arquivos (fs) em cada pacote. O "fs" de cada pacote corresponde à raiz do sistema, como se, por exemplo, o Clex estivesse em $fs/usr/bin/clex. Note a necessidade de criar os diretórios necessários por meio da função //genpkg_rules()// antes de copiar os arquivos. 1.56 + * **$CONFIGURE_ARGS** : Variável definida no arquivo de configuração do Tazwok (tazwok.conf). Permite que sejam especificados argumentos de otimização genéricos durante a construção do pacote. O padrão é o argumento para a arquitetura i486. 1.57 + 1.58 +===== Funções ===== 1.59 + 1.60 +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. 1.61 + 1.62 +==== compile_rules() ==== 1.63 + 1.64 +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: 1.65 + 1.66 +<code># Regras para configurar e criar um pacote. 1.67 +compile_rules() 1.68 +{ 1.69 + cd $src 1.70 + ./configure --prefix=/usr --infodir=/usr/share/info \ 1.71 + --mandir=/usr/share/man $CONFIGURE_ARGS 1.72 + make 1.73 + make DESTDIR=$PWD/_pkg install 1.74 +} 1.75 +</code> 1.76 + 1.77 +==== genpkg_rules() ==== 1.78 + 1.79 +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: 1.80 + 1.81 +<code># Rules to gen a SliTaz package suitable for Tazpkg. 1.82 +genpkg_rules() 1.83 +{ 1.84 + mkdir -p $fs/usr 1.85 + cp -a $_pkg/usr/bin $fs/usr 1.86 + strip -s $fs/usr/bin/* 1.87 +} 1.88 +</code> 1.89 + 1.90 +==== pre_install() e post_install() ==== 1.91 + 1.92 +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): 1.93 + 1.94 +<code># Comandos de pré e pós-instalação para o Tazpkg. 1.95 +pre_install() 1.96 +{ 1.97 + echo "Processing pre-install commands..." 1.98 +} 1.99 +post_install() 1.100 +{ 1.101 + echo "Processing post-install commands..." 1.102 +} 1.103 +</code> 1.104 \ No newline at end of file