I’ve packaged the latest release of my project as an AppImage, and also thought I’d give some feedback:
Apologies for wrapping it in a tarball, but I also wanted the distribution to include the manual, and that seemed the easiest way to accomplish that. One benefit I also see in this is that it keeps the executable bit that way, so the step of extracting replaces the step of making the file executable, which seems an acceptable trade-off to me.
Now to the recipe, or in my case recipes, as the AppImage is actually comprised of two separate packages, one providing the Adonthell RPG engine, the other the Waste’s Edge game data. Since there are no ready made binaries for either, I wrote scripts that wrap the standard configure, make, make install steps to populate and finalize the AppImage:
I used the same technique to generate OSX and Windows packages, so it was mostly an exercise in copy and paste.
There is just one bit of the process for which I have not found a satisfying solution: since Adonthell is embedding Python, i.e. it’s linked to libpython.so, and Waste’s Edge contains quite a few Python scripts that rely on the Python standard library to be present in a matching version, I had no alternative but to include a more or less complete Python environment in the AppImage. (It’s the same issue on Windows, so not really a problem with AppImages per se). The best I could come up with is a combination of virtualenv and modulefinder to include what is really needed without the bloat of a complete Python installation. Wondering if somebody has found better ways to go about this, though.
Anyway, long story short, I really like the approach taken by AppImage. The great advantage I see over solutions such as Snap or Flatpak is that no runtime is required on the users side. The creation process is simple enough, and the resulting, self-mounting image is quite elegant :-).
So thanks a lot for this great little piece of technology.
All the best,