head 1.14; access; symbols pkgsrc-2026Q2:1.12.0.6 pkgsrc-2026Q2-base:1.12 pkgsrc-2026Q1:1.12.0.4 pkgsrc-2026Q1-base:1.12 pkgsrc-2025Q4:1.12.0.2 pkgsrc-2025Q4-base:1.12 pkgsrc-2025Q3:1.11.0.2 pkgsrc-2025Q3-base:1.11 pkgsrc-2025Q2:1.9.0.4 pkgsrc-2025Q2-base:1.9 pkgsrc-2025Q1:1.9.0.2 pkgsrc-2025Q1-base:1.9 pkgsrc-2024Q4:1.7.0.8 pkgsrc-2024Q4-base:1.7 pkgsrc-2024Q3:1.7.0.6 pkgsrc-2024Q3-base:1.7 pkgsrc-2024Q2:1.7.0.4 pkgsrc-2024Q2-base:1.7 pkgsrc-2024Q1:1.7.0.2 pkgsrc-2024Q1-base:1.7 pkgsrc-2023Q4:1.6.0.2 pkgsrc-2023Q4-base:1.6 pkgsrc-2023Q3:1.5.0.4 pkgsrc-2023Q3-base:1.5 pkgsrc-2023Q2:1.5.0.2 pkgsrc-2023Q2-base:1.5 pkgsrc-2023Q1:1.4.0.6 pkgsrc-2023Q1-base:1.4 pkgsrc-2022Q4:1.4.0.4 pkgsrc-2022Q4-base:1.4 pkgsrc-2022Q3:1.4.0.2 pkgsrc-2022Q3-base:1.4; locks; strict; comment @# @; 1.14 date 2026.09.02.19.00.59; author wiz; state Exp; branches; next 1.13; commitid vXszxoxOqka005UG; 1.13 date 2026.07.13.04.35.23; author wiz; state Exp; branches; next 1.12; commitid KzpMRouvb2DLQrNG; 1.12 date 2025.10.23.20.35.54; author wiz; state Exp; branches; next 1.11; commitid 1V2hBZn9ypXaCJfG; 1.11 date 2025.08.05.19.36.39; author schmonz; state Exp; branches; next 1.10; commitid BN2F89UIXn8FPz5G; 1.10 date 2025.08.05.19.33.02; author schmonz; state Exp; branches; next 1.9; commitid CczKZyBZqmiAOz5G; 1.9 date 2025.02.12.06.44.29; author ryoon; state Exp; branches; next 1.8; commitid wrOiT0jBBwBs99JF; 1.8 date 2025.01.21.11.00.10; author nia; state Exp; branches; next 1.7; commitid ERZvanoGurVahlGF; 1.7 date 2024.01.30.14.21.34; author ryoon; state Exp; branches; next 1.6; commitid gARf2FgciecARtWE; 1.6 date 2023.10.24.22.08.15; author wiz; state Exp; branches; next 1.5; commitid MTsrqKm6aGrQAVJE; 1.5 date 2023.05.06.19.09.04; author ryoon; state Exp; branches; next 1.4; commitid U0SnpK5fQpHc6WnE; 1.4 date 2022.09.11.12.51.22; author wiz; state Exp; branches; next 1.3; commitid 5DT6DUEaifG2DrTD; 1.3 date 2022.08.11.06.41.57; author wiz; state Exp; branches; next 1.2; commitid IdOrErVjvQhfAqPD; 1.2 date 2022.07.02.16.53.08; author ryoon; state Exp; branches; next 1.1; commitid JYhuI1Ghjd0AflKD; 1.1 date 2022.07.01.18.36.27; author nia; state Exp; branches; next ; commitid RQb0Tvm4rHm2RdKD; desc @@ 1.14 log @*: recursive bump for pcre2 10.48 @ text @# $NetBSD: Makefile,v 1.13 2026/07/13 04:35:23 wiz Exp $ DISTNAME= shairport-sync-4.3.7 PKGREVISION= 3 CATEGORIES= audio MASTER_SITES= ${MASTER_SITE_GITHUB:=mikebrady/} MAINTAINER= pkgsrc-users@@NetBSD.org HOMEPAGE= https://github.com/mikebrady/shairport-sync COMMENT= AirPlay audio player with multi-room audio synchronisation capability LICENSE= mit # possibly others? USE_TOOLS+= autoconf autoreconf automake USE_TOOLS+= pkg-config USE_LANGUAGES= c c++ GNU_CONFIGURE= yes BUILD_DEFS+= VARBASE SHAIRPORT_USER SHAIRPORT_GROUP .include "../../mk/bsd.prefs.mk" PKG_GROUPS= ${SHAIRPORT_GROUP} PKG_USERS= ${SHAIRPORT_USER}:${SHAIRPORT_GROUP} RCD_SCRIPTS= ${PKGBASE} FILES_SUBST+= SHAIRPORT_USER=${SHAIRPORT_USER} FILES_SUBST+= SHAIRPORT_GROUP=${SHAIRPORT_GROUP} FILES_SUBST+= UNAME=${UNAME} FILES_SUBST+= VARBASE=${VARBASE} CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR:Q} CONFIGURE_ARGS+= --with-ao CONFIGURE_ARGS+= --with-libdaemon CONFIGURE_ARGS+= --with-metadata CONFIGURE_ARGS+= --with-pipe CONFIGURE_ARGS+= --with-soxr CONFIGURE_ARGS+= --with-stdout CONFIGURE_ARGS+= --without-configfiles CONFIGURE_ARGS+= --without-airplay-2 .if ${OPSYS} == "NetBSD" || ${OPSYS} == "SunOS" || \ exists(/usr/include/sys/audioio.h) CONFIGURE_ARGS+= --with-sun CONFIGURE_ARGS+= --with-os=freebsd .endif .if ${OPSYS} != "Darwin" CPPFLAGS+= -DCOMPILE_FOR_LINUX_AND_FREEBSD_AND_CYGWIN_AND_OPENBSD=1 CPPFLAGS+= -DCOMPILE_FOR_BSD=1 .else CONFIGURE_ARGS+= --with-os=darwin .endif SUBST_CLASSES+= etc SUBST_STAGE.etc= pre-configure SUBST_FILES.etc+= shairport.c SUBST_VARS.etc+= PKG_SYSCONFDIR SUBST_VARS.etc+= VARBASE INSTALLATION_DIRS+= share/examples/${PKGBASE} CONF_FILES+= ${PREFIX}/share/examples/${PKGBASE}/${PKGBASE}.conf \ ${PKG_SYSCONFDIR}/${PKGBASE}.conf OWN_DIRS_PERMS+= ${VARBASE}/run/shairport-sync \ ${SHAIRPORT_USER} ${SHAIRPORT_GROUP} 0755 pre-configure: cd ${WRKSRC} && autoreconf -fi post-install: ${INSTALL_DATA} ${WRKSRC}/scripts/shairport-sync.conf \ ${DESTDIR}${PREFIX}/share/examples/${PKGBASE}/${PKGBASE}.conf .include "options.mk" .include "../../audio/libao/buildlink3.mk" .include "../../audio/libsoxr/buildlink3.mk" .include "../../devel/libconfig/buildlink3.mk" .include "../../devel/libdaemon/buildlink3.mk" .include "../../devel/popt/buildlink3.mk" .include "../../mk/bsd.pkg.mk" @ 1.13 log @*: recursive bump for libmpg123 dependency in lame @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.12 2025/10/23 20:35:54 wiz Exp $ d4 1 a4 1 PKGREVISION= 2 @ 1.12 log @*: recursive bump for pcre2 Running an old binary against the new pcre doesn't work: /usr/pkg/lib/libpcre2-8.so.0: version PCRE2_10.47 required by /usr/pkg/lib/libglib-2.0.so.0 not defined @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.11 2025/08/05 19:36:39 schmonz Exp $ d4 1 a4 1 PKGREVISION= 1 @ 1.11 log @shairport-sync: record user and group in BUILD_DEFS. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.10 2025/08/05 19:33:02 schmonz Exp $ d4 1 @ 1.10 log @shairport-sync: update to 4.3.7. Changes: There have been many many bug fixes and enhancements to the core operation of Shairport Sync. Not included in this pkgsrc update: * AirPlay 2 operation (needs https://github.com/mikebrady/nqptp to be packaged first) Version 4.3 **Enhancements** * A new volume control profile called `dasl-tapered` has been added in which halving the volume control setting halves the output level. * On graceful shutdown, an `active_end` signal should now be generated if the system was in the active state. **Bug Fixes** * Fixed a cross-compliation error caused by not looking for the correct version of the `ar` tool. The fix was to substitute the correct version during the `autoreconf` phase. * Updated the mDNS strings for the Classic AirPlay feature of AP2, so that it does not appear to provide MFi authentication. * Always uses a revision number of 1 when looking for status updates on the DACP remote control port. * Fixed a `statistics` bug (the minimum buffer size was incorrectly logged) and also tidy up the statistics logging interval logic for resetting min and max counters. * Added an important missing format string argument to a call in the Jack Audio backend. **Maintenance** * Stopped using a deprecated FFmpeg data structure reference. * Stopped using deprecated OpenSSL calls. Version 4.2 **Enhancements** * Allow compilation with `libplist` version `2.3.0`. * Update MQTT documentation to correspond to updates in Home Assistant. **Bug Fixes** * Sometimes the AirPlay Device ID generated by Shairport Sync was all zeros, and so was invalid, causing connectivity problems. The cause of the problem was that `get_device_id` was not interpreting `getaddrinfo` information correctly. * Fix a bug: when a Realtime Audio stream (e.g. playing from Spotify on iOS or using Shairport Sync as the Sound Output on a Mac) was played, it was fine, but when it was stopped and a second stream was started, the new stream could not be heard. The problem was that the PTP clock was not being correctly revalidated for second and subsequent Realtime Audio streams. The fix was to ensure that the PTP clock is revalidated on second and subsequent plays on the same connection. * Use TCP keepalive a little more generally -- treat it the same as a client closing the link rather than just an error. * Remove three potential race conditions between Shairport Sync opening a TCP connection and the client checking that the connections are open. The problem was that the connections were being opened in threads that were created just before the client was given the connection information. If the threads were delayed (e.g. on a slow or busy processor), the client could use the connection information to check the connections, but find that they were not (yet) open. This could cause the client to terminate the session immediately with a `TEARDOWN`. The fix was to open the connections before creating those threads and before sending the connection information back to the client. In this way, the connections are guaranteed to be open before the client has the information it needs to try to open them, even if the threads ared delayed in starting. This bug would manifest itself by allowing play to proceed but not play anything. Version 4.1.1 **Enhancement** * Use the TCP `keepalive` facility to close a play session if the client connection drops for a minute. **Metadata Enhancements** * Add `FramePosition` (`phbt`), `FirstFramePosition` (`phb0`), `OutputRate` (`ofps`), `OutputFormat` (`ofmt`), `StreamType` (`styp`), `ServiceName` (`svna`), `ClientName` (`snam`) properties to the D-Bus interface and to the metadata stream (codes in brackets). * `FramePosition`/`FirstFramePosition` metadata is generated only if the `progress_interval` in the `metadata` section of the configuration file is non-zero. The progress interval can also be set by a new `SetFramePositionUpdateInterval` method in the D-Bus interface. * `FramePosition`/`FirstFramePosition` metadata is of the form `/` where the local time, in nanoseconds (a 64-bit number), is the precise time that frame should be played. The metadata is generated when the frame is placed in the output buffer, and is thus generated `audio_backend_buffer_desired_length_in_seconds` (usually 0.2 seconds) before the time in question. * Add `xesam:albumArtist` and `xesam:composer` metadata (if available) to the metadata bundle presented in the D-Bus interface. * Add a new metadata item: `sps:songdatakind`, derived from the `asdk` metadata token, to the metadata bundle presented in the D-Bus interface. If `0` it seems to indicate an item of a specific duration such as an audio track; if `1` it seems to mean the stream is of unknown duration, for example an internet radio stream. **Bug Fixes** * Fix a bug that prevented multiple classic AirPlay instances being recognised. The bug was that the 12-digit classic AirPlay service name prefixes for each instance were all identically derived from a MAC hardware address. The fix was to modify the generation of prefixes to depend on the service name as well as the hardware address. * Fix a bug that prevented play to the the PulseAudio backend from resuming after a pause. The bug was due to changes in the way pauses were handled and the fix was to reopen the stream if it is closed whenever a play or latency request was made. * Fix a long-standing bug which didn't close the socket used for the RTSP connection, potentially exhausting the sockets available. * Fix a bug in `audio_alsa.c` when there is no hardware device name. * Fix a compilation bug on certain platforms by trying to use `AC_CHECK_LIB` to find `libavcodec` if the `PKG_CHECK_MODULES` check fails. **Documentation** * Include and reference the HTML version of the man page. Version 4.1 Version 4.1 brings support for AirPlay 2 operation. It works with iOS, iPadOS, macOS, HomePod mini and Apple TV sources, but not with Windows. AirPlay 2 operation requires a companion program called NQPTP and requires a somewhat more powerful system. Limited support is available for HomeKit -- Shairport Sync speakers can be added to the Home app, though not all features are working. Note that you can still build Shairport Sync to support "classic" AirPlay (aka "AirPlay 1") as before. Here is a brief list of the high-level new features and changes (more to be added): * AirPlay 2 operation. * Improved `libao` backend for better compatibility with HomeBrew installations. * Improved MQTT and D-Bus facilities. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.9 2025/02/12 06:44:29 ryoon Exp $ d18 1 a18 5 BUILD_DEFS+= VARBASE # XXX add to mk/defaults/mk.conf SHAIRPORT_GROUP?= shairport SHAIRPORT_USER?= shairport @ 1.9 log @*: Recursive revbump from audio/flac-1.5.0 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.8 2025/01/21 11:00:10 nia Exp $ d3 1 a3 2 DISTNAME= shairport-sync-3.3.9 PKGREVISION= 7 d20 1 d33 1 d36 1 d45 1 d50 1 d54 4 a57 1 CPPFLAGS+= -DCOMPILE_FOR_LINUX_AND_FREEBSD_AND_CYGWIN_AND_OPENBSD=1 @ 1.8 log @*: Drop maintainership. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.7 2024/01/30 14:21:34 ryoon Exp $ d4 1 a4 1 PKGREVISION= 6 @ 1.7 log @*: Recursive revbump from audio/pulseaudio-17.0 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.6 2023/10/24 22:08:15 wiz Exp $ d8 1 a8 1 MAINTAINER= nia@@NetBSD.org @ 1.6 log @*: bump for openssl 3 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.5 2023/05/06 19:09:04 ryoon Exp $ d4 1 a4 1 PKGREVISION= 5 @ 1.5 log @*: Recursive revbump from audio/libopus 1.4 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.4 2022/09/11 12:51:22 wiz Exp $ d4 1 a4 1 PKGREVISION= 4 @ 1.4 log @*: bump PKGREVISION for flac shlib bump @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.3 2022/08/11 06:41:57 wiz Exp $ d4 1 a4 1 PKGREVISION= 3 @ 1.3 log @*: recursive PKGREVISION bump for mbedtls shlib major increases @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.2 2022/07/02 16:53:08 ryoon Exp $ d4 1 a4 1 PKGREVISION= 2 @ 1.2 log @*: Recursive revbump from audio/pulseaudio @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.1 2022/07/01 18:36:27 nia Exp $ d4 1 a4 1 PKGREVISION= 1 @ 1.1 log @add audio/shairport-sync Shairport Sync is an AirPlay audio player - it plays audio streamed from Apple devices and AirPlay sources such as ForkedDaapd (but apparently not rtunes). Audio played by a Shairport Sync-powered device stays synchronised with the source and hence with similar devices playing the same source. In this way, synchronised multi-room audio is possible for players that support it. @ text @d1 1 a1 1 # $NetBSD$ d4 1 @