website annotate en/devel/index.html @ rev 669

Move year to slitaz.css
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Oct 30 21:52:02 2010 +0200 (2010-10-30)
parents 0e0bc81a63ee
children 18040398d744
rev   line source
pankso@6 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
pankso@6 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
pankso@6 3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
pankso@6 4 <head>
pankso@6 5 <title>SliTaz - Developers corner</title>
pankso@6 6 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
pankso@6 7 <meta name="description" content="SliTaz GNU/Linux project information overview" />
pankso@6 8 <meta name="keywords" lang="en" content="about slitaz, gnu, linux, mini distro, livecd" />
pankso@6 9 <meta name="robots" content="index, follow, all" />
pankso@6 10 <meta name="revisit-after" content="7 days" />
pankso@6 11 <meta name="expires" content="never" />
paul@508 12 <meta name="modified" content="2009-06-13 21:15:00" />
pankso@6 13 <meta name="author" content="Christophe Lincoln"/>
pankso@6 14 <meta name="publisher" content="www.slitaz.org" />
pankso@6 15 <link rel="shortcut icon" href="../../favicon.ico" />
pankso@6 16 <link rel="stylesheet" type="text/css" href="../../slitaz.css" />
pascal@537 17 <link rel="Content" href="index.html#content" />
pankso@6 18 </head>
pankso@6 19 <body bgcolor="#ffffff">
pankso@6 20 <!-- Header -->
pankso@6 21 <div id="header">
pankso@6 22 <a name="top"></a>
pankso@6 23 <!-- Access -->
pankso@6 24 <div id="access">
paul@661 25 <img
paul@661 26 src="../../pics/website/locale.png"
paul@661 27 style="vertical-align: middle; width: 20px; height: 20px;"
paul@661 28 alt="language" />
pascal@535 29 <a href="../../de/devel/index.html">Deutsch</a> |
pascal@535 30 <a href="../../fr/devel/index.html" title="Développement en français">Français</a> |
pascal@535 31 <a href="../../pt/devel/index.html">Português</a>
pankso@6 32 </div>
pascal@535 33 <a href="http://www.slitaz.org/en/index.html"><img id="logo"
pankso@6 34 src="../../pics/website/logo.png" title="www.slitaz.org/en" alt="www.slitaz.org"
pankso@6 35 style="border: 0px solid ; width: 200px; height: 74px;" /></a>
pankso@6 36 <p id="titre">#!/GNU/Linux</p>
pankso@6 37 </div>
paul@619 38
paul@619 39 <!-- Navigation menu -->
pankso@6 40 <div id="nav">
paul@619 41
paul@619 42 <div class="nav_box">
paul@619 43 <h4>Navigation</h4>
pankso@424 44 <!-- General -->
pankso@424 45 <ul>
pascal@535 46 <li><a href="../about/index.html" title="Information about the SliTaz project">About the project</a></li>
pascal@535 47 <li><a href="../asso/index.html" title="SliTaz non-profit association">Association</a></li>
paul@619 48 <li><a href="../get/index.html" title="Download - LiveCD ISO">Download</a></li>
pascal@535 49 <li><a href="../doc/index.html" title="LiveCD usage and howto">Documentation</a></li>
pascal@535 50 <li><a href="../packages/index.html" title="Packaged software">Packages</a></li>
pascal@535 51 <li><a href="../devel/index.html" title="Developers corner">Development</a></li>
paul@619 52 <li><a href="../mailing-list.html" title="Support, contact and collaboration">Mailing List</a></li>
pascal@535 53 <li><a href="../artwork/index.html" title="Artwork, colors and images">Artwork</a></li>
pankso@424 54 <li><a href="../search.html" title="Search engine">Search</a></li>
pankso@424 55 <li><a href="../sitemap.html" title="Web site overview">Sitemap</a></li>
pankso@424 56 </ul>
pankso@6 57 </div>
pankso@6 58
paul@619 59 <!-- SliTaz network -->
paul@619 60 <div class="nav_box">
paul@619 61 <h4>SliTaz Network</h4>
paul@619 62 <ul>
paul@619 63 <li><a href="http://forum.slitaz.org/">Community Forum</a></li>
paul@619 64 <li><a href="http://doc.slitaz.org/en:start">Wiki Documentation</a></li>
paul@619 65 <li><a href="http://labs.slitaz.org/">SliTaz Laboratories</a></li>
paul@619 66 <li><a href="http://labs.slitaz.org/issues">Bug Tracking</a></li>
paul@619 67 <li><a href="http://boot.slitaz.org/">SliTaz Web Boot</a></li>
paul@619 68 <li><a href="http://twitter.com/slitaz">SliTaz on Twitter</a></li>
paul@619 69 <li><a href="http://distrowatch.com/slitaz">SliTaz on DistroWatch</a></li>
paul@619 70 </ul>
paul@619 71 </div>
paul@619 72
pankso@6 73 </div>
pankso@6 74
pankso@6 75 <!-- Content -->
pankso@6 76 <div id="content">
pankso@6 77 <a name="content"></a>
pankso@6 78
paul@270 79 <h1><font color="#3e1220">Development</font></h1>
pankso@6 80 <h2><font color="#df8f06">SliTaz Developers corner</font></h2>
pankso@6 81
pankso@17 82 <ul>
pascal@535 83 <li><a href="index.html#kiss">KISS and comply to standards.</a></li>
pascal@535 84 <li><a href="index.html#tank">Build host &amp; home.</a></li>
pascal@535 85 <li><a href="index.html#repos">Mercurial repositories.</a></li>
pascal@535 86 <li><a href="index.html#iconv">Implementation of iconv().</a></li>
pascal@535 87 <li><a href="index.html#pkgs">Tazpkg packages.</a></li>
pascal@535 88 <li><a href="index.html#pkgs-naming">Naming of packages.</a></li>
pascal@535 89 <li><a href="index.html#website">Website Management.</a></li>
pascal@535 90 <li><a href="index.html#xhtml">xHTML coding style.</a></li>
pankso@21 91 <li><a href="../mailing-list.html">Mailing List.</a></li>
pankso@21 92 <li><a href="../doc/cookbook/wok-tools.html">Wok &amp; Tools.</a></li>
pankso@343 93 <li>Mercurial Repositories: <a href="http://hg.slitaz.org" >hg.slitaz.org</a></li>
paul@508 94 <li>SliTaz Laboratories: <a href="http://labs.slitaz.org/">labs.slitaz.org</a></li>
paul@508 95 <li><a href="http://labs.slitaz.org/wiki/distro">Developers Wiki</a></li>
pankso@17 96 </ul>
pankso@17 97
pankso@6 98 <p>
pankso@6 99 SliTaz is an open source and community driven distribution. Everyone is welcome
paul@166 100 to join and contribute, from users, to hackers and developers, there is always
pankso@6 101 something to do, ie. Proofreading or writing documentation, sending bugs or
pankso@6 102 patches to the Mailing list, gaining access to the wok and pushing some new
pankso@17 103 packages or simply to help others on the Mailing list or forum. SliTaz has got
pankso@17 104 Mercurial repositories hosted on a SliTaz system, developers can ask for a new
pankso@17 105 repo if needed and contributors have write access to correct typos, scripts, etc.
pankso@17 106 </p>
pankso@17 107 <p>
paul@155 108 SliTaz is a tiny community and listens to its users. There are several
pankso@17 109 developers who are active on the <a href="http://forum.slitaz.org/">forum</a>
pankso@17 110 and the <a href="../mailing-list.html">Mailing List</a>.
pankso@6 111 </p>
paul@509 112 <p>
paul@509 113 For artists there is a dedicated website, simply create an account and
paul@509 114 post your graphics or pictures. The site is managed by the community. If
paul@509 115 you want to lend a hand to administer the site, please contact a
paul@509 116 contributor or e-mail the discussion list. The website art.slitaz.org:
paul@509 117 <a href="http://art.slitaz.org/">SliTaz Community Art</a>
paul@509 118 </p>
pankso@6 119
paul@508 120 <a name="kiss"></a>
paul@508 121 <h3>KISS and comply to standards</h3>
paul@508 122 <p>
paul@508 123 Keep it simple: follow the best standards, carefully draft and write
paul@508 124 high quality documentation, provide a stable and robust system and keep
paul@508 125 the <em>rootfs</em> on the LiveCD light enough to run on machines with at
paul@508 126 least 128 MB RAM. It's also possible to use GTK+2, Dialog, SHell scripts,
paul@508 127 or PHP coding tools on the distribution. The idea is not to duplicate and
paul@508 128 to think small...
paul@508 129 </p>
paul@508 130
paul@256 131 <a name="tank"></a>
paul@256 132 <h3>Tank - Build host &amp; home</h3>
paul@256 133 <p>
paul@509 134 Each contributor may have an account on the project server with secure
paul@509 135 access, disk space, a public directory and all development tools.
paul@509 136 Developers can compile packages and maintainers of the mirror can handle
paul@509 137 sychronization. Tank also hosts the website, web boot and mercurial
paul@509 138 repositories: <a href="http://tank.slitaz.org/">tank.slitaz.org</a>
paul@509 139 </p>
paul@509 140 <p>
paul@509 141 Instructions on using the build host are described in the Cookbook:
paul@509 142 <a href="../doc/cookbook/build-host.html">SliTaz Build Host (tank)</a>.
paul@256 143 </p>
paul@256 144
pankso@6 145 <a name="repos"></a>
pankso@6 146 <h3>Mercurial repositories</h3>
pankso@6 147 <p>
pankso@6 148 SliTaz Mercurial or Hg repos can be browsed or cloned by anyone using the URL:
pankso@6 149 <a href="http://hg.slitaz.org/">http://hg.slitaz.org/</a>. People with write
paul@166 150 access can directly use <code>repos.slitaz.org</code> which requires authentication.
pankso@6 151 Mercurial uses Python and is installable with:
pankso@6 152 <code>tazpkg get-install mercurial</code>
pankso@6 153 </p>
pankso@6 154 <h4>~/.hgrc</h4>
pankso@6 155 <p>
paul@166 156 Before you push your first commit onto the server, be sure that you have a correct
paul@166 157 Hg configuration file with your name and email address, and remember to check
pankso@6 158 that you are not root. Personal ~/.hgrc file example:
pankso@6 159 </p>
pankso@6 160 <pre class="script">
pankso@6 161 [ui]
MikeDSmith25@117 162 username = FirstName LastName &lt;you@example.org&gt;
pankso@6 163 </pre>
pankso@6 164 <h4>Clone, modify, commit and push</h4>
pankso@6 165 <p>
paul@256 166 Clone a repo, example for wok:
pankso@6 167 </p>
pankso@6 168 <pre>
paul@256 169 $ hg clone http://repos.slitaz.org/wok
pankso@6 170 </pre>
pankso@6 171 <p>
paul@256 172 Change directory to wok, note you must be in the repository to be able
pankso@6 173 to use 'hg' commands. To check all logs or just the last log:
pankso@6 174 </p>
pankso@6 175 <pre>
pankso@6 176 $ hg log
pankso@6 177 $ hg head
pankso@6 178 </pre>
pankso@6 179 <p>
paul@256 180 Add or modify one or more files and commit:
pankso@6 181 </p>
pankso@6 182 <pre>
paul@256 183 $ hg add
pankso@6 184 $ hg status
pankso@6 185 $ hg commit -m "Log message..."
pankso@6 186 $ hg log
pankso@6 187 </pre>
pankso@6 188 <p>
pankso@6 189 Note that you can use the command <code>rollback</code> to roll back to the last
paul@166 190 transaction. Before pushing changes to the server, it is safe to pull once:
pankso@6 191 </p>
pankso@6 192 <pre>
pankso@6 193 $ hg pull
pankso@6 194 $ hg push
pankso@6 195 </pre>
pankso@6 196 <p>
pankso@6 197 Done, your changes, code or corrections are now on the server.
pankso@6 198 </p>
paul@256 199 <h4>Updating a local wok</h4>
paul@256 200 <p>
paul@257 201 To update your wok with the local server (<em>pull</em> to pull the changes):
paul@256 202 </p>
paul@256 203 <pre>
paul@256 204 $ hg pull
paul@256 205 $ hg update
paul@256 206 </pre>
paul@257 207 <h4>Useful commands</h4>
paul@256 208 <p>
paul@256 209 Hg commands that can be used.
paul@256 210 </p>
paul@256 211 <ul>
paul@256 212 <li><code>hg help</code> : Display the full list of commands.</li>
paul@256 213 <li><code>hg rollback</code> : Undo the last action performed (commit,
paul@256 214 pull, push).</li>
paul@256 215 <li><code>hg log &lt;package&gt;</code> : Display a package log.</li>
paul@256 216 <li><code>hg head</code> : Display the last log.</li>
paul@256 217 </ul>
pankso@6 218
paul@508 219 <a name="iconv"></a>
paul@508 220 <h3>Implementation of iconv()</h3>
paul@508 221 <p>
paul@580 222 SliTaz uses iconv() provided by GNU glibc - any packages that offer
paul@580 223 <code>libiconv</code> must use the library contained in <code>glibc-locale</code>.
paul@508 224 There is therefore no longer a libiconv package (1.2 MB) in SliTaz.
paul@508 225 </p>
paul@508 226
pankso@17 227 <a name="pkgs"></a>
pankso@17 228 <h3>Tazpkg Packages</h3>
pankso@17 229 <p>
MikeDSmith25@117 230 The tazpkg packages in SliTaz are automatically created via Tazwok and a
MikeDSmith25@117 231 receipt in the wok. The Cookbook describes the
pankso@21 232 <a href="../doc/cookbook/wok-tools.html">use of tools</a>
MikeDSmith25@117 233 and the format of <a href="../doc/cookbook/receipts.html">receipts</a>.
pankso@17 234 These are required reading before we begin.
pankso@17 235 </p>
pankso@17 236 <p>
pankso@17 237 In terms of choice of package, the idea is to offer a package by task or
pankso@17 238 functionality, ie. the lightest application in the field and not duplicated.
pankso@17 239 Note that the current packages are not immutable, if you find an alternative
pankso@17 240 that is lighter, with more features or more <em>sexy</em> for a few extra KB,
pankso@17 241 you can suggest it on the Mailing List. Particular attention is given to
paul@159 242 packages for the LiveCD, these should be stripped, removing unnecesary
pankso@17 243 dependancies and compiler options. In general candidate packages for the core
pankso@17 244 LiveCD are discussed on the Mailing List.
pankso@17 245 </p>
pankso@17 246 <p>
pankso@17 247 Before you begin to compile and create packages for SliTaz, be sure that the
paul@538 248 work doesn't already exist in the
paul@538 249 <a href="http://download.tuxfamily.org/slitaz/packages/undigest/">undigest</a>
paul@538 250 wok provided by the primary SliTaz mirror. Don't forget that the members
paul@538 251 of the list are there to help you and that the documentation of the
pankso@21 252 <a href="../doc/cookbook/wok-tools.html">wok and tools</a>
pankso@17 253 exists to help you get started.
pankso@17 254 </p>
pankso@17 255
paul@508 256 <a name="pkgs-naming"></a>
paul@508 257 <h3>Naming of packages</h3>
paul@508 258 <p>
paul@508 259 In most cases the package name is the same as the source, except for
paul@580 260 Python, Perl, PHP, Ruby and Lua modules. For example, the package
paul@508 261 providing a Kid template system written in Python and XML is named:
paul@508 262 <code>python-kid</code>.
paul@508 263 </p>
paul@508 264
paul@18 265 <a name="website"></a>
pankso@17 266 <h3>Website Management and Books</h3>
pankso@17 267 <p>
paul@256 268 The website and books (Handbook and Cookbook) are managed via
paul@257 269 a mercurial repository, they can be cloned by:
pankso@17 270 </p>
pankso@17 271 <pre>
paul@256 272 $ hg clone http://hg.slitaz.org/website
paul@256 273 Or if you have the proper permissions:
paul@256 274 $ hg clone http://repos.slitaz.org/website
pankso@17 275 </pre>
paul@256 276
paul@508 277 <a name="xhtml"></a>
paul@508 278 <h3>xHTML coding style</h3>
paul@508 279 <p>
paul@508 280 The pages and different <em>books</em> are coded in xHTML 1.0
paul@508 281 transitional. The colors for the <code>body</code> and the titles
paul@508 282 are placed directly on the page so the links are easy to follow.
paul@508 283 The title of level 1 is used only once (at the top), level 2 is
paul@508 284 the title of the document and levels 3 and 4 are then used for
paul@508 285 the subtitles. If a list is used instead using smart anchors;
paul@508 286 then that starts at the top, just after the title of level 2.
paul@508 287 Paragraphs are contained in the tags <code>&lt;p&gt;&lt;/p&gt;</code>.
paul@508 288 For indentation, we use tabs - the reason being semantics and to take
paul@508 289 up less space in terms of octets (bytes). To put code, like the name of
paul@508 290 a command inside a paragraph: <code>&lt;code&gt;</code> is the preferred
paul@508 291 method. To view commands or to utilize a terminal, the web pages use
paul@508 292 <code>&lt;pre&gt;</code> to display the formatted text. Example:
paul@508 293 </p>
paul@508 294 <pre>
paul@508 295 $ command
paul@508 296 </pre>
paul@508 297 <p>
paul@508 298 To view text that can be copied and pasted, such as scripts,
paul@508 299 bits of code, sample configuration files, etc - we also use
paul@508 300 <code>&lt;pre&gt;</code>, but with a CSS class named "script". Example:
paul@508 301 </p>
paul@508 302 <pre class="script">
paul@508 303 &lt;pre class="script"&gt;
paul@508 304
paul@508 305 code...
paul@508 306
paul@508 307 &lt;/pre&gt;
paul@508 308 </pre>
paul@508 309 <p>
paul@508 310 The <em>emphasized</em> words put themselves in the tag <code>&lt;em&gt;</code>
paul@508 311 and internal links are relative. Remember to check the validity
paul@508 312 of the code via the online <em>validator</em> of the W3C.
paul@508 313 </p>
paul@508 314
paul@508 315 <h3>Diff and patch</h3>
pankso@17 316 <p>
pankso@17 317 The utilities <code>diff</code> and <code>patch</code> are command-line tools
paul@256 318 for creating and implementing a file containing differences between two files.
paul@256 319 This technique is often used for collaboration and the changes made to the
paul@256 320 original file can be clearly extracted. To create a <code>diff</code> file
paul@256 321 readable by humans in a simple text editor, you must supply the <code>-u</code> option:
pankso@17 322 </p>
pankso@17 323 <pre>
pankso@17 324 $ diff -u file.orig file.new &gt; file.diff
pankso@17 325 </pre>
pankso@17 326 <p>
pankso@17 327 To apply a patch:
pankso@17 328 </p>
pankso@17 329 <pre>
pankso@17 330 $ patch file.orig file.diff
pankso@17 331 </pre>
pankso@6 332
pankso@6 333 <!-- End of content with round corner -->
pankso@6 334 </div>
pankso@6 335 <div id="content_bottom">
pankso@6 336 <div class="bottom_left"></div>
pankso@6 337 <div class="bottom_right"></div>
pankso@6 338 </div>
pankso@6 339
pankso@6 340 <!-- Start of footer and copy notice -->
pankso@6 341 <div id="copy">
pankso@6 342 <p>
paul@508 343 Last modification : 2009-06-13 21:15:00 -
pascal@535 344 <a href="index.html#top">Top of the page</a>
pankso@6 345 </p>
pankso@6 346 <p>
pascal@669 347 Copyright &copy; <span class="year"></span> <a href="http://www.slitaz.org/">SliTaz</a> -
pankso@6 348 <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>
pankso@6 349 </p>
pankso@6 350 <!-- End of copy -->
pankso@6 351 </div>
pankso@6 352
pankso@6 353 <!-- Bottom and logo's -->
pankso@6 354 <div id="bottom">
pankso@6 355 <p>
pankso@6 356 <a href="http://validator.w3.org/check?uri=referer"><img
pankso@6 357 src="../../pics/website/xhtml10.png" alt="Valid XHTML 1.0"
pankso@6 358 title="Code validé XHTML 1.0"
pankso@6 359 style="width: 80px; height: 15px;" /></a>
pankso@6 360 </p>
pankso@6 361 </div>
pankso@6 362
pankso@6 363 </body>
pankso@6 364 </html>