The shipped irserver is a 32-bit ARM binary linked against libzip.so.4, which only
exists on armhf with Debian 12 or older. On a 64-bit userland or trixie it cannot run,
so the role now compiles the bundled 2019 sources on the device there, with GCC 14's
new hard errors (implicit declarations, implicit int, pointer/int mix-ups) downgraded
rather than the old code patched. Picked from `dpkg --print-architecture` and the
distribution version; `pi_irserver_build_from_source: true|false` forces it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Auto-fix FQCN, YAML formatting, jinja spacing, and free-form module
syntax via ansible-lint --fix
- Fix comments misplaced inside module args by the auto-fixer
(bluetooth-monitor, pi_standard_setup, pi_musicmouse)
- Fix notify: references left stale (lowercase) after handler names
were re-cased, which would have silently broken reboot/restart
handlers (pi_disable_onboard_bluetooth, pi_hifiberry_amp,
pi_squeezelite, pi_standard_setup)
- Fix a task in pis/debmatic-install.yml missing its module name
(apt_repository), which caused a real syntax-check failure
- Add missing play names, fix comment spacing, literal-compare idiom,
and no-changed-when annotations
- Delete unused/broken roles/better-shell-env (unreferenced, invalid YAML)
- Rename all hyphenated role directories to underscore form to satisfy
ansible-lint's role-name rule, updating every playbook/meta reference
Remaining lint findings (var-naming, package-latest, risky-file-permissions,
no-handler) intentionally left for follow-up per user decision.