ci: add armv6 (Raspberry Pi B/Zero) build support#1400
ci: add armv6 (Raspberry Pi B/Zero) build support#1400b0bbywan wants to merge 4 commits intoSpotifyd:masterfrom
Conversation
Cross-compilation via `cross` doesn't work for armv6 due to C dependencies (alsa, dbus, pulseaudio) and bindgen (aws-lc-rs). Instead, build natively under QEMU using a RaspiOS container, forcing the correct rustup host triple (arm-unknown-linux-gnueabihf) since QEMU reports armv7 by default. - Add .github/Dockerfile.armv6 for QEMU-native builds - Add armv6 to the CD matrix (linux only, slim/default/full) - Use docker buildx with GHA layer cache in the CD workflow
|
#1389 this issue could be fixed in that PR, let me know ! |
…ildx aarch64 no longer uses ubuntu-22.04-arm; armv7 no longer uses `cross`. Both now build via docker buildx + QEMU like armv6, using docker_platform matrix entries. Artifact upload path also cleaned up (no more matrix.target). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Generates a .deb per arch (amd64, arm64, armhf, armel) after each Linux build, with the user systemd service installed in /usr/lib/systemd/user/. Version is derived from the git tag; falls back to 0.0.0+<sha> on master. .deb artifacts are published directly in GitHub releases alongside tar.gz. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Hello, Just so you know, I'm working on an open-source Volumio alternative (https://beta.odio.love) that ships spotifyd as a dependency. I noticed all ARM builds were broken due to OpenSSL 1.1 linkage (issue #1389), so I switched to native QEMU-based builds inside RaspiOS containers in my fork. This produces binaries correctly linked against OpenSSL 3, and I've tested them on real hardware (armv6, armv7, aarch64). I also publish them through my own APT repo with proper Debian packaging. I submitted PR #1400 with the CI changes for armv6. I'd love to work together on extending this approach to all ARM targets and shipping working binaries on modern distros. Happy to help however I can, let me know if you'd like to discuss the approach. |
Spotifyd dropped support for armhf after v0.3.5. This intends to bring it back
Cross-compilation via
crossdoesn't work for armv6 due to C dependencies (alsa, dbus, pulseaudio) and bindgen (aws-lc-rs). Instead, build natively under QEMU using a RaspiOS container, forcing the correct rustup host triple (arm-unknown-linux-gnueabihf) since QEMU reports armv7 by default.I've successfully tested the slim and full builds on Raspberry B and B+. The first build time is quite long (more than one hour) due to QEMU virtualization. It uses a rust cache to speedup a bit. We could also push the build image on ghcr to gain a little time.
Let me know if that's ok with you or if I need to make some change.
Thanks for spotifyd !