From: Hugo Villeneuve Date: Thu, 22 Jan 2026 17:30:23 +0000 (-0500) Subject: Use common service file for avahi X-Git-Tag: 5.0-post-dev~11^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6a94eeb926665a7bd1bde4ea293e66d8185312bc;p=thirdparty%2Fshairport-sync.git Use common service file for avahi Use variable substitution to simplify service file for optional avahi. This will also help to simplify adding future service dependencies. Signed-off-by: Hugo Villeneuve --- diff --git a/.gitignore b/.gitignore index 52645da6..cdb2489a 100644 --- a/.gitignore +++ b/.gitignore @@ -25,7 +25,6 @@ stamp-h1 man/Makefile man/Makefile.in scripts/shairport-sync.service -scripts/shairport-sync.service-avahi scripts/shairport-sync shairport-sync.core gitversion-stamp diff --git a/Makefile.am b/Makefile.am index 8c70fd6f..1d5bf176 100644 --- a/Makefile.am +++ b/Makefile.am @@ -277,11 +277,7 @@ endif # INSTALL_SYSTEMV_STARTUP if INSTALL_SYSTEMD_STARTUP -if USE_AVAHI -SYSTEMD_SERVICE = shairport-sync.service-avahi -else SYSTEMD_SERVICE = shairport-sync.service -endif # USE_AVAHI INSTALL_SYSTEMD_TARGET = install-systemd-local diff --git a/configure.ac b/configure.ac index 8d80675c..31b8bc20 100644 --- a/configure.ac +++ b/configure.ac @@ -228,9 +228,8 @@ if test "x$with_avahi" = "xyes" ; then AC_DEFINE([CONFIG_AVAHI], 1, [Include Avahi-based mDNS support.]) AC_CHECK_LIB([avahi-client], [avahi_client_new], , AC_MSG_ERROR(Avahi support requires the avahi-client library!)) AC_CHECK_LIB([avahi-common],[avahi_strerror], , AC_MSG_ERROR(Avahi support requires the avahi-common library!)) - AC_CONFIG_FILES([scripts/shairport-sync.service-avahi]) -else - AC_CONFIG_FILES([scripts/shairport-sync.service]) + systemd_after_args="${systemd_after_args} avahi-daemon.service" + systemd_requires_args="${systemd_requires_args} avahi-daemon.service" fi AM_CONDITIONAL([USE_AVAHI], [test "x$with_avahi" = "xyes"]) @@ -558,12 +557,22 @@ AC_FUNC_ERROR_AT_LINE AC_FUNC_FORK AC_CHECK_FUNCS([atexit clock_gettime gethostname inet_ntoa memchr memmove memset mkfifo pow select socket stpcpy strcasecmp strchr strdup strerror strstr strtol strtoul]) -# Note -- there are AC_CONFIG_FILES directives further back, conditional on Avahi +if test "x${systemd_after_args}" != x ; then + systemd_after_args="After=${systemd_after_args}" +fi + +if test "x${systemd_requires_args}" != x ; then + systemd_requires_args="Requires=${systemd_requires_args}" +fi + +AC_SUBST([SYSTEMD_AFTER_ARGS], [${systemd_after_args}]) +AC_SUBST([SYSTEMD_REQUIRES_ARGS], [${systemd_requires_args}]) # The man directory will not be recursively made unless you set the SUBDIR in Makefile.am. # But leave this as is to enable a distclean to be done. AC_CONFIG_FILES([Makefile man/Makefile]) +AC_CONFIG_FILES([scripts/shairport-sync.service]) AC_CONFIG_FILES([scripts/shairport-sync],[chmod +x scripts/shairport-sync]) AC_OUTPUT diff --git a/scripts/shairport-sync.service-avahi.in b/scripts/shairport-sync.service-avahi.in deleted file mode 100644 index 71090af2..00000000 --- a/scripts/shairport-sync.service-avahi.in +++ /dev/null @@ -1,20 +0,0 @@ -[Unit] -Description=Shairport Sync - AirPlay Audio Receiver -After=sound.target -Requires=avahi-daemon.service -After=avahi-daemon.service -Wants=network-online.target -After=network.target network-online.target -StartLimitIntervalSec=300 -StartLimitBurst=5 - -[Service] -ExecStart=@prefix@/bin/shairport-sync --log-to-syslog -User=shairport-sync -Group=shairport-sync -LimitRTPRIO=5 -Restart=on-failure -RestartSec=5s - -[Install] -WantedBy=multi-user.target diff --git a/scripts/shairport-sync.service.in b/scripts/shairport-sync.service.in index 5166dcdf..6314b27d 100644 --- a/scripts/shairport-sync.service.in +++ b/scripts/shairport-sync.service.in @@ -3,6 +3,8 @@ Description=Shairport Sync - AirPlay Audio Receiver After=sound.target Wants=network-online.target After=network.target network-online.target +@SYSTEMD_AFTER_ARGS@ +@SYSTEMD_REQUIRES_ARGS@ StartLimitIntervalSec=300 StartLimitBurst=5