r/linux • • 1d ago

Software Release arxy – minimal Arch subsystem to run glibc binaries (incl. Steam) on musl distros, at native speed

Hi everyone. I want to show you a project that honestly I'm pretty embarrassed to share, because it's the first time I share something with the general public. Sorry if I sound nervous. I just think it could be useful to someone, so here it is.

I collaborate on Neko Void, specifically on the part that makes images for musl, for the musl C library. And we all know how this goes: stuff made for glibc doesn't work on musl, you have to rebuild it. And proprietary software is hard to build because the source is not free. So most of those apps just don't work. Steam doesn't work by default either, and that's what makes a lot of users run away from musl distros.

There are alternatives. AppImage bundles glibc inside, but when you have a lot of AppImages you end up duplicating deps everywhere and it gets heavy. I also tried Nix as a separate subsystem, but it's extremely heavy even if it runs natively.

My goal was to make those apps run as fast and light as possible, with as little space as possible, without duplicating deps like Flatpak does. So I made arxy, it's a way too basic and simple project: an Arch rootfs that gets mounted so you can install whatever you want on it. Optimized to weigh as little as possible (~130MB tarball), but complete enough that most Arch packages work on any distro. Best part, it keeps AUR access (-bin only).

How it works is pretty simple: it mounts the image with bwrap, and if that's not available it falls back to a basic chroot + ld-linux. It shares /home, /tmp, GPU and kernel, so it runs native. Commands are simple: arxy install <pkg>, arxy update, arxy run <bin>. Since it uses real pacman, deps are shared, no duplication. It creates .desktop launchers normally.

It's one of the first projects I've worked on and I've put a lot of time into it. I'm no expert, so any feedback is welcome and I really invite anyone to collaborate. I tested it on Alpine, Chimera and Void, glibc and musl. I'd love reports from other distros, especially Gentoo musl and weird setups.

Repo, it's GPL-3.0: https://github.com/SrDicov/arxy

I'm the author, happy to answer technical questions here. What do you use for the glibc-on-musl gap?

7 Upvotes

7 comments sorted by

4

u/BeginningEcho4983 23h ago

Thanks, till now all such utility distros were makeshift copies with no proper maintainability.

It's good.

Though there is gcompat for purists, this one too has its place.

I'm nowhere close to a gentoo musl setup, busy with something else (gentoo-ostree), I'll surely be back and give feedback once I finish that

1

u/SrDicov 16h ago

I'm a bit of a purist myself, to be honest, and I feel that this kind of software somewhat defeats the purpose of choosing a musl-based distro over a glibc one. However, I understand that other people have different needs, and I actually built this tool with them in mind. Many users want to experiment and try new systems, but they hesitate to make the jump because their favorite game won't be compatible. I think this is a great workaround to bypass that limitation.

-12

u/Outside_Job7159 1d ago

nice, this is way cleaner than stacking appimages or trying to get flatpak to behave on musl. the bwrap/chroot fallback is a smart touch

130mb base is pretty lean for a full arch subsystem, does pacman pull in much extra once you start installing things or does it stay reasonable?

3

u/BeginningEcho4983 23h ago

B O T spotted here.