← Back to issue list

appstream support lacking provided ids (impairing backwards compat)

View original Launchpad issue

Metadata

Project
snapcraft (launchpad)
Number
#1778719
Type
issue
State
open
Author
~apachelogger
Labels
19.04 19.04-blue 19.04-external
Created
Updated
Closed

Current evaluation

Snapcraft's appstream extractor and common-id mapping assume a single id per appstream file, ignoring <provides> ids needed for backwards compatibility and de-duplication. No maintainer response, no labels, 0 comments, last activity 2463 days ago.

Suggested action: needs triage

Reason: The issue has 0 comments, no labels, and no maintainer interaction in ~6.7 years, so it has never been triaged. It is a genuine feature/bug report (not a support request) with a concrete proposed fix (supplemental-common-id key or array common-id, plus parsing <provides> ids), but the repo tooling failed to pin a SHA so I could not verify whether the appstream extractor or common-id schema has since changed. Given the age and the possibility the appstream handling has been reworked, a human should confirm current relevance before closing or keeping open.

Impact: 40 Quick Win: 14.0 Staleness: 90 Complexity: 65 Confidence: 55 Support Request: 5

Issue body

The appstream extractor thinks one appstream file may have only one id, equally the snap apps' common-id mapping makes the same assumption. Single id isn't a thing in appstream, and hasn't been for a while: https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-provides e.g. ``` <id>org.kde.newname.desktop</id> <provides> <id>oldname.desktop</id> </provides> ``` indicates that the appstream component is also "oldname.desktop" in addition to "org.kde.newname" and provides a means for backwards compatibility. The use case behind this is that if the desktop file needs to be renamed software stores will still be able to resolve the old id (e.g. uris [1]). Additionally this helps with de-duplication of overlapping entires: if the distribution repositories contains an old package which still was oldname.desktop, the software stores will be able to know that a snap providing org.kde.newname is the new variant of it and show the application as one entity as opposed to two with roughly equal data and ultimately referring to the same application (albeit in different package formats). This is a major flaw in the current implementation as this prevents id backwards compatibility. In the yaml schema there ought to be a supplemental-common-id key to list these "old" ids, or common-key needs to be changed to allow an array (with order having meaning so as to differentiate main-id from legacy ids). The appstream extractor then needs to parse <provides> ids and extend the snap.yaml of associated apps accordingly. [1] https://www.freedesktop.org/software/appstream/docs/sect-AppStream-Services-UrlHandler.html

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.8-27b
Impact: 40
Quick Win: 14.0
Staleness: 90
Complexity: 65
Confidence: 55
Support Request: 5
needs triage Snapcraft's appstream extractor and common-id mapping assume a single id per appstream file, ignoring <provides> ids needed for backwards compatibility and de-duplication. No maintainer response, no labels, 0 comments, last activity 2463 days ago.
qwen/qwen3.6-35b-a3b
Staleness: 95
Complexity: 65
Confidence: 80
Support Request: 10
close stale Snapcraft's AppStream extractor ignores <provides> IDs, breaking backwards compatibility for renamed desktop files. Unaddressed for ~8 years with no maintainer interaction.
qwen/qwen3.6-35b-a3b
Staleness: 95
Complexity: 45
Confidence: 90
Support Request: 15
close stale AppStream extractor assumes single ID per component, ignoring provides legacy IDs. Lacks maintainer feedback, references EOL Ubuntu 19.04, and has been inactive for over six years.
qwen3.6-35b-a3b-mtp-q6
Staleness: 95
Complexity: 60
Confidence: 85
Support Request: 15
close stale Reports missing AppStream provides ID parsing in the snap extractor, breaking backwards compatibility for renamed desktop files. Unaddressed for over 8 years with no maintainer interaction.
qwen3.6-35b-a3b-mtp-q6
Staleness: 95
Complexity: 40
Confidence: 85
Support Request: 10
close stale AppStream extractor ignores provides legacy IDs, breaking backwards compatibility for renamed desktop files. Untriaged, inactive for ~6.5 years, likely obsolete for modern snap versions.

Update history

No update history recorded yet.

Related issues

Issue Project State Summary Similarity
#1852329 appstream parsing fails when comments exist snapcraft (launchpad) open Snapcraft fails to parse the appstream description when translator comments are present in the metainfo XML. Unlabelled, zero comments, no maintainer interaction, inactive for ~6.8 years.
71%