Support foreign architectures
Metadata
Current evaluation
Foreign-architecture APT support landed in craft-archives#153 (64f1092), released in 2.1.0; Snapcraft added core24 cross-compilation coverage in b26b653c1.
Resolution: closed resolved
Reason: craft-archives#153 merged as commit 64f1092 and shipped in version 2.1.0, providing the required foreign-architecture package support. Snapcraft subsequently added a core24 cross-compilation test in b26b653c1.
Evaluated by: mr-cal-bot
No scores available.
Issue body
### What needs to get done
* Update craft-archives to bring https://github.com/canonical/craft-archives/issues/104
* Add a variant to `tests/spread/general/stage-packages` that exercises the following:
```yaml
name: curl-consumer
version: "0.1"
summary: cross-compiled curl consumer
description: |
A cross-compiled snap that uses libcurl. This exercises installing
libcurl-dev as a build package and staging libcurl, both from the armhf
repo.
grade: devel
base: core24
confinement: strict
platforms:
armhf:
build-on: [amd64]
build-for: [armhf]
lint:
ignore:
- library
apps:
curl-consumer:
command: usr/bin/curl-consumer
package-repositories:
- type: apt
architectures: [armhf]
components: [main]
suites: [noble]
key-id: F6ECB3762474EDA9D21B7022871920D1991BC93C
url: http://ports.ubuntu.com/ubuntu-ports
parts:
curl-consumer:
plugin: autotools
source: src
build-environment:
- PKG_CONFIG_PATH: "/usr/lib/arm-linux-gnueabihf/pkgconfig"
build-packages:
- libcurl4-openssl-dev:armhf
stage-packages:
- libcurl4t64:armhf
autotools-configure-parameters:
- --prefix=/usr
- --host=${CRAFT_ARCH_TRIPLET_BUILD_FOR}
```
### Why it needs to get done
To improve the UX for cross-compiled `core24` snaps.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Foreign-architecture APT support landed in craft-archives#153 (64f1092), released in 2.1.0; Snapcraft added core24 cross-compilation coverage in b26b653c1. | |
| stealth/space-bunny-alpha | — | closed resolved | Foreign-architecture APT support was merged in canonical/craft-archives#153 (64f1092) and released in 2.1.0, resolving the archive blocker for target package installation. | |
| qwen/qwen3.6-35b-a3b | — | — | 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. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed without resolution or implementation. The feature request to support foreign architectures and update craft-archives appears abandoned or deferred, with the final activity being an automated Jira ticket sync. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Closed without implementation. The request to update craft-archives for foreign architecture support and add cross-compilation tests was moved to internal Jira tracking (CRAFT-4038) and abandoned. |
Update history
No update history recorded yet.
Related work
-
Likely Fixed By:
canonical/craft-archives#153
(confidence 99%)
Merged commit 64f1092 delivered foreign-architecture APT support and was released in craft-archives 2.1.0.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #150 Support foreign architectures | craft-archives | closed | Foreign-architecture support shipped in craft-archives 2.1.0 via merged PR #153 (64f1092), replacing prototype #149 and enabling cross-compilation dependencies. | |
| #153 feat: support foreign architectures | craft-archives | merged | Merged PR #153 as commit 64f1092, adding APT foreign-architecture support for deb822-based Ubuntu sources, including core24; released in craft-archives 2.1.0. | |
| #104 [Investigate] support foreign architectures | craft-archives | closed | Foreign-architecture package installation was implemented in PR #153 (commit 64f1092) and released in craft-archives 2.1.0. | |
| #149 [PROTOTYPE] feat(apt_sources_manager): support foreign architectures | craft-archives | closed | Prototype PR #149 was closed unmerged and superseded by #153, which added foreign-architecture APT support in commit 64f1092 and shipped in craft-archives 2.1.0. | |
| #3821 meta: architectures | snapcraft | merged | Merged core22 architecture support, including build-on/build-for handling, host and build-instance selection, and SNAPCRAFT_BUILD_FOR filtering, via commit 4876b53. | |
| #5274 feat: support foreign architectures for core24 | snapcraft | merged | Merged PR #5274 expanded core24 cross-compilation by allowing package-repositories and build-package entries for any supported architecture, fixing #5222 and #4542. | |
| #1685 Implement support for architecture in snapcraft.yaml | snapcraft | closed | Architecture support for snapcraft.yaml landed in PR #2080 (commit c60ac3891), adding CI-oriented build-on/run-on lists. build.snapcraft.io adoption was tracked separately by cjwatson. | |
| #1648665 Architecture-specific sources for parts | snapcraft (launchpad) | closed | Closed 2026-08-25 by ~mr-cal as already fixed: Snapcraft part steps can pick architecture-specific sources via build-for env vars (SNAPCRAFT_ARCH_BUILD_FOR/SNAPCRAFT_TARGET_ARCH); no new patch was made. | |
| #5233 [PROTOTYPE] feat: support foreign architectures | snapcraft | closed | Prototype PR for foreign-architecture support (CRAFT-4038) was closed unmerged; maintainer mr-cal noted it was superseded by merged PR #5274, shipped on latest/edge and scheduled for Snapcraft 8.8. |