Skip to content

Homebrew installs x86-64 binary on Linux aarch64 #23

@arcavenai

Description

@arcavenai

Summary

brew install arcavenae/tap/sideshow on Linux aarch64 (Raspberry Pi OS, Pi 5) delivers an x86-64 binary. It's installed to the correct path but cannot execute:

$ sideshow
bash: /home/skippy/brew/bin/sideshow: cannot execute binary file: Exec format error

$ file $(readlink -f $(which sideshow))
/home/skippy/brew/Cellar/sideshow/0.1.0-alpha.20260419.015238.d9ba561/bin/sideshow: \
  ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, \
  BuildID[sha1]=c4525119512081ed2259eb956c11d51a99ab271e, with debug_info, not stripped

$ uname -m
aarch64

Curious

Brew reports "Built from source":

$ brew info sideshow
==> arcavenae/tap/sideshow: stable 0.1.0-alpha.20260419.015238.d9ba561
Installed (on request)
/home/skippy/brew/Cellar/sideshow/0.1.0-alpha.20260419.015238.d9ba561 (4 files, 4.4MB)
  Built from source on 2026-04-18 at 21:43:24

...yet the installed binary's ELF header says x86-64. Either the formula pulled a pre-built bottle that's mislabeled as source, or the build ran with GOARCH=amd64 somehow. This is exactly the class of bug ArcavenAE/forestage#54 fixed, but for sideshow.

Compare — forestage on the same host works

$ file $(readlink -f $(which forestage-a))
ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), ...

Forestage gets the right binary; sideshow does not. Likely the sideshow.rb formula is missing a linux_arm64 bottle or its source build step is cross-compiling wrong.

Impact

Blocks all Linux aarch64 users from using sideshow — including the Pi fleet this platform targets as a tier-1 deployment surface. Also blocks verification of #18 (bmad version detection) on this hardware.

Environment

  • Host: Raspberry Pi OS, Linux aarch64
  • Homebrew: ~/brew (linuxbrew)
  • Formula: arcavenae/tap/sideshow
  • Installed: 2026-04-18 21:43:24

Suggested fix

Mirror whatever forestage does in homebrew-tap/Formula/forestage-a.rb for the sideshow formula. Either ship linux_arm64 bottles or make sure the from-source build respects the host arch.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions