From patchwork Thu Oct 15 17:23:46 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Adolf Belka X-Patchwork-Id: 10391 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail01.haj.ipfire.org", Issuer "YR1" (not verified)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4j5FLG5mcsz3xZq for ; Thu, 15 Oct 2026 17:24:22 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail02.haj.ipfire.org", Issuer "YE2" (not verified)) by mail01.ipfire.org (Postfix) with ESMTPS id 4j5FLG37n5z86g for ; Thu, 15 Oct 2026 17:24:22 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [IPv6:::1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4j5FL23cfVz371M for ; Thu, 15 Oct 2026 17:24:10 +0000 (UTC) X-Original-To: development@lists.ipfire.org Received: from mail01.ipfire.org (mail01.haj.ipfire.org [IPv6:2001:678:b28::25]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail01.haj.ipfire.org", Issuer "YR1" (not verified)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4j5FKr3G74z36VP for ; Thu, 15 Oct 2026 17:24:00 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail01.ipfire.org (Postfix) with ESMTPSA id 4j5FKn3LTDz88N; Thu, 15 Oct 2026 17:23:57 +0000 (UTC) DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003ed25519; t=1792085037; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GHIfRB7/epNb/ZJG1qiVAbS4myttMF4a44kpxLv7FPI=; b=KZr6WZNwdNljpKGOQ1g6PMaH+u6hXF2GD+k1ncSTWnLgcUj4pfOOCGIntBeRjWHJUAZNmI Db/DiArL8KP/FADQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003rsa; t=1792085037; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GHIfRB7/epNb/ZJG1qiVAbS4myttMF4a44kpxLv7FPI=; b=tXJeiZEQEU2Q7jfVz/F/rCQrxvoMCw4gI+XH8BXxBZrszcRtG6RqJNVhQcZO4zNJLHQE3W pwN22OsUvpTnuq4UQR6w2nqJIKmFUU9Mv6qiXQInBmzuvNifZxDi5q0+tkGz0Kk2UVzV05 PlTQ87rlOph6sB2pM1lHSeHCBSXuP0xhuld4+47TlI7L3tfdpTRYS0Hoc6sy2wWskBXEWu piju4pa1TLV23+B2PkypOstcG49Vd/y99+Uj6uGwrvkpt/T3gGILMZukil5yzf0N+YuCMI fjQ0/y1kFBerhpFQDcUrfwi9EmRpddzT3PafoMudMJaPYBW2a+pbcIx7wfPuyA== From: Adolf Belka To: development@lists.ipfire.org Cc: Adolf Belka Subject: [PATCH] shairport-sync: Update to version 5.6 Date: Thu, 15 Oct 2026 19:23:46 +0200 Message-ID: <20261015172349.3449498-16-adolf.belka@ipfire.org> In-Reply-To: <20261015172349.3449498-1-adolf.belka@ipfire.org> References: <20261015172349.3449498-1-adolf.belka@ipfire.org> Precedence: list List-Id: List-Subscribe: , List-Unsubscribe: , List-Post: List-Help: Sender: Mail-Followup-To: MIME-Version: 1.0 - Update from version 5.5.2 toi 5.6 - No change in rootfile - Changelog 5.6 Things You Can’t Ignore Shairport Sync and NQPTP have both been updated to Shared Memory Interface 11 (smi11). You should update and install NQPTP first, then update and install Shairport Sync. Then, restart NQPTP and Shairport Sync, in that order. Security Updates The default ALAC decoder is now from the FFmpeg library. The Hammerton decoder is no longer the default ALAC decoder for Classic AirPlay builds; it remains an option but is strongly deprecated for security reasons. A number of memory allocation and out-of-bounds issues have been identified and dealt with. Thanks to Akhil Koul, Yegor Yefremov, Dirk Mueller, Haavar Valeur, Tristan, Filipe and memoriaru. Remote Control for AirPlay 2. We are thrilled to announce that remote control of AirPlay 2 players is now available. Shairport Sync has had remote control facilities for Classic AirPlay players for some time -- for example, you could control play, pause, skip and change volume via Shairport Sync's MPRIS, D-Bus or MQTT interfaces, but this only worked only on Classic AirPlay (aka AirPlay 1) players, and "Advanced" controls were only available for iTunes or the macOS Music app. Most of these remote control facilities are now available on AirPlay 2 players using the same Shairport Sync commands and properties. (This is still a work in progress: the RemoteControl.Available and AdvancedRemoteControl.Available properties remain false in AirPlay 2 operation even though the facilities are available.) Enhanced Metadata for Airplay 2 AirPlay 2 provides much more metadata than classic AirPlay. This is now provided in the metadata pipe under the copl (for COmmand PList) type, and on the D-Bus interface alongside existing metadata. (The sample metadata pipe reader shairport-sysc-metadata-reader has also been updated and a few bugs fixed.) Improved D-Bus and MPRIS interfaces The MPRIS interface has been brought closer to the true MPRIS standard: Volume, Loop Status and Shuffle are now settable properties as specified in the standard, whereas up to now they were read-only properties. The D-Bus interface has likewise been enhanced: Volume, Loop Status and Shuffle are now settable properties. Most of the RemoteControl and AdvancedRemoteControl suite of commands and properties are available on AirPlay 2 connections. The D-Bus interface has two new properties: NowPlayingInformation and CommandInformation. Both of these are essentially raw feeds of metadata coming from AirPlay 2. The only exception is that raw picture data is removed from the NowPlayingInformation and is replaced by a local file reference to the same data. The MPRIS Position property has been fully implemented, for Classic and AirPlay 2 operation. MPRIS and D-Bus interfaces now check parameters and report errors before accepting a command or setting a property. Full Support for macOS A new native CoreAudio backend is now available for use with macOS. This provides full audio synchronisation on Mac. NQPTP has also been updated for macOS, enabling AirPlay 2 as well as Classic AirPlay service on Mac. Thanks to Filipe for their work on this. Support for Multiple Instances of Shairport Sync This refers to the possibility of running multiple copies of Shairport Sync on the same hardware, which was not thought possible. However, thanks to the work of Haavar Valeur and Jay Love, it now seems feasible. Please refer to the Running Multiple Instances guide for further details. PipeWire Volume Control Shairport Sync can optionally control its own ("stream") PipeWire volume or the overall ("sink") PipeWire volume of the entire system. Use the new mixer_type setting in the pipewire section of the configuration file. If no mixer_type is specified, Shairport Sync's own mixer is used and no PipeWire volume settings are affected. Thanks to gearhead. pipewire = { ... mixer_type = "sink"; // pipewire mixer_type either "sink" or "stream" } Other Enhancements Improved handling of clock mastership changes that occur when a player containing a new grandmaster is added to or removed from the set of output devices. Support for Mbed TLS 4, thanks to Yegor Yefremov. Support for uncompressed Linear 16-bit signed PCM (CD-quality) streams, thanks to Filipe. Very specialised configuration file settings have been added to force AirPlay 2 reception to 44,100 frames per second only and to enable or disable 48K ALAC Lossless reception. Richer plist-encoded metadata is now used by default for AirPlay 2. TIFF album artwork is recognised and file-tagged correctly. Bug fixes Fixed a bug causing AirPlay 2 sessions to stop unexpectedly due to periodic connections from other players. Thanks to mjardemalm for the detective work! Fixed a memory allocation bug in the pairing code. Thanks to Akhil Koul. Stopped a crash when metadata support is built in but metadata is turned off in the configuration file. Fixed a bug whereby setting a specific RTSP port for AirPlay 2 was ignored. Thanks to Haavar Valeur. Fixed a bug in the construction of Bonjour strings. Fixed an invalid memory free and a leak of the interface list in tinysvcmdns. Thanks to Yegor Yefremov. Note that tinysvcmdns remains deprecated for security reasons. Fixed a potential read overflow, thanks to Dirk Mueller. Fixed latency offset calculations by deferring them until the input rate is known. Thanks to prhodey. Docker Enhancements Preserve user-supplied PULSE_SERVER and PULSE_COOKIE, thanks to Joel Town Road. Add ENABLE_NQPTP to opt out of starting NQPTP in Docker, thanks to Haavar Valeur. Other The list of licenses in LICENSES has been updated. Software tests have been updated. The file structure of the repository is changing. Various Dependabot updates to the CI system have been made. Signed-off-by: Adolf Belka --- lfs/shairport-sync | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lfs/shairport-sync b/lfs/shairport-sync index 36f5f2391..c90734f3a 100644 --- a/lfs/shairport-sync +++ b/lfs/shairport-sync @@ -26,7 +26,7 @@ include Config SUMMARY = An AirPlay audio player -VER = 5.5.2 +VER = 5.6 THISAPP = shairport-sync-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -34,7 +34,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = shairport-sync -PAK_VER = 19 +PAK_VER = 20 DEPS = alsa avahi ffmpeg libdaemon libplist nqptp soxr @@ -48,7 +48,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_BLAKE2 = da512e3f6aa100e283dcbeaa9e0319d26f7b6b2969c822eb62a6eda1069be36df954941fed3cc31cc5784d8e35bba55339d83d78badb0abdac82d818dbaa8c50 +$(DL_FILE)_BLAKE2 = 5b3a22c5e5838466942567483c79e2bc0347170b968427bec09aae00193fc12e5cc8ae0bd36c2b0f42f2147b5a963edcce0c39d0ccaf6452229ff0a0245a097a install : $(TARGET)