feat: support foreign architectures for core24
Metadata
Current evaluation
Merged after two approvals and passing CI. The change drops cross-compilation architecture restrictions for core24 snaps, allowing any supported foreign architecture in package-repositories and build-package entries. Resolves #5222 and #4542.
Suggested action: —
No scores available.
Issue body
- [x] Have you followed the [guidelines for contributing](https://github.com/canonical/snapcraft/blob/main/CONTRIBUTING.md)?
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [x] Have you successfully run `make lint`?
- [x] Have you successfully run `make test`?
---
Improves cross-compiling support for core24 snaps.
Previously, cross-compiling only worked for compatible architectures (`amd64` <-> `i386`, `arm64` <-> `armhf`). This restriction has been dropped so `package-repositories` and `build-package` entries can define entries for any supported architecture.
Fixes #5222
Fixes #4542
(CRAFT-4038)
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged after two approvals and passing CI. The change drops cross-compilation architecture restrictions for core24 snaps, allowing any supported foreign architecture in package-repositories and build-package entries. Resolves #5222 and #4542. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Removes architecture restrictions for core24 snap cross-compilation, allowing any supported architecture in package-repositories and build-package entries. Resolves #5222 and #4542. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Enables cross-compilation for foreign architectures in core24 snaps by removing previous compatibility restrictions. Allows package-repositories and build-package entries to define any supported architecture. Resolves #5222 and #4542. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #153 feat: support foreign architectures | craft-archives | merged | Merged after two approvals and passing CI, adding apt foreign architecture support for deb822-based Ubuntu releases. A final force-push targeted the 2.1.0 release. Resolves #150 and unblocks multiple snapcraft issues. | |
| #5222 Support foreign architectures | snapcraft | closed | Request to support foreign architectures for cross-compiled core24 snaps was closed without implementation. No pull requests were merged, indicating the feature was abandoned or deferred. | |
| #4873 feat: support "build-for: [all]" in core24 | snapcraft | merged | Merged implementation of build-for: [all] support for core24 snaps, fixing #4854. Changes were squashed, craft-application updated to 3.0.0, and unit and spread tests added after two approvals. | |
| #6225 feat: stable core26 support | snapcraft | merged | Merged after approval and CI validation. Adds stable core26 snap building support. Fixes #6088, supersedes #6182, and unblocks #6220. Expected test failures were noted and cleared for merge. | |
| #4734 feat: drop `build-base: devel` requirement for core24 | snapcraft | merged | Merged after two approvals and passing CI. Removes the build-base: devel requirement for core24 snaps, modifying 67 files with a net reduction of 80 lines. | |
| #2412 feat(snap): migrate the snap to core24 | charmcraft | merged | Merged after two approvals. Migrates snap packaging to core24 across four files. Known test failures were deemed non-blocking. CI passed on most platforms despite Ubuntu 20.04 and 22.04 failures. | |
| #4617 feat(craft-application): support root packages for core24 | snapcraft | merged | Added root-level build-packages and build-snaps support in snapcraft.yaml for core24. Merged after dual review approval, passing CI and coverage checks. Resolves #4605 across three files. | |
| #4763 tests: remove core24 snap workarounds (#4761) | snapcraft | merged | Merged into main after two approvals and passing CI. The change cherry-picks test updates to remove core24 snap workarounds, resolving CI failures by deleting 22 lines of legacy code in a single file. |