I noticed that 3.3.9 doesn't always start playback due to sync errors when connecting; it does not recover, but restarting the daemon and reconnecting a few times works, then playback is stable.
With 4.3.2 I see the same behaviour, possibly more often. Can someone else report how well/bad works for them? To see any kind of log at all with either version, one can do # rcctl stop shairport_sync # su -fl -s /bin/sh _shairport $ shaiport --verbose --use-stderr Still no AirPlay 2 support due to lack of NQPTP (Not Quite PTP) in form of a separate daemon, otherwise lots of changes/fixes: https://github.com/mikebrady/shairport-sync/releases Index: Makefile =================================================================== RCS file: /cvs/ports/audio/shairport-sync/Makefile,v diff -u -p -r1.5 Makefile --- Makefile 25 Jan 2024 00:23:07 -0000 1.5 +++ Makefile 25 Jan 2024 00:48:36 -0000 @@ -1,14 +1,6 @@ COMMENT = AirPlay audio player -GH_ACCOUNT = mikebrady -GH_PROJECT = shairport-sync -GH_TAGNAME = 3.3.9 -REVISION = 3 - -SITES.fix = https://github.com/mikebrady/shairport-sync/commit/ -# "avoid recursive mutex acquisition in sndio backend" to fix crash on pause -PATCHFILES.fix = 57af5f3c10c54947cf160fe46a580cf40669d412.patch -PATCH_DIST_STRIP = -p1 +DIST_TUPLE = github mikebrady shairport-sync 4.3.2 . CATEGORIES = audio @@ -27,7 +19,8 @@ LIB_DEPENDS = devel/libconfig \ CONFIGURE_ENV += CFLAGS="${CFLAGS} -I${PREFIX}/include" CONFIGURE_STYLE = autoreconf -AUTOCONF_VERSION = 2.69 +SEPARATE_BUILD = Yes +AUTOCONF_VERSION = 2.71 AUTOMAKE_VERSION = 1.16 CONFIGURE_ARGS += --with-ssl=openssl \ Index: distinfo =================================================================== RCS file: /cvs/ports/audio/shairport-sync/distinfo,v diff -u -p -r1.2 distinfo --- distinfo 22 Jan 2024 01:40:28 -0000 1.2 +++ distinfo 25 Jan 2024 00:48:36 -0000 @@ -1,4 +1,2 @@ -SHA256 (57af5f3c10c54947cf160fe46a580cf40669d412.patch) = oXgaUppVX6sT9ZLReDyLZ9pRxB/s43puBLDsvSlmsWQ= -SHA256 (shairport-sync-3.3.9.tar.gz) = F5kMsmIFUcqgehw7NxiJ5VgDBx6q2gTpWMNWVHp+F5U= -SIZE (57af5f3c10c54947cf160fe46a580cf40669d412.patch) = 2421 -SIZE (shairport-sync-3.3.9.tar.gz) = 426827 +SHA256 (mikebrady-shairport-sync-4.3.2.tar.gz) = 37SFwGAzmAMqAOUfhLh0dJu/FVslet2j0nDVmJ3gi/0= +SIZE (mikebrady-shairport-sync-4.3.2.tar.gz) = 560574 Index: patches/patch-man_shairport-sync_7 =================================================================== RCS file: /cvs/ports/audio/shairport-sync/patches/patch-man_shairport-sync_7,v diff -u -p -r1.1.1.1 patch-man_shairport-sync_7 --- patches/patch-man_shairport-sync_7 27 Apr 2022 02:19:25 -0000 1.1.1.1 +++ patches/patch-man_shairport-sync_7 25 Jan 2024 00:48:36 -0000 @@ -7,5 +7,5 @@ Index: man/shairport-sync.7 -.TH shairport-sync 7 User Manuals +.TH shairport-sync 1 User Manuals .SH NAME - shairport-sync \- Synchronised Audio Player for iTunes / AirPlay + shairport-sync \- AirPlay and AirPlay 2 Audio Player .SH SYNOPSIS Index: patches/patch-rtsp_c =================================================================== RCS file: patches/patch-rtsp_c diff -N patches/patch-rtsp_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-rtsp_c 25 Jan 2024 00:48:36 -0000 @@ -0,0 +1,21 @@ +No per-socket TCP keep-alive on OpenBSD + +Index: rtsp.c +--- rtsp.c.orig ++++ rtsp.c +@@ -5601,6 +5601,7 @@ void *rtsp_listen_loop(__attribute((unused)) void *arg + size_of_reply = sizeof(SOCKADDR); + if (getsockname(conn->fd, (struct sockaddr *)&conn->local, &size_of_reply) == 0) { + ++#if !defined(__OpenBSD__) + // Thanks to https://holmeshe.me/network-essentials-setsockopt-SO_KEEPALIVE/ for this. + + // turn on keepalive stuff -- wait for keepidle + (keepcnt * keepinttvl time) seconds +@@ -5635,6 +5636,7 @@ void *rtsp_listen_loop(__attribute((unused)) void *arg + sizeof(keepAliveInterval))) { + debug(1, "can't set the keepidle missing count interval"); + }; ++#endif /* !defined(__OpenBSD__) */ + + // initialise the connection info + void *client_addr = NULL, *self_addr = NULL; Index: pkg/shairport_sync.rc =================================================================== RCS file: /cvs/ports/audio/shairport-sync/pkg/shairport_sync.rc,v diff -u -p -r1.1.1.1 shairport_sync.rc --- pkg/shairport_sync.rc 27 Apr 2022 02:19:25 -0000 1.1.1.1 +++ pkg/shairport_sync.rc 25 Jan 2024 00:48:36 -0000 @@ -6,4 +6,5 @@ daemon_user="_shairport" . /etc/rc.d/rc.subr rc_bg=YES + rc_cmd $1