rev |
line source |
pankso@21
|
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
pankso@21
|
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
pankso@21
|
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
pankso@21
|
4 <head>
|
pankso@21
|
5 <title>SliTaz Cookbook (en) - Wok & Tools</title>
|
pankso@21
|
6 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
|
pankso@21
|
7 <meta name="description" content="slitaz English cookbook" />
|
pankso@21
|
8 <meta name="expires" content="never" />
|
MikeDSmith25@117
|
9 <meta name="modified" content="2008-07-16 21:45:00" />
|
pankso@21
|
10 <meta name="publisher" content="www.slitaz.org" />
|
pankso@21
|
11 <meta name="author" content="Christophe Lincoln, Paul Issot"/>
|
pankso@21
|
12 <link rel="shortcut icon" href="favicon.ico" />
|
pankso@21
|
13 <link rel="stylesheet" type="text/css" href="book.css" />
|
pankso@21
|
14 </head>
|
pankso@21
|
15 <body bgcolor="#ffffff">
|
pankso@21
|
16
|
pankso@21
|
17 <!-- Header and quick navigation -->
|
pankso@21
|
18 <div id="header">
|
pankso@21
|
19 <div align="right" id="quicknav">
|
pankso@21
|
20 <a name="top"></a>
|
pankso@21
|
21 <a href="receipts.html">Receipts</a> |
|
pankso@21
|
22 <a href="index.html">Table of contents</a>
|
pankso@21
|
23 </div>
|
pankso@21
|
24 <h1><font color="#3E1220">SliTaz Cookbook (en)</font></h1>
|
pankso@21
|
25 </div>
|
pankso@21
|
26
|
pankso@21
|
27 <!-- Content. -->
|
pankso@21
|
28 <div id="content">
|
pankso@21
|
29 <div class="content-right"></div>
|
pankso@21
|
30
|
pankso@21
|
31 <h2><font color="#DF8F06">Wok & Tools</font></h2>
|
pankso@21
|
32
|
pankso@21
|
33 <ul>
|
pascal@550
|
34 <li><a href="wok-tools.html#tazwok">Overview.</a></li>
|
pascal@550
|
35 <li><a href="wok-tools.html#wok">Wok tools.</a></li>
|
pascal@550
|
36 <li><a href="wok-tools.html#cook">Compile and generate packages.</a></li>
|
pascal@550
|
37 <li><a href="wok-tools.html#opts">Options during compilation of package.</a></li>
|
pascal@550
|
38 <li><a href="wok-tools.html#files">Files included or excluded packages.</a></li>
|
pascal@550
|
39 <li><a href="wok-tools.html#categories">Categories of packages.</a></li>
|
pascal@550
|
40 <li><a href="wok-tools.html#woktree">Structure of packages in the wok.</a></li>
|
pascal@550
|
41 <li><a href="wok-tools.html#pkgtree">Structure of Tazpkg package.</a></li>
|
pankso@21
|
42 <li><a href="receipts.html">Receipts.</a></li>
|
pankso@21
|
43 </ul>
|
pankso@21
|
44
|
pankso@21
|
45 <a name="tazwok"></a>
|
paul@199
|
46 <h3>Overview</h3>
|
paul@199
|
47 <p>
|
paul@199
|
48 With the passing of time, the SliTaz project created a variety of small
|
paul@199
|
49 utilities to rebuild the system from source automatically. Tazwok is used
|
paul@199
|
50 to compile and generate code (<em>cook</em> to cook) via instructions found in the
|
paul@199
|
51 receipts. The project also offers an archive of tools (<a href="slitaz-tools.html">SliTaz tools</a>)
|
paul@199
|
52 containing various small utilities, examples and configuration files.
|
paul@199
|
53 The distribution generator Tazlito is designed for users and
|
paul@199
|
54 developers. Tazlito will retrieve and reconstruct a LiveCD ISO image and
|
paul@199
|
55 generate a distribution flavor from a list of packages, a configuration file
|
paul@199
|
56 and a description. The utilities are all distributed as a source archive
|
paul@199
|
57 and are installed by default on SliTaz. Developers and future contributors
|
paul@199
|
58 can refer to the development page that provides information on SliTaz project
|
paul@199
|
59 management.
|
paul@199
|
60 </p>
|
paul@199
|
61
|
paul@199
|
62 <h4>Tazwok and the wok</h4>
|
pankso@21
|
63 <p>
|
pankso@21
|
64 The idea is to use a directory (wok) containing all the available packages, each package contains
|
pankso@21
|
65 at least one receipt to download, unpack, compile and generate the binary package. To operate,
|
paul@260
|
66 Tazwok also needs to create a directory to store downloaded sources ($SOURCES_REPOSITORY) and a
|
pankso@21
|
67 repository of generated packages ($PACKAGES_REPOSITORY), these values can be configured using the
|
pankso@21
|
68 <code>/etc/tazwok.conf</code> file.
|
pankso@21
|
69 </p>
|
pankso@21
|
70
|
pankso@21
|
71 <a name="wok"></a>
|
pankso@21
|
72 <h3><font color="#6c0023">Wok tools</font></h3>
|
pankso@21
|
73 <p>
|
paul@260
|
74 To begin, Tazwok must already be installed
|
pankso@21
|
75 on the system and the main development tools (binutils, compiler, libraries-dev, make) must be downloaded.
|
paul@29
|
76 On Slitaz you need to install the meta-package <code>slitaz-toolchain</code>:
|
pankso@21
|
77 </p>
|
pankso@21
|
78 <pre> # tazpkg recharge
|
pankso@21
|
79 # tazpkg get-install slitaz-toolchain
|
pankso@21
|
80 </pre>
|
MikeDSmith25@181
|
81 <p>
|
paul@186
|
82 To access the SliTaz repositories you need to install the <code>mercurial</code> package:
|
MikeDSmith25@181
|
83 </p>
|
MikeDSmith25@181
|
84 <pre> # tazpkg get-install mercurial
|
MikeDSmith25@181
|
85 </pre>
|
pankso@21
|
86 <h4>Get the wok</h4>
|
pankso@21
|
87 <p>
|
pankso@21
|
88 Before working it is necessary to recover the wok from the Mercurial repositories or an archive of
|
pankso@21
|
89 the primary mirror (TuxFamily). Example using SliTaz to be built in <code>/home/slitaz</code>:
|
pankso@21
|
90 </p>
|
pankso@21
|
91 <pre> $ hg clone http://hg.slitaz.org/wok/ /home/slitaz/wok
|
pankso@21
|
92 </pre>
|
pankso@21
|
93 <p>
|
pankso@21
|
94 The archives are also available from the URL:
|
pankso@21
|
95 <a href="ftp://download.tuxfamily.org/slitaz/wok/">ftp://download.tuxfamily.org/slitaz/wok/</a>.
|
pankso@21
|
96 Just take the latest version from the cooking or undigest directories. Before compiling your first package,
|
paul@260
|
97 Tazwok must know where to look for the files. By default the path is <code>/home/slitaz/wok</code>,
|
paul@260
|
98 you can change this or rename the wok you want to download. To view/check Tazwok paths that will be used
|
paul@260
|
99 and the number of packages in the wok, you can use the Tazwok command <code>stats</code>:
|
pankso@21
|
100 </p>
|
pankso@21
|
101 <pre> # tazwok stats
|
pankso@21
|
102 </pre>
|
pankso@21
|
103
|
pankso@21
|
104 <a name="cook"></a>
|
pankso@21
|
105 <h3>Compile and generate packages</h3>
|
pankso@21
|
106 <p>
|
pankso@21
|
107 Configure, compile, strip.., The way SliTaz generates a package can be put into a single command.
|
paul@166
|
108 To avoid frustration, it is advisable to build your package without changing its receipt or seeking
|
pankso@21
|
109 dependancies. M4 is an ideal candidate for your first <code>cook</code>:
|
pankso@21
|
110 </p>
|
pankso@21
|
111 <pre> # tazwok cook m4
|
pankso@21
|
112 </pre>
|
pankso@21
|
113 <p>
|
pankso@21
|
114 Once the work is finished, the package is located in the directory specified by the configuration file
|
pankso@21
|
115 (default <code>/home/slitaz/packages</code>). If all went well, you can install the package on the host system
|
paul@260
|
116 or use it to generate a LiveCD distribution via Tazlito. To create a new package you can use <code>new-tree</code>
|
pankso@21
|
117 with the option <code>--interactive</code> and read the documentation on the options provided by the
|
pankso@21
|
118 <a href="receipts.html">receipt</a>.
|
pankso@21
|
119 </p>
|
pankso@21
|
120 <h4>Cook-list - List of cooking</h4>
|
pankso@21
|
121 <p>
|
pankso@21
|
122 To compile several packages with a single command, you can use a cooking list. There are example lists in
|
pankso@21
|
123 <code>usr/share/examples/tazwok/cooklists</code> on SliTaz, these are just text files with a package put on every line.
|
pankso@21
|
124 Cook-list example using mypkgs.cooklist:
|
pankso@21
|
125 </p>
|
pankso@21
|
126 <pre> # tazwok cook-list mypkgs.cooklist
|
pankso@21
|
127 </pre>
|
pankso@21
|
128
|
pankso@21
|
129 <a name="opts"></a>
|
pankso@21
|
130 <h3>Options during compilation of package</h3>
|
pankso@21
|
131 <p>
|
paul@29
|
132 You are free to use any options you want, it is necessary to respect the FSH, the docs in <code>/usr/share/doc</code>
|
pankso@21
|
133 and follow the Freedesktop standards (.desktop). Then it's just a question of choice, for example you can disable
|
pankso@21
|
134 support for XML, have smaller binaries for PHP and get rid of libxml2, but in the case of PHP, it's not worth the
|
pankso@21
|
135 cost in terms of loss of functionality. If you have any doubts, look at the receipts and compiler options in
|
pankso@21
|
136 <code>compile_rules</code>.
|
pankso@21
|
137 </p>
|
pankso@21
|
138 <h4>Optimization</h4>
|
pankso@21
|
139 <p>
|
pankso@21
|
140 The official SliTaz packages are optimized for i486, the optimization arguments used to configure are specified in
|
pankso@21
|
141 <code>/etc/tazwok.conf</code> and can be called via the variable <code>$CONFIGURE_ARGS</code>.
|
paul@260
|
142 If you want to compile a package with different arguments, you can modify the Tazwok configuration file:
|
pankso@21
|
143 </p>
|
pankso@21
|
144 <pre class="script">CONFIGURE_ARGS="--build=i486-pc-linux-gnu --host=i486-pc-linux-gnu"
|
pankso@21
|
145 </pre>
|
pankso@21
|
146
|
pankso@21
|
147 <a name="files"></a>
|
pankso@21
|
148 <h3>Files included or excluded packages</h3>
|
pankso@21
|
149 <p>
|
pankso@21
|
150 Generally the base packages contain no man, info, doc or static libraries, we have to create them via a package-doc
|
paul@29
|
151 or a package-dev. Note that SliTaz is not intending to use the man or info command, so there's no manual or GNU
|
pankso@21
|
152 info file. The creation of packages containing docs is really optional, especially if the material is in English
|
pankso@21
|
153 (I say). By contrast a piece of text on the package in the Handbook is more appreciated.
|
pankso@21
|
154 </p>
|
pankso@21
|
155 <p>
|
pankso@21
|
156 In terms of configuration, whenever possible, the aim is to offer basic configuration files to run the package
|
pankso@21
|
157 directly. In the case of the web server LightTPD package, SliTaz supplies configuration files and startup scripts
|
paul@153
|
158 located in /etc/init.d (documented in the Handbook). For a new package, you are free to choose its default
|
pankso@21
|
159 configuration depending on what you think is easiest for the end user. On SliTaz you have <code>/usr/share/examples</code>
|
pankso@21
|
160 for example configurations and other kinds of useful infomation.
|
pankso@21
|
161 </p>
|
pankso@21
|
162
|
pankso@21
|
163 <a name="categories"></a>
|
pankso@21
|
164 <h3>Categories of packages</h3>
|
pankso@21
|
165 <p>
|
paul@29
|
166 The categories of packages exist only for informational purposes and are not fixed, the idea is to classify
|
pankso@21
|
167 packages so that a web page can be generated each night recovering data in the package receipt. For the short term, place
|
pankso@21
|
168 developement packages in 'devel', Xorg in 'x-window' and the variety of new packages in 'extra'
|
pankso@21
|
169 </p>
|
pankso@21
|
170
|
pankso@21
|
171 <a name="woktree"></a>
|
pankso@21
|
172 <h3>Structure of a package in the wok</h3>
|
pankso@21
|
173 <p>
|
paul@260
|
174 The structure of the packages in the wok should always be respected so that Tazwok can find the correct files and directories.
|
pankso@21
|
175 Possible contents of a package (note the directory taz/ is created at time of cooking):
|
pankso@21
|
176 </p>
|
pankso@21
|
177 <ul>
|
pankso@21
|
178 <li><code>stuff/</code> : The material used to configure, compile and generate the package
|
pankso@21
|
179 (patch(es), Makefile, pseudo fs, etc).</li>
|
paul@260
|
180 <li><code>taz/</code> : Directory tree containing the package Tazpkg generated, the compressed package is stored
|
paul@260
|
181 in the directory specified by $PACKAGES_REPOSITORY in the Tazwok configuraton file.</li>
|
pankso@21
|
182 <li><code>receipt</code> : The receipt (see
|
pankso@21
|
183 <a href="receipts.html">receipts</a>).</li>
|
paul@260
|
184 <li><code>description.txt</code> : (optional) The description of the package is copied to the root of the Tazpkg
|
paul@260
|
185 package. Once installed, Tazpkg knows how do deal with this file via 'tazpkg desc pkgname'.</li>
|
pankso@21
|
186 </ul>
|
pankso@21
|
187
|
pankso@21
|
188 <a name="pkgtree"></a>
|
paul@260
|
189 <h3>Structure of a Tazpkg package </h3>
|
pankso@21
|
190 <p>
|
pankso@21
|
191 The SliTaz packages are cpio archives containing files and a filesystem compressed with gzip:
|
pankso@21
|
192 </p>
|
pankso@21
|
193 <ul>
|
pankso@21
|
194 <li><code>fs/</code> : Pseudo filesystem containing all the files to install.</li>
|
pankso@21
|
195 <li><code>receipt</code> : The receipt (see receipt.txt).</li>
|
pankso@21
|
196 <li><code>files.list</code> : A list of files in the package.</li>
|
pankso@21
|
197 <li><code>description.txt</code> : The description of the package (optional).</li>
|
pankso@21
|
198 </ul>
|
pankso@21
|
199
|
pankso@21
|
200 <!-- End of content -->
|
pankso@21
|
201 </div>
|
pankso@21
|
202
|
pankso@21
|
203 <!-- Footer. -->
|
pankso@21
|
204 <div id="footer">
|
pankso@21
|
205 <div class="footer-right"></div>
|
pascal@550
|
206 <a href="wok-tools.html#top">Top of the page</a> |
|
pankso@21
|
207 <a href="index.html">Table of contents</a>
|
pankso@21
|
208 </div>
|
pankso@21
|
209
|
pankso@21
|
210 <div id="copy">
|
pascal@665
|
211 Copyright © 2010 <a href="http://www.slitaz.org/en/">SliTaz</a> -
|
pankso@21
|
212 <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
|
pankso@21
|
213 Documentation is under
|
pankso@21
|
214 <a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
|
pankso@21
|
215 and code is <a href="http://validator.w3.org/">valid xHTML 1.0</a>.
|
pankso@21
|
216 </div>
|
pankso@21
|
217
|
pankso@21
|
218 </body>
|
pankso@21
|
219 </html>
|
pankso@21
|
220
|