Unwanted staged dependencies when building with a `core26` base
Metadata
Current evaluation
Fixed by craft-parts #1538 (49a8824c), adding Chisel manifest parsing for core26 package filtering; released on edge and scheduled for Snapcraft 9.0.
Resolution: closed resolved
Reason: Resolved by craft-parts PR #1538, commit 49a8824c, which reads core26's Chisel manifest when dpkg.list is absent. Maintainer mr-cal confirmed the fix reached edge and was due in Snapcraft 9.0.
Evaluated by: mr-cal-bot
No scores available.
Issue body
### Check existing issues
- [x] I've verified that this bug isn't described by any existing issues.
### Bug description
While upgrading the [upower snap](https://github.com/canonical/upower-snap) for Ubuntu Core 26, I have noticed that some packages, such as libc, are pulled as dependencies for the only staged package (libgudev-1.0-0), which then triggers a lots of linter warnings.
```
Lint warnings:
- classic: usr/bin/upower: ELF interpreter should be set to '/snap/upower/current/usr/lib64/ld-linux-x86-64.so.2'. (https://documentation.ubuntu.com/snapcraft/stable/how-to/debugging/use-the-classic-linter)
- classic: usr/bin/upower: ELF rpath should be set to '$ORIGIN/../lib/x86_64-linux-gnu'. (https://documentation.ubuntu.com/snapcraft/stable/how-to/debugging/use-the-classic-linter)
- classic: usr/lib/x86_64-linux-gnu/gconv/ANSI_X3.110.so: ELF rpath should be set to '$ORIGIN/..'. (https://documentation.ubuntu.com/snapcraft/stable/how-to/debugging/use-the-classic-linter)
```
I would not expect libc to be needed here, as the default version in resolute is high enough (libc 2.43, which is >= 2.38, the requested dependency). I checked by launching a minimal resolute LXC container, and running apt install libgudev-1.0-0, and no additional dependency is pulled.
When crafting (with the same snapcraft version) the snap with a core24 base, the parts/upower/stage folder contains only the expected staged package: libgudev-1.0-0.
### Steps to reproduce
Clone [upower-snap](https://github.com/canonical/upower-snap), checkout the snap-26 branch, and apply commits for this [PR](https://github.com/canonical/upower-snap/pull/10) if not yet merged.
Build with snapcraft 8.14.4 and observe the linter warnings, and staged packages.
You can compare with the snap-24 branch.
### Environment
Using LXD to build, host OS is Ubuntu 24.04.
### snapcraft.yaml
```yaml
```
### Log output
```shell
```
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Fixed by craft-parts #1538 (49a8824c), adding Chisel manifest parsing for core26 package filtering; released on edge and scheduled for Snapcraft 9.0. | |
| stealth/space-bunny-alpha | — | closed resolved | core26 staged dependencies were fixed by updating stage-package filtering; maintainer @mr-cal announced rollout to edge and Snapcraft 9.0. | |
| stealth/space-bunny-alpha | — | closed resolved | Unwanted core26 staged dependencies were fixed in a Snapcraft stage-package filtering update announced for edge and Snapcraft 9.0. | |
| qwen/qwen3.6-35b-a3b | — | — | Fixed unwanted staged dependencies when building with a core26 base. The root cause was a missing dpkg.list file preventing package cleanup. The fix was released to the edge channel and scheduled for version 9.0. | |
| qwen/qwen3.6-35b-a3b | — | — | Fixed unwanted staged dependencies when building with a core26 base. The root cause was a missing dpkg.list file preventing staged package cleanup. The fix was merged and released in Snapcraft 9.0. | |
| qwen/qwen3.6-35b-a3b | — | — | Resolved by fixing the missing dpkg.list file in core26 that blocked staged package cleanup. The fix was released to the edge channel and included in Snapcraft 9.0. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Fixed. Core26 lacked the dpkg.list file required to clean staged packages, causing unwanted dependencies. The fix was merged and released to the edge channel, with a stable release scheduled for version 9.0. |
Update history
No update history recorded yet.
Related work
-
Likely Fixed By:
canonical/craft-parts#1538
(confidence 99%)
Commit 49a8824c added parsing of core26's Chisel manifest for package filtering.
-
Related To:
snapcraft#6146
(confidence 98%)
The maintainer identified both issues as having the same missing core26 dpkg.list root cause.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #6248 core26 doesn't stage all dependencies of `stage-packages` | snapcraft | closed | Not a Snapcraft bug: the missing stage-packages deps (libunbound8, libevent-2.1t64) came from a faulty chisel manifest in the core26 base, fixed upstream in canonical/core-base#443; issue closed. | |
| #5767 feat: add support for core26 (#5677) | snapcraft | merged | Merged core26 support into Snapcraft, adding base recognition and unit-test coverage; core26 initially required build-base: devel. | |
| #6146 `base: core26` part conflict on `/lib`, `/bin` due to usrmerge | snapcraft | closed | Fixed the core26 /bin and /lib part conflict caused by missing dpkg.list base-package cleanup metadata; the correction shipped to edge and was scheduled for Snapcraft 9.0. | |
| #1538 feat(packages/deb): parse chisel manifests | craft-parts | merged | Merged #1538 as 49a8824c, adding Chisel manifest parsing so stage-packages are filtered correctly for the chiseled Core 26 base. |