eg. change this:
runtime: org.gnome.Platform
runtime-version: "46"
to this:
runtimes:
- org.gnome.Platform/46
- org.gnome.Platform/45
- org.freedesktop.Platform/20.08
- org.kde.Platform/5.15
Many people complain about flatpaks taking up too much space. Allowing for more runtimes to be shared between apps would take up less space. However, this has been denied.
If I am an app developer and I know my app runs on several different runtimes, why shouldn’t I be able to specify all of those runtimes? Are there technical reasons why this is a bad idea?
EDIT: I mean a list of runtimes of which one must be installed, not a list of runtimes of which all must be installed.
Say you have 8 apps that require 45 and you download one that requires 46. Now you have two environments. If the new one worked on 45, you could continue with one.
I am not advocating their position but that is what they are asking for.
It could be interesting if it stuck with the most recent that all apps support. So, if all the apps supported 45 or 46 then the system would use 46 but if one of the apps only supported 45 then it would hold the rest back to 45.
The idea with Flatpaks though is that they behave the same on all distros. So think it is better to force the right environment. It does make Flatpaks wasteful though which is one of the reasons I try to avoid them personally.
I use a distribution with lots of packages that are generally up-to-date so Flatpaks are not solving a problem for me. For most other distributions, they fill a real need. There are downsides though and this duplicated environments issue is one of them.
A runtime is about 1GB, that’s 100 photos or a 2 minute video. I don’t worry about such things. Flatpak’s size is no problem.
Apps become outdated, or at least don’t get updated in time. You’re stuck on old runtimes because you want to save 1 or 2 GBs.
If you want to save space, update the outdated app. If everything is included in 46 and nothing changed, updating is straoght forward.