← Back to issue list

Filter libraries included in content snaps

View original Github issue

Metadata

Project
snapcraft
Number
#6066
Type
issue
State
open
Author
mr-cal
Labels
Status: Triaged Type: Research
Created
Updated
Closed
—

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.