Amd64 binary installed on aarch64 - Raspberry Pi 400

Hardware: Raspberry Pi 400
OS: Ubuntu 20.10
snapd: 2.47.1

I’ve published my snippetpixie snap for amd64, arm64 and armhf architectures, but when I try and install it on my shiny new Raspberry Pi 400 via either the Ubuntu Software app or directly with sudo snap install snippetpixie --classic it installs the amd64 arch binary.

This obviously results in a cannot exec binary file: wrong format error

I installed hugo and checked that it works, and includes an arm64 binary etc, so it’s got to be a problem with snippetpixie.

I’m guessing there’s something I’ve done wrong in packaging snippetpixie.

I’m using snapcraft.io’s automatic builds connected to github.

When I look at snippetpixie’s releases it shows all 3 architectures, all using same revision (85), but when I look at the list of builds it only shows amd64 versions. Should I also be seeing arm64 and armhf in the list of builds?

Has anyone run into this themselves and can shed some light on what I might be doing wrong?

Your problem stems from this line in your yaml:

architectures: [amd64, arm64, armhf]

This tells snapcraft that any build from amd64, arm64, and armhf hosts will be runnable on the other architectures in the list. You need to swap it to something like this:

architectures:
  - build-on: amd64
  - build-on: arm64
  - build-on: armhf

See https://snapcraft.io/docs/architectures for details.

3 Likes

Ahah! Thank you very much Daniel, that did the trick and now Snippet Pixie works as expected on my Raspberry Pi 400 with Groovy Gorilla! :tada:

How to strike envy in readers of your forum post with the first line. :smiley:

5 Likes

taps :foot:

4 Likes