Create an official portable Linux distribution
It would be nice to have an official portable Linux distribution, so that one can use Doomsday even if it's not in their distribution repositories. The goal is to be able to run Doomsday on any Linux distribution that's not very old (like, released after 2014 or so), without having to install any libraries or compile anything.
AppImage (http://appimage.org/) or Flatpak (http://flatpak.org/) are two potential solutions that can be used for this. I tend to have a preference for AppImage, mostly because it can be made to work on old distributions easier (from what I've heard; I don't have actual experience with Flatpak, but Flatpak seems to require a runtime, unlike AppImage which just needs FUSE support enabled). Other benefits of AppImage include:
- optional desktop integration (desktop menu entries),
- optional signing using GPG 2,
- optional delta updates,
- compression support,
- an application is a single file (like macOS's .app files), so it's easy to copy/move around,
I can assist in doing this, I've already created AppImages for Godot Engine (https://godotengine.org/) and Minetest (http://www.minetest.net/). Many projects also officially use and support AppImages for their Linux distributions, such as Krita (https://krita.org/).
Unix|libcore: DENG_BASE_DIR and DENG_LIBRARY_DIR may be relative paths
This allows compiling the application for relocatable use, since
built-in directories are looked up relative to the application binary.
#3 Updated by Calinou about 5 years ago
I don't know the details (I've never used CPack), however, do note that for AppImages to be truly portable, they need to be built on an old distribution (because packages built on recent distributions won't work on older ones).
But Doomsday requires CMake 3.1, which is not available in Debian 8 (https://packages.debian.org/search?keywords=cmake) nor Ubuntu 14.04 (http://packages.ubuntu.com/search?keywords=cmake). Either we have to perform some trickery to get CMake 3.1 (or later) to work on such old distributions, or we have to move our minimum version requirement to Ubuntu 16.04 (likely making it impossible for Ubuntu 14.04 and Debian 8 users to run the AppImages).
It's also possible to build AppImages from existing binaries as well. Lots of examples are available here: https://github.com/probonopd/AppImages
#4 Updated by skyjake about 5 years ago
- Subject changed from Create an official portable Linux distribution to Create an official portable Linux distribution (AppImage)
Thanks for the links, they were informative. It looks like it should be pretty easy to make a YAML recipe that builds Doomsday from source and includes the appropriate dependencies.
I'll make a note to set up a Debian 8 VM and see how that would work. I can always compile the required version of CMake from source.
Is Debian 8 the Linux distribution you would recommend for the widest compatibility?
#5 Updated by skyjake about 5 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 30
#6 Updated by skyjake over 2 years ago
- Subject changed from Create an official portable Linux distribution (AppImage) to Create an official portable Linux distribution
- Assignee set to skyjake
- Target version changed from Build system and tools to 2.2 (2019)
- % Done changed from 30 to 70
I've decided to go with Flatpak for now.
- ☑️ Enable FluidSynth plugin (build from source)
Build with FMOD as well
#8 Updated by skyjake over 2 years ago
- Status changed from Resolved to In Progress
- % Done changed from 100 to 90
- ☑️ Prepare appdata XML for Flathub submission
- Possible Autobuilder integration: make an unstable Flatpak module in addition to (or replacing) the other builds?