New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add metadata to indicate if an app uses a proprietary web service #344
Comments
|
In general, I see that something like this would make sense. It is not what The <requires>
<web_service>
<name>Nextcloud</name>
<project_license>AGPL-3.0-or-later</project_license>
<url type="signup">https://nextcloud.com/signup/</url>
<url type="download">https://nextcloud.com/install/</url>
</web_service>
</requires>However, I wonder if this is truly the right approach, because implementing something like this duplicates so much of what a I'll have to think about this some more, but at least that's my very early thoughts about this. Feedback/opinions on this are very welcome! |
That sounds excellent. Much better than my suggestion.
One suggestion for handling this, at least to get things started, would be to install them with libappstream itself. There are unlikely to be many webapps people want to describe, at least to begin with, so storing the metainfo for them in one centralised repository doesn’t seem too bad. This could be changed in future if it becomes burdensome.
Pinging an external service would be quite a privacy concern, and would also slow down displaying the details of an app in gnome-software (and it would break if the user was offline). Additionally, this could never work for proprietary services who couldn’t be made to care about metainfo files. Any of the Google services, for example (Drive, YouTube, etc.), Spotify, etc. Those are services which are likely to have desktop clients.
That feels like it would require a lot of changes across a lot of metainfo parsing code.
Giving it a unique name per app could work, but feels like a bit of a workaround (and one which isn’t easily undone if we think of something better in future). |
It seems I actually already have a |
That file is Fedora-specific, Debian has something similar with different apps (only free-software ones). So people can not rely on these to be present or even to have the same name...
Problem with that is twofold: We would need to ship the service icons with this, which for certain won't all be under licenses that permit free or combined redistribution. Defining icons as "remote" is an escape hatch, but then we will ping an external service again. In order for this webapp registry to be useful, we would need to make distributions actually ship the stuff, which means making the data freely distributable at least. On the Debian side, there will also be a debate whether this will be advertising of non-free services, depending on how software centers choose to display all the new webapps, but we can ignore that issue at least initially, I think. Second issue is that AppStream was designed to be decentralized/distributed, so we would not have a central registry that people have to go to in order to make apps known, saving a lot of time that I or a team would otherwise have to spend on name-gatekeeping, so creating one for webapps would kind of go contrary to that goal. I am really unsure about the legal stuff though, especially on any graphics (webapps have to have at least an icon, for good reason).
Indeed. Usually AppStream metadata is processed through a tool like
True - they could reference a file hosted somewhere on Github or a different random location though.
Ideally only in libappstream, but I'm not a fan of a "screw you for the audacity to parse AppStream data yourself!" attitude - I'd rather not want to break parsing at all, unless there is an extremely good reason to do so (it will not only be a pain for external parsers but also for older versions of libappstream). TBH, I don't think this is a good reason for such an invasive change (it will break all assumptions made about metainfo files).
Yes - the central registry approach is a bit easier to undo once we have a better idea, but it'll still be a pain. At the moment I can't think of anything better though, if the legal question can be answered and if we can get a distribution like Debian to distribute the data as well in the main repository, so apps and software centers can rely on the component IDs to actually be there (I don't see an issue with that, but if we go that route I'd like to get feedback from others as well, ideally without causing a thousand-replies-long flamewar ^^). |
I guess that’s not the solution then.
At least from the gnome-software side, I think we could quite happily not display an icon for web services when they’re being listed as a dependency of a desktop app. The UI I was thinking about would be something integrated into the context bar on the details page in gnome-software. (There’s a screenshot of it here.) It would likely just be some text saying “This app requires you to use Google Drive, which is proprietary” or words to that effect. gnome-software also doesn’t currently list webapps in its UI at all. They aren’t listed in categories and don’t turn up in search results. So adding more web app metainfos won’t suddenly fill gnome-software up with new ‘apps’. That doesn’t solve the icon issue, but does mean it’s a bit less important to solve. We could, for example, point all these web apps at some generic web app icon in order to fulfil the requirement that a webapp has an icon and it wouldn’t affect the user experience. I don’t know what impact this would have on other consumers of appstream data, though. I can only speak from the gnome-software point of view.
Sure, feedback from distro people would be helpful. Is there a venue where this kind of stuff has been discussed before for previous appstream questions? |
Looking just at the apps I personally use (which is not representative etc) it's rather obvious already which ones require proprietary online services because they have the same name as that online service, and (with few exceptions) are themselves non-free. It's not clear to me that defining each web service and then the many-to-many relationship between desktop app and web service would buy very much. A privacy policy URL type might be interesting though! |
|
FWIW, a few example that I know of:
Dialect and Mousai could be interesting from privacy perspective because they send user text or audio input to web services. |
There are a number of desktop apps which exist as clients for proprietary web services, and hence aren’t useful without those services. That might not be obvious to users before they install the apps, though. I think it would be useful if appstream had an element which could express that an app is significantly tied to a web service, and to express what the license of that web service is.
This could allow gnome-software to give users more notice that by using certain apps, they are potentially tying themselves into a proprietary web service which they can’t contribute to / export their data from / run their own instance of / etc. On the flipside, we could promote apps which integrate with FOSS web services where the user can do those things if they want.
I’m not sure of the best markup to recommend putting in the specification, as this is a bit of an odd crossover of
<requires>/<recommends>and<project_license>.How about a
<web_service>element which goes within<requires>/<recommends>, which specifies:Example markup:
Should the name be localisable? I’m not 100% sure about the URL types for self-hosted applications, but they might fit with some work.
/cc @wjt, because you’re interested in this kind of thingy
The text was updated successfully, but these errors were encountered: