[AppStream] Dependencies on things in AppStream

Richard Hughes hughsient at gmail.com
Mon Mar 26 08:21:48 UTC 2018


On 25 March 2018 at 22:16, Matthias Klumpp <matthias at tenstral.net> wrote:
>> Eww. Can we not just make this an integer number of bytes/Mb/Gb? The
>> number of GB seems like it has the required precision.
> Maybe using MB as the default precision is best here, to get some
> compromise between precision and readability (while we we will likely
> only see GB-sized values here, there might be other applications where
> using MB makes more sense (GPU-memory?), and using a different unit
> there would be confusing).

Are there games that work okay with 1.5Gb of GPU memory and not 1Gb? I
really think GB should be the minimum going forward. I assume the
value here is going to be "what you have installed" rather than "what
you have available now" otherwise it's going to be relaly confusing
when apps "work" one day, and then refuse to "work" another day.
Machines also don't come in multiples of Mb anymore, the realistically
smallest machine you can find running Linux these days has 1Gb of
memory.

> I actually like your approach a bit better though, it's more flexible
> and easier to parse.

Thanks :) it also means I don't need to change the XML format or any
of my code ;)

> I didn't think of allowing regex matching (eww!!!) but if that's
> something firmware regularly wants, we could add it as well.

Well, I didn't originally have it either. Glob (as in fnmatch) is
super useful, but to avoid AND, OR, SUFFIX and PREFIX operations
regex's are really much easier to explain.

> The issue of "my software can use $range_of_hardware, either of which
> is okay" will come up though, and people will want and and or
> relations sooner or later.

I think we tell them to KISS. I think any time we allow application
authors to do something complicated a significant minority will get it
wrong.

> That means we will end up with some kind of
> "org.freedesktop.generic_component.SQLDatabase" pseudo-ID at some
> point though.

Apps typically don't need an "SQL database" they need an explicit
runtime dep, e.g. mysql or sqlite. I don't think you want all the
logic from the Debian control file in AppStream at all.

Richard.


More information about the AppStream mailing list