It would be cool if there was an xdg-app/flatpak runtime package that would provide godot to any games that want to use it. The godot editor can then be a flatpak app based on that runtime.
What would we have to do to implement that? I haven't really followed the recent hype about the various new universal application packages (I should though, if it's going to make me soon jobless as an RPM packager :P).
Its only an idea, and I am no flatpak expert in any regard (probably you are much better suited for the task being a packager and knowing godot better), but there are a bunch of examples in the flatpak wiki: https://github.com/flatpak/flatpak/wiki/Examples#runtimes-and-sdks
Theoretically, upstream godot doesn't have to do anything (the minecraft flatpak is a 100% fan made one for example) but I think both in the case of KDE and gnome the flatpak runtime is maintained by upstream.
Why would you want to implement that to begin with? Godot is already a single executable file that can run on most distros xD
Not all distros :) #1391
Also, flatpak adds sandboxing.
including all dependencies will greatly increase the file size though :)
Godot already includes all its dependencies :) look at the source code tree :p
so why is it not running on most distros then? What are the advantages and disadvantages of flatpak to the way it currently is distributed?
Do you mean packaging the godot engine as a flatpak - or adding the ability to the engine to output games as flatpak or both?
The advantages are:
Today I made a flatpak of godot the editor for flathub:
https://github.com/flathub/flathub/pull/104
I'm not really an expert, or even a user of godot, so I wouldn't mind if someone took a look at it and tell me if it looks sane or not.
As for this bug, you don't actually want to make a godot runtime. Runtimes are essentially a distro, and you don't want to be maintaining a distro unless you e.g. love staying up all weekend handling glibc security errata, etc.
What you want to do instead is to create a "base application". This would be an "empty" app that has only the godot engine on it, and then actual apps start from this and add just the app data. This is how we handle for instance electron apps in flathub. Here is the electron base app:
https://github.com/flathub/io.atom.electron.BaseApp
And here is discord which uses it:
https://github.com/flathub/com.discordapp.Discord
What you want to do instead is to create a "base application".
Very interesting. Didn't know about that. It sounds precisely what I think is needed!
Flatpak build is now on flathub: https://flathub.org/apps.html
@alexlarsson Awesome! Thanks for doing that. Is this 2.1.4?
Yes. 2.1.4, flathub is for stable releases only. The packaging is here: https://github.com/flathub/org.godotengine.Godot
If anyone from the Godot team wants to own that I'll gladly hand out commit rights.
Thank you for making a Flatpak @alexlarsson!
Another feature not discussed is that updates are automatic, which is important. I understand Godot packages a single binary, but it is a manual process to continually check for updates, download, and replace the old binary. Having automatic updates through Flatpak is the best method. Additionally, Flatpak and Snaps are moving quickly to become the recommended method of Linux application packaging. Specifically Flatpak has been used for desktop apps primarily, and Snaps for servers (usually).
I hope the Godot team keeps the Flatpak and AppStream files updated so Linux users have an easy and secure method of receiving and running Godot.
@crouthamela Worth noting the Flatpak is currently not maintained by Godot, though if anybody there wants to get involved they can.
@TingPing Yeah I know, I'm just saying I hope they take it over and make that an official Linux release method. It would be beneficial to do so.
@blurymind Id like to point out that a minor advantage of flatpak over the single official binary (I have both atm) is also that I got a .desktop application entry with the install (to the "start menu"). It even includes the pretty icon. These 2 minor things and updates make it more than the preferred choice out of these 2 installation options for me.
I think it's important to distribute Godot mono as flatpak because it can save end user a lot of headache with mono and msbuild dependencies.
The Flatpak doesn't yet include Mono because well it requires somebody deal with a lot of headache :P
Pity. Godot Mono and flatpak are meant for each other.
On Mon, Apr 2, 2018, 18:53 TingPing notifications@github.com wrote:
The Flatpak doesn't yet include Mono because well it requires somebody
deal with a lot of headache :P—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/5597#issuecomment-377961509,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEwqYZ9mgbuqNjDeholXTK73-7uwaho4ks5tkkl6gaJpZM4JIO3D
.
Well. There is a sdk extension with mono, so it can’t be that hard to add.
Well. There is a sdk extension with mono, so it can’t be that hard to add.
I admittedly didn't spend a ton of time looking into it, but that alone wasn't enough.
Can we close this as fixed, since Godot is available on FlatHub? https://github.com/flathub/org.godotengine.Godot
I see that @Calinou is contributing there, so upstream (we) is also involved.
Well the editor is there but the convenience of a baseapp/runtime for godot games isn't.
Well the editor is there but the convenience of a baseapp/runtime for godot games isn't.
True.
_I'll up this issue, since almost 1 year has passed from the last comment._
I'm working on a Godot base app. And here's an Escape Space Flatpak based on it :slightly_smiling_face:
However, there are several issues I'm looking to fix. These bugs aren't present when running the game outside the Flatpak:
$HOME/.var/app/io.itch.calinou.Escape-Space/data/escape-space/
. (When running outside the Flatpak, the user data directory is $XDG_DATA_HOME/escape-space
.)@razcore-art Would you know anything about this type of error? ^^ I ask because we may run into it if we want to package flossy-gnu as a flatpak.
I opened a pull request to add Godot as a base app on Flathub: https://github.com/flathub/flathub/pull/1299
Waiting for godot.
Waiting for godot.
Sorry, had to do it. -> https://en.wikipedia.org/wiki/Waiting_for_Godot
The Godot Flatpak BaseApp is now live! This can now be closed.
We should add a brief tutorial on using it to package projects in the Godot documentation (https://github.com/godotengine/godot-docs/issues/2993).
Most helpful comment
I opened a pull request to add Godot as a base app on Flathub: https://github.com/flathub/flathub/pull/1299