.xx
xxxx
xxxxxx
xxxxxxx
xxxxxxxxx
.xx ;xxxxxx
xx xxxxxxx
xx+ xxxxxx+
xxx xxxxxx
xxx xxxxxx
.xx ;xxxxxx
xx xxxxxxx
xx+ xxxxxx;
xxxxxxxxxxxxxxxxxxxxxxx
xxx xxxxxx
.xx +xxxxxx
xx xxxxxxx
xx+ xxxxxx:
xxx xxxxxx
xxxx xxxxxxx
xxxxxxxxx;: :xxxxxxxxxxxxx:
arctic is a linux distribution built from source, pairing a BSD userland (toybox, zsh, doas, netbsd-curses, bmake) with glibc and an LLVM toolchain underneath. busybox handles init. packages install through alpm, its own package manager, with per-file verification and one-command rollback built in. a musl libc port is currently underway as an alternative base.
STATUS: arctic-minimal boots and installs end to end — Limine → kernel → initramfs → busybox init → zsh, with alpm installing from the repository carried on the medium. no desktop image exists yet, by design.
# wired is automatic, for wireless: iwctl station wlan0 connect YOUR-NETWORK mount /dev/nvme0n1p1 /mnt # arctic-conf asks the questions and writes an answer file # arctic-strap installs from it, non-interactively arctic-conf /mnt arctic-strap /mnt mount /dev/nvme0n1p2 /mnt/boot arctic-boot-conf /mnt/boot arctic-boot-strap /mnt/boot --efi reboot
every build runs sandboxed under bubblewrap — the host is mounted read-only, only the build tree and /tmp are writable. that is not a formality: a recipe that forgets DESTDIR once installed glibc straight over a host's /usr/lib. it now just fails with EROFS instead.
build/arctic-sandbox --check build/build.sh
502 packages are defined in ports/manifest.tsv, with recipes generated from it rather than hand-written. adding a port means adding a line to the manifest, not boilerplate.
pull requests welcome on github.