Hamnix packages

Repository for the Hamnix package manager (hpm). Top-level directories under this site are channels mirroring Debian's main / contrib / non-free / non-free-firmware split. hpm talks to each channel's index.json and downloads packages by URL + SHA-256.

Channels

ChannelIndexPackagesDescription
main main/index.json main/packages/ First-party / free software. Enabled by default. Holds hamnix-base (metapackage), every component (init/hamsh/coreutils/net/sshd/hpm/fs/drivers/installer/bootloader), and linux-debian-12.
non-free non-free/index.json Reserved for software whose licence isn't DFSG-free. Placeholder today; opt in with hpm enable non-free.
non-free-firmware non-free-firmware/index.json Reserved for binary firmware blobs (wifi, GPU, camera). Placeholder today; opt in with hpm enable non-free-firmware.

Using hpm

hpm channels                       # list enabled channels
hpm enable non-free-firmware       # subscribe to non-free-firmware
hpm refresh                        # fetch every enabled channel's index
hpm install hamnix-base            # metapackage — pulls in the full OS

The Hamnix live installer drives the same hpm install pipeline against an ISO-bundled mini-repo at file:///iso-packages/main/ rather than over HTTPS, but the package format and dependency-graph logic are identical.

Package format

A Hamnix package is a gzipped tar containing a top-level directory named <name>-<version>/ with this layout:

hamnix-init-1.0.0/
├── PKGINFO         # key:value metadata (name, version, arch, depends, ...)
├── files/          # files to install into the target namespace
│   └── init        # → /init on the target
│   └── etc/
│       └── rc.boot # → /etc/rc.boot on the target
└── install.hamsh   # optional post-install hook

See the repo README for the full schema and channel notes.

Links