← Back to issue list

classic snaps cannot find stage packages in $PATH

View original Launchpad issue

Metadata

Project
snapcraft (launchpad)
Number
#1681722
Type
issue
State
open
Author
~stub
Labels
Created
Updated
Closed

Current evaluation

Classic snaps with stage-packages cannot find dependent binaries because snap bin directories are missing from default PATH. 9+ years old, zero comments, no labels. A related workaround (PR #2889, snapcraft-runner) was merged to address classic snap PATH resolution.

Suggested action: close stale

Reason: The issue is 3429 days old with zero comments, no labels, and no maintainer interaction. PR canonical/snapcraft#2889 was merged to 'always generate snapcraft-runner to workaround classic PATH bug,' directly addressing the same class of problem (classic snap PATH resolution). The workaround is noted as temporary pending snapd fix LP#1860369, but the original request for automatic PATH handling has been substantially addressed by the snapcraft-runner mechanism, making this issue no longer actionable in its original form.

Impact: 35 Quick Win: 21.0 Staleness: 95 Complexity: 40 Confidence: 60 Support Request: 15

Issue body

A classic snap can declare stage-packages to embed dependent binaries. However, /snap/$snapname/{usr/,usr/local/,}bin is not in the default $PATH so the snapped commands cannot locate dependent executables. It currently seems to be a requirement to append the directories containing the dependencies to $PATH in a wrapper script. This could be done automatically.

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.8-27b
Impact: 35
Quick Win: 21.0
Staleness: 95
Complexity: 40
Confidence: 60
Support Request: 15
close stale Classic snaps with stage-packages cannot find dependent binaries because snap bin directories are missing from default PATH. 9+ years old, zero comments, no labels. A related workaround (PR #2889, snapcraft-runner) was merged to address classic snap PATH resolution.
qwen/qwen3.6-35b-a3b
Staleness: 98
Complexity: 55
Confidence: 90
Support Request: 20
close stale Classic snaps with stage-packages cannot locate dependent binaries because snap bin directories are missing from the default PATH. Requires manual wrapper scripts. No maintainer response in over 9 years.
qwen/qwen3.6-35b-a3b
Staleness: 98
Complexity: 60
Confidence: 90
Support Request: 10
close stale Classic snaps with stage-packages cannot locate dependent binaries because snap bin directories are missing from $PATH. Requires manual wrapper scripts. Unaddressed for over 9 years.
qwen3.6-35b-a3b-mtp-q6
Staleness: 95
Complexity: 25
Confidence: 80
Support Request: 10
close stale Classic snaps with stage-packages cannot locate dependent binaries because snap bin directories are missing from $PATH, requiring manual wrapper scripts. Unaddressed for over nine years.
qwen3.6-35b-moe-q4
Staleness: 100
Complexity: 30
Confidence: 90
Support Request: 10
close stale Classic snaps with stage-packages cannot locate dependent binaries in $PATH, requiring manual wrapper scripts. The issue is over 9 years old with zero maintainer interaction or updates.

Update history

No update history recorded yet.

Related work

  • Likely Fixed By: canonical/snapcraft#2889 (confidence 55%)

    Merged PR that always generates snapcraft-runner to fix incorrect PATH resolution for classic snap apps. Described as a workaround for snapd LP#1860369. Addresses the same class of PATH problem but may not specifically cover stage-packages usr/local/bin directories.

Related issues

Issue Project State Summary Similarity
#1670388 classic snap are missing some env variables for reaching command name. (snap build, executing it fails) snapcraft (launchpad) open Classic-confinement snapcraft 2.27.1 app wrappers omit $SNAP/bin from PATH, so bare command names fail at runtime and shebangs resolve to system binaries instead of snap ones. Reported 2017, zero comments; later addressed in snapcraft via snapcraft-runner workaround (#2889).
78%
#1681861 classic snaps recurse snapcraft (launchpad) open Classic snap command wrappers generated by snapcraft use bare command names instead of $SNAP/bin/command paths, causing failures since PATH is not reset in classic confinement. 3429 days old, no labels, no comments, no maintainer interaction.
74%
#1918999 stage-packages for classic snaps silently drop core20 snap debs snapcraft (launchpad) open Classic snaps using stage-packages silently drop dependencies already present in the core20 base, causing missing dependencies at runtime. Open 5+ years with zero maintainer interaction; workaround is to manually list every transitive dependency.
74%