Recipes
A recipe is a directory, recipes/<name>/, holding a shell file called template. It sets variables and can define functions.
# Compression library used by almost everything.name=zlibversion=1.3.1release=1summary="Compression library implementing the deflate method"license=Zlibhomepage=https://zlib.netsource="https://zlib.net/fossils/zlib-${version}.tar.gz"sha256=9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23
build() { ./configure --prefix=/usr make -j"$JOBS"}
package() { make DESTDIR="$destdir" install rm -f "$destdir/usr/lib/libz.a"}Variables
Section titled “Variables”| Variable | Required | Notes |
|---|---|---|
name, version, release |
yes | release must be a number |
source |
yes | URL of the source tarball |
sha256 |
yes | Checked before unpacking |
summary, license, homepage |
no | |
depends |
no | Bash array of package names |
Functions
Section titled “Functions”build and package run inside the unpacked source directory. If a recipe doesn’t define them, the defaults are:
build() { ./configure --prefix=/usr && make -j"$JOBS"; }package() { make DESTDIR="$destdir" install; }package must install into $destdir. $JOBS defaults to nproc.
What kiln build does
Section titled “What kiln build does”- Downloads
sourceintosources/besiderecipes/, unless it’s already there. - Checks it against
sha256. - Unpacks it under
build/<name>/, then runsbuildandpackage. - Packs
$destdirintopackages/<name>-<version>-<release>.<arch>.kpkg.