Makeimg is dead, long live Makeimg!

One of my pet projects has a new home: makeimg.

But that’s not the best part! I finally finished moving the project away from both bash (to almost pure POSIX) as well as the various Arch Linux specific dependencies it was using. The result is that the tool can now be used on Alpine Linux as well (and in fact probably others). Of course you still need the Arch or Alpine specific tooling to bootstrap the base system. Conveniently, Arch provides apk-tools and Alpine provides pacman - which means you build both Arch and Alpine images from either host system!

I had initially dubbed this effort “project ibuild”, but decided to keep the name after all. A lot has changed, so while I did a quick first pass over the documentation, it still might need some updates. The examples work and have plenty of comments. There are still some issues to be ironed out that come with supporting multiple (potentially quite incompatible) distributions. The Arch example does not boot when built on Alpine, because systemd insists on mounting /dev/loop0p1 instead of the UUID it should be using. But other than that I am pretty satisfied with the result.

Fun fact: it took me a while to figure out how to make Alpine boot from a single partition (no /boot partition). The update-extlinux script that it ships does not really accommodate for any other setup than what the official installer creates. I couldn’t really find anything on the Internet, but I think I found a solution that works nicely while still letting the default tooling do its thing. Check out the Alpine example if you are interested.

I haven’t gotten around to updating the makeimg-meta.sr.ht project, but now that the overhaul of makeimg is complete (at least the IMGBUILD format should remain stable now), I will tackle that next and also go about providing even more image descriptions.

I hope that this will be useful to others. If you have any questions about it, drop them in my public inbox for now (so others can benefit from them, too). If that makes you feel uncomfortable, you can also reach out to my private email, though.