← Back to issue list

Library linter should still consider ignored files for dependencies

View original Launchpad issue

Metadata

Project
snapcraft (launchpad)
Number
#2080610
Type
issue
State
open
Author
~saviq
Labels
—
Created
Updated
Closed
—

Current evaluation

Library linter skips ignored (dlopen'ed) ELF files before computing dependencies, so their dependencies get falsely flagged unused; maintainer acknowledged the need for a dependency-graph refactor, still unimplemented.

Suggested action: keep open

Reason: snapcraft/linters/library_linter.py:66 does `if self._is_file_ignored(elf_file): continue` before `load_dependencies()`, so ignored dlopen'ed libraries never contribute to used_libraries and their dependencies surface as unused — a real false-positive rough edge affecting default lint runs. Maintainer ~mr-cal explicitly acknowledged it in 2024 listing three improvements (treat dependencies of unused libraries as unused, cascade ignores, hierarchical output) and noted it 'will require some substantial refactoring' since the linter builds a flat list rather than a graph. No commits implement this: git log for the file shows only style/doc changes after `linters: add linter check for unused libraries (#4028)`, and searches for 'dependency graph'/'dlopen' find no graph code. Valid and maintainer-acknowledged, so it should stay open despite ~2 years of inactivity.

Evaluated by: mr-cal-bot

Impact: 52 Quick Win: 10 Complexity: 72 Confidence: 88 Actionability: 66

Issue body

Start with: ``` Lint warnings: - library: libEGL_mesa.so.0: unused library 'usr/lib/x86_64-linux-gnu/libEGL_mesa.so.0.0.0'. (https://snapcraft.io/docs/linters-library) - library: libGLX_mesa.so.0: unused library 'usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0'. (https://snapcraft.io/docs/linters-library) ``` These are expected, as they're dlopen'ed, so: ``` lint: ignore: - library: - usr/lib/*/libEGL_mesa.so* - usr/lib/*/libGLX_mesa.so* ``` And then… ``` Lint warnings: - library: libXxf86vm.so.1: unused library 'usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0'. (https://snapcraft.io/docs/linters-library) - library: libxcb-dri2.so.0: unused library 'usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0.0.0'. (https://snapcraft.io/docs/linters-library) - library: libxcb-glx.so.0: unused library 'usr/lib/x86_64-linux-gnu/libxcb-glx.so.0.0.0'. (https://snapcraft.io/docs/linters-library) - library: libxcb-present.so.0: unused library 'usr/lib/x86_64-linux-gnu/libxcb-present.so.0.0.0'. (https://snapcraft.io/docs/linters-library) - library: libxcb-sync.so.1: unused library 'usr/lib/x86_64-linux-gnu/libxcb-sync.so.1.0.0'. (https://snapcraft.io/docs/linters-library) - library: libxcb-xfixes.so.0: unused library 'usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0.0.0'. (https://snapcraft.io/docs/linters-library) - library: libxshmfence.so.1: unused library 'usr/lib/x86_64-linux-gnu/libxshmfence.so.1.0.0'. (https://snapcraft.io/docs/linters-library) ``` GAAH!

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha
Impact: 52
Quick Win: 10
Complexity: 72
Confidence: 88
Actionability: 66
keep open Library linter skips ignored (dlopen'ed) ELF files before computing dependencies, so their dependencies get falsely flagged unused; maintainer acknowledged the need for a dependency-graph refactor, still unimplemented.
stealth/space-bunny-alpha
Impact: 42
Quick Win: 10
Complexity: 70
Confidence: 95
Actionability: 80
keep open Library linting skips ignored ELF files before dependency analysis, causing dlopen'd dependencies to be falsely reported unused; the acknowledged graph-based fix remains unimplemented.
stealth/space-bunny-alpha
Impact: 40
Quick Win: 25
Complexity: 25
Confidence: 95
Actionability: 82
needs triage No labels or maintainer response: ignoring dlopen-loaded Mesa libraries causes their dependent libraries to be falsely reported unused; ignored ELF files are still skipped before dependency analysis.
qwen3.6-35b-a3b-mtp-q6
Impact: 60
Quick Win: 30
Staleness: 85
Complexity: 50
Confidence: 60
Support Request: 20
needs triage Library linter should consider ignored files for dependency checking; user reports that after ignoring dlopen'd libraries, other dependent libraries still trigger warnings. No maintainer response after 721 days.
qwen/qwen3.6-35b-a3b
Staleness: 90
Complexity: 20
Confidence: 85
Support Request: 10
needs triage Bug report regarding a library linter failing to account for ignored files when checking dependencies, resulting in persistent warnings. Inactive for over a year with no maintainer response.
qwen/qwen3.6-35b-a3b
Staleness: 92
Complexity: 45
Confidence: 85
Support Request: 10
close stale Library linter ignores configuration rules but still reports ignored libraries as unused dependencies. Issue has no comments and has been inactive for over 1.8 years.
qwen3.6-35b-a3b-mtp-q6
Staleness: 95
Complexity: 50
Confidence: 85
Support Request: 10
needs triage Library linter reports unused warnings for dependencies of explicitly ignored files. Issue is unlabelled, has no maintainer comments, and has been inactive for over 650 days.

Update history

Date Change
created

Related issues

No related issues found above the similarity threshold.