appstream: Expand support of <requires/>, <recommends/> & <supports/> item kinds
Upstream spec: https://freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-relations
Currently G-S supports <control>
and <display_length>
item kinds, however, there is no support for filtering based on other tags <id>
, <modalias>
, <kernel>
, <memory>
, <firmware>
, <hardware>
and <internet>
.
There is probably not much need to implement support for <firmware>
or <hardware>
as is. <modalias>
has some overlap with provides but would still be useful for suggesting if a piece of software is incompatible e.g. software to control hardware. <id>
, <memory>
and <internet>
are fairly self-explanatory but would need some thought into the UI.
My reason for opening is this issue is; at Solus we are evaluating replacing our aging home-grown Software Center and Hardware Drivers applications with G-S and Discover.
I am primarily interested in having <kernel>
and/or <id>
support implemented, primarily for the use-case for filtering what drivers in the Hardware Drivers section are shown to the user. As is, we are planning to carry a downstream patch to add AS_RELATION_ITEM_KIND_KERNEL
filtering to G-S to prevent showing and allowing users to install drivers for the wrong kernel type. This is due to the fact we offer drivers built for mainline and LTS kernels, e.g. nvidia, broadcom, etc.
I am able to provide a plumbing patch for this using appstream APIs for the filtering for the obvious cases, e.g. memory, kernel, etc. However, how the UI should work is a little beyond me. I would like to know if there is any interest/will in implementing support for this in order to prevent carrying a downstream patch going forward.
Thanks in advance.