diff --git a/.github/workflows/check_ap2_systemd_basic.yml b/.github/workflows/check_ap2_systemd_basic.yml index 381d39a1..bfdb81c0 100644 --- a/.github/workflows/check_ap2_systemd_basic.yml +++ b/.github/workflows/check_ap2_systemd_basic.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4.2.2 - name: Install Dependencies run: sudo apt-get -y --no-install-recommends install xmltoman libpopt-dev libconfig-dev libasound2-dev avahi-daemon libavahi-client-dev libsoxr-dev libplist-dev libsodium-dev libavutil-dev libavcodec-dev libavformat-dev - name: Configure diff --git a/.github/workflows/check_ap2_systemd_full.yml b/.github/workflows/check_ap2_systemd_full.yml index 549b904b..adf95e83 100644 --- a/.github/workflows/check_ap2_systemd_full.yml +++ b/.github/workflows/check_ap2_systemd_full.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4.2.2 - name: Install Dependencies run: sudo apt-get -y --no-install-recommends install xmltoman libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-dev libmosquitto-dev avahi-daemon libavahi-client-dev libsoxr-dev libplist-dev libsodium-dev libavutil-dev libavcodec-dev libavformat-dev - name: Configure diff --git a/.github/workflows/check_ap2_systemd_full_build_folder.yml b/.github/workflows/check_ap2_systemd_full_build_folder.yml index 4e82666c..3db40e1d 100644 --- a/.github/workflows/check_ap2_systemd_full_build_folder.yml +++ b/.github/workflows/check_ap2_systemd_full_build_folder.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3.5.2 + - uses: actions/checkout@v4.2.2 - name: Install Dependencies run: sudo apt-get -y --no-install-recommends install xmltoman libpopt-dev libconfig-dev libasound2-dev libao-dev libjack-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 - name: Configure diff --git a/.github/workflows/check_ap2_systemv_full.yml b/.github/workflows/check_ap2_systemv_full.yml index 0665e836..c19b0940 100644 --- a/.github/workflows/check_ap2_systemv_full.yml +++ b/.github/workflows/check_ap2_systemv_full.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4.2.2 - name: Install Dependencies run: sudo apt-get -y --no-install-recommends install xmltoman libpopt-dev libdaemon-dev libconfig-dev libasound2-dev libao-dev libjack-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 - name: Configure diff --git a/.github/workflows/check_classic_mac_basic.yml b/.github/workflows/check_classic_mac_basic.yml index 038ded2e..f58b4e19 100644 --- a/.github/workflows/check_classic_mac_basic.yml +++ b/.github/workflows/check_classic_mac_basic.yml @@ -13,7 +13,7 @@ jobs: runs-on: macos-13 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4.2.2 - name: Install Dependencies run: | brew install automake diff --git a/.github/workflows/check_classic_systemd_basic.yml b/.github/workflows/check_classic_systemd_basic.yml index c28cd6f7..6276e4b4 100644 --- a/.github/workflows/check_classic_systemd_basic.yml +++ b/.github/workflows/check_classic_systemd_basic.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4.2.2 - name: Install Dependencies run: sudo apt-get -y --no-install-recommends install xmltoman libpopt-dev libconfig-dev libasound2-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev - name: Configure diff --git a/.github/workflows/check_classic_systemd_full.yml b/.github/workflows/check_classic_systemd_full.yml index ea153e96..5850edc6 100644 --- a/.github/workflows/check_classic_systemd_full.yml +++ b/.github/workflows/check_classic_systemd_full.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4.2.2 - name: Install Dependencies run: sudo apt-get -y --no-install-recommends install xmltoman 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 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 b488a9ff..7ca050cf 100644 --- a/.github/workflows/docker-build-on-push_and_pull_request.yaml +++ b/.github/workflows/docker-build-on-push_and_pull_request.yaml @@ -22,10 +22,10 @@ env: jobs: test-build-on-pull-request: if: github.event_name == 'pull_request' - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - name: Checkout Repo - uses: actions/checkout@v3 + uses: actions/checkout@v4.2.2 with: fetch-depth: 0 ref: ${{github.event.pull_request.head.ref}} @@ -38,13 +38,13 @@ jobs: echo "SHAIRPORT_SYNC_BRANCH=${SHAIRPORT_SYNC_BRANCH}" >> $GITHUB_ENV - name: Set up QEMU - uses: docker/setup-qemu-action@v2.1.0 + uses: docker/setup-qemu-action@v3.3.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2.5.0 + uses: docker/setup-buildx-action@v3.8.0 - name: Build (classic) - uses: docker/build-push-action@v4.0.0 + uses: docker/build-push-action@v6.13.0 with: context: ./ file: ./docker/classic/Dockerfile @@ -53,7 +53,7 @@ jobs: SHAIRPORT_SYNC_BRANCH=${{ env.SHAIRPORT_SYNC_BRANCH }} - name: Build - uses: docker/build-push-action@v4.0.0 + uses: docker/build-push-action@v6.13.0 with: context: ./ file: ./docker/Dockerfile @@ -64,10 +64,10 @@ jobs: build-and-publish: if: github.event_name != 'pull_request' - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - name: Checkout - uses: actions/checkout@v3.5.2 + uses: actions/checkout@v4.2.2 with: fetch-depth: 0 @@ -86,20 +86,20 @@ jobs: echo "IMAGE_TAG_BASE=development" >> $GITHUB_ENV - name: Set up QEMU - uses: docker/setup-qemu-action@v2.1.0 + uses: docker/setup-qemu-action@v3.3.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2.5.0 + uses: docker/setup-buildx-action@v3.8.0 - name: Login to Docker Registry - uses: docker/login-action@v2.1.0 + uses: docker/login-action@v3.3.0 with: registry: ${{ secrets.DOCKER_REGISTRY }} username: ${{ secrets.DOCKER_REGISTRY_USER }} password: ${{ secrets.DOCKER_REGISTRY_TOKEN }} - name: Build and push (classic) - uses: docker/build-push-action@v4.0.0 + uses: docker/build-push-action@v6.13.0 with: context: ./ file: ./docker/classic/Dockerfile @@ -110,7 +110,7 @@ jobs: SHAIRPORT_SYNC_BRANCH=${{ env.SHAIRPORT_SYNC_BRANCH }} - name: Build and push - uses: docker/build-push-action@v4.0.0 + uses: docker/build-push-action@v6.13.0 with: context: ./ file: ./docker/Dockerfile diff --git a/.github/workflows/docker-build-on-tag.yaml b/.github/workflows/docker-build-on-tag.yaml index ea69aa8b..03e63ba6 100644 --- a/.github/workflows/docker-build-on-tag.yaml +++ b/.github/workflows/docker-build-on-tag.yaml @@ -1,9 +1,9 @@ -# Builds & pushes a docker image when a tag is created. +# Builds & pushes a docker image when a tag is created. # Tag pattern: '[tag]' & '[tag]-classic' # 'latest' & 'classic' also, when master tagged. # Only pushes the tag when it matches one of the following patterns: -# X, X.Y or X.Y.Z +# X, X.Y or X.Y.Z name: Build and push docker (tag) @@ -21,10 +21,10 @@ env: jobs: main: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - name: Checkout - uses: actions/checkout@v3.5.2 + uses: actions/checkout@v4.2.2 with: fetch-depth: 0 @@ -47,20 +47,20 @@ jobs: echo "NQPTP_BRANCH=development" >> $GITHUB_ENV - name: Set up QEMU - uses: docker/setup-qemu-action@v2.1.0 + uses: docker/setup-qemu-action@v3.3.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2.5.0 + uses: docker/setup-buildx-action@v3.8.0 - name: Login to Docker Registry - uses: docker/login-action@v2.1.0 + uses: docker/login-action@v3.3.0 with: registry: ${{ secrets.DOCKER_REGISTRY }} username: ${{ secrets.DOCKER_REGISTRY_USER }} password: ${{ secrets.DOCKER_REGISTRY_TOKEN }} - name: Build and push (classic) - uses: docker/build-push-action@v4.0.0 + uses: docker/build-push-action@v6.13.0 with: context: ./ file: ./docker/classic/Dockerfile @@ -73,7 +73,7 @@ jobs: SHAIRPORT_SYNC_BRANCH=${{ env.SHAIRPORT_SYNC_BRANCH }} - name: Build and push - uses: docker/build-push-action@v4.0.0 + uses: docker/build-push-action@v6.13.0 with: context: ./ file: ./docker/Dockerfile diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml index 88a0d50a..c2a0a3a2 100644 --- a/.github/workflows/stale.yaml +++ b/.github/workflows/stale.yaml @@ -11,7 +11,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v8.0.0 + - uses: actions/stale@v9.1.0 with: stale-issue-message: 'This issue has been inactive for 28 days so will be closed 7 days from now. To prevent this, please remove the "stale" label or post a comment.' stale-pr-message: 'This PR has been inactive for 28 days so will be closed 7 days from now. To prevent this, please remove the "stale" label or post a comment.' diff --git a/configure.ac b/configure.ac index 1e71591c..74a23c88 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.3.6], [4265913+mikebrady@users.noreply.github.com]) +AC_INIT([shairport-sync], [4.3.7], [4265913+mikebrady@users.noreply.github.com]) AM_INIT_AUTOMAKE([subdir-objects]) AC_CONFIG_SRCDIR([shairport.c]) AC_CONFIG_HEADERS([config.h]) diff --git a/docker/Dockerfile b/docker/Dockerfile index 165b1c0e..d432a792 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,7 +1,7 @@ ARG NQPTP_BRANCH=main ARG SHAIRPORT_SYNC_BRANCH=. -FROM alpine:3.17 AS builder +FROM alpine:3.20 AS builder RUN apk -U add \ alsa-lib-dev \ @@ -32,7 +32,7 @@ RUN git clone --depth=1 https://github.com/mikebrady/alac WORKDIR /alac RUN autoreconf -i RUN ./configure -RUN make +RUN make -j $(nproc) RUN make install WORKDIR / ##### ALAC END ##### @@ -44,7 +44,7 @@ RUN git clone --depth=1 -b "$NQPTP_BRANCH" https://github.com/mikebrady/nqptp WORKDIR /nqptp RUN autoreconf -i RUN ./configure -RUN make +RUN make -j $(nproc) WORKDIR / ##### NQPTP END ##### @@ -90,7 +90,7 @@ COPY --from=shairport-sync /shairport-sync/build/install/etc/dbus-1/system.d/sha ##### END BUILD FILES ##### # Shairport Sync Runtime System -FROM crazymax/alpine-s6:3.17-3.1.1.2 +FROM crazymax/alpine-s6:3.20-3.2.0.2 ENV S6_CMD_WAIT_FOR_SERVICES=1 ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 @@ -108,7 +108,7 @@ RUN apk -U add \ libgcrypt \ libplist \ libpulse \ - libressl3.6-libcrypto \ + libressl3.8-libcrypto \ libsndfile \ libsodium \ libuuid \ @@ -117,8 +117,11 @@ RUN apk -U add \ mandoc \ mosquitto \ popt \ - soxr && \ - rm -rfv /lib/apk/db/* && \ + soxr \ + curl \ + dhclient + +RUN rm -rfv /lib/apk/db/* && \ rm -rfv /etc/avahi/services/*.service && \ addgroup shairport-sync && \ adduser -D shairport-sync -G shairport-sync && \ diff --git a/docker/classic/Dockerfile b/docker/classic/Dockerfile index 069db509..91eea7e1 100644 --- a/docker/classic/Dockerfile +++ b/docker/classic/Dockerfile @@ -1,4 +1,6 @@ -FROM alpine:3.17 AS builder +ARG SHAIRPORT_SYNC_BRANCH=. + +FROM alpine:3.20 AS builder # Classic (aka AirPlay 1) Build @@ -29,7 +31,7 @@ RUN git clone https://github.com/mikebrady/alac WORKDIR /alac RUN autoreconf -i RUN ./configure -RUN make +RUN make -j $(nproc) RUN make install WORKDIR / ##### ALAC END ##### @@ -50,7 +52,7 @@ WORKDIR / ##### SPS END ##### # Shairport Sync Runtime System -FROM crazymax/alpine-s6:3.17-3.1.1.2 +FROM crazymax/alpine-s6:3.20-3.2.0.2 ENV S6_CMD_WAIT_FOR_SERVICES=1 ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 @@ -71,7 +73,8 @@ RUN apk -U add \ libcrypto3 \ mosquitto \ popt \ - soxr + soxr \ + curl # Copy build files. COPY --from=builder /shairport-sync/build/install/usr/local/bin/shairport-sync /usr/local/bin/shairport-sync