The whole project is a handful of scripts. Read them; that's the documentation.
$ git clone <cryolite pipeline repo> firefox && cd firefox $ ./fetch-icecat.sh # gnuzilla + makeicecat + src/ (~1h, mostly download) $ ./cryolite-release.sh FORCE_CYCLE=1 $ ./tests/smoke.sh obj-cryolite/dist/bin
Requirements: a 64-bit linux box with ~60GB free, the usual Firefox build deps (gtk3, libpulse, dbus-glib, python3-jsonschema), and wget/git. Rust, clang, node and cbindgen are fetched by ./mach bootstrap into ~/.mozbuild — no root needed for toolchains.
The patch layer is the product. Workflow:
src/ directly — it's a git repo with a pristine baseline commit.git diff the change into cryolite/patches/NNN-name.patch.rm -rf src && ./cryolite-release.sh FORCE_CYCLE=1 — the patch must apply clean onto a fresh tree.cryolite/pending/ until they earn promotion.Never edit gnuzilla/ — it's upstream's tree, pinned by tag. Everything Cryolite-specific belongs in the patch layer or the brand script.
All knobs live in env.sh: JOBS (parallelism), GNUZILLA_TAG (pin a base instead of auto-resolving), TEST_CMD (your own gate), CYCLE_DAYS (cadence). Scripts are idempotent and safe to re-run; the cycle gate is cryolite/LAST_CYCLE, overridable with FORCE_CYCLE=1.