meta: always generate snapcraft-runner to workaround classic PATH bug
Metadata
Current evaluation
Merged #2889 as commit 343ac2862, always adding an empty snapcraft-runner to app command chains to work around incorrect PATH in non-shell classic apps.
Resolution: closed resolved
Reason: The approved PR was merged as commit 343ac2862, implementing the command-chain workaround and tests for LP#1860369 pending an upstream snapd fix.
Evaluated by: mr-cal-bot
No scores available.
Issue body
Snapcraft previously generated wrappers for most commands. Once
snapcraft became more conserative about generating unnecessary wrappers,
issues began to surface with regard to PATH being set incorrectly
for classic snap apps that did not use shell.
To work around the issue, this commit adds an empty snapcraft-runner to
the command-chain for all apps, where they typically would have none.
Once this issue is resolved in snapd, we can probably remove this
workaround.
LP#: 1860369
Signed-off-by: Chris Patterson <chris.patterson@canonical.com>
- [ ] Have you followed the [guidelines for contributing](https://github.com/snapcore/snapcraft/blob/master/CONTRIBUTING.md)?
- [ ] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [ ] Have you successfully run `./runtests.sh static`?
- [ ] Have you successfully run `./runtests.sh tests/unit`?
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged #2889 as commit 343ac2862, always adding an empty snapcraft-runner to app command chains to work around incorrect PATH in non-shell classic apps. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged in canonical/snapcraft#2889 via 343ac2862, always generating an empty snapcraft-runner to work around classic apps’ incorrect PATH until LP#1860369 is fixed upstream. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged #2889 via 343ac2862, always adding snapcraft-runner to app command chains to work around classic-snap PATH failures. Unit and integration tests were added. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged a workaround that always generates snapcraft-runner to resolve classic snap PATH bugs. Unit and integration tests were added. This temporary fix addresses snapd issue LP#1860369 and will be removed once snapd resolves the underlying problem. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Adds an empty snapcraft-runner to all app command-chains to workaround a classic snap PATH bug in snapd (LP#1860369). Tests were added per reviewer feedback. A separate broken compatibility check was noted but deferred to a future PR. |
Update history
No update history recorded yet.
Related work
-
Related To:
snapcraft#2864
(confidence 94%)
Preceding merged change established command-chain handling for a prepended snapcraft-runner.
-
Related To:
snapcraft#2912
(confidence 82%)
Follow-up refinement prevented commands with adapter "none" from being primed.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #2891 meta: always generate snapcraft-runner to workaround classic (#2889) | snapcraft | merged | Merged in PR #2891 as commit 343ac2862, adding an empty snapcraft-runner command-chain workaround for classic apps with incorrect PATH handling and unit tests. | |
| #3087 meta: remove snapd workaround for classic for core20 onwards | snapcraft | merged | Merged canonical/snapcraft#3087 as commit 244b997ca, removing the automatic classic snapcraft-runner workaround for core20 and newer while retaining it for legacy bases. | |
| #1681861 classic snaps recurse | snapcraft (launchpad) | open | Classic PATH recursion was addressed by commit 343ac2862, which added the snapcraft-runner workaround; current metadata tests still expect that runner in command chains. | |
| #3208 snap: set PATH for snapcraft command | snapcraft | merged | Merged #3208 in commit cd4f5d5cb, applying the build environment’s fixed PATH to the Snapcraft command for parity with Launchpad buildd and destructive-mode runs. |