Charmcraft 3 breaks charms with multiple run-on architectures
Metadata
Current evaluation
Closed as blocked by canonical/craft-application#394; no resolving Charmcraft PR, commit, or release was identified for the multi-architecture regression.
Resolution: closed stale
Reason: Maintainer lengau's final comment states that the report was blocked by craft-application#394. No evidence confirms a Charmcraft fix, and the report was subsequently closed without a resolution comment.
Evaluated by: mr-cal-bot
No scores available.
Issue body
### Bug Description
For Jammy and below, charms with multiple `run-on` get the message `Architecture 'amd64-arm64-ppc64el-s390x' is not supported.` (or similar)
### To Reproduce
1. `git clone https://opendev.org/openstack/charm-vault.git`
2. `git switch stable/1.8`
3. `charmcraft pack` (with charmcraft 3)
### Environment
Linux charmcraft 3
### charmcraft.yaml
```shell
type: charm
parts:
charm:
plugin: dump
source: .
prime:
- actions/*
- charmhelpers/*
- files/*
- hooks/*
- lib/*
- templates/*
- actions.yaml
- config.yaml
- copyright
- hardening.yaml
- icon.svg
- LICENSE
- Makefile
- metadata.yaml
- README.md
bases:
- build-on:
- name: ubuntu
channel: "22.04"
architectures:
- amd64
run-on:
- name: ubuntu
channel: "22.04"
architectures: [amd64, s390x, ppc64el, arm64]
```
### Relevant log output
```shell
2024-06-10 14:08:02.305 Starting charmcraft, version 3.0.0.post46+ga44c03e
2024-06-10 14:08:02.305 Log verbosity level set to BRIEF
2024-06-10 14:08:02.305 Configuring application...
2024-06-10 14:08:02.305 Preparing application...
2024-06-10 14:08:02.306 Build plan: platform=None, build_for=None
2024-06-10 14:08:02.307 Loading project file '/home/lengau/Work/Code/charm-nova-compute/charmcraft.yaml'
2024-06-10 14:08:02.309 Warning: use of 'prime' in a charm part is deprecated and no longer works, see https://juju.is/docs/sdk/include-extra-files-in-a-charm
2024-06-10 14:08:02.339 Architecture 'amd64-arm64-ppc64el-s390x' is not supported.
2024-06-10 14:08:02.340 Traceback (most recent call last):
2024-06-10 14:08:02.340 File "/snap/charmcraft/3838/lib/python3.10/site-packages/craft_application/application.py", line 508, in run
2024-06-10 14:08:02.340 self.services.project = self.get_project(
2024-06-10 14:08:02.340 File "/snap/charmcraft/3838/lib/python3.10/site-packages/craft_application/application.py", line 303, in get_project
2024-06-10 14:08:02.340 yaml_data = self._transform_project_yaml(yaml_data, build_on, build_for)
2024-06-10 14:08:02.340 File "/snap/charmcraft/3838/lib/python3.10/site-packages/craft_application/application.py", line 601, in _transform_project_yaml
2024-06-10 14:08:02.340 self._expand_environment(yaml_data=yaml_data, build_for=build_for)
2024-06-10 14:08:02.340 File "/snap/charmcraft/3838/lib/python3.10/site-packages/craft_application/application.py", line 629, in _expand_environment
2024-06-10 14:08:02.340 info = craft_parts.ProjectInfo(
2024-06-10 14:08:02.340 File "/snap/charmcraft/3838/lib/python3.10/site-packages/craft_parts/infos.py", line 99, in __init__
2024-06-10 14:08:02.340 self._set_machine(arch)
2024-06-10 14:08:02.340 File "/snap/charmcraft/3838/lib/python3.10/site-packages/craft_parts/infos.py", line 333, in _set_machine
2024-06-10 14:08:02.340 raise errors.InvalidArchitecture(arch)
2024-06-10 14:08:02.340 craft_parts.errors.InvalidArchitecture: Architecture 'amd64-arm64-ppc64el-s390x' is not supported.
2024-06-10 14:08:02.340 Make sure the architecture name is correct.
2024-06-10 14:08:02.340 Recommended resolution: Make sure the architecture name is correct.
2024-06-10 14:08:02.340 Full execution log: '/home/lengau/.local/state/charmcraft/log/charmcraft-20240610-140802.305265.log'
```
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed stale | Closed as blocked by canonical/craft-application#394; no resolving Charmcraft PR, commit, or release was identified for the multi-architecture regression. | |
| stealth/space-bunny-alpha | — | closed superseded | Closed as blocked by canonical/craft-application#394; the upstream fix landed in craft-application PR #414 (commit 947e1b4b). | |
| stealth/space-bunny-alpha | — | closed stale | Closed as blocked by canonical/craft-application#394; the upstream issue was later abandoned without an implementation or confirmed Charmcraft fix. | |
| stealth/space-bunny-alpha | — | closed resolved | Multi-arch run-on builds were fixed by Charmcraft PR #1818, commit c787ea23; the previously blocking craft-application work was extracted by PR #414, commit 947e1b4b. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Closed as blocked by an upstream fix in craft-application. Charmcraft 3 incorrectly concatenated multiple run-on architectures into a single invalid string, causing build failures. Resolution awaits the referenced upstream issue. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed as blocked by upstream craft-application issue #394. Charmcraft 3 fails to build charms with multiple run-on architectures, throwing an invalid architecture error. Resolution awaits the upstream fix. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed as blocked by craft-application#394. The Charmcraft 3 multi-architecture run-on bug remains unresolved pending an upstream fix. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Closed and resolved via upstream fix in craft-application#394. The charmcraft 3 multi-architecture run-on build failure was fixed after the upstream craft-application issue was addressed. |
Update history
No update history recorded yet.
Related work
-
Blocked By:
canonical/craft-application#394
(confidence 99%)
The maintainer explicitly identified this upstream issue as the blocker.
-
Related To:
canonical/craft-application#414
(confidence 70%)
Merged as 947e1b4b to implement the upstream _get_build_for refactor, but no confirmed link establishes it as the fix for #1697.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1818 fix(lifecycle): allow building multi-arch charms | charmcraft | merged | Merged to main as commit c787ea23 (PR #1818), letting Charmcraft's lifecycle builds handle charms with multiple run-on architectures; landed alongside Ruff 0.6.0 fixes from #1825. Fixes #1697. | |
| #1783 Charmcraft 3 no longer respects legacy bases architectures | charmcraft | closed | Fixed in Charmcraft 3.1.2 by merged PR #1795 (8b16cae4), which limits manifest.yaml bases to those in the current build, preserving arm64 metadata. | |
| #1563 fix: breaking changes from craft-application main | charmcraft | merged | Merged charmcraft#1563 as commit 8dce5351, updating Charmcraft for breaking API changes on craft-application main. | |
| #1791 Charmcraft 3 including previously-built charms in new charm builds | charmcraft | closed | Fixed in PR #1793 (commit affc209b): subsequent charmcraft pack runs no longer include previously built .charm artifacts in the new charm. | |
| #1853 Incorrect information in Charmhub for ARM64 variants of a charm | charmcraft | closed | Charmcraft incorrectly packed legacy-base manifests with every declared architecture. PR #1795 (8b16cae4) fixed this in 3.1.2; affected charms must be repacked. | |
| #552 `charmcraft pack` runs indefinitely when using parts | charmcraft | closed | The hang was caused by duplicated local-source ignore patterns in Charmcraft 1.2.1 and fixed in 1.3.0 via canonical/craft-parts#120 (commit 280e1592). | |
| #1267 Can't build charm targeted at the current development release: `Skipping 'bases[8].build-on[0]': channel 'devel' does not match host '23.10'.` | charmcraft | closed | Development-release builds stopped being rejected in Charmcraft 3; platform support landed in PR #1554 (commit e3de0a46), and the maintainer closed the report as fixed. |