* [Buildroot] [PATCH 0/2] package/shairport-sync: Add support for AirPlay2 @ 2025-10-25 19:04 Trammell Hudson via buildroot 2025-10-25 19:05 ` [Buildroot] [PATCH 1/2] package/nqptp: Add version 1.2.4 Trammell Hudson via buildroot 0 siblings, 1 reply; 5+ messages in thread From: Trammell Hudson via buildroot @ 2025-10-25 19:04 UTC (permalink / raw) To: buildroot These patches add support for streaming audio with the AirPlay2 protocol to shairport-sync. Configuring AirPlay2 support is optional since it adds several other requirements such as ffmpeg, which may be too heavy for some systems that only want to stream AirPlay1 music. It also requires the nqptp helper package that provides not-quite-PTP time synchronization for multi-zone audio. Trammell Hudson (2): package/nqptp: Add version 1.2.4 package/shairport-sync: Add support for AirPlay2 package/Config.in | 1 + package/nqptp/Config.in | 6 +++++ package/nqptp/S90nqptp | 24 ++++++++++++++++++ package/nqptp/nqptp.hash | 3 +++ package/nqptp/nqptp.mk | 31 ++++++++++++++++++++++++ package/shairport-sync/Config.in | 15 ++++++++++++ package/shairport-sync/shairport-sync.mk | 5 ++++ 7 files changed, 85 insertions(+) create mode 100644 package/nqptp/Config.in create mode 100644 package/nqptp/S90nqptp create mode 100644 package/nqptp/nqptp.hash create mode 100644 package/nqptp/nqptp.mk -- 2.25.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 1/2] package/nqptp: Add version 1.2.4 2025-10-25 19:04 [Buildroot] [PATCH 0/2] package/shairport-sync: Add support for AirPlay2 Trammell Hudson via buildroot @ 2025-10-25 19:05 ` Trammell Hudson via buildroot 2025-10-25 19:06 ` [Buildroot] [PATCH 2/2] package/shairport-sync: Add support for AirPlay2 Trammell Hudson via buildroot 2025-12-27 9:58 ` [Buildroot] [PATCH 1/2] package/nqptp: Add version 1.2.4 Thomas Petazzoni via buildroot 0 siblings, 2 replies; 5+ messages in thread From: Trammell Hudson via buildroot @ 2025-10-25 19:05 UTC (permalink / raw) To: buildroot This is the Not Quite PTP timing library necessary for AirPlay2 support with shairport-sync. Signed-off-by: Trammell Hudson <hudson@trmm.net> --- package/Config.in | 1 + package/nqptp/Config.in | 6 ++++++ package/nqptp/S90nqptp | 24 ++++++++++++++++++++++++ package/nqptp/nqptp.hash | 3 +++ package/nqptp/nqptp.mk | 31 +++++++++++++++++++++++++++++++ 5 files changed, 65 insertions(+) create mode 100644 package/nqptp/Config.in create mode 100644 package/nqptp/S90nqptp create mode 100644 package/nqptp/nqptp.hash create mode 100644 package/nqptp/nqptp.mk diff --git a/package/Config.in b/package/Config.in index 161d61728b..b67da80231 100644 --- a/package/Config.in +++ b/package/Config.in @@ -2603,6 +2603,7 @@ endif source "package/nload/Config.in" source "package/nmap/Config.in" source "package/noip/Config.in" + source "package/nqptp/Config.in" source "package/ntp/Config.in" source "package/ntpsec/Config.in" source "package/nuttcp/Config.in" diff --git a/package/nqptp/Config.in b/package/nqptp/Config.in new file mode 100644 index 0000000000..cddb12e4d0 --- /dev/null +++ b/package/nqptp/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_NQPTP + bool "NQPTP" + help + Not Quite PTP for shairport-sync AirPlay 2 support. + https://github.com/mikebrady/shairport-sync + diff --git a/package/nqptp/S90nqptp b/package/nqptp/S90nqptp new file mode 100644 index 0000000000..41dbb4749a --- /dev/null +++ b/package/nqptp/S90nqptp @@ -0,0 +1,24 @@ +#! /bin/sh + +case "$1" in + start) + printf "Starting nqptp: " + start-stop-daemon -S -q -b --exec /usr/bin/nqptp + [ $? = 0 ] && echo "OK" || echo "FAIL" + ;; + stop) + printf "Stopping shairport-sync: " + start-stop-daemon -K -q --exec /usr/bin/nqptp \ + -p /var/run/nqptp/nqptp.pid + [ $? = 0 ] && echo "OK" || echo "FAIL" + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac diff --git a/package/nqptp/nqptp.hash b/package/nqptp/nqptp.hash new file mode 100644 index 0000000000..a1b686c1a9 --- /dev/null +++ b/package/nqptp/nqptp.hash @@ -0,0 +1,3 @@ +# Locally calculated +sha256 1df1d5edd5b713010d6495b3abca4c1cf4ad8fa6029df0abeb9e4de8e0eb707a nqptp-1.2.4.tar.gz +sha256 1daaa904985807b7f9f2fa91f6b19f3faadf8df4e813f7451a691f89a6965e3f LICENSES diff --git a/package/nqptp/nqptp.mk b/package/nqptp/nqptp.mk new file mode 100644 index 0000000000..11dac9f10e --- /dev/null +++ b/package/nqptp/nqptp.mk @@ -0,0 +1,31 @@ +################################################################################ +# +# nqptp +# +################################################################################ + +NQPTP_VERSION = 1.2.4 +NQPTP_SITE = $(call github,mikebrady,nqptp,$(NQPTP_VERSION)) + +NQPTP_LICENSE = MIT, BSD-3-Clause +NQPTP_LICENSE_FILES = LICENSES +NQPTP_DEPENDENCIES = libconfig host-pkgconf + +# git clone, no configure +NQPTP_AUTORECONF = YES + +NQPTP_CONF_OPTS = + +#NQPTP_CONF_ENV += LIBS="$(NQPTP_CONF_LIBS)" + +define NQPTP_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(@D)/nqptp \ + $(TARGET_DIR)/usr/bin/nqptp +endef + +define NQPTP_INSTALL_INIT_SYSV + $(INSTALL) -D -m 0755 package/nqptp/S90nqptp \ + $(TARGET_DIR)/etc/init.d/S90nqptp +endef + +$(eval $(autotools-package)) -- 2.25.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 2/2] package/shairport-sync: Add support for AirPlay2 2025-10-25 19:05 ` [Buildroot] [PATCH 1/2] package/nqptp: Add version 1.2.4 Trammell Hudson via buildroot @ 2025-10-25 19:06 ` Trammell Hudson via buildroot 2025-12-27 14:22 ` Thomas Petazzoni via buildroot 2025-12-27 9:58 ` [Buildroot] [PATCH 1/2] package/nqptp: Add version 1.2.4 Thomas Petazzoni via buildroot 1 sibling, 1 reply; 5+ messages in thread From: Trammell Hudson via buildroot @ 2025-10-25 19:06 UTC (permalink / raw) To: buildroot This patch adds the dependencies necessary to enable the newer version of shairplay-sync support for the AirPlay2 protocol. Signed-off-by: Trammell Hudson <hudson@trmm.net> --- package/shairport-sync/Config.in | 15 +++++++++++++++ package/shairport-sync/shairport-sync.mk | 5 +++++ 2 files changed, 20 insertions(+) diff --git a/package/shairport-sync/Config.in b/package/shairport-sync/Config.in index 528767ba9c..fddba4a439 100644 --- a/package/shairport-sync/Config.in +++ b/package/shairport-sync/Config.in @@ -26,6 +26,21 @@ config BR2_PACKAGE_SHAIRPORT_SYNC_CONVOLUTION help Enable audio DSP convolution support. +config BR2_PACKAGE_SHAIRPORT_SYNC_AIRPLAY2 + bool "AirPlay2 support" + select BR2_PACKAGE_NQPTP + select BR2_PACKAGE_LIBPLIST + select BR2_PACKAGE_LIBSODIUM + select BR2_PACKAGE_LIBGCRYPT + select BR2_PACKAGE_FFMPEG + select BR2_PACKAGE_FFMPEG_GPL + select BR2_PACKAGE_FFMPEG_NONFREE + select BR2_PACKAGE_UTIL_LINUX + select BR2_PACKAGE_UTIL_LINUX_LIBUUID + help + Enable support for the more modern AirPlay2 protocol. + This will also require ffmpeg and many other libraries. + config BR2_PACKAGE_SHAIRPORT_SYNC_DBUS bool "dbus support" depends on BR2_USE_WCHAR # libglib2 diff --git a/package/shairport-sync/shairport-sync.mk b/package/shairport-sync/shairport-sync.mk index 493eefbd6f..fa0858a85b 100644 --- a/package/shairport-sync/shairport-sync.mk +++ b/package/shairport-sync/shairport-sync.mk @@ -53,6 +53,11 @@ else SHAIRPORT_SYNC_CONF_OPTS += --without-convolution endif +ifeq ($(BR2_PACKAGE_SHAIRPORT_SYNC_AIRPLAY2),y) +SHAIRPORT_SYNC_DEPENDENCIES += libplist libsodium libgcrypt ffmpeg util-linux +SHAIRPORT_SYNC_CONF_OPTS += --with-airplay-2 +endif + ifeq ($(BR2_PACKAGE_SHAIRPORT_SYNC_DBUS),y) SHAIRPORT_SYNC_DEPENDENCIES += libglib2 SHAIRPORT_SYNC_CONF_OPTS += --with-dbus-interface --with-mpris-interface -- 2.25.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Buildroot] [PATCH 2/2] package/shairport-sync: Add support for AirPlay2 2025-10-25 19:06 ` [Buildroot] [PATCH 2/2] package/shairport-sync: Add support for AirPlay2 Trammell Hudson via buildroot @ 2025-12-27 14:22 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 5+ messages in thread From: Thomas Petazzoni via buildroot @ 2025-12-27 14:22 UTC (permalink / raw) To: Trammell Hudson via buildroot; +Cc: Trammell Hudson Hello Trammell, Thanks for your patch, which I have applied, after doing some tweaks. See below. On Sat, 25 Oct 2025 13:06:10 -0600 Trammell Hudson via buildroot <buildroot@buildroot.org> wrote: > diff --git a/package/shairport-sync/Config.in b/package/shairport-sync/Config.in > index 528767ba9c..fddba4a439 100644 > --- a/package/shairport-sync/Config.in > +++ b/package/shairport-sync/Config.in > @@ -26,6 +26,21 @@ config BR2_PACKAGE_SHAIRPORT_SYNC_CONVOLUTION > help > Enable audio DSP convolution support. > > +config BR2_PACKAGE_SHAIRPORT_SYNC_AIRPLAY2 > + bool "AirPlay2 support" > + select BR2_PACKAGE_NQPTP Added an indication in a comment that this is a runtime dependency (as opposed to a build time dependency). > + select BR2_PACKAGE_LIBPLIST > + select BR2_PACKAGE_LIBSODIUM > + select BR2_PACKAGE_LIBGCRYPT > + select BR2_PACKAGE_FFMPEG > + select BR2_PACKAGE_FFMPEG_GPL > + select BR2_PACKAGE_FFMPEG_NONFREE These two were not needed according to my testing (BR2_PACKAGE_FFMPEG_GPL BR2_PACKAGE_FFMPEG_NONFREE). > +ifeq ($(BR2_PACKAGE_SHAIRPORT_SYNC_AIRPLAY2),y) > +SHAIRPORT_SYNC_DEPENDENCIES += libplist libsodium libgcrypt ffmpeg util-linux I've added host-vim in this list because the "xxd" tool is needed on the host, and the host-vim package provides it. Best regards, Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Buildroot] [PATCH 1/2] package/nqptp: Add version 1.2.4 2025-10-25 19:05 ` [Buildroot] [PATCH 1/2] package/nqptp: Add version 1.2.4 Trammell Hudson via buildroot 2025-10-25 19:06 ` [Buildroot] [PATCH 2/2] package/shairport-sync: Add support for AirPlay2 Trammell Hudson via buildroot @ 2025-12-27 9:58 ` Thomas Petazzoni via buildroot 1 sibling, 0 replies; 5+ messages in thread From: Thomas Petazzoni via buildroot @ 2025-12-27 9:58 UTC (permalink / raw) To: Trammell Hudson via buildroot; +Cc: Trammell Hudson Hello Trammell, Sorry for the long delay in taking your contribution into account. I have merged it after a number of changes, see below. First, I've adjusted the commit title to: package/nqptp: new package On Sat, 25 Oct 2025 13:05:39 -0600 Trammell Hudson via buildroot <buildroot@buildroot.org> wrote: > This is the Not Quite PTP timing library necessary for > AirPlay2 support with shairport-sync. > > Signed-off-by: Trammell Hudson <hudson@trmm.net> > --- > package/Config.in | 1 + > package/nqptp/Config.in | 6 ++++++ > package/nqptp/S90nqptp | 24 ++++++++++++++++++++++++ > package/nqptp/nqptp.hash | 3 +++ > package/nqptp/nqptp.mk | 31 +++++++++++++++++++++++++++++++ > 5 files changed, 65 insertions(+) I've added an entry in the DEVELOPERS file. > diff --git a/package/nqptp/Config.in b/package/nqptp/Config.in > new file mode 100644 > index 0000000000..cddb12e4d0 > --- /dev/null > +++ b/package/nqptp/Config.in > @@ -0,0 +1,6 @@ > +config BR2_PACKAGE_NQPTP > + bool "NQPTP" Changed to: bool "nqptp" I've added: depends on BR2_USE_MMU as it doesn't build for noMMU platforms. And also, I've added: select BR2_PACKAGE_LIBCONFIG since you have a build-time dependency on it. > + help > + Not Quite PTP for shairport-sync AirPlay 2 support. > + https://github.com/mikebrady/shairport-sync Changed to: + nqptp is a daemon that monitors timing data from PTP clocks + it sees on ports 319 and 320. It maintains records for one + clock, identified by its Clock ID. + + It is a companion application to Shairport Sync and provides + timing information for AirPlay 2 operation. + + https://github.com/mikebrady/nqptp The important bit being that the homepage URL of the project is on a separate line, which our coding style requires. > + > diff --git a/package/nqptp/S90nqptp b/package/nqptp/S90nqptp > new file mode 100644 > index 0000000000..41dbb4749a > --- /dev/null > +++ b/package/nqptp/S90nqptp > @@ -0,0 +1,24 @@ > +#! /bin/sh I've fixed this script so that it is modeled after our standard package/busybox/S01syslogd script. > diff --git a/package/nqptp/nqptp.hash b/package/nqptp/nqptp.hash > new file mode 100644 > index 0000000000..a1b686c1a9 > --- /dev/null > +++ b/package/nqptp/nqptp.hash > @@ -0,0 +1,3 @@ > +# Locally calculated > +sha256 1df1d5edd5b713010d6495b3abca4c1cf4ad8fa6029df0abeb9e4de8e0eb707a nqptp-1.2.4.tar.gz > +sha256 1daaa904985807b7f9f2fa91f6b19f3faadf8df4e813f7451a691f89a6965e3f LICENSES LICENSES didn't exist. > diff --git a/package/nqptp/nqptp.mk b/package/nqptp/nqptp.mk > new file mode 100644 > index 0000000000..11dac9f10e > --- /dev/null > +++ b/package/nqptp/nqptp.mk > @@ -0,0 +1,31 @@ > +################################################################################ > +# > +# nqptp > +# > +################################################################################ > + > +NQPTP_VERSION = 1.2.4 > +NQPTP_SITE = $(call github,mikebrady,nqptp,$(NQPTP_VERSION)) > + I dropped this empty line. > +NQPTP_LICENSE = MIT, BSD-3-Clause License is GPL-2.0. > +NQPTP_LICENSE_FILES = LICENSES The file is LICENSE, not LICENSES. > +NQPTP_DEPENDENCIES = libconfig host-pkgconf > + > +# git clone, no configure > +NQPTP_AUTORECONF = YES > + > +NQPTP_CONF_OPTS = Dropped. > +#NQPTP_CONF_ENV += LIBS="$(NQPTP_CONF_LIBS)" Dropped. > + > +define NQPTP_INSTALL_TARGET_CMDS > + $(INSTALL) -D -m 0755 $(@D)/nqptp \ > + $(TARGET_DIR)/usr/bin/nqptp > +endef > + > +define NQPTP_INSTALL_INIT_SYSV > + $(INSTALL) -D -m 0755 package/nqptp/S90nqptp \ > + $(TARGET_DIR)/etc/init.d/S90nqptp > +endef > + > +$(eval $(autotools-package)) Applied with all those changes. Thanks! Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-12-27 14:22 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-10-25 19:04 [Buildroot] [PATCH 0/2] package/shairport-sync: Add support for AirPlay2 Trammell Hudson via buildroot 2025-10-25 19:05 ` [Buildroot] [PATCH 1/2] package/nqptp: Add version 1.2.4 Trammell Hudson via buildroot 2025-10-25 19:06 ` [Buildroot] [PATCH 2/2] package/shairport-sync: Add support for AirPlay2 Trammell Hudson via buildroot 2025-12-27 14:22 ` Thomas Petazzoni via buildroot 2025-12-27 9:58 ` [Buildroot] [PATCH 1/2] package/nqptp: Add version 1.2.4 Thomas Petazzoni via buildroot
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.