appstream: Can have mismatch in provided app data
This is related to the gs_plugin_refine_from_id()
from plugins/core/gs-plugin-appstream.c
.
The plugin searches for the app by its id and eventually appstream origin, which is not enough.
My use case:
- I have installed RPM version of Evolution on Fedora
- the app ID is
org.gnome.Evolution.desktop
, the appstream origin isfedora
- the
gs_plugin_refine_from_id()
finds three different components for this combination, one referencing my custom build from$PREFIX/share/metainfo/org.gnome.Evolution.appdata.xml
, one from/usr/share/metainfo/org.gnome.Evolution.appdata.xml
and one from/usr/share/app-info/xmls/fedora.xml.gz
. - each of the appstream data contains different information about the app releases (which is how this had been found)
I'm not sure whether the fedora
origin can be either from the fedora
RPM repo, or from a fedora
Flathub remote. Maybe it cannot, I do not know. In any case, they both have the same appstream origin.
I do not know how to address this. Checking for appstream::source-file
is wrong, because the installed /usr/share/metainfo/org.gnome.Evolution.appdata.xml
contains valid information about releases of the installed app, while the fedora.xml.gz
is somewhat obsolete, or it can be obsolete/outdated.