foreign architecture builds doesn't work with classic snaps
Metadata
Current evaluation
Cross-arch builds (--target-arch) of classic snaps fail because the build environment lacks the core snap. Reported 2016 against snapcraft 2.x; 0 comments, no maintainer response; codebase since fully rewritten.
Suggested action: close stale
Reason: The issue is 3500 days old with last activity 3238 days ago, 0 comments, and no maintainer interaction, and it targets snapcraft 2.x (2016) which has been entirely superseded by the current codebase (repo now shows a modern layout with extensions, linters, and spread tests). The affected version is no longer supported, and the reporter's mksquashfs workaround remains available, so it is no longer actionable as filed.
Impact:
30
Quick Win:
16.5
Staleness:
92
Complexity:
45
Confidence:
65
Support Request:
10
Issue body
Building the teleconsole snap, which is a pre-built binary for amd64 and armhf, I discovered that --target-arch=armhf doesn't work when the snap is a classic. I presume snapcraft is doing some cross-build environment setup and as a result core isn't installed.
"classic confinement requires the core snap to be installed. Install it by running `snap install core`."
A workaround I used was to fudge prime/meta/snap.yaml to change the architecture from amd64 to armhf, and then use mksquashfs to make the snap:-
$ mksquashfs ./prime teleconsole_0.3.1_armhf.snap -noappend -comp xz -no-xattrs -all-root
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.8-27b |
Impact:
30
Quick Win:
16.5
Staleness:
92
Complexity:
45
Confidence:
65
Support Request:
10
|
close stale | Cross-arch builds (--target-arch) of classic snaps fail because the build environment lacks the core snap. Reported 2016 against snapcraft 2.x; 0 comments, no maintainer response; codebase since fully rewritten. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
98
Complexity:
45
Confidence:
90
Support Request:
15
|
close stale | Cross-architecture builds fail for classic snaps due to missing core snap dependency. Issue is over 9 years old with no maintainer response or updates. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
98
Complexity:
25
Confidence:
85
Support Request:
15
|
close stale | Classic snap cross-architecture builds fail due to missing core snap. Issue is over 9 years old with no maintainer response or activity. | |
| qwen3.6-35b-a3b-mtp-q6 |
Staleness:
98
Complexity:
45
Confidence:
90
Support Request:
10
|
close stale | Classic snap builds fail when targeting foreign architectures due to missing core snap installation during cross-build setup. Unresolved for over 9 years with no maintainer response. | |
| qwen3.6-35b-a3b-mtp-q6 |
Staleness:
98
Complexity:
45
Confidence:
85
Support Request:
20
|
close stale | Classic snap cross-architecture builds fail due to missing core snap in the build environment. Unaddressed with zero comments and stale activity. Author supplied a manual mksquashfs workaround. Requires triage. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1665165 classic snaps fail to build in launchpad in archs other than amd64 | snapcraft (launchpad) | closed | Closed without resolution or comments. Classic snap build failures on non-amd64 architectures due to cross-compilation errors were abandoned or superseded by updated build infrastructure. | |
| #1835556 No way to natively build for the non-host arch | snapcraft (launchpad) | open | 2018 feature request for snapcraft to build for non-host architectures (e.g. --arch=i386) by launching a matching VM/container. Zero comments, no labels, dormant 7+ years; modern snapcraft now supports cross-arch builds via --build-for, so the request is effectively fulfilled. | |
| #1674828 SNAPCRAFT_SETUP_CORE=1 doesn't work for foreign architectures | snapcraft (launchpad) | closed | SNAPCRAFT_SETUP_CORE=1 failing for foreign architectures during classic snap builds was closed without resolution. Zero comments and no fixes indicate the report was abandoned due to inactivity. | |
| #1921418 wrong architecture of stage-snaps when cross building | snapcraft (launchpad) | open | Cross-building with stage-snaps downloads the wrong architecture snap (tested on snapcraft 4.6). No comments, no activity for ~5 years, tracked under Jira label craft-415. | |
| #1943603 snapcraft --target-arch=i386 does not build i386 images, because core20 does not support i386 and yet the build starts and wastes time | snapcraft (launchpad) | open | Reports that snapcraft --target-arch=i386 on a core20 base silently builds an amd64 snap instead of failing early, wasting build time. Unlabelled, 0 comments, inactive ~5 years; a related core20/i386 bug was closed as superseded by improved arch parsing. | |
| #1752957 Building classic snap without core snap installed succeeds, but creates snap that doesn't run | snapcraft (launchpad) | open | Snapcraft 2.39.x crashes with TypeError building a classic snap without the core snap installed, as get_core_dynamic_linker() returns None during patchelf. No comments or labels; 2.x series is EOL and the code path no longer exists in the current codebase. | |
| #1881515 Snapcraft pulling wrong arch of debs when building foreign snaps | snapcraft (launchpad) | open | 2018 report: --target-arch=armhf on x86 pulls x86-64 stage-packages debs instead of armhf. No labels, comments, or maintainer response in 6+ years. Legacy --target-arch flag removed; modern cross-compile documents the :$CRAFT_ARCH_BUILD_FOR suffix requirement. |