Need to build stable kernel snaps with build-base:core24
Metadata
Current evaluation
Closed as obsolete after core24 became stable; Snapcraft now maps build-base core24 to Noble, removing the pre-release blocker for stable kernel snaps.
Resolution: closed stale
Reason: A maintainer closed the report as no longer relevant once core24 shipped. Commit a9e12f622 (PR #4532) added the core24-to-Noble provider mapping, so the former prerelease limitation no longer applies.
Evaluated by: mr-cal-bot
No scores available.
Issue body
### Bug Description
I am building stable kernel snaps for 24-hwe track for Mantic.
I have tried using `build-base: core24` and `build-base: devel`.
`build-base: core24` is not recognised, as there is no dictionary key for it. Can it please be mapped to devel?
```
File "/snap/snapcraft/9362/lib/python3.8/site-packages/snapcraft/parts/lifecycle.py", line 537, in _run_in_provider
build_base = providers.SNAPCRAFT_BASE_TO_PROVIDER_BASE[snapcraft_base]
KeyError: 'core24'
```
`build-base: devel` requires `grade: devel` meaning I will not be able to promote mantic kernel snaps to 24-hwe/stable, and thus will unable to build Desktop Images using it
### To Reproduce
Use pc-kernel snapcraft.yaml from jammy, try building it with `build-base: core24` or `build-base: devel` whilst having grade set to stable.
### Environment
Ubuntu
### snapcraft.yaml
```shell
name: pc-kernel
adopt-info: kernel
grade: devel
summary: generic linux kernel
description: The generic Ubuntu kernel package as a snap
type: kernel
confinement: strict
build-base: devel
architectures:
- amd64
- arm64
parts:
kernel:
source: https://git.launchpad.net/~canonical-kernel-snaps/+git/kernel-snaps-uc24
source-type: git
source-branch: main
plugin: nil
override-pull: |
snapcraftctl pull
snapcraftctl set-version "$(apt show linux-image-uc-generic 2>/dev/null | sed -n 's/^Version: //p' | head -n1)"
build-packages:
- kmod
stage-packages:
- linux-image-uc-generic
organize:
boot: ./
lib/firmware: firmware
lib/modules: modules
usr/share/doc: doc
override-build: |
mv "$SNAPCRAFT_PART_INSTALL"/boot/kernel.efi-* "$SNAPCRAFT_PART_INSTALL"/boot/kernel.efi
# Update depmod
depmod -b "$SNAPCRAFT_PART_INSTALL" $(basename "$SNAPCRAFT_PART_INSTALL"/lib/modules/*)
# Trim firmware
"$SNAPCRAFT_PART_SRC"/trim-firmware "$SNAPCRAFT_PART_INSTALL"/lib
snapcraftctl build
```
### Relevant log output
```shell
Bad snapcraft.yaml content:
- grade must be 'devel' when build-base is 'devel'
Full execution log: '/home/xnox/.local/state/snapcraft/log/snapcraft-20230717-222251.915806.log'
Traceback (most recent call last):
File "/snap/snapcraft/9362/bin/snapcraft", line 8, in <module>
sys.exit(run())
File "/snap/snapcraft/9362/lib/python3.8/site-packages/snapcraft/cli.py", line 255, in run
_run_dispatcher(dispatcher, global_args)
File "/snap/snapcraft/9362/lib/python3.8/site-packages/snapcraft/cli.py", line 228, in _run_dispatcher
dispatcher.run()
File "/snap/snapcraft/9362/lib/python3.8/site-packages/craft_cli/dispatcher.py", line 448, in run
return self._loaded_command.run(self._parsed_command_args)
File "/snap/snapcraft/9362/lib/python3.8/site-packages/snapcraft/commands/lifecycle.py", line 265, in run
super().run(parsed_args)
File "/snap/snapcraft/9362/lib/python3.8/site-packages/snapcraft/commands/lifecycle.py", line 138, in run
parts_lifecycle.run(self.name, parsed_args)
File "/snap/snapcraft/9362/lib/python3.8/site-packages/snapcraft/parts/lifecycle.py", line 216, in run
_run_command(
File "/snap/snapcraft/9362/lib/python3.8/site-packages/snapcraft/parts/lifecycle.py", line 262, in _run_command
_run_in_provider(project, command_name, parsed_args)
File "/snap/snapcraft/9362/lib/python3.8/site-packages/snapcraft/parts/lifecycle.py", line 537, in _run_in_provider
build_base = providers.SNAPCRAFT_BASE_TO_PROVIDER_BASE[snapcraft_base]
KeyError: 'core24'
```
### Additional context
_No response_
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed stale | Closed as obsolete after core24 became stable; Snapcraft now maps build-base core24 to Noble, removing the pre-release blocker for stable kernel snaps. | |
| stealth/space-bunny-alpha | — | closed stale | Closed as obsolete after core24 became stable; Snapcraft now maps build-base core24 to Noble, removing the pre-release blocker for stable kernel snaps. | |
| stealth/space-bunny-alpha | — | closed resolved | Core24 gained stable-grade support in #4734 (aed002bbe), removing its devel-only requirement; the obsolete report was later closed. | |
| stealth/space-bunny-alpha | — | closed stale | Closed as obsolete after core24 became stable; Snapcraft now maps build-base core24 to Noble, removing the pre-release blocker for stable kernel snaps. | |
| stealth/space-bunny-alpha | — | closed not a bug | Closed as obsolete after core24 became stable, removing the pre-release limitation that blocked build-base: core24 for stable kernel snaps. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed as no longer relevant. The core24 base is now stable, resolving the original constraint that prevented using build-base: core24 for stable kernel snaps. No code changes were required. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed as no longer relevant. Maintainer confirmed that building core24 kernel snaps prior to core24 release is no longer required, resolving the workflow constraint without a code change. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed as no longer relevant. Core24 has since been released, rendering the pre-release build-base constraint obsolete. The request to support stable kernel snaps with core24 is no longer applicable. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Closed as no longer relevant. Core24 has since reached stable release, removing the need to build kernel snaps with pre-release bases and resolving the build-base restriction. |
Update history
No update history recorded yet.
Related work
-
Likely Fixed By:
canonical/snapcraft#4532
(confidence 95%)
Commit a9e12f622 added the core24 provider mapping that removes the reported KeyError.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1839604 build-base seems broken | snapcraft (launchpad) | open | Closed as implemented: current Snapcraft supports `base: bare` with a required `build-base`, including core22/core24/core26, and documents the configuration. | |
| #1835532 snapcraft behavior for type: base | snapcraft (launchpad) | closed | Implemented build-base support for base snaps; the proposed branch successfully built core20 using core18 before the issue was closed. | |
| #2054099 snapcraft (edge) fails to build core24 snaps. Running "apt update" within base container fails | snapcraft (launchpad) | open | Edge Snapcraft could not build core24 snaps because apt in the Noble buildd image could not resolve ftpmaster.internal; reproduced and escalated upstream, with no resolution recorded. | |
| #4519 Use `core24` buildd daily image | snapcraft | closed | Core24 buildd daily support was merged in snapcraft#4532 (a9e12f622), so build-base: devel now uses that image without changing snapcraft.yaml. | |
| #1862256 snapcraft should complain loudly when building base: core20 snap on i386 | snapcraft (launchpad) | closed | Closed as superseded: improved architecture parsing rejects unsupported core20/i386 builds, making a dedicated check unnecessary; snapcraft#4392 improved this handling. |