hn.today

From Thin Air to Bootable Images: The Tine Build System

amutable.com12 points0 comments
Screenshot of From Thin Air to Bootable Images: The Tine Build System

Tine is a Buck2-based build system designed to produce cryptographically verifiable, hermetic, and bitwise-reproducible operating system images while minimizing host dependencies and supporting fast developer iteration. It was created after evaluating mkosi, Open Build Service, BuildStream, and Antlir and rejecting them for being too opinionated, heavyweight, or awkward to bootstrap and extend. Requirements driving the design include minimal host requirements, full input pinning, integrated package import/update tooling, cheap world rebuilds, native bootable-image builds, monorepo-friendly iteration, first-class Go and Rust component builds, SBOM/scanner compatibility, and aggressive caching.

Technically, tine is a collection of opinionated Buck2 rules to build RPMs, Go modules, Rust crates, UKIs and images, with image signing via PKCS#11 or local keys. It bootstraps a fully pinned build environment from just git, python3 (for bootstrap) and user namespaces, using a boxed "BOX" concept: declared, cached build environments expressed in Starlark that act like reproducible containers. Buck2’s model (cells, targets, rules, actions hashed by inputs) provides correct incremental builds and shared-cache reuse. A walkthrough demonstrates setting up a repo, declaring a Fedora rawhide go.box, pinning a git revision for the duf project, and building it with tine’s go.package rule, illustrating how pinning, sandboxing, caching, and image construction work together to produce reproducible, scanner-compatible artifacts.

Read on amutable.com0 comments on Hacker News

Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.

More in Programming

The daily digest

Today's best Hacker News stories, summarized and screenshotted, one email a day.