Create a Linux AppImage release
Would it be possible to release an AppImage of SimCoupé? This is especially important on the Steam Deck but is also on other operating systems where SimCoupé is not available.
Thanks!
I've had a quick look into this and it doesn't look like it should be too difficult. It seems to be just another container format, which should wrap up the existing file structure that goes into other packages. It might need a tweak of the resource path at most.
I'll have a proper look over this soon...
Yes AppImages are very easy to work with, just make sure to build on a bit older OS to provide maximum compatibility. This is especially important for glibc. I build on Ubuntu 20.04 LTS which provides good compatibility across a number of operating systems including SteamOS/Steam Deck.
If it's in any way helpful you can see the following script for how I create the AppImage for ES-DE:
https://gitlab.com/es-de/emulationstation-de/-/blob/master/tools/create_AppImage.sh
The official Linux releases are built (by package/make_linux_release.sh) on Ubuntu 20.04 LTS with care to statically link most libraries. I made sure it ran on a few live CDs, so it should be in reasonably good shape to go in an AppImage container.
The resources are usually read from <install_root>/share/simcoupe, but if that's a problem for AppImage I'll just move them next to the executable, where they should be found too. I should perhaps create a flat archive release for Linux too, taking advantage of that.
The internal directories can be a bit tricky with AppImages, I had to do some somehow ugly symlinks inside the AppImage directory structure to make it work but it's nothing that is visible to the user anyway and it's working reliably.
As for static linking and such that's a nice thing to do, but linuxdeploy will take care of bundling dependencies with the AppImage so normally you don't need to think too much about static linking when packaging stuff this way. It does cause quite big files though which is the drawback of this package format.
Also be aware that some newer distributions like Ubuntu 22.04 can't run AppImages by default as libfuse2 is missing. Just installing this library from the repository resolves the problem. I think the AppImage developer are working on a solution but it's not available yet.
Btw, please let me know when you have decided on the AppImage filename so that I can add it to the ES-DE configuration before I make the 1.2.6 release in a couple of weeks or so!