From 464c246a7847c7e75e0bb8634b14bba718076d78 Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Mon, 11 Sep 2023 17:44:00 +0100 Subject: [PATCH 01/28] in the docker build process, skip the make install for nqptp and take the binary of nqptp from where it is built --- docker/Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 1dc34141..da8688ed 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -46,7 +46,6 @@ RUN git checkout "$NQPTP_BRANCH" RUN autoreconf -i RUN ./configure RUN make -RUN make install WORKDIR / ##### NQPTP END ##### @@ -97,7 +96,7 @@ RUN apk -U add \ # Copy build files. COPY --from=builder /shairport-sync/build/install/usr/local/bin/shairport-sync /usr/local/bin/shairport-sync COPY --from=builder /shairport-sync/build/install/usr/local/share/man/man7 /usr/share/man/man7 -COPY --from=builder /usr/local/bin/nqptp /usr/local/bin/nqptp +COPY --from=builder /nqptp/nqptp /usr/local/bin/nqptp COPY --from=builder /usr/local/lib/libalac.* /usr/local/lib/ COPY --from=builder /shairport-sync/build/install/etc/shairport-sync.conf /etc/ COPY --from=builder /shairport-sync/build/install/etc/shairport-sync.conf.sample /etc/ From 837209217749c3d62c88e71e88fd2ef307a17c08 Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Sat, 16 Sep 2023 18:50:41 +0100 Subject: [PATCH 02/28] Actually make 4.2.1 4.3, since there have been enhancements. --- RELEASENOTES.md | 45 +++++++++++++++++++++++++++++++++++++++++++-- configure.ac | 2 +- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index a1fcb0a9..64d85f21 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,9 +1,50 @@ +Version 4.3 -- Security Updates, Bug Fixes and Enhancements +==== +This update contains important security updates, bug fixes and enhancements. [NQPTP](https://github.com/mikebrady/nqptp) must also be updated, and it should be updated before updating Shairport Sync. +The Shared Memory Interface version of both Shairport Sync and NQPTP is now 10, i.e. `smi10`. Thus the version string of both apps should contain `smi10`: +``` +$ nqptp -V +Version: 1.2.4. Shared Memory Interface Version: smi10. +$ shairport-sync -V +4.3-...-smi10-... +``` +Notes +1. When updating NQPTP on Linux, be sure to remove the old service file as directed in the [README](https://github.com/mikebrady/nqptp/blob/main/README.md#remove-old-service-files). +2. Having completed both updates and installations, remember to restart NQPTP first and then restart Shairport Sync. + +**Security Updates** +* A crashing bug in NQPTP has been fixed. +* The communications protocol used between NQPTP and Shairport Sync has been revised and made more resilient to attempted misuse. +* In Linux systems, NQPTP no longer runs as `root` -- instead it runs as the restriced user `nqptp`, with access to ports 319 and 320 set by the installer via the `setcap` utility. + +**Enhancements** +* A new volume control profile called `dasl-tapered` has been added in which halving the volume control setting halves the output level. +For example, moving the volume slider from full to half reduces the output level by 10dB, which roughly corresponds with a perceived halving of the audio volume level. +Moving the volume slider from half to a quarter reduces the output level by a a further 10dB. +The tapering rate is slightly modified at the lower end of the range if the device's attenuation range is restricted (less than about 55dB). + + To activate the `dasl-tapered` profile, set the `volume_control_profile` to `"dasl_tapered"` in the configuration file and restart Shairport Sync. + + Many thanks to David Leibovic, aka [dasl-](https://github.com/dasl-), for this. +* On graceful shutdown, an `active_end` signal should now be generated if the system was in the active state. Addresses issue [#1647](https://github.com/mikebrady/shairport-sync/issues/1647). Thanks to [Tucker Kern](https://github.com/mill1000) for raising the issue. + +**Bug Fixes** +* Fixed a bug that causes the Docker image to crash occasionally when OwnTone interrupted an existing iOS session. Thanks to [aaronk6](https://github.com/aaronk6) for the report. +* Fixed a cross-compliation error caused by not looking for the correct version of the `ar` tool. The fix was to substitute the correct version during the `autoreconf` phase. Thanks to [sternenseemann](https://github.com/sternenseemann) for raising the [issue](https://github.com/mikebrady/shairport-sync/issues/1705) and the [PR](https://github.com/mikebrady/shairport-sync/pull/1706) containing the fix. +* Updated the mDNS strings for the Classic AirPlay feature of AP2, so that it does not appear to provide MFi authentication. Addresses [this discussion](https://github.com/mikebrady/shairport-sync/discussions/1691). +* Always uses a revision number of 1 when looking for status updates on the DACP remote control port. This follows a suggestion in [Issue #1658](https://github.com/mikebrady/shairport-sync/issues/1658). Thanks to [ejurgensen](https://github.com/ejurgensen), as ever, for the report and the suggested fix. +* Fixed a `statistics` bug (the minimum buffer size was incorrectly logged) and also tidy up the statistics logging interval logic for resetting min and max counters. +* Added an important missing format string argument to a call in the Jack Audio backend. Many thanks to [michieldwitte](https://github.com/michieldwitte) for their [PR](https://github.com/mikebrady/shairport-sync/pull/1693). + +**Maintenance** +* Stopped using a deprecated FFmpeg data structure reference. +* Stopped using deprecated OpenSSL calls. Thanks to [yubiuser](https://github.com/yubiuser) for their [PR](https://github.com/mikebrady/shairport-sync/pull/1684) -- which did some of the updating -- and for their guidance. +* Run workflow-based tests on PRs automatically. Thanks to [yubiuser](https://github.com/yubiuser) for their [PR](https://github.com/mikebrady/shairport-sync/pull/1687). + Version 4.2 ==== This release consists of enhancements and a number of important bug fixes to Version 4.1. For information on the new features of 4.1, including AirPlay 2 support, please see the section "Version 4.1" below. -Important ----- If you are updating an existing installation of Shairport Sync, you must also update [NQPTP](https://github.com/mikebrady/nqptp). The reason is that this update to Shairport Sync requires NQPTP with Shared Memory Interface Version `smi9` and will not work with older versions. * The Shared Memory Interface Version `smi*` needed by Shairport Sync is part of its version string, obtainable using `$ shairport-sync -V`. * You can check the Shared Memory Interface Version of the installed version of `nqptp` using `$ nqptp -V`. diff --git a/configure.ac b/configure.ac index 4f38634b..8be05422 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.50]) -AC_INIT([shairport-sync], [4.2.1], [4265913+mikebrady@users.noreply.github.com]) +AC_INIT([shairport-sync], [4.3], [4265913+mikebrady@users.noreply.github.com]) AM_INIT_AUTOMAKE([subdir-objects]) AC_CONFIG_SRCDIR([shairport.c]) AC_CONFIG_HEADERS([config.h]) From e7b75dc055436855f508aa8cbfc377aa99c63057 Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 11:51:45 +0100 Subject: [PATCH 03/28] Update check_classic_systemd_full.yml --- .github/workflows/check_classic_systemd_full.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/check_classic_systemd_full.yml b/.github/workflows/check_classic_systemd_full.yml index 75229469..b86731a4 100644 --- a/.github/workflows/check_classic_systemd_full.yml +++ b/.github/workflows/check_classic_systemd_full.yml @@ -13,6 +13,10 @@ jobs: steps: - uses: actions/checkout@v3.5.2 + - name: Update + run: | + apt-get update + apt-get -y upgrade - name: Install Dependencies run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libpulse-dev libsoundio-dev libsndio-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev - name: Configure From 78305bb1e2a3989c44e11e3110a137edf8f79c8a Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 11:55:48 +0100 Subject: [PATCH 04/28] Update check_classic_systemd_full.yml --- .github/workflows/check_classic_systemd_full.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check_classic_systemd_full.yml b/.github/workflows/check_classic_systemd_full.yml index b86731a4..1e817b61 100644 --- a/.github/workflows/check_classic_systemd_full.yml +++ b/.github/workflows/check_classic_systemd_full.yml @@ -1,6 +1,7 @@ name: Full classic configuration (but without apple-alac) for systemd, using a build folder. on: + workflow_dispatch: push: branches: [ "development", "danger" ] pull_request: From 838b12278cf1a4554d2e05d064f0bf774073d9fd Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 11:59:08 +0100 Subject: [PATCH 05/28] Update check_classic_systemd_full.yml --- .github/workflows/check_classic_systemd_full.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/check_classic_systemd_full.yml b/.github/workflows/check_classic_systemd_full.yml index 1e817b61..b86731a4 100644 --- a/.github/workflows/check_classic_systemd_full.yml +++ b/.github/workflows/check_classic_systemd_full.yml @@ -1,7 +1,6 @@ name: Full classic configuration (but without apple-alac) for systemd, using a build folder. on: - workflow_dispatch: push: branches: [ "development", "danger" ] pull_request: From a3f4c94493988d76df3ce3d2826491ed97e1e2dc Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 12:48:41 +0100 Subject: [PATCH 06/28] Update check_classic_systemd_full.yml --- .github/workflows/check_classic_systemd_full.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check_classic_systemd_full.yml b/.github/workflows/check_classic_systemd_full.yml index b86731a4..1e817b61 100644 --- a/.github/workflows/check_classic_systemd_full.yml +++ b/.github/workflows/check_classic_systemd_full.yml @@ -1,6 +1,7 @@ name: Full classic configuration (but without apple-alac) for systemd, using a build folder. on: + workflow_dispatch: push: branches: [ "development", "danger" ] pull_request: From 82bab6596a0a321c204253a69c58146cf394a919 Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 12:50:01 +0100 Subject: [PATCH 07/28] Update check_classic_systemd_full.yml --- .github/workflows/check_classic_systemd_full.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check_classic_systemd_full.yml b/.github/workflows/check_classic_systemd_full.yml index 1e817b61..50f78c23 100644 --- a/.github/workflows/check_classic_systemd_full.yml +++ b/.github/workflows/check_classic_systemd_full.yml @@ -19,13 +19,13 @@ jobs: apt-get update apt-get -y upgrade - name: Install Dependencies - run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libpulse-dev libsoundio-dev libsndio-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev + run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libpulse-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev - name: Configure run: | mkdir build cd build autoreconf -i .. - ../configure --sysconfdir=/etc --with-alsa --with-ao --with-dummy --with-jack --with-pa --with-pipe --with-sndio --with-soundio --with-stdout --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-dbus-interface --with-mpris-interface --with-mqtt-client + ../configure --sysconfdir=/etc --with-alsa --with-ao --with-dummy --with-jack --with-pa --with-pipe --with-stdout --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-dbus-interface --with-mpris-interface --with-mqtt-client - name: Make run: | cd build From 87f209f57d5cb50fb48b6f5854286f5d9074566b Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 12:51:53 +0100 Subject: [PATCH 08/28] Update check_classic_systemd_full.yml --- .github/workflows/check_classic_systemd_full.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/check_classic_systemd_full.yml b/.github/workflows/check_classic_systemd_full.yml index 50f78c23..5c0048a5 100644 --- a/.github/workflows/check_classic_systemd_full.yml +++ b/.github/workflows/check_classic_systemd_full.yml @@ -14,10 +14,6 @@ jobs: steps: - uses: actions/checkout@v3.5.2 - - name: Update - run: | - apt-get update - apt-get -y upgrade - name: Install Dependencies run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libpulse-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev - name: Configure From 552d98eca32656843ffed0249dcddc788e9c665e Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 12:53:43 +0100 Subject: [PATCH 09/28] Update check_classic_systemd_full.yml --- .github/workflows/check_classic_systemd_full.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check_classic_systemd_full.yml b/.github/workflows/check_classic_systemd_full.yml index 5c0048a5..7ac8a540 100644 --- a/.github/workflows/check_classic_systemd_full.yml +++ b/.github/workflows/check_classic_systemd_full.yml @@ -15,13 +15,13 @@ jobs: steps: - uses: actions/checkout@v3.5.2 - name: Install Dependencies - run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libpulse-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev + run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev - name: Configure run: | mkdir build cd build autoreconf -i .. - ../configure --sysconfdir=/etc --with-alsa --with-ao --with-dummy --with-jack --with-pa --with-pipe --with-stdout --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-dbus-interface --with-mpris-interface --with-mqtt-client + ../configure --sysconfdir=/etc --with-alsa --with-ao --with-dummy --with-jack --with-pipe --with-stdout --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-dbus-interface --with-mpris-interface --with-mqtt-client - name: Make run: | cd build From b8b6d360e76a4513f7fe5801a9b1786b27b151f6 Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 12:55:05 +0100 Subject: [PATCH 10/28] Update check_classic_systemd_full.yml --- .github/workflows/check_classic_systemd_full.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check_classic_systemd_full.yml b/.github/workflows/check_classic_systemd_full.yml index 7ac8a540..1e58fb8e 100644 --- a/.github/workflows/check_classic_systemd_full.yml +++ b/.github/workflows/check_classic_systemd_full.yml @@ -21,7 +21,7 @@ jobs: mkdir build cd build autoreconf -i .. - ../configure --sysconfdir=/etc --with-alsa --with-ao --with-dummy --with-jack --with-pipe --with-stdout --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-dbus-interface --with-mpris-interface --with-mqtt-client + ../configure --sysconfdir=/etc --with-alsa --with-ao --with-dummy --with-pipe --with-stdout --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-dbus-interface --with-mpris-interface --with-mqtt-client - name: Make run: | cd build From 60a1388b64e2ebcf708513182a1dc119ddcc6d38 Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 12:57:36 +0100 Subject: [PATCH 11/28] Update check_classic_systemd_full.yml --- .github/workflows/check_classic_systemd_full.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check_classic_systemd_full.yml b/.github/workflows/check_classic_systemd_full.yml index 1e58fb8e..c722cfc2 100644 --- a/.github/workflows/check_classic_systemd_full.yml +++ b/.github/workflows/check_classic_systemd_full.yml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/checkout@v3.5.2 - name: Install Dependencies - run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev + run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libpulse-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev - name: Configure run: | mkdir build From 1708f853ac317e7f977854944402951523780d23 Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 12:59:38 +0100 Subject: [PATCH 12/28] Update check_classic_systemd_full.yml --- .github/workflows/check_classic_systemd_full.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check_classic_systemd_full.yml b/.github/workflows/check_classic_systemd_full.yml index c722cfc2..deb13e17 100644 --- a/.github/workflows/check_classic_systemd_full.yml +++ b/.github/workflows/check_classic_systemd_full.yml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/checkout@v3.5.2 - name: Install Dependencies - run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libpulse-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev + run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev - name: Configure run: | mkdir build From efcf9700aaaffe2cdc9d6b15bcbdbed056638e67 Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:03:14 +0100 Subject: [PATCH 13/28] Update check_classic_systemd_full.yml --- .github/workflows/check_classic_systemd_full.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check_classic_systemd_full.yml b/.github/workflows/check_classic_systemd_full.yml index deb13e17..a24c391f 100644 --- a/.github/workflows/check_classic_systemd_full.yml +++ b/.github/workflows/check_classic_systemd_full.yml @@ -10,12 +10,12 @@ on: jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3.5.2 - name: Install Dependencies - run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev + run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libpulse-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev - name: Configure run: | mkdir build From 57c1bb683d1fecb5e6760ba679dccf0e66464daf Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:08:37 +0100 Subject: [PATCH 14/28] Update check_classic_systemd_full.yml --- .github/workflows/check_classic_systemd_full.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check_classic_systemd_full.yml b/.github/workflows/check_classic_systemd_full.yml index a24c391f..deb13e17 100644 --- a/.github/workflows/check_classic_systemd_full.yml +++ b/.github/workflows/check_classic_systemd_full.yml @@ -10,12 +10,12 @@ on: jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3.5.2 - name: Install Dependencies - run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libpulse-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev + run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev - name: Configure run: | mkdir build From b941bf4d734f70a8c30befe2b65f25943e13ef58 Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:09:26 +0100 Subject: [PATCH 15/28] Update check_classic_systemd_full.yml --- .github/workflows/check_classic_systemd_full.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check_classic_systemd_full.yml b/.github/workflows/check_classic_systemd_full.yml index deb13e17..8327380d 100644 --- a/.github/workflows/check_classic_systemd_full.yml +++ b/.github/workflows/check_classic_systemd_full.yml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/checkout@v3.5.2 - name: Install Dependencies - run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev + run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libsoundio-dev libsndio-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev - name: Configure run: | mkdir build From b30d56c401faf8ac4a7c4be76684c9842a2002e6 Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:11:15 +0100 Subject: [PATCH 16/28] Update check_classic_systemd_full.yml --- .github/workflows/check_classic_systemd_full.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check_classic_systemd_full.yml b/.github/workflows/check_classic_systemd_full.yml index 8327380d..4199a544 100644 --- a/.github/workflows/check_classic_systemd_full.yml +++ b/.github/workflows/check_classic_systemd_full.yml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/checkout@v3.5.2 - name: Install Dependencies - run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libsoundio-dev libsndio-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev + run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libsndio-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev - name: Configure run: | mkdir build From ca8c6c62f6853605d1fb077a1fae74c819f2d68c Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:17:55 +0100 Subject: [PATCH 17/28] Update check_classic_systemd_full.yml --- .github/workflows/check_classic_systemd_full.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check_classic_systemd_full.yml b/.github/workflows/check_classic_systemd_full.yml index 4199a544..4d289c53 100644 --- a/.github/workflows/check_classic_systemd_full.yml +++ b/.github/workflows/check_classic_systemd_full.yml @@ -1,4 +1,4 @@ -name: Full classic configuration (but without apple-alac) for systemd, using a build folder. +name: Classic (without pa, soundio, apple-alac) for systemd, using a build folder. on: workflow_dispatch: From 811564722ec8ef37f8d913e888e8e073f9cbc927 Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:20:23 +0100 Subject: [PATCH 18/28] Update check_ap2_systemd_full.yml --- .github/workflows/check_ap2_systemd_full.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/check_ap2_systemd_full.yml b/.github/workflows/check_ap2_systemd_full.yml index e99e0a23..bc2d912d 100644 --- a/.github/workflows/check_ap2_systemd_full.yml +++ b/.github/workflows/check_ap2_systemd_full.yml @@ -1,6 +1,7 @@ -name: Full configuration (but without apple-alac) for systemd. +name: Configuration (without pa, soundio or apple-alac) for systemd. on: + workflow_dispatch: push: branches: [ "development", "danger" ] pull_request: @@ -14,11 +15,11 @@ jobs: steps: - uses: actions/checkout@v3.5.2 - name: Install Dependencies - run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libpulse-dev libsoundio-dev libsndio-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev libplist-dev libsodium-dev libavutil-dev libavcodec-dev libavformat-dev uuid-dev libgcrypt-dev xxd + run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libsndio-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev libplist-dev libsodium-dev libavutil-dev libavcodec-dev libavformat-dev uuid-dev libgcrypt-dev xxd - name: Configure run: | autoreconf -i - ./configure --sysconfdir=/etc --with-alsa --with-ao --with-dummy --with-jack --with-pa --with-pipe --with-sndio --with-soundio --with-stdout --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-dbus-interface --with-mpris-interface --with-mqtt-client --with-airplay-2 + ./configure --sysconfdir=/etc --with-alsa --with-ao --with-dummy --with-jack --with-pipe --with-sndio --with-stdout --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-dbus-interface --with-mpris-interface --with-mqtt-client --with-airplay-2 - name: Make run: | make -j From dbb3bac1bf6d11b5d881848cc17469f174aa66b4 Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:21:04 +0100 Subject: [PATCH 19/28] Update check_ap2_systemd_basic.yml --- .github/workflows/check_ap2_systemd_basic.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check_ap2_systemd_basic.yml b/.github/workflows/check_ap2_systemd_basic.yml index 23e155be..36749564 100644 --- a/.github/workflows/check_ap2_systemd_basic.yml +++ b/.github/workflows/check_ap2_systemd_basic.yml @@ -1,6 +1,7 @@ name: Basic ALSA configuration for systemd, using a build folder. on: + workflow_dispatch: push: branches: [ "development" ] pull_request: From fe435f213e649f66f5da667222ec411182bfc7d6 Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:22:06 +0100 Subject: [PATCH 20/28] Update check_ap2_systemd_full_build_folder.yml --- .github/workflows/check_ap2_systemd_full_build_folder.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/check_ap2_systemd_full_build_folder.yml b/.github/workflows/check_ap2_systemd_full_build_folder.yml index bdab8195..04c9f028 100644 --- a/.github/workflows/check_ap2_systemd_full_build_folder.yml +++ b/.github/workflows/check_ap2_systemd_full_build_folder.yml @@ -1,4 +1,4 @@ -name: Full configuration (but without apple-alac) for systemd, using a build folder. +name: Configuration (without pa, soundio or apple-alac) for systemd, using a build folder. on: push: @@ -14,13 +14,13 @@ jobs: steps: - uses: actions/checkout@v3.5.2 - name: Install Dependencies - run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libpulse-dev libsoundio-dev libsndio-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev libplist-dev libsodium-dev libavutil-dev libavcodec-dev libavformat-dev uuid-dev libgcrypt-dev xxd + run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libsndio-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev libplist-dev libsodium-dev libavutil-dev libavcodec-dev libavformat-dev uuid-dev libgcrypt-dev xxd - name: Configure run: | mkdir build cd build autoreconf -i .. - ../configure --sysconfdir=/etc --with-alsa --with-ao --with-dummy --with-jack --with-pa --with-pipe --with-sndio --with-soundio --with-stdout --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-dbus-interface --with-mpris-interface --with-mqtt-client --with-airplay-2 + ../configure --sysconfdir=/etc --with-alsa --with-ao --with-dummy --with-jack --with-pipe --with-sndio --with-stdout --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-dbus-interface --with-mpris-interface --with-mqtt-client --with-airplay-2 - name: Make run: | cd build From b0ddb8b8c33104d994780f2fb956134552a3a980 Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:22:35 +0100 Subject: [PATCH 21/28] Update check_ap2_systemd_full_build_folder.yml --- .github/workflows/check_ap2_systemd_full_build_folder.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check_ap2_systemd_full_build_folder.yml b/.github/workflows/check_ap2_systemd_full_build_folder.yml index 04c9f028..98f964cb 100644 --- a/.github/workflows/check_ap2_systemd_full_build_folder.yml +++ b/.github/workflows/check_ap2_systemd_full_build_folder.yml @@ -1,6 +1,7 @@ name: Configuration (without pa, soundio or apple-alac) for systemd, using a build folder. on: + workflow_dispatch: push: branches: [ "development" ] pull_request: From b62eb04dc9574ea14cade62a7413fdd18b62c52e Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:23:56 +0100 Subject: [PATCH 22/28] Update check_ap2_systemv_full.yml --- .github/workflows/check_ap2_systemv_full.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/check_ap2_systemv_full.yml b/.github/workflows/check_ap2_systemv_full.yml index 1f8dab07..3f46c0d6 100644 --- a/.github/workflows/check_ap2_systemv_full.yml +++ b/.github/workflows/check_ap2_systemv_full.yml @@ -1,6 +1,7 @@ -name: Full configuration (but without apple-alac) for a System V system. +name: Configuration (but without pa, soundio, apple-alac) for a System V system. on: + workflow_dispatch: push: branches: [ "development" ] pull_request: @@ -14,11 +15,11 @@ jobs: steps: - uses: actions/checkout@v3.5.2 - name: Install Dependencies - run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libdaemon-dev libconfig-dev libasound2-dev libao-dev libjack-dev libpulse-dev libsoundio-dev libsndio-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev libplist-dev libsodium-dev libavutil-dev libavcodec-dev libavformat-dev uuid-dev libgcrypt-dev xxd + run: sudo apt-get -y --no-install-recommends install build-essential git xmltoman autoconf automake libtool libpopt-dev libdaemon-dev libconfig-dev libasound2-dev libao-dev libjack-dev libsndio-dev libglib2.0-dev libmosquitto-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev libplist-dev libsodium-dev libavutil-dev libavcodec-dev libavformat-dev uuid-dev libgcrypt-dev xxd - name: Configure run: | autoreconf -i - ./configure --sysconfdir=/etc --with-alsa --with-ao --with-dummy --with-libdaemon --with-jack --with-pa --with-pipe --with-sndio --with-soundio --with-stdout --with-soxr --with-avahi --with-ssl=openssl --with-systemv --with-dbus-interface --with-mpris-interface --with-mqtt-client --with-airplay-2 + ./configure --sysconfdir=/etc --with-alsa --with-ao --with-dummy --with-libdaemon --with-jack --with-pipe --with-sndio --with-stdout --with-soxr --with-avahi --with-ssl=openssl --with-systemv --with-dbus-interface --with-mpris-interface --with-mqtt-client --with-airplay-2 - name: Make run: | make -j From 7b45a15f2934eee2cdcd924699b9ade956c069b1 Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:25:00 +0100 Subject: [PATCH 23/28] Update check_classic_mac_basic.yml --- .github/workflows/check_classic_mac_basic.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check_classic_mac_basic.yml b/.github/workflows/check_classic_mac_basic.yml index b06e046a..40d0cbea 100644 --- a/.github/workflows/check_classic_mac_basic.yml +++ b/.github/workflows/check_classic_mac_basic.yml @@ -1,6 +1,7 @@ name: Basic libao configuration for macOS with BREW -- classic only, because macOS can't host NQPTP. on: + workflow_dispatch: push: branches: [ "development", "danger" ] pull_request: From 1188d5806712a084be4adc4b8f7abdd8dcb0516b Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:25:28 +0100 Subject: [PATCH 24/28] Update check_classic_systemd_basic.yml --- .github/workflows/check_classic_systemd_basic.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check_classic_systemd_basic.yml b/.github/workflows/check_classic_systemd_basic.yml index 95f9d904..ead6de27 100644 --- a/.github/workflows/check_classic_systemd_basic.yml +++ b/.github/workflows/check_classic_systemd_basic.yml @@ -1,6 +1,7 @@ name: Basic ALSA classic configuration for systemd, using a build folder. on: + workflow_dispatch: push: branches: [ "development" ] pull_request: From f4d1c2fdb2682b29e9b7092dbc8b46966912f3fd Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:26:17 +0100 Subject: [PATCH 25/28] Update docker-build-on-push_and_pull_request.yaml --- .github/workflows/docker-build-on-push_and_pull_request.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker-build-on-push_and_pull_request.yaml b/.github/workflows/docker-build-on-push_and_pull_request.yaml index fdbeb810..01df710d 100644 --- a/.github/workflows/docker-build-on-push_and_pull_request.yaml +++ b/.github/workflows/docker-build-on-push_and_pull_request.yaml @@ -7,6 +7,7 @@ name: Build and push docker (push/pull request) on: + workflow_dispatch: push: branches: - master From 7e0e3af6807216f0a86f41d65b6030b0c814a5c2 Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:26:43 +0100 Subject: [PATCH 26/28] Update docker-build-on-tag.yaml --- .github/workflows/docker-build-on-tag.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker-build-on-tag.yaml b/.github/workflows/docker-build-on-tag.yaml index a83882bc..5c918777 100644 --- a/.github/workflows/docker-build-on-tag.yaml +++ b/.github/workflows/docker-build-on-tag.yaml @@ -8,6 +8,7 @@ name: Build and push docker (tag) on: + workflow_dispatch: push: tags: - '[0-9]+' # X From 728756a1a16c41be2797593d66902dbe16cf34ad Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Sun, 15 Oct 2023 08:30:25 +0100 Subject: [PATCH 27/28] Update CAR INSTALL.md Add note about Bookworm --- CAR INSTALL.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CAR INSTALL.md b/CAR INSTALL.md index db4c2a77..767410ee 100644 --- a/CAR INSTALL.md +++ b/CAR INSTALL.md @@ -9,12 +9,14 @@ Note that Android devices can not, so far, do this trick of using the two networ ## Example +**Important Note** This guide can not be used for the latest (time of writing: October 2023) version of Rasberry Pi OS (Bookworm) because the `dhcpd` package is no longer part of the system. It does work for Rasberry Pi OS (Bullseye) + In this example, a Raspberry Pi Zero 2 W and a Pimoroni PHAT DAC are used. Shairport Sync will be built for AirPlay 2 operation, but you can build it for "classic" AirPlay (aka AirPlay 1) operation if you prefer. A Pi Zero W is powerful enough for classic AirPlay. -Please note that some of the details of setting up networks are specific to the version of Linux used – Rasberry Pi OS (Bullseye) Lite or later. +Please note that some of the details of setting up networks are specific to the version of Linux used. ### Prepare the initial SD Image -* Download the latest version of Raspberry Pi OS (Lite) – Bullseye (Lite) of 2022-04-04 at the time of writing – and install it onto an SD Card using `Raspberry Pi Imager`. The Lite version is preferable to the Desktop version as it doesn't include a sound server like PulseAudio or PipeWire that can prevent direct access to the audio output device. +* Download Raspberry Pi OS Bullseye (Lite) and install it onto an SD Card using `Raspberry Pi Imager`. The Lite version is preferable to the Desktop version as it doesn't include a sound server like PulseAudio or PipeWire that can prevent direct access to the audio output device. * Before writing the image to the card, use the Settings control on `Raspberry Pi Imager` to set hostname, enable SSH and provide a username and password to use while building the system. Similarly, you can specify a wireless network the Pi will connect to while building the system. Later on, the Pi will be configured to start its own isolated network. * The next few steps are to add the overlay needed for the sound card. This may not be necessary in your case, but in this example a Pimoroni PHAT is being used. If you do not need to add an overlay, skip these steps. * Mount the card on a Linux machine. Two drives should appear – a `boot` drive and a `rootfs` drive. From 90c03bf0533ca10776db32c5206f605a3460c6d8 Mon Sep 17 00:00:00 2001 From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Sun, 15 Oct 2023 22:24:03 +0100 Subject: [PATCH 28/28] Update CAR INSTALL.md --- CAR INSTALL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CAR INSTALL.md b/CAR INSTALL.md index 767410ee..7b1c5538 100644 --- a/CAR INSTALL.md +++ b/CAR INSTALL.md @@ -9,7 +9,7 @@ Note that Android devices can not, so far, do this trick of using the two networ ## Example -**Important Note** This guide can not be used for the latest (time of writing: October 2023) version of Rasberry Pi OS (Bookworm) because the `dhcpd` package is no longer part of the system. It does work for Rasberry Pi OS (Bullseye) +**Important Note** This guide can not be used for the latest (time of writing: October 2023) version of Rasberry Pi OS (Bookworm) because the `dhcpcd` package is no longer part of the system. It does work for Rasberry Pi OS (Bullseye) In this example, a Raspberry Pi Zero 2 W and a Pimoroni PHAT DAC are used. Shairport Sync will be built for AirPlay 2 operation, but you can build it for "classic" AirPlay (aka AirPlay 1) operation if you prefer. A Pi Zero W is powerful enough for classic AirPlay.