← Back to issue list

Add a linter for staged libraries included in the base snap

View original Github issue

Metadata

Project
snapcraft
Number
#4149
Type
issue
State
open
Author
sergiusens
Labels
Status: Triaged Type: Enhancement
Created
Updated
Closed
—

Current evaluation

Add a library linter that reports staged libraries also supplied by the base snap, reducing snap size and attack surface; triaged and still unimplemented.

Suggested action: keep open

Reason: The maintainer-authored enhancement is labeled Status: Triaged and explicitly identifies the missing behavior and design basis in #3413. The current LibraryLinter exposes only unused-library and missing-library categories, although it already resolves dependencies against the base path, so the requested check remains valid but requires careful duplicate detection to avoid version, architecture, and symlink false positives.

Evaluated by: mr-cal-bot

Impact: 55 Quick Win: 18 Complexity: 62 Confidence: 93 Actionability: 84

Issue body

### What needs to get done Add a linter that can display any libraries in a snap that are also provided by the base snap. The bases for this implementation are https://github.com/snapcore/snapcraft/pull/3413 (described in item 3 https://github.com/snapcore/snapcraft/pull/3413#issuecomment-909104850) ### Why it needs to get done This reduces the surface area of a snap from a security standpoint and makes the snap smaller. A `stage-packages` entry will always stage a package, even if it is included by the base snap. This may be intentional but usually it isn't.

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha
Impact: 55
Quick Win: 18
Complexity: 62
Confidence: 93
Actionability: 84
keep open Add a library linter that reports staged libraries also supplied by the base snap, reducing snap size and attack surface; triaged and still unimplemented.
qwen/qwen3.6-35b-a3b
Impact: 30
Quick Win: 13
Complexity: 40
Confidence: 80
Actionability: 70
keep open Enhancement request to add a linter that detects libraries in a snap that are also provided by the base snap, reducing snap size and security surface.
qwen/qwen3.8-27b
Impact: 50
Quick Win: 20
Staleness: 65
Complexity: 60
Confidence: 75
Support Request: 0
keep open Feature request to add a linter that flags libraries in a snap that are already provided by the base snap, reducing snap size and security surface. Labeled Status: Triaged and Type: Enhancement by maintainer sergiusens. No implementation found in the codebase yet.
qwen/qwen3.6-35b-a3b
Staleness: 80
Complexity: 40
Confidence: 70
Support Request: 10
close stale Enhancement request to add a linter detecting libraries duplicated in base snaps. Triaged but inactive for over a year with only automated Jira sync comments.
qwen3.6-35b-a3b-mtp-q6
Staleness: 85
Complexity: 45
Confidence: 65
Support Request: 5
keep open Enhancement to add a linter detecting staged libraries already provided by the base snap. Issue is triaged and scoped but has been inactive for over a year, awaiting prioritization.

Update history

No update history recorded yet.

Related work

  • Related To: snapcraft#3413 (confidence 99%)

    The body explicitly bases the proposal on #3413; that closed, unmerged PR implemented earlier ELF linting and moved the remaining base-library check to this follow-up.

Related issues

Issue Project State Summary Similarity
#4028 linters: add linter check for unused libraries snapcraft merged Merged PR #4028 as commit e82a4434d, adding a linter warning when a snap packages a library that is not used.
71%