website annotate en/doc/cookbook/wok-tools.html @ rev 665

Update copyright year
author Pascal Bellard <pascal.bellard@slitaz.org>
date Thu Oct 21 09:53:47 2010 +0200 (2010-10-21)
parents b8788d938e18
children 0ae6cfc85e03
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 &amp; 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 &amp; 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 &copy; 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