Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:cookbook:wok [2012/04/06 13:04] linea Start to update |
en:cookbook:wok [2017/04/17 18:31] (current) hgt create package after writing recipe |
||
---|---|---|---|
Line 11: | Line 11: | ||
=== Wok Structure and Organisation === | === Wok Structure and Organisation === | ||
- | The //wok// is a directory structure that houses all the available packages. Each directory contains at least one receipt to download, unpack, compile and generate a package. Cookutils also needs to create a directory to store downloaded sources (//$SOURCES_REPOSITORY//, usually ///home/slitaz/src//) and a repository of generated packages (//$PACKAGES_REPOSITORY//, usually ///home/slitaz/packages//); these values can be configured in the ///etc/cookutils.conf// file. | + | The //wok// is a directory structure that houses all the available packages. Each directory contains at least one receipt to download, unpack, compile and generate a package. Cookutils also needs to create a directory to store downloaded sources (//$SOURCES_REPOSITORY//, usually ///home/slitaz/src//) and a repository of generated packages (//$PACKAGES_REPOSITORY//, usually ///home/slitaz/packages//); these values can be configured in the ///etc/slitaz/cook.conf// file. |
There is more than one Wok on the [[http://hg.slitaz.org|Mercurial repositories]]: | There is more than one Wok on the [[http://hg.slitaz.org|Mercurial repositories]]: | ||
Line 39: | Line 39: | ||
</code> | </code> | ||
- | More information on the use of the Mercurial VCS is available from its [[http://mercurial.selenic.com/|website]] and the "[[http://hgbook.red-bean.com/|Hg Book]]". | + | More information on the use of the Mercurial VCS is available from its [[http://mercurial-scm.org/|website]] and the "[[http://hgbook.red-bean.com/|Hg Book]]". |
=== Cloning the Wok === | === Cloning the Wok === | ||
Line 48: | Line 48: | ||
<code> | <code> | ||
- | $ hg clone http://hg.slitaz.org/wok/ /home/slitaz/wok | + | # cook setup --wok |
</code> | </code> | ||
Line 68: | Line 68: | ||
The process for generating a SliTaz package from source can be summarised thus: [[http://www.tuxfiles.org/linuxhelp/softinstall.html#s2|configure]], [[http://www.tuxfiles.org/linuxhelp/softinstall.html#s3|compile]] & [[http://linux.die.net/man/1/strip|strip]]. | The process for generating a SliTaz package from source can be summarised thus: [[http://www.tuxfiles.org/linuxhelp/softinstall.html#s2|configure]], [[http://www.tuxfiles.org/linuxhelp/softinstall.html#s3|compile]] & [[http://linux.die.net/man/1/strip|strip]]. | ||
- | <note>We do not carry out the '//make install//'-style step ourselves; the built files are not to be installed in the system but left in the output directory (_pkg), ready for packaging.</note> | + | <note>We do not carry out the '//make install//'-style step ourselves; the built files are not to be installed in the system but left in the output directory ($DESTDIR), ready for packaging.</note> |
When generating your first package, it is advisable to [[http://doc.slitaz.org/en:cookbook:devcorner#kiss-comply-to-standards|keep it simple]] and build your package without changing its receipt or seeking dependencies. M4 is an ideal candidate for your first //cook//: | When generating your first package, it is advisable to [[http://doc.slitaz.org/en:cookbook:devcorner#kiss-comply-to-standards|keep it simple]] and build your package without changing its receipt or seeking dependencies. M4 is an ideal candidate for your first //cook//: | ||
Line 76: | Line 76: | ||
When Cookutils has finished building M4, its package is placed in the directory specified by the configuration file (///home/slitaz///packages by default). If all went well, you can install the package on the host system or use it to generate a LiveCD distribution via Tazlito! | When Cookutils has finished building M4, its package is placed in the directory specified by the configuration file (///home/slitaz///packages by default). If all went well, you can install the package on the host system or use it to generate a LiveCD distribution via Tazlito! | ||
- | When you are familiar with [[en:cookbook:receipt|receipts]] and the compilation process, you can use the following command to create a new package interactively before writing its receipt: | + | When you are familiar with [[en:cookbook:receipt|receipts]] and the compilation process, you can use the following command to create a new package, after interactively writing its receipt: |
<code> # cook new <packageName> --interactive </code> | <code> # cook new <packageName> --interactive </code> | ||
Be sure to read the documentation on the options provided by the [[en:cookbook:receipt|receipt]] and the [[en:guides:tazwoktips|Tazwok Tips]] to avoid frustration! | Be sure to read the documentation on the options provided by the [[en:cookbook:receipt|receipt]] and the [[en:guides:tazwoktips|Tazwok Tips]] to avoid frustration! | ||
+ | |||
+ | === Cooking Multiple Packages with a cook list === | ||
+ | |||
+ | Cookutils can compile several packages with a single command. This is achieved with a //cooking list//, a text file of one package per line. Cookutils can accept a cook-list with the command of the same name; for example, to cook the //mypkgs// cook-list: | ||
+ | |||
+ | <code> # cook list mypkgs.cooklist </code> | ||
===== Package Compilation Options ===== | ===== Package Compilation Options ===== | ||
Line 94: | Line 100: | ||
=== Optimization === | === Optimization === | ||
- | The official SliTaz packages are optimized for **i486**, the optimization arguments used to configure are specified in **/etc/cookutils.conf** and can be called via the variable $CONFIGURE_ARGS. If you want to compile a package with different arguments, you can modify the Cookutils configuration file: | + | The official SliTaz packages are optimized for **i486**, the optimization arguments used to configure are specified in **/etc/slitaz/cook.conf** and can be called via the variable $CONFIGURE_ARGS. If you want to compile a package with different arguments, you can modify the Cookutils configuration file: |
- | <file> | + | <file bash> |
CONFIGURE_ARGS="--build=i486-pc-linux-gnu --host=i486-pc-linux-gnu" | CONFIGURE_ARGS="--build=i486-pc-linux-gnu --host=i486-pc-linux-gnu" | ||
</file> | </file> |