website annotate pt/doc/cookbook/receipts.html @ rev 537

pt: localy browseable (with file://)
author Pascal Bellard <pascal.bellard@slitaz.org>
date Wed Aug 19 16:52:20 2009 +0200 (2009-08-19)
parents b8d706d40d1e
children 17d06d9a2ab0
rev   line source
paul@142 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
paul@142 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
paul@142 3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt" lang="pt">
paul@142 4 <head>
paul@142 5 <title>Livro de Receitas do SliTaz - Receitas</title>
paul@142 6 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
paul@142 7 <meta name="description" content="slitaz portuguese cookbook" />
paul@142 8 <meta name="expires" content="never" />
paul@142 9 <meta name="modified" content="2008-07-16 21:45:00" />
paul@142 10 <meta name="publisher" content="www.slitaz.org" />
paul@142 11 <meta name="author" content="Christophe Lincoln"/>
paul@142 12 <link rel="shortcut icon" href="favicon.ico" />
paul@142 13 <link rel="stylesheet" type="text/css" href="book.css" />
paul@142 14 </head>
paul@142 15 <body bgcolor="#ffffff">
paul@142 16
paul@142 17 <!-- Header and quick navigation -->
paul@142 18 <div id="header">
paul@142 19 <div align="right" id="quicknav">
paul@142 20 <a name="top"></a>
claudinei@529 21 <a href="build-host.html">Build Host</a> |
paul@142 22 <a href="index.html">Conteúdo</a>
paul@142 23 </div>
paul@142 24 <h1><font color="#3E1220">SliTaz Cookbook (pt)</font></h1>
paul@142 25 </div>
paul@142 26
paul@142 27 <!-- Content. -->
paul@142 28 <div id="content">
paul@142 29 <div class="content-right"></div>
paul@142 30
paul@142 31
paul@142 32 <h2><font color="#df8f06">Receitas</font></h2>
paul@142 33
paul@142 34 <p>
paul@142 35 Este documento descreve as oportunidades oferecidas pela receita usada pelo
paul@142 36 Tazwok para compilar e gerar pacotes para o SliTaz e o Tazpkg por meio do
paul@142 37 <a href="wok-tools.html">wok e ferramentas</a>. A receita para um pacote é
paul@142 38 também usada pelo Tazpkg para instalar/desinstalar e prover informações sobre
paul@142 39 um pacote .tazpkg. Cada receita começa com um comentário em inglês:
paul@142 40 </p>
paul@142 41 <pre class="script">
paul@142 42 # SliTaz package receipt.
paul@142 43 </pre>
paul@142 44
paul@142 45 <h3>Variáveis</h3>
paul@142 46 <p>
paul@142 47 As 5 primeiras variáveis devem sempre estar presentes e definidas. Elas,
paul@142 48 respectivamente, configuram o pacote ($PACKAGE), sua versão, sua categoria,
paul@142 49 fornecem uma curta descrição e o nome do mantenedor. Exemplo para um pacote,
paul@142 50 o gerenciador de arquivos Clex:
paul@142 51 </p>
paul@142 52 <pre class="script">
paul@142 53 PACKAGE="clex"
paul@142 54 VERSION="3.16"
paul@142 55 CATEGORY="base-apps"
paul@142 56 SHORT_DESC="Text mode file manager."
paul@142 57 MAINTAINER="pankso@slitaz.org"
paul@142 58 </pre>
paul@142 59
paul@142 60 <h3>Variáveis (opcionais)</h3>
paul@142 61 <p>
paul@142 62 O Tazwok também lida com diversas variáveis opcionais. Pode, por exemplo, usar
paul@142 63 o nome de outro pacote fonte. Também há variáveis que são usadas pelo Tazpkg
paul@142 64 para gerenciar dependências ou prover informações sobre o pacote.
paul@142 65 </p>
paul@142 66 <p>
paul@142 67 <code>$DEPENDS</code>: Define dependências - pode haver muitas dependências
paul@142 68 separada por um espaço ou por linhas. Esta variável é usada principalmente pelo
paul@142 69 Tazpkg ao instalar o pacote e pelo Tazwok para construir grandes pacotes como
paul@142 70 o Xorg. Exemplo para o Clex que depende do ncurses:
paul@142 71 </p>
paul@142 72 <pre class="script">
paul@142 73 DEPENDS="ncurses"
paul@142 74 </pre>
paul@142 75 <p>
paul@142 76 <code>$BUILD_DEPENDS</code>: Define as dependências de compilação, novamente
paul@142 77 separadas por espaços ou por linhas. Esta variável é usada pelo Tazwok durante
paul@142 78 a geração de um pacote. Exemplo:
paul@142 79 </p>
paul@142 80 <pre class="script">
paul@142 81 BUILD_DEPENDS="ncurses-dev"
paul@142 82 </pre>
paul@142 83 <p>
paul@142 84 <code>$TARBALL</code> : O arquivo é um fonte com a extensão (tar.gz, tgz ou
paul@142 85 tar.bz2). Em geral, as variáveis $PACKAGE e $VERSION são usadas somente para
paul@142 86 mudar a extensão, ajudando a atualizar o pacote sem mudar a variável $VERSION.
paul@142 87 Um exemplo genérico (veja também o exemplo para a variável $SOURCE):
paul@142 88 </p>
paul@142 89 <pre class="script">
paul@142 90 TARBALL="$PACKAGE-$VERSION.tar.gz"
paul@142 91 </pre>
paul@142 92 <p>
paul@142 93 <code>$WEB_SITE</code> :
paul@142 94 O website oficial do pacote. Pode ocorrer que algumas bibliotecas não possuam
paul@142 95 um website, neste caso não há necessidade de especificar uma URL. Note que tanto
paul@142 96 o Tazwok e o Tazpkg esperam encontram uma URL completa:
paul@142 97 </p>
paul@142 98 <pre class="script">
paul@142 99 WEB_SITE="http://www.clex.sk/"
paul@142 100 </pre>
paul@142 101 <p>
paul@142 102 <code>$WGET_URL</code> :
paul@142 103 URL para baixar o arquivo fonte. Em geral, a variável $TARBALL pode ser usada
paul@142 104 para facilitar a atualização de um pacote sem mudar a variável $VERSION. Usando
paul@142 105 o arquivo de configuração, o Tazwok pode também configurar por padrão 3 mirrors:
paul@142 106 $GNU_MIRROR para o mirror GNU, $SF_MIRROR para o SourceForge e $XORG_MIRROR para
paul@142 107 o mirror do servidor gráfico Xorg. Exemplo para o Clex:
paul@142 108 </p>
paul@142 109 <pre class="script">
paul@142 110 WGET_URL="http://www.clex.sk/download/$TARBALL"
paul@142 111 </pre>
paul@142 112 <p>
paul@142 113 <code>$WANTED</code> :
paul@142 114 Os pacotes do SliTaz normalmente dependem da compilação de um pacote fonte.
paul@142 115 Algumas vezes a receita de um pacote não depende de compilação de regras, então
paul@142 116 a variável $WANTED é usada para copiar arquivos do fonte para outro pacote
paul@142 117 usando a variável $src.
paul@142 118 </p>
paul@142 119 <p>
paul@142 120 <code>$SOURCE</code> : Pode ocorrer de o nome do pacote .tazpkg ser diferente
paul@142 121 do nome do pacote fonte. Um exemplo é o dos pacotes Xorg: o nome da biblioteca
paul@142 122 X11 é "xorg-libX11" e o nome do pacote fonte é "libX11". Esta variável permite
paul@142 123 usar as variáveis $src e $_pkg durante a geração de um pacote. Pode-se notar
paul@142 124 que no caso da libX11, o nome do arquivo fonte torna-se $SOURCE-$VERSION.tar.gz.
paul@142 125 </p>
paul@142 126
paul@142 127 <h3>Variáveis usadas em funções</h3>
paul@142 128 <p>
paul@142 129 O Tazwok configura diversas variáveis que facilitam a compilação e construção
paul@142 130 de pacotes .tazpgk. Estas são controladas automaticamente pelo Tazwok usando
paul@142 131 as informações contidas na receita: elas podem ser usadas pela funções
paul@142 132 compile_rules e genpkg_rules descritas no capítulos Funções.
paul@142 133 </p>
paul@142 134 <p>
paul@142 135 <code>$src</code> : Define o caminho para o diretório de fontes ainda não arquivados.
paul@142 136 </p>
paul@142 137 <p>
paul@142 138 <code>$_pkg</code> : Define o caminho para os binários compilados instalados via
paul@142 139 "make DESTDIR=$PWD/_pkg install". Esta variável é usada para copiar os arquivos
paul@142 140 gerados e criar pacotes .tazpkg.
paul@142 141 </p>
paul@142 142 <p>
paul@142 143 <code>$fs</code> : Define o caminho para o pseudo sistema de arquivos (fs) em
paul@142 144 cada pacote. O "fs" de cada pacote corresponde à raiz do sistema, como se, por
paul@142 145 exemplo, o Clex estivesse em $fs/usr/bin/clex. Note a necessidade de criar
paul@142 146 os diretórios necessários por meio da função genpkg_rules() antes de copiar os
paul@142 147 arquivos.
paul@142 148 </p>
paul@142 149 <p>
paul@142 150 <code>$CONFIGURE_ARGS</code> : Variável definida no arquivo de configuração do
paul@142 151 Tazwok (tazwok.conf). Permite que sejam especificados argumentos de otimização
paul@142 152 genéricos durante a construção do pacote. O padrão é o argumento para a
paul@142 153 arquitetura i486.
paul@142 154 </p>
paul@142 155
paul@142 156 <h3>Funções</h3>
paul@142 157 <p>
paul@142 158 Uma receita deve conter 4 funções. O Tazwok lida com as funções contendo as
paul@142 159 regras de compilação (compile_rules) e as regras usadas para gerar um pacote
paul@142 160 (genpkg_rules). Estas funções podem conter todos os tipos de comandos padrão
paul@142 161 GNU/Linux, como sed, awk, patch e variáveis automaticamente configuradas.
paul@142 162 </p>
paul@142 163 <h4>compile_rules()</h4>
paul@142 164 <p>
paul@142 165 Para compilar um pacote pode-se usar a variável $src para mudar (cd) o diretório
paul@142 166 de fontes e usar a variável $CONFIGURE_ARGS para incluir argumentos do arquivo
paul@142 167 de configuração do Tazwok. Para construir um pacote normalmente se roda o "make"
paul@142 168 sem argumentos, e para instalar um pacote no diretório _pkg é necessário usar
paul@142 169 o comando "make DESTDIR=$PWD/_pkg install". Um exemplo genérico:
paul@142 170 </p>
paul@142 171 <pre class="script">
paul@142 172 # Regras para configurar e criar um pacote.
paul@142 173 compile_rules()
paul@142 174 {
paul@142 175 cd $src
paul@142 176 ./configure --prefix=/usr --infodir=/usr/share/info \
paul@142 177 --mandir=/usr/share/man $CONFIGURE_ARGS
paul@142 178 make
paul@142 179 make DESTDIR=$PWD/_pkg install
paul@142 180 }
paul@142 181 </pre>
paul@142 182 <h4>genpkg_rules()</h4>
paul@142 183 <p>
paul@142 184 Para gerar um pacote .tazpkg deve-se especificar comandos na função
paul@142 185 <code>genpkg_rules</code>. Neste exemplo criamos um pseudo diretório
paul@142 186 <code>usr/</code> no sistema de arquivos do pacote, copiamos todos os binários
paul@142 187 e por fim usamos "strip" para limpar os arquivos:
paul@142 188 </p>
paul@142 189 <pre class="script">
paul@142 190 # Rules to gen a SliTaz package suitable for Tazpkg.
paul@142 191 genpkg_rules()
paul@142 192 {
paul@142 193 mkdir -p $fs/usr
paul@142 194 cp -a $_pkg/usr/bin $fs/usr
paul@142 195 strip -s $fs/usr/bin/*
paul@142 196 }
paul@142 197 </pre>
paul@142 198 <h4>pre_install() e post_install()</h4>
paul@142 199 <p>
paul@142 200 Estas duas funções são iniciadas pelo Tazpkg ao instalar algum pacote. Elas
paul@142 201 devem ser definidas antes da geração do pacote .tazpkg pelo Tazwok. Se nenhuma
paul@142 202 regra é passada a estas funções, não há razão para mantê-las e elas podem ser
paul@142 203 removidas. Exemplo usando o comando "echo" para mostrar algum texto (nenhuma
paul@142 204 função pode estar vazia):
paul@142 205 </p>
paul@142 206 <pre class="script">
paul@142 207 # Comandos de pré e pós-instalação para o Tazpkg.
paul@142 208 pre_install()
paul@142 209 {
paul@142 210 echo "Processing pre-install commands..."
paul@142 211 }
paul@142 212 post_install()
paul@142 213 {
paul@142 214 echo "Processing post-install commands..."
paul@142 215 }
paul@142 216 </pre>
paul@142 217
paul@142 218 <!-- End of content -->
paul@142 219 </div>
paul@142 220
paul@142 221 <!-- Footer. -->
paul@142 222 <div id="footer">
paul@142 223 <div class="footer-right"></div>
pascal@537 224 <a href="index.html#top">Topo da Página</a> |
paul@142 225 <a href="index.html">Conteúdo</a>
paul@142 226 </div>
paul@142 227
paul@142 228 <div id="copy">
paul@142 229 Copyright &copy; 2008 <a href="http://www.slitaz.org/pt/">SliTaz</a> -
paul@142 230 <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
paul@142 231 Documentation is under
paul@142 232 <a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
paul@142 233 and code is <a href="http://validator.w3.org/">valid xHTML 1.0</a>.
paul@142 234 </div>
paul@142 235
paul@142 236 </body>
paul@142 237 </html>