The package manager works. The recipe format works. CI builds packages for
both x86_64 and aarch64 and publishes them automatically. What’s missing is
packages — enough of them to make a system you can actually use.
That’s where the road heads next. We’ve sketched out three broad milestones that lay the course for which packages will be added and in roughly what order.
Three milestones
1. Bootable networked system
Goal: Mere boots on real hardware or a VM, initializes services with s6, connects to the network, and builds its own packages.
Most of the toolchain and core libraries are already built. What remains is the kernel, s6, a bootloader, device management, and the filesystem tools needed to get from power-on to a shell prompt.
2. Graphical desktop
Goal: A Wayland compositor runs on Mere with a terminal emulator. You can log in graphically and work in a terminal.
This means building the graphics stack — mesa, libdrm, libinput, wayland, freetype, fontconfig, cairo, pango — and a compositor and terminal on top.
The first compositor is likely to be river and we’ll play around with different compatible Window Managers.
3. Web browser
Firefox builds and runs on Mere.
Firefox pulls in GTK, dbus, audio, video codecs, NSS, Rust, and dozens of supporting libraries. If Firefox runs, the distro is real.
Following along
Each milestone lives on Codeberg. In the coming days and weeks, we’ll be building out the shape of those milestones through individual package recipes being added and built. You’ll be able to monitor the progress through the repository activity there.
Every package built is also a working example of how to write a recipe. The format is intentionally simple — reading a few existing recipes and the recipe specification should get you started. If you want to try building one locally, it would be something like this:
mere key generate
mere dev build recipes/core/jq/recipe.kdl
mere dev import local
This fetches sources, enters a namespace, runs the build phases, and produces
a package. If the build fails, mere drops you into a debug shell inside the
namespace so you can poke around.
Stay tuned for more detailed developer workflow docs.