diff --git a/packages/addons/addon-depends/snapcast-depends/libsodium/package.mk b/packages/addons/addon-depends/snapcast-depends/libsodium/package.mk new file mode 100644 index 0000000000..f6f43c2131 --- /dev/null +++ b/packages/addons/addon-depends/snapcast-depends/libsodium/package.mk @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: GPL-2.0-only +# Copyright (C) 2022-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="libsodium" +PKG_VERSION="e2bd4024008c73f1c0402e1c2f4db9a2300e9c95" # 1.0.18-stable 2022-09-24 +PKG_SHA256="b5035fcc061e410291baded4098a3ab56da90eb7d47d82ba2d0e05e3d105b8f6" +PKG_LICENSE="ISC" +PKG_SITE="https://libsodium.org/" +PKG_URL="https://github.com/jedisct1/libsodium/archive/${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain" +PKG_LONGDESC="A modern, portable, easy to use crypto library" + +PKG_CONFIGURE_OPTS_TARGET="--disable-shared" diff --git a/packages/addons/addon-depends/snapcast-depends/nqptp/package.mk b/packages/addons/addon-depends/snapcast-depends/nqptp/package.mk new file mode 100644 index 0000000000..275c397d47 --- /dev/null +++ b/packages/addons/addon-depends/snapcast-depends/nqptp/package.mk @@ -0,0 +1,15 @@ +# SPDX-License-Identifier: GPL-2.0-only +# Copyright (C) 2022-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="nqptp" +PKG_VERSION="c71b49a3556ba8547ee28482cb31a97fe99298aa" +PKG_SHA256="02ed710ed37269adbede06fcd4e12892cc0f9d14d5c68b7f45d67b8694bff1e4" +PKG_LICENSE="GPL-2.0" +PKG_SITE="https://github.com/mikebrady/nqptp" +PKG_URL="https://github.com/mikebrady/nqptp/archive/${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain" +PKG_LONGDESC="Not Quite PTP" +PKG_TOOLCHAIN="autotools" +PKG_BUILD_FLAGS="-sysroot" + +PKG_CONFIGURE_OPTS_TARGET="--with-systemd-startup" diff --git a/packages/addons/addon-depends/snapcast-depends/shairport-sync/package.mk b/packages/addons/addon-depends/snapcast-depends/shairport-sync/package.mk index dfa9db0e20..e06ddf97f4 100644 --- a/packages/addons/addon-depends/snapcast-depends/shairport-sync/package.mk +++ b/packages/addons/addon-depends/snapcast-depends/shairport-sync/package.mk @@ -2,12 +2,12 @@ # Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="shairport-sync" -PKG_VERSION="3.3.8" -PKG_SHA256="c92f9a2d86dd1138673abc66e0010c94412ad6a46da8f36c3d538f4fa6b9faca" +PKG_VERSION="4.1" +PKG_SHA256="951fc9f33a631736fe49d2ed040b27a417c93ffdf05a2d13116c6dda7628ea86" PKG_LICENSE="OSS" PKG_SITE="https://github.com/mikebrady/shairport-sync" PKG_URL="https://github.com/mikebrady/shairport-sync/archive/${PKG_VERSION}.tar.gz" -PKG_DEPENDS_TARGET="toolchain alsa-lib avahi libconfig libdaemon libsndfile openssl popt pulseaudio soxr" +PKG_DEPENDS_TARGET="toolchain alsa-lib avahi ffmpeg libconfig libdaemon libgcrypt libplist libsndfile libsodium nqptp openssl popt pulseaudio soxr util-linux" PKG_LONGDESC="AirPlay audio player." PKG_TOOLCHAIN="autotools" PKG_BUILD_FLAGS="-sysroot" @@ -22,4 +22,5 @@ PKG_CONFIGURE_OPTS_TARGET="--with-alsa \ --with-soxr \ --with-ssl=openssl \ --with-stdout \ - --without-configfiles" + --without-configfiles \ + --with-airplay-2" diff --git a/packages/addons/addon-depends/snapcast-depends/shairport-sync/patches/0001-configure.ac-fix-build-with-automake-1.16.5.patch b/packages/addons/addon-depends/snapcast-depends/shairport-sync/patches/0001-configure.ac-fix-build-with-automake-1.16.5.patch deleted file mode 100644 index 2ee8f59fee..0000000000 --- a/packages/addons/addon-depends/snapcast-depends/shairport-sync/patches/0001-configure.ac-fix-build-with-automake-1.16.5.patch +++ /dev/null @@ -1,48 +0,0 @@ -From ad22edb303a470b6f9eda9fd9d3f588bb2eff8cb Mon Sep 17 00:00:00 2001 -From: Fabrice Fontaine -Date: Fri, 15 Oct 2021 08:02:23 +0200 -Subject: [PATCH] configure.ac: fix build with automake 1.16.5 - -Fix the following build failure with convolution raised since automake -1.16.5 and -https://git.savannah.gnu.org/cgit/automake.git/commit/?id=f4a3a70f69e1dbccb6578f39ef47835098a04624: - -configure.ac:305: error: AM_INIT_AUTOMAKE expanded multiple times -/home/giuliobenetti/autobuild/run/instance-1/output-1/host/share/aclocal-1.16/init.m4:29: AM_INIT_AUTOMAKE is expanded from... -configure.ac:6: the top level -/home/giuliobenetti/autobuild/run/instance-1/output-1/host/share/aclocal-1.16/init.m4:29: AM_INIT_AUTOMAKE is expanded from... -configure.ac:305: the top level - -Fixes: - - http://autobuild.buildroot.org/results/464148bdccb705d8992dc860262bfdeb01b7e2a1 - -Signed-off-by: Fabrice Fontaine -[Upstream status: https://github.com/mikebrady/shairport-sync/pull/1314] ---- - configure.ac | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index f77087c5..aa533a2d 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3,7 +3,7 @@ - - AC_PREREQ([2.50]) - AC_INIT([shairport-sync], [3.3.8], [4265913+mikebrady@users.noreply.github.com]) --AM_INIT_AUTOMAKE -+AM_INIT_AUTOMAKE([subdir-objects]) - AC_CONFIG_SRCDIR([shairport.c]) - AC_CONFIG_HEADERS([config.h]) - AC_PROG_RANLIB -@@ -302,7 +302,6 @@ AM_CONDITIONAL([USE_PA], [test "x$with_pa" = "xyes"]) - # Look for Convolution flag - AC_ARG_WITH(convolution, [AS_HELP_STRING([--with-convolution],[choose audio DSP convolution support])]) - if test "x$with_convolution" = "xyes" ; then -- AM_INIT_AUTOMAKE([subdir-objects]) - AC_DEFINE([CONFIG_CONVOLUTION], 1, [Include audio DSP convolution support.]) - AC_CHECK_LIB([sndfile], [sf_open], , AC_MSG_ERROR(Convolution support requires the sndfile library -- libsndfile1-dev suggested!)) - fi --- -2.33.0 - diff --git a/packages/addons/addon-depends/snapcast-depends/shairport-sync/patches/0002-fix-libsnfile-dependencies.patch b/packages/addons/addon-depends/snapcast-depends/shairport-sync/patches/0002-fix-libsnfile-dependencies.patch deleted file mode 100644 index 81b2a93351..0000000000 --- a/packages/addons/addon-depends/snapcast-depends/shairport-sync/patches/0002-fix-libsnfile-dependencies.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/configure.ac 2021-04-26 20:35:11.000000000 +1000 -+++ b/configure.ac 2021-09-29 20:31:32.372329878 +1000 -@@ -302,9 +302,16 @@ - # Look for Convolution flag - AC_ARG_WITH(convolution, [AS_HELP_STRING([--with-convolution],[choose audio DSP convolution support])]) - if test "x$with_convolution" = "xyes" ; then -+ if test "x${with_pkg_config}" = "xyes" ; then -+ PKG_CHECK_MODULES( -+ [sndfile], [sndfile], -+ [CFLAGS="${sndfile_CFLAGS} ${CFLAGS}" -+ LIBS="${sndfile_LIBS} ${LIBS}"], AC_MSG_ERROR(Convolution support requires the sndfile library.)) -+ else -+ AC_CHECK_LIB([sndfile], [sf_open], , AC_MSG_ERROR(Convolution support requires the sndfile library -- libsndfile1-dev suggested!)) -+ fi - AC_DEFINE([CONFIG_CONVOLUTION], 1, [Include audio DSP convolution support.]) -- AC_CHECK_LIB([sndfile], [sf_open], , AC_MSG_ERROR(Convolution support requires the sndfile library -- libsndfile1-dev suggested!)) - fi - AM_CONDITIONAL([USE_CONVOLUTION], [test "x$with_convolution" = "xyes"]) - - # Look for dns_sd flag diff --git a/packages/addons/addon-depends/snapcast-depends/snapcast/patches/snapcast-02_avahi.patch b/packages/addons/addon-depends/snapcast-depends/snapcast/patches/snapcast-02_avahi.patch new file mode 100644 index 0000000000..61bc3dd4d3 --- /dev/null +++ b/packages/addons/addon-depends/snapcast-depends/snapcast/patches/snapcast-02_avahi.patch @@ -0,0 +1,11 @@ +--- a/server/streamreader/airplay_stream.cpp 2021-12-22 17:40:36.000000000 +0000 ++++ b/server/streamreader/airplay_stream.cpp 2022-10-03 12:05:31.690039620 +0000 +@@ -58,7 +58,7 @@ + string devicename = uri_.getQuery("devicename", "Snapcast"); + string password = uri_.getQuery("password", ""); + +- params_wo_port_ = "\"--name=" + devicename + "\" --output=stdout --use-stderr --get-coverart"; ++ params_wo_port_ = "\"--name=" + devicename + "\" --output=stdout --use-stderr --get-coverart --mdns=avahi"; + if (!password.empty()) + params_wo_port_ += " --password \"" + password + "\""; + if (!params_.empty()) diff --git a/packages/addons/service/snapserver/changelog.txt b/packages/addons/service/snapserver/changelog.txt index bc9c0d0d16..7ed9bff9b3 100644 --- a/packages/addons/service/snapserver/changelog.txt +++ b/packages/addons/service/snapserver/changelog.txt @@ -1,3 +1,7 @@ +111 +- Update shairport-sync to 4.1 +- Add nqptp to support shairport-sync AirPlay 2 + 110 - Add options to set librespot devicename and zeroconf-port diff --git a/packages/addons/service/snapserver/package.mk b/packages/addons/service/snapserver/package.mk index 0797b23c61..4a46c4e24b 100644 --- a/packages/addons/service/snapserver/package.mk +++ b/packages/addons/service/snapserver/package.mk @@ -3,10 +3,10 @@ PKG_NAME="snapserver" PKG_VERSION="0.26.0" -PKG_REV="110" +PKG_REV="111" PKG_ARCH="any" PKG_LICENSE="GPLv3" -PKG_DEPENDS_TARGET="toolchain shairport-sync snapcast" +PKG_DEPENDS_TARGET="toolchain nqptp shairport-sync snapcast" PKG_SECTION="service" PKG_SHORTDESC="Snapserver: Synchronous multi-room audio server" PKG_LONGDESC="Snapclient (${PKG_VERSION}) is a Snapcast server. Snapcast is a multi-room client-server audio system, where all clients are time synchronized with the server to play perfectly synced audioplays." @@ -21,6 +21,7 @@ PKG_MAINTAINER="Anton Voyl (awiouy)" addon() { mkdir -p "${ADDON_BUILD}/${PKG_ADDON_ID}/bin" cp "$(get_install_dir shairport-sync)/usr/bin/shairport-sync" \ + "$(get_install_dir nqptp)/usr/bin/nqptp" \ "$(get_install_dir snapcast)/usr/bin/snapserver" \ "${ADDON_BUILD}/${PKG_ADDON_ID}/bin" diff --git a/packages/addons/service/snapserver/source/bin/snapserver.start b/packages/addons/service/snapserver/source/bin/snapserver.start index e21dcfc6f5..3c9fb2a764 100644 --- a/packages/addons/service/snapserver/source/bin/snapserver.start +++ b/packages/addons/service/snapserver/source/bin/snapserver.start @@ -48,6 +48,8 @@ else enable_http=0 fi +nqptp & + HOME="$ADDON_HOME" \ nice -n "$ss_ni" \ snapserver \