--- - name: Apt install dependencies ansible.builtin.apt: cache_valid_time: 7200 state: present # systemd-dev: --with-systemd takes the unit directory from systemd.pc, which trixie # moved out of the systemd package. Without it `make install` fails right after # installing the binary, with an empty `install -d`. name: >- {{ ['build-essential', 'git', 'xmltoman', 'autoconf', 'automake', 'libtool', 'libpopt-dev', 'libconfig-dev', 'libasound2-dev', 'avahi-daemon', 'libavahi-client-dev', 'libssl-dev', 'libsoxr-dev'] + (['systemd-dev'] if ansible_facts.distribution_major_version | int >= 13 else []) }} - name: Build and Install Shairport sync (may take a while) ansible.builtin.script: "build-shairport-sync.sh {{ pi_shairport_sync_version }}" args: # The unit file rather than the binary: make install puts the binary in place # first, so a build that failed halfway would otherwise never be retried. creates: /lib/systemd/system/shairport-sync.service notify: Restart shairport-sync - name: Copy config ansible.builtin.template: src: shairport-sync.conf dest: /etc/shairport-sync.conf mode: "0644" notify: Restart shairport-sync - name: Modify service file to run as root ansible.builtin.lineinfile: path: /lib/systemd/system/shairport-sync.service regexp: "^#?User=" line: "User=root" notify: Restart shairport-sync - name: Enable shairport-sync autostart ansible.builtin.systemd: name: shairport-sync state: started enabled: "yes" daemon_reload: "yes" - name: Add to sysdweb ansible.builtin.include_role: name: pi_sysdweb vars: pi_sysdweb_name: shairport-sync