-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature] AppImage builds #92
Comments
I forgot to mention that Electron Builder has support for AppImages and probably Flatpaks so making such builds should be easy (I hope) |
Currently
Just as a "current situation" overview: Current Windows installers
Current macOS installers
Current Linux installers
|
Actually its used on Arm Linux
I mentioned OpenAL as an example of components that aren't necessarily required for an AppImage/portable executable. On an unrelated note, Arm Linux kinda requires an OpenAL installer unless you'd decide to make "PiExtras". My initial idea of solving that was basically rewriting the way installers work to make them "portable" in a way (1 file per installer with all supported OS/architecture combos neatly available) but I decided not to do it since I don't really know the whole codebase and revamps of such a crucial part to me sounds like a waste of time which could be spent on making a new launcher... Anyhow
What I have in mind is tailor-made Mono builds only with .Net 4.5 support since that's what FreeSO uses. I'm not sure if that would be easy or even possible but might be worth a try I guess.
Only AppImages excluding SDL for Arm Linux.
Since we'd need to put in the effort to migrate over to |
Might be worth a thought, the way I have been playing FreeSO on Linux (across diff distros) is by installing it in a distrobox container. Works natively and avoids having to deal with different package managers and dependencies. I think I have it running in an Alpine Linux container so wouldn't be too much overhead I don't think. |
So your idea is basically to have everything containerized? |
Not the entire launcher and game package. I run the FSO client in a distrobox container for ease and portability. I'm not 100% clued up on the workings of AppImage packages (I did attempt once but gave up reading the docs on that occasion). My impression is that they are standalone packages including all dependencies? Including the full mono runtimes (I think I've always had to at least install the dev package to get FSO running) would be quite cumbersome? I'm just throwing out ideas but if the launcher is distributed as a Flatpak or AppImage, perhaps the game client could run in a container and fetch the dependencies and extract the freeso client, TSO game files etc on first launch? |
Having FreeSO run in a container is unnecessary since it already works on everything as long as SDL and OpenAL libraries are available (that's how the launcher makes everything work on Arm Linux by pointing MonoGame to system libraries). AppImages/Flatpaks would contain Mono and the launcher itself, though we could also ship things like SDL and other MacExtras files that are absolutely necessary with the launcher since they wouldn't need to change. Making Arm versions of these would also be pretty easy since we could just bundle Arm builds of SDL and OpenAL instead. |
Is your feature request related to a problem? Please describe.
The current issue with Linux builds of the launcher is that only 2 distros are currently supported (and also you can't start on Arm without doing something in the terminal but shh).
AppImages are "Linux apps that run anywhere", basically a executable itself is bundled with the dependencies and other files.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
Flatpaks also should do the job but I'd say AppImages seem easier to figure out. We can always
Additional context
There'd no need for SDL, OpenAL and Mono installers since we could bundle these with the launcher instead
The text was updated successfully, but these errors were encountered: