website view pt/doc/cookbook/receipts.html @ rev 551

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