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
validate-relax: icons of "stock" type considered invalid? #360
Comments
We've got a legacy list of https://github.com/hughsie/appstream-glib/blob/master/libappstream-glib/as-stock-icons.txt -- I think the idea nowadays is that applications should be shipped with their own app icon rather than relying on one from the theme. I'm open to the idea of adding stock icons to that list if they exist in adwaita and hicolor. |
Ah, yeah that's exactly what I was thinking. I see On the other hand, The other icons I'm getting this error for ( |
Yes, that list is deliberately conservative. The logic is that if we don't ship an icon then we need to be 100% sure the users icon theme (or fallback) has a version of it, else we get the broken exec icon. |
But this xml file fully complains standard. Why I must ask upstream to change it? |
I have this problem with kio-gdrive - application included in KDE. |
@hughsie In AppStream, "stock" kind of means "search in theme directories". So if an app icon is installed in |
Can we please also add the ones for Breeze too? It's causing failures with |
I think in 2023 we out to remove the concept of stock icons, and not add to the list -- tbh. |
To be honest, I don't care what is done as long as this stops failing KDE applications when they are reasonably following their spec for stock icons. |
Are the stock icons used by KDE also present in the other icon themes? |
Yes, I believe so. @Pointedstick can explain more, but KDE Plasma supports icon themes and people use this to supplant stock icons all the time. |
FWIW, AppStream places no restrictions on stock icon names at all, and expects software centers to prefer them if the currently active icon theme has them, but otherwise to ignore them and use a cached or remote icon instead. Why can't Fedora use |
Because appstream's validation doesn't matter if appstream-builder skips over it when we generate our data. |
IMO that's a valid decision to make in client software but not in cross-platform tooling, because then it locks everyone using that tooling into that decision, including orgs like KDE which do not make the same decision. |
It obviously does though, as this bug shows. The stuff asglib-builder creates should also validate fine with If there's any particular missing feature (most stuff in the bugtracker is convenience, which is important of course, but shouldn't be a blocker), let me know and I can see if it could be added. |
No, this bug is that appstream-glib does not successfully validate (which is what matters when you use appstream-builder to generate the index). What appstream says does not matter because it isn't the problem. |
It absolutely is the problem, because upstream projects use modern AppStream and want to rely on features it provides, but Fedora artificially limits them (or creates extra busy work for Fedora package maintainers that they do not need to do). The appstream-glib project has a WARNING: appstream-glib is heavy maintenance mode, use appstream instead warning message in its README file for a reason. |
It is not. Whether asglib is in maintenance mode or not has no impact on appstream. The only reason this is a problem for you is because @hughsie decided to implement GNOME opinions in asglib rather than leaving it to be more generic.
This is not just Fedora. The entire RPM ecosystem uses this project for AppStream repodata indexes. For better or worse, someone decided we should have two implementations where some distributions must use one and some distributions must use the other. You want to fix it? We need the For reference, this is the script used to build the appstream repodata index files: https://github.com/hughsie/appstream-scripts/blob/master/fedora/fedora-rawhide.sh And here's the RHEL version: https://github.com/hughsie/appstream-scripts/blob/master/rhel/rhel-9-candidate.sh Third party repos do some variation of this blog post: https://blogs.gnome.org/hughsie/2016/04/27/3rd-party-fedora-repositories-and-appstream/ |
Everyone should use AppStream (not -glib) at this point.
It absolutely does, because I get to deal with the bug reports by annoyed users who think this whole thing is a lot of hassle with some tools having different interpretations.
That script would actually be pretty easy to port, either using |
The only piece not mentioned in that script is that he has a local mirror of the Fedora repositories, which you can find information on here: https://fedoraproject.org/wiki/Infrastructure/Mirroring |
I don't have the resources for that, but luckily I didn't need to change anything on appstream-generator for Fedora, it just worked. Still, I recommend using the Git version, as I ported the rpmmd backend away from std.xml and added the on-demand download feature to this backend, which is needed for the script below. |
For example, I'm getting the following error message when trying to validate some elementaryOS desktop components:
? tag-invalid : stock icon is not valid [preferences-system-time]
With similar messages for other
preferences-system-FOO
icons. I checked, and this icon (and most of the others I'm seeing this error message for) are shipped with thehicolor
,HighContrast
, andAdwaita
icon themes on fedora, so I'm not sure why they would be considered invalid stock icons (considering that the appstream spec even givesgimp
as an example of a stock icon name):https://www.freedesktop.org/software/appstream/docs/chap-CollectionData.html#tag-ct-icon
The text was updated successfully, but these errors were encountered: