Call for testing: Snapcraft 9.0

On behalf of the Starcraft team, I’m pleased to announce that Snapcraft 9.0 is available in the latest/candidate and 9.x/candidate channels. The tentative release date for the stable channel is 2026-05-19T05:00:00Z.

The major changes in Snapcraft 9 are support for core26 and the removal of core20. Users who still need to build core20 snaps should remain on the 8.x channel.

Compared to the transitions to Snapcraft 7 and 8, this release includes far fewer internal refactorings. As a result, we expect the migration from core24 to core26 to be relatively straightforward for most projects. One important exception is the the removal of Python from the core26 snap.

For a complete overview of the changes in Snapcraft 9, see the release notes.

If you have any feedback or issues, please report them here or open an issue.


Subscribed stakeholders

This section contains users who wish to be automatically notified for future releases. Reply here to be added or removed from the list.

4 Likes

Good work, team :smiley: :sparkling_heart: I look forward to parallel installing a fifth snapcraft.

1 Like

When building from this core26 branch with snapcraft 9.0, I get the following:

$ snapcraft clean && time snapcraft pack
Version has been set to '0+git.3660b5d'
Version has been set to '0+git.3660b5d'
Lint warnings:
- library: bin/ovn-nbctl: missing dependency 'libunbound.so.8'. (https://documentation.ubuntu.com/snapcraft/stable/how-to/debugging/use-the-library-linter)
- library: bin/ovn-sbctl: missing dependency 'libunbound.so.8'. (https://documentation.ubuntu.com/snapcraft/stable/how-to/debugging/use-the-library-linter)
- library: bin/ovs-vsctl: missing dependency 'libunbound.so.8'. (https://documentation.ubuntu.com/snapcraft/stable/how-to/debugging/use-the-library-linter)
Version has been set to '0+git.3660b5d'
Packed lxd_0+git.3660b5d_amd64.snap

real	27m9.451s
user	0m7.595s
sys	0m3.439s

And the libunbound.so is indeed missing from the resulting snap. When building with the older snapcraft, the lib is properly primed and there is no linter warning either.

$ snap list --all snapcraft 
Name       Version  Rev    Tracking          Publisher   Notes
snapcraft  8.14.5   17634  latest/candidate  canonical✓  classic
snapcraft  9.0.0    18124  latest/candidate  canonical✓  disabled,classic

Is libunbound8 in any of the {parts,stage,prime}/ directories? What plugin is the part which should be staging this using?

I had a similar sort of problem with libmalloc not being unpacked into $CRAFT_PART_INSTALL which I still haven’t resolved, maybe they’re related…

@dilyn, let me know if you can make a small reproducer or get more information.

@sdeziel, this is almost certainly a new bug in Snapcraft 9. Core26 switched to a chiseled base, so craft-parts gained support for parsing chisel manifests. This is used for determining the stage-package cutoff. It’s certainly not working as-intended in Snapcraft.

I see the core26 added wall2dpkg a few days ago, which may be an easy path forward for Snapcraft. I’ll need to root cause the current failure first.

@sdeziel, can you submit an issue in snapcraft so we can prioritize it?

1 Like

@mr_cal snapcraft 9.0 doesn't prime files in the same way 8.x did · Issue #6248 · canonical/snapcraft · GitHub Thanks for looking into this!

Thanks! It seems Snapcraft is working as expected (believe it or not), I followed up in the github issue with an upstream issue for core26.

1 Like

Same dependencies problem with python.

  test:
    plugin: nil
    source: .
    stage-packages:
      - python3

with core26

with Snapcraft 8

Fetching stage-packages
Downloading package: python3.14
Downloading package: libffi8
Downloading package: netbase
Downloading package: readline-common
Downloading package: gcc-16-base
Downloading package: libtinfo6
Downloading package: tzdata
Downloading package: python3-minimal
Downloading package: liblzma5
Downloading package: libexpat1
Downloading package: libpython3.14-minimal
Downloading package: debconf
Downloading package: openssl-provider-legacy
Downloading package: libc-gconv-modules-extra
Downloading package: libreadline8t64
Downloading package: libdb5.3t64
Downloading package: python3
Downloading package: libzstd1
Downloading package: libc6
Downloading package: libuuid1
Downloading package: media-types
Downloading package: libpython3.14-stdlib
Downloading package: libsqlite3-0
Downloading package: libpython3-stdlib
Downloading package: libssl3t64
Downloading package: libncursesw6
Downloading package: libbz2-1.0
Downloading package: python3.14-minimal
Downloading package: zlib1g
Downloading package: libgcc-s1

with Snapcraft 9

Fetching stage-packages
Downloading package: python3

This contradicts the statement in dedicated post that nothing has to be done for snaps using python without python plugin:

If it stays this way,

it would require:

    environment:
      PATH: $SNAP/usr/bin:$PATH
  test:
    plugin: nil
    source: .
    stage-packages:
      - python3
      - python3-minimal #required for 'python3' symlink # redundant with python3 package
      - python3.14-minimal #required for python bin # redundant with python3 and python3-minimal packages

(and wouldn’t include minimal python modules as it is the case in core24)

and wouldn’t display any warning or error during build like other linters can do, if the snap is not updated.

I think I largely figured out what’s happening, so I think the issue is mostly a documentation one.

1 Like

@TehAppKiller, it looks like the same bug and root cause - core26 also lists the python packages in it’s manifest.

FYI we’ll be delaying the release of Snapcraft 9.0 to stable until this issue with core26 is resolved. A fix was landed, but hasn’t been released to core26’s stable channel yet.

Hi all,

Snapcraft 9.0 has been released to latest/stable and 9.x/stable.

I’ve been able to successfully use snapcraft 9.0 stable to build my “antennas” snap. I installed it locally on Ubuntu Core 26 (on a raspberry pi 5), and everything appears to be working fine so far.

I’ll need to observe it a bit more, but core 26 appears to have also resolved a longstanding wifi firmware issue. Yay!

1 Like