System-wide external AppStream is broken
Currently, there are a few problems with external AppStream management:
- System-wide external AppStream URLs are always downloaded, because GNOME Software moves the downloaded AppStream file into
/var/cache/swcatalog/xml
, but tries to read the ETag of~/.cache/gnome-software/external-appstream
(which never exists, because it was moved into/var/cache/swcatalog/xml
!) - When the ETag of the local file and the server file match, GNOME Software treats as a happy path and doesn't return an error; in the system-wide AppStream case, that means we never remove the empty download file that GNOME Software creates.
Patches incoming.