From c0ae76049641a6763caa5c74d2011528ed0bcc79 Mon Sep 17 00:00:00 2001 From: smplman Date: Sun, 4 Feb 2024 22:14:28 -0500 Subject: [PATCH] adding dbus and avahi to enable shairport-sync to work correctly --- Dockerfile | 1 + root/etc/s6-overlay/s6-rc.d/svc-avahi/data/check | 9 +++++++++ .../s6-rc.d/svc-avahi/dependencies.d/init-services | 0 .../s6-overlay/s6-rc.d/svc-avahi/dependencies.d/svc-dbus | 0 root/etc/s6-overlay/s6-rc.d/svc-avahi/finish | 2 ++ root/etc/s6-overlay/s6-rc.d/svc-avahi/notification-fd | 1 + root/etc/s6-overlay/s6-rc.d/svc-avahi/run | 4 ++++ root/etc/s6-overlay/s6-rc.d/svc-avahi/type | 1 + root/etc/s6-overlay/s6-rc.d/svc-dbus/data/check | 2 ++ .../s6-rc.d/svc-dbus/dependencies.d/init-services | 0 root/etc/s6-overlay/s6-rc.d/svc-dbus/finish | 2 ++ root/etc/s6-overlay/s6-rc.d/svc-dbus/notification-fd | 1 + root/etc/s6-overlay/s6-rc.d/svc-dbus/run | 5 +++++ root/etc/s6-overlay/s6-rc.d/svc-dbus/type | 1 + .../s6-rc.d/svc-snapserver/dependencies.d/svc-avahi | 0 .../s6-rc.d/svc-snapserver/dependencies.d/svc-dbus | 0 16 files changed, 29 insertions(+) create mode 100755 root/etc/s6-overlay/s6-rc.d/svc-avahi/data/check create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-avahi/dependencies.d/init-services create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-avahi/dependencies.d/svc-dbus create mode 100755 root/etc/s6-overlay/s6-rc.d/svc-avahi/finish create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-avahi/notification-fd create mode 100755 root/etc/s6-overlay/s6-rc.d/svc-avahi/run create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-avahi/type create mode 100755 root/etc/s6-overlay/s6-rc.d/svc-dbus/data/check create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-dbus/dependencies.d/init-services create mode 100755 root/etc/s6-overlay/s6-rc.d/svc-dbus/finish create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-dbus/notification-fd create mode 100755 root/etc/s6-overlay/s6-rc.d/svc-dbus/run create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-dbus/type create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-snapserver/dependencies.d/svc-avahi create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-snapserver/dependencies.d/svc-dbus diff --git a/Dockerfile b/Dockerfile index 9b92cfc..936a8fb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,6 +13,7 @@ RUN set -ex \ && echo "**** install runtime packages ****" \ && apk add --no-cache -U --upgrade \ alsa-utils \ + dbus \ librespot@testing \ shairport-sync@testing \ snapcast \ diff --git a/root/etc/s6-overlay/s6-rc.d/svc-avahi/data/check b/root/etc/s6-overlay/s6-rc.d/svc-avahi/data/check new file mode 100755 index 0000000..007b9bf --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-avahi/data/check @@ -0,0 +1,9 @@ +#!/bin/sh +state="$(dbus-send --system --dest=org.freedesktop.Avahi --print-reply / org.freedesktop.Avahi.Server.GetState | grep int32 | awk '{printf $2}')" + +# Avahi will return 'state=2' when 'Server startup complete' +if [ "$state" = 2 ]; then + exit 0 +else + exit 1 +fi \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/svc-avahi/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/svc-avahi/dependencies.d/init-services new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-avahi/dependencies.d/svc-dbus b/root/etc/s6-overlay/s6-rc.d/svc-avahi/dependencies.d/svc-dbus new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-avahi/finish b/root/etc/s6-overlay/s6-rc.d/svc-avahi/finish new file mode 100755 index 0000000..a8222fb --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-avahi/finish @@ -0,0 +1,2 @@ +#!/command/execlineb -S0 +/run/s6/basedir/bin/halt \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/svc-avahi/notification-fd b/root/etc/s6-overlay/s6-rc.d/svc-avahi/notification-fd new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-avahi/notification-fd @@ -0,0 +1 @@ +3 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-avahi/run b/root/etc/s6-overlay/s6-rc.d/svc-avahi/run new file mode 100755 index 0000000..4cacf4f --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-avahi/run @@ -0,0 +1,4 @@ +#!/usr/bin/with-contenv bash + +echo "Starting avahi" +exec s6-notifyoncheck avahi-daemon --no-chroot diff --git a/root/etc/s6-overlay/s6-rc.d/svc-avahi/type b/root/etc/s6-overlay/s6-rc.d/svc-avahi/type new file mode 100644 index 0000000..1780f9f --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-avahi/type @@ -0,0 +1 @@ +longrun \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/svc-dbus/data/check b/root/etc/s6-overlay/s6-rc.d/svc-dbus/data/check new file mode 100755 index 0000000..413c776 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-dbus/data/check @@ -0,0 +1,2 @@ +#!/bin/sh +exec dbus-send --system / org.freedesktop.DBus.Peer.Ping > /dev/null 2> /dev/null \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/svc-dbus/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/svc-dbus/dependencies.d/init-services new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-dbus/finish b/root/etc/s6-overlay/s6-rc.d/svc-dbus/finish new file mode 100755 index 0000000..a8222fb --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-dbus/finish @@ -0,0 +1,2 @@ +#!/command/execlineb -S0 +/run/s6/basedir/bin/halt \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/svc-dbus/notification-fd b/root/etc/s6-overlay/s6-rc.d/svc-dbus/notification-fd new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-dbus/notification-fd @@ -0,0 +1 @@ +3 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-dbus/run b/root/etc/s6-overlay/s6-rc.d/svc-dbus/run new file mode 100755 index 0000000..dbb8df2 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-dbus/run @@ -0,0 +1,5 @@ +#!/usr/bin/with-contenv bash + +echo "Starting dbus" +mkdir -p /var/run/dbus +exec s6-notifyoncheck dbus-daemon --system --nofork --nopidfile diff --git a/root/etc/s6-overlay/s6-rc.d/svc-dbus/type b/root/etc/s6-overlay/s6-rc.d/svc-dbus/type new file mode 100644 index 0000000..1780f9f --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-dbus/type @@ -0,0 +1 @@ +longrun \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/svc-snapserver/dependencies.d/svc-avahi b/root/etc/s6-overlay/s6-rc.d/svc-snapserver/dependencies.d/svc-avahi new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-snapserver/dependencies.d/svc-dbus b/root/etc/s6-overlay/s6-rc.d/svc-snapserver/dependencies.d/svc-dbus new file mode 100644 index 0000000..e69de29