Hi everyone.
I want to show you a project that honestly makes me a bit embarrassed to share, just because it's the first time I share something with the general public. But I think it might be useful to someone, so here it goes.
I collaborate on a project called Neko Void, specifically I got interested in the part that makes Neko Void images for musl, for the musl C library. And we all know how it is: stuff made for glibc doesn't work on musl, you have to rebuild it. And proprietary software is basically impossible to rebuild because the source isn't free. As a result, on Alpine/musl most proprietary apps just don't work. Practically 100% of closed-source programs fail. Steam doesn't work by default either, and well, that's what makes most users run away.
I've been working on a solution. There are many alternatives to run glibc stuff on musl distros. One is using AppImage, which bundles glibc inside, but it has a problem: when you have many apps packaged as AppImage, dependencies get repeated over and over and in the long run it gets really heavy. Another alternative I tried was installing Nix as a separate subsystem, but it's extremely heavy even if things run natively.
My goal when I started this was to make proprietary apps run in the fastest and lightest way possible, using as little space as possible, without duplicating dependencies like Flatpak does. So I made arxy, which is a very basic and simple project. It's an Arch rootfs that gets mounted so you can install whatever you want on it. It's optimized to weigh as little as possible, but it keeps enough so most Arch packages, if not 100%, work correctly on any existing Linux distro, including Alpine. And best of all, it keeps AUR access.
The process it uses is pretty simple. It mounts the image with bwrap and if that's not available, it uses a basic chroot. And it has very simple commands, like arxy install <package> or arxy update. In short, it installs any app directly from the official Arch repos or from the AUR in a small subsystem, sharing drivers, kernel and other things, so it runs as native and direct as possible. By using Arch's own package manager, there's no dependency duplication, because packages naturally share dependencies. So you can install here everything you'd install via Flatpak, but saving space and running better. The program creates shortcuts for the apps on your desktop normally and they open normally.
As I said, it's one of the first projects I've worked on and I've put a lot of my time into it, and I'd love for you to take a look. I'm still learning, so I really invite anyone who can to collaborate. Any feedback is totally welcome. The project is made to work on any distro, but I personally tested it on Alpine Linux, Chimera Linux and Void Linux, both glibc and musl. I invite you to try it on other distros and well, I hope you like it.
Repo: https://github.com/SrDicov/arxy
For Alpine users specifically: how do you currently deal with closed-source / glibc-only apps on Alpine? I'd love to hear what breaks for you and if this approach helps.