Filter libraries included in content snaps
Metadata
Current evaluation
Triaged research to prune duplicate libraries from content snaps; extension-specific cleanup remains a workaround while defaults and provider compatibility are unresolved.
Suggested action: keep open
Reason: The issue is explicitly Triaged and Research, and aleasto describes a concrete runtime failure where a snap-primed libdrm shadows Mesa's newer library and causes missing symbols. Current code still injects gnome/cleanup and gpu/cleanup parts with TODOs saying they should be removed when #6066 is resolved; syntax, core26 defaults, supported providers, and safe opt-in behavior remain unresolved.
Evaluated by: mr-cal-bot
Impact:
72
Quick Win:
7
Complexity:
82
Confidence:
95
Actionability:
57
Issue body
### Check existing issues
- [x] I've verified that this request isn't described by any existing issues.
### Request
Snaps should filter out libraries that are included in content snaps, similar to how libraries included in base snaps are filtered.
This should be an opt-in mechanism for existing bases and opt-out for new bases.
### The problem it solves
Content snaps, such as [gnome](https://github.com/ubuntu/gnome-sdk/tree/gnome-46-2404), [kde](https://invent.kde.org/neon/snap-packaging/kf6-core-sdk/-/tree/work.core24), and [mesa](https://github.com/canonical/mesa-2404), ship with a large set of libraries.
Snaps using these content snaps often package duplicates of libraries included in the content snap. This results in larger snap sizes and a higher risk of using outdated libraries.
[Many users](https://github.com/search?q=path%3Asnapcraft.yaml%20%22cleanup%3A%22&type=code) include a cleanup part to remove duplicated libraries. The [snapcrafters](https://forum.snapcraft.io/t/reducing-the-size-of-desktop-snaps/17280) and [content snap maintainers](https://canonical-ubuntu-frame-documentation.readthedocs-hosted.com/how-to/use-snap-graphics-on-base-core24/#using-the-helpers-provided) document this pattern.
This cleanup part is common enough that Snapcraft should provide in-house support.
### Research needed
This will require some research to decide:
- Syntax in snapcraft.yaml.
- Default behavior for core26.
- Whether to support all content snaps or a curated list of "stable" content snaps.
- We have to assume that the content snap at build-time will have the same set of libraries as the content snap installed on a user's system.
- How to implement: Should it be a part added by the extensions? Or a post-prime step?
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha |
Impact:
72
Quick Win:
7
Complexity:
82
Confidence:
95
Actionability:
57
|
keep open | Triaged research to prune duplicate libraries from content snaps; extension-specific cleanup remains a workaround while defaults and provider compatibility are unresolved. | |
| qwen/qwen3.6-35b-a3b |
Impact:
60
Quick Win:
21
Complexity:
50
Confidence:
80
Actionability:
70
|
keep open | Research task to implement filtering of libraries from content snaps, similar to base snap library filtering. Labeled as research, triaged, and open for 206 days. | |
| qwen/qwen3.8-27b |
Impact:
60
Quick Win:
12
Staleness:
45
Complexity:
80
Confidence:
80
Support Request:
5
|
keep open | Research issue proposing snaps filter out libraries already provided by content snaps (gnome/kde/mesa) to reduce size and avoid runtime conflicts. Triaged, with recent discussion on defaults and implementation approach; no implementation yet. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
50
Complexity:
75
Confidence:
85
Support Request:
10
|
keep open | Research issue proposing automatic filtering of duplicate libraries from content snaps to reduce size and prevent runtime conflicts. Currently triaged and under discussion regarding implementation and opt-in/opt-out defaults. | |
| qwen3.6-35b-a3b-mtp-q6 |
Staleness:
40
Complexity:
70
Confidence:
85
Support Request:
0
|
keep open | Proposes automatic filtering of duplicate libraries from content snaps to reduce size and prevent runtime conflicts. Currently triaged and under architectural research regarding implementation details, defaults, and scope. |
Update history
No update history recorded yet.
Related issues
No related issues found above the similarity threshold.