Goals
Kiln starts from source tarballs. It bootstraps a cross toolchain and temporary system the way Linux From
Scratch does, then rebuilds every package from a recipe with kiln build, so kiln tracks every file
on the system. Next come a live ISO for the installer, BIOS boot and a desktop.
Design
Recipes are plain shell. A recipe sets a name, version, release, source URL and sha256,
and can override build and package. kiln downloads the source, checks the
checksum, builds it and packs the result.
Every package carries a manifest. A .kpkg starts with
.KILN/meta.toml and .KILN/manifest, which lists every path with a sha256 for
each file. kiln records installed packages under /var/lib/kiln/installed/.
kiln won’t overwrite what it doesn’t own. It refuses files another package owns, and files
no package owns unless you pass --force. It renames each file into place, so a running program
never sees half a file. Upgrades delete the files a new version dropped.
Development
Kiln builds in a fixed Debian stable container as an unprivileged user, so nothing from your host leaks in.
Toolchain versions follow LFS 12.2. Every kiln command takes --root, and the bootstrap uses it
to install packages into the new root before Kiln can run on its own.
Kiln boots in QEMU from a UEFI disk image. The status page lists what works.
Contributing
You can help with new recipes, a check of the bootstrap scripts and checksums against the LFS book, or the part of kiln still to write: package signatures. Start with the contributing guide.