* [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 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
* 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
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.