Distros make default software choices all the time, it’s part of what being a distro is. Box64 isn’t left out since it’s packaged in Fedora (and I don’t think anyone ever proposed not doing so).
The first game I tried with box64 - which is a game in fact demoed on the box64 website - fails to launch on Fedora since it wants an x86_64 copy of libstdc++.so.6
. I know you ship a bunch of those as binary blobs upstream, but that solution won’t work for Fedora policies, which is why they aren’t part of the package (built with -DNO_LIB_INSTALL
). So perhaps someone should step up to figure out how to package non-thunked x86_64 libs in the Fedora package in a clean, maintainable way, using the Fedora builds of those libs just like we do for the FEX RootFS. That would make box64 a more usable option out of the box.
In any case, as you know, all this work is a volunteer effort. On the Asahi side we focused on FEX since 32-bit support is essentially mandatory for many applications that end-users want to run. box64 might be catching up to that now with box32, but it’s not ready yet, while FEX works today. I know the box64 solution has different trade-offs and works better for some use cases, but at the end of the day neither solution is perfect, and for better or worse distros are going to have to choose one to fully integrate first.
that box64 package is severly out of date. More than 1.5 year old.
The version currently packaged in all supported Fedora versions is box64 0.2.8, which was released in May this year.
Also also, box64 is compatible with 16k pagesize, and can run many games and program out-of-the box on 16k pagesize.
box64 uses hacks to support the 16K page size, which by their nature, can never achieve full compatibility (e.g. Wine does not work, as you know). Absent some significant breakthrough, a 4K VM or similar solution will be necessary for full compatibility on systems running with 16K pages, and at that point both box64 and FEX are on equal footing. While I do encourage people to use box64 where it works, I don’t think shipping it as the default x86 emulation solution without a VM on 16K systems like Fedora Asahi Remix is something I’d ever consider on my end, because it quite simply isn’t and will never be a solution with full compatibility, by its nature.
More constructively, I think it would be nice to have some kind of binfmt dispatch layer in the future, so both box64 (with or without a VM on 16K systems) and FEX can be used depending on what the user is trying to run exactly, with the best option chosen on an app/game-by-game basis. We’ve discussed this before but so far it’s been just an idea. If box64 learns how to use the libs in the FEX RootFS we are already integrating, that would give us a best-of-both-worlds solution and it would be a good reason to ship both options by default.
(Disclaimer: I don’t speak for Fedora, just for the Asahi Linux project, but as we’ve been the ones pushing for this Change and the FEX integration, I hope this helps clarify why we made that choice.)