@martinpitt
Copy link

martinpitt commented Apr 24, 2020

I went through the AppStream hints of Debian's cockpit package recently, which shows some complaints:

  • Error: web-app-without-icon: The component is a GUI web application, but it either has no icon set in its metainfo file, or we could not find a matching icon for this application.
  • Warning: asv-metainfo-invalid-icon-type cockpit.appdata.xml:111 - local
    Metainfo files may only contain icons of type stock or remote, the set type is not allowed.

Cockpit's AppStream data specifies type="web-application" indeed. It's a bit weird as it gets delivered/installed as a proper distribution package, but you use it through a web browser. I. e. it's a "local web application".

It also specifies

 <icon type="local" width="128" height="128">/usr/share/pixmaps/cockpit.png</icon>

which is shipped by the "cockpit" package (rpm/deb). This seems correct to me, as there is no sensible other way to deliver the icon, except for putting it onto some web server (which is a privacy issue). It's not part of the usual stock icons, so I can't use that.

This doesn't seem to be a problem in Fedora. GNOME Software shows Cockpit just fine (including icon). There it gets processed into /usr/share/app-info/xmls/fedora.xml.gz as a locally cached icon:

<icon type="cached" height="128" width="128">org.cockpit_project.cockpit.png</icon>
<icon type="cached" height="64" width="64">org.cockpit_project.cockpit.png</icon>

and shipped in /usr/share/app-info/icons/fedora/64x64/cockpit.png (same for 128).

Debian has a different approach, it doesn't ship the AppStream metadata in a package (like Fedora's appstream-data), but as part of the package manager indexes: https://appstream.debian.org/data/bullseye/main/ . I don't see cockpit at all in Components-amd64.yml.xz and the icons-*.tar.gz is also missing cockpit.png. So supposedly the generation has skipped cockpit because of that error?

How can this be fixed?

Thank you!