Creating distro build tooling for a small community
Chimera is a small project focused on serving its community, with minimal maintenance cost being crucial. The tooling aims to automate most of the mundane tasks and ensure a pleasant experience for packagers. The barrier to entry is kept low, making every user feel like a packager. To set up everything from scratch, the tooling provides utilities for maintaining a clean local repository, including pruning packages, maintaining versions and revisions, checking dependency graphs, updating sha256 checksums, and even supporting custom template-specific actions like building bootstrap tarballs. It offers aliases for less typing, integrates with git, and supports bulk packaging tasks.
The author's journey began with using Linux in 2006/7, settling on Debian for long-term use. They became involved in Debian's packaging community, eventually shifting to FreeBSD and experimenting with various adjacent projects. In 2016, the author started working with Void Linux, eventually becoming an upstream maintainer and focusing on improving build tooling. In 2021, they founded the Chimera Linux project, which eventually led to the abandonment of the FreeBSD POWER port, and the author now primarily uses Chimera.
Void Linux's build tooling is centered around a singular Git repository (void-packages), similar to ports systems on BSDs. However, Void uses templates instead of Makefiles for packaging software. Each template includes metadata fields, build logic functions, extra files, and patches. When building a package, xbps-src constructs a container representing a minimized Void system, populates it according to the template metadata, and runs the build within the container.
The resulting xbps packages are stored locally in a repository, allowing for easy installation. Unlike most other systems, the build process does not run on the system where the build is occurring, ensuring a clean, isolated environment.
Written by urgent.news from Lobsters's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.