flathub/org.gimp.GIMP

GNOME can't diferentiate GIMP stable and beta

Opened this issue · 7 comments

STEPS TO REPRODUCE

  1. Install GIMP stable from flatpak
  2. Install GIMP beta from flatpak
  3. Press overview key and search for GIMP

WHAT YOU EXPECT

  • Search results should show the 2 versions of GIMP, preferably with some badging identifying the beta icon.
  • It should be possible to have both versions of GIMP open side by side.

WHAT HAPPENS

  • Search results only shows GIMP beta.
  • You can find your stable GIMP if you use the applications dash but you can't have both open at the same time.

I'm not able to do it myself but I think this can be fixed in the flatpak manifest.

Thanks!

Jehan commented

Yes this is a limitation of the Linux desktop standards hence of flatpak. Basically the specs don't have concept of multiple version of a single application.
See flatpak/flatpak#1109

The solution so far is to switch the visible branch with one of the following command (depending on whether you want to show stable or beta):

flatpak make-current --user org.gimp.GIMP stable
flatpak make-current --user org.gimp.GIMP beta

You can also run any of the versions from command line even if not the current branch with:

flatpak run org.gimp.GIMP//stable
flatpak run org.gimp.GIMP//beta

There is a workaround to this issue, which is that we can give to the development version a different ID. Basically the idea is to pretend this is another software altogether. This is ugly and I don't like this, but this is currently the only solution. I will probably do this in a few days.

Jehan commented

@alexlarsson Hi! In the end, I'm just trying to follow the "rename the app-id for the beta release" recommendation. I think I did it all properly, with the rename-* options as well. Builds work fine.

But then the build fails at "Check for AppStream xml" step with this error:

stat: cannot stat 'builddir/*/share/app-info/xmls/org.gimp.GIMP.xml.gz': No such file or directory

Why does it look for a xml.gz file with the old ID. Does it pull this ID from the repository name (which I can not change obviously)?

When I look at the build log, in the last lines, I clearly see:

Processing application org.gimp.GIMP.dev
Saving icon /app/share/app-info/icons/flatpak/64x64/org.gimp.GIMP.dev.png
Saving icon /app/share/app-info/icons/flatpak/128x128/org.gimp.GIMP.dev.png
Saving AppStream /app/share/app-info/xmls/org.gimp.GIMP.dev.xml.gz
Done!

So the file is appropriately named org.gimp.GIMP.dev.xml.gz which is what we want as I renamed the app-id to org.gimp.GIMP.dev for the beta. Only the fact it looks for the stable app-id is problematic. Is it a bug in flathub scripts or am I missing anything?

I thought to have understood that other applications were already applying such trick. If they did, then there must be something I do wrong, no?

Yes this is a limitation of the Linux desktop standards hence of flatpak. Basically the specs don't have concept of multiple version of a single application.
See flatpak/flatpak#1109

The solution so far is to switch the visible branch with one of the following command (depending on whether you want to show stable or beta):

Thanks for this explanation and the workaround. I didn't know the Flatpak beta feature had this limitation.

If you add "desktop-file-name-prefix": "(beta) ", in the manifest (top-level) it will prefix the desktop file name with "(Beta) " which allow seeing it's the beta branch.

Jehan commented

If you add "desktop-file-name-prefix": "(beta) ", in the manifest (top-level) it will prefix the desktop file name with "(Beta) " which allow seeing it's the beta branch.

We already do this, but it's not the problem here. I will also answer your comment on #92.

Sorry I missed it when I checked....

Jehan commented

No prob. 🙂