Build squeezelite on the device on a 64-bit or trixie userland

The shipped squeezelite is a 32-bit ARM binary linked against libFLAC.so.12 (bookworm
on armhf). Elsewhere the role now builds upstream squeezelite at a pinned commit with
the same options as the old ARM build, installing the -dev packages instead of
soname-specific runtime libraries. `ansible_architecture` is the kernel's, so the
choice reads the userland's architecture from dpkg; override with
`pi_squeezelite_custom_build_from_source: true|false`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-02 23:14:18 +02:00
parent f6a169afaa
commit a6d4180b2b
4 changed files with 100 additions and 7 deletions

View File

@@ -0,0 +1,34 @@
---
# The shipped files/squeezelite is a 32-bit ARM binary linked against libFLAC.so.12, which
# is what Debian bookworm on armhf provides. It cannot run on a 64-bit userland or on
# trixie (libflac14), so by default ("auto") the role uses it only on armhf + Debian <= 12
# and compiles pi_squeezelite_custom_version on the device everywhere else. Set true/false
# to force one or the other.
pi_squeezelite_custom_build_from_source: auto
pi_squeezelite_custom_repo: https://github.com/ralph-irving/squeezelite.git
# Upstream master when this was written (squeezelite 2.0, revision 1595). The commit the
# prebuilt binary came from (c89faf3 in the old build notes) does not exist upstream.
pi_squeezelite_custom_version: c7c4248ddd70e47dbfeba0bf4a8a7ec08d8a995c
# Runtime libraries the prebuilt binary links (bookworm package names).
pi_squeezelite_custom_runtime_packages:
- libmad0
- libmpg123-0
- libflac12
- libvorbisfile3
- libfaad2
# Headers (and, through them, the runtime libraries) for building. Installing the -dev
# packages is what makes this independent of soname bumps between Debian releases.
pi_squeezelite_custom_build_packages:
- build-essential
- git
- libasound2-dev
- libssl-dev
- libsoxr-dev
- libflac-dev
- libvorbis-dev
- libmad0-dev
- libfaad-dev
- libmpg123-dev