The contract between "what you chose" and "what gets built."
Keru's profile system is the hand-off between your decisions and the build. It's a small, open design:
installer/install.sh) walks each swappable and records your picks.make.conf — plain, readable, human-editable.scripts/build-root.sh sources the profile and drives Kama with those exact settings.| Layer | What it holds |
|---|---|
| Swappables | INIT, LIBC, TARGET_FS, KERNEL, SUDO, NET. |
| Base set | BASE_PACKAGES — what every system gets (base toolchain openssh). |
| System config | LOCALE, TIMEZONE, KEYMAP. |
| Build env | CFLAGS, CXXFLAGS, LDFLAGS, JOBS, MAKEFLAGS. |
| Mirrors & cache | SOURCE_MIRROR, ROOT, CACHEDIR. |
| Kama behavior | PURGE_TEMP_DEPS, FAIL_FAST. |
The installer is convenient, not precious. The profile it writes is just a text file — change INIT=s6, tweak CFLAGS, add a package to BASE_PACKAGES, and rebuild. The "craft your system" ethos extends past install into the profile itself.
make.conf is the full description of the system. Read, edit, rebuild.