[Flatpak] Working with GNOME runtime

Hi,

I started looking at flatpak to package some of my apps, and have a few questions:

  1. do we have somewhere a comprehensive list of the libraries and features provided be the GNOME runtime?
  2. The gnome runtime seems based on the freedesktop one, but what does that mean? Is it a dependency, or a rebuild with more stuff? Are all the freedesktop-24.08 features guaranteed to be available in the gnome-47 runtime?
  3. some GNOME libs like libadwaita are included, while others like gtksourceview are not. On which criteria are they included?
  4. AFAIU, for external libs, developers have to track their releases and manually update the manifest to stay up-to-date with the latest bugfixes. Would it make sense to provide runtime extensions for common gnome components, like ffmpeg does, so dependencies are automatically updated?

The GNOME run time is generate by the gnome-build-meta project, so you can check there.

Alternatively, you can use flatpak run org.gnome.Sdk//47 to run a shell inside the SDK, and then:

cat /usr/manifest.json

will print a complete manifest of all components, their versions, and their source object used when building the run time.

It means it includes all the objects provided by the freedesktop run time. It’s not a dependency, per se, more like a branch with additional objects on top.

Generally: commonality. All GNOME applications use libadwaita; very few use gtksourceview.

No, it would not make sense. Run time extensions are not trivial to maintain, and only make sense for things that move at a different cadence, or that interact with the hardware, like toolchains and GL drivers.

2 Likes

Thank you very much @ebassi for this very detailed answer!