Commit Graph
6444 Commits
Author SHA1 Message Date
Mike Brady 8846e27cf0 Update copyright notice in the man source file. 2026-06-22 11:43:17 +01:00
Mike BradyandGitHub 77efa15d16 Merge pull request #2220 from mikebrady/dependabot/github_actions/development/actions/checkout-7.0.0 [skip ci]
Bump actions/checkout from 6.0.3 to 7.0.0
2026-06-22 11:34:06 +01:00
dependabot[bot]andGitHub aadcb4370a Bump actions/checkout from 6.0.3 to 7.0.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.3 to 7.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6.0.3...v7.0.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-21 10:02:16 +00:00
Mike BradyandGitHub 486f0d7eb2 Update release notes with security bug fixes [skip ci]
Documented fixes for two security issues in pair_ap/pair-tlv.c and rtsp.c, including bounds checks and validation improvements. Acknowledged contributions from TristanInSec for reporting and fixing the issues.
2026-06-18 09:36:44 +01:00
Mike BradyandGitHub 3780b504a4 Merge pull request #2218 from TristanInSec/fix-tlv-dmap-oob-reads-v2
Fix Out-Of-Bounds reads and infinite loop in TLV and DMAP parsers.
2026-06-18 09:27:43 +01:00
TristanInSec 476677b0f0 Fix OOB reads and infinite loop in TLV and DMAP parsers
pair_ap/pair-tlv.c (pair_tlv_parse):
- Add bounds check before reading type and length bytes (i + 2 > length)
- Fix off-by-one in chunked TLV scan loop (j + 1 < length)
- Add bounds checks inside data copy loop to prevent OOB memcpy
- Add else branch to advance index when size == 0 (prevents infinite loop)

rtsp.c (handle_set_parameter_metadata):
- Require 8 bytes remaining for tag + length fields (off + 8 <= cl)
- Validate value length against remaining buffer before read

Reported-by: Tristan Madani <tristan@talencesecurity.com>
Signed-off-by: Tristan Madani <tristan@talencesecurity.com>
2026-06-16 10:33:18 -04:00
Mike BradyandGitHub b4751a09ef Correct grammar in bug fix note for Classic operation [skip ci] 2026-06-14 15:28:12 +01:00
Mike BradyandGitHub 2ae38f797f Update release notes with new bug fix details [skip ci]
Added a new bug fix related to immediate flush and PTP clock anchor reset.
2026-06-14 15:27:29 +01:00
Mike Brady 0e6ca7b7b2 When an immediate flush is requested, reset the PTP clock anchor information immediately to disable clocking until play is resumed. 2026-06-14 15:21:11 +01:00
Mike BradyandGitHub 1e583f0a1e Merge pull request #2212 from mikebrady/dependabot/github_actions/development/actions/checkout-6.0.3 [skip ci]
Bump actions/checkout from 6.0.2 to 6.0.3
2026-06-13 13:18:52 +01:00
Mike BradyandGitHub b90af5ddeb Merge pull request #2209 from mikebrady/dependabot/github_actions/development/docker/setup-qemu-action-4.1.0 [skip ci]
Bump docker/setup-qemu-action from 4.0.0 to 4.1.0
2026-06-13 13:17:50 +01:00
Mike BradyandGitHub e7965bf3fa Merge pull request #2207 from mikebrady/dependabot/github_actions/development/docker/setup-buildx-action-4.1.0 [skip ci]
Bump docker/setup-buildx-action from 4.0.0 to 4.1.0
2026-06-13 13:17:17 +01:00
dependabot[bot]andGitHub 4fa4c861b4 Bump docker/setup-buildx-action from 4.0.0 to 4.1.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v4.0.0...v4.1.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-13 08:57:47 +00:00
Mike BradyandGitHub 082f0f1db6 Merge pull request #2206 from mikebrady/dependabot/github_actions/development/actions/stale-10.3.0 [skip ci]
Bump actions/stale from 10.2.0 to 10.3.0
2026-06-13 09:57:16 +01:00
Mike BradyandGitHub 246d29d323 Merge pull request #2205 from mikebrady/dependabot/github_actions/development/docker/build-push-action-7.2.0 [skip ci]
Bump docker/build-push-action from 7.1.0 to 7.2.0
2026-06-13 09:56:52 +01:00
Mike BradyandGitHub 25ab1efb54 Merge pull request #2204 from mikebrady/dependabot/github_actions/development/docker/login-action-4.2.0
Bump docker/login-action from 4.1.0 to 4.2.0 [skip ci]
2026-06-13 09:55:51 +01:00
dependabot[bot]andGitHub 026d99884f Bump actions/checkout from 6.0.2 to 6.0.3
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.2 to 6.0.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6.0.2...v6.0.3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-07 10:02:24 +00:00
Mike BradyandGitHub 39da3d3cf2 Update AirPlay 2 service options in release notes [skip ci]
Enhanced AirPlay 2 build options and improved input format change delivery.
2026-06-03 14:55:28 +01:00
Mike BradyandGitHub 7b63cd1a14 Small wording changes [skip ci] 2026-06-03 14:52:34 +01:00
Mike BradyandGitHub b010314590 Small wording update [skip ci]
Clarified the description of the AirPlay 2 build enhancements, including command-line options and service types.
2026-06-03 14:47:42 +01:00
Mike BradyandGitHub 2c964e2f55 Update release notes for version 5.1-dev-17 [skip ci]
Added details about locale fixes in test clients for handling non-ASCII characters.
2026-06-03 14:46:49 +01:00
Mike Brady 9b16ff929e set locales in the test clients so that they can deal with non-ASCII characters, e.g. accented characters, properly.[skip ci] 2026-06-03 14:42:36 +01:00
dependabot[bot]andGitHub 63cf237472 Bump docker/setup-qemu-action from 4.0.0 to 4.1.0
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v4.0.0...v4.1.0)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-31 10:02:31 +00:00
Mike BradyandGitHub 1cbbeec584 Update release notes for version 5.1-dev-15 [skip ci]
Added bug fixes for race condition and compilation issue.
2026-05-30 23:24:13 +01:00
Mike Brady 2d89d2bff2 Fix a compilation bug in Classic build. 2026-05-30 23:21:55 +01:00
Mike Brady 191f06e7f7 Fix temporary patch. 2026-05-30 23:01:35 +01:00
Mike Brady 3e46eec634 In TEARDOWN, if it has a plist with a streams item in it, jist clost the player thread. If the plist exists but is empty, close the connection. 2026-05-30 22:58:36 +01:00
Mike Brady d6093b74b7 Enhance a debug message. 2026-05-30 22:55:03 +01:00
Mike Brady d9d3be5db5 Record unavailable even socket as -1. 2026-05-30 22:42:55 +01:00
Mike Brady e6c39aaefa Check for valid time information more completely. 2026-05-30 22:41:57 +01:00
Mike Brady 6003f8f978 Handle input_rate of 0 more correctly. 2026-05-30 22:40:52 +01:00
Mike Brady 090b609fe8 Undo a change that exposes a race condition. The race condition needs to be fixed first! 2026-05-30 16:59:23 +01:00
Mike BradyandGitHub b3c9e76023 Enhance AirPlay 2 service options in release notes [skip ci]
Updated the AirPlay 2 service options and clarified systemd service dependencies in the release notes.
2026-05-29 17:20:34 +01:00
Mike Brady e472cee76c After a teardown, ask the RTSP thread to terminate... and thus close everything down. 2026-05-29 17:13:17 +01:00
Mike BradyandGitHub f2ee95a3b7 Update user service script to check for non-root use and for PipeWire or PulseAudio services/ [skip ci] 2026-05-25 17:35:16 +01:00
dependabot[bot]andGitHub 4c2babce2f Bump actions/stale from 10.2.0 to 10.3.0
Bumps [actions/stale](https://github.com/actions/stale) from 10.2.0 to 10.3.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v10.2.0...v10.3.0)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: 10.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-24 10:02:46 +00:00
dependabot[bot]andGitHub c59b8dd893 Bump docker/build-push-action from 7.1.0 to 7.2.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 7.1.0 to 7.2.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v7.1.0...v7.2.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 7.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-24 10:02:41 +00:00
dependabot[bot]andGitHub ea2cc373d4 Bump docker/login-action from 4.1.0 to 4.2.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v4.1.0...v4.2.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-24 10:02:37 +00:00
Mike Brady e081e4a511 Fix compilation error when using older FFmpeg libraries. [skip ci] 2026-05-18 20:32:11 +01:00
Mike Brady 70245ad343 Another small update to the man page. [skip ci] 2026-05-18 14:35:30 +01:00
Mike Brady b7d23f622d Slight update of man page. [skip ci] 2026-05-18 14:29:35 +01:00
Mike BradyandGitHub cb7c1a0894 Update release notes for version 5.1-dev [skip ci]
Added enhancements for AirPlay 2 service options, Docker changes, and stability improvements.
2026-05-18 11:02:37 +01:00
Mike Brady efd93c5a54 5.1-dev 2026-05-18 10:29:08 +01:00
Mike Brady 157fe94d7d Merge branch 'development' of github.com:mikebrady/shairport-sync into development
include an online commit.
2026-05-18 10:26:18 +01:00
Mike Brady f30dd7aee6 Enhancements
Enable the AirPlay 2 build to operate an optional classic-AirPlay-only service or to gracefully degrade to classic AirPlay, as follows:
  1. Add a new command-line option '-—service-type=<type>' and an equivalent configuration entry 'service_type = "<type>"' in the 'general' section of the configuration file,
     where <type> can be "auto", "classic" or "airplay2":
      1. "auto" (default) means that the service will be AirPlay 2 if NQPTP is running. If NQPTP is not running, classic AirPlay service will be provided instead, and in that case,
      "(Classic)" will be appended to the default AirPlay service name visible to AirPlay clients like Apple Music, for example "RaspberryPi3B (Classic)".
      2. "classic" means the service will be classic AirPlay (aka AirPlay 1).
      3. "airplay2" means the service will be the modern AirPlay 2. In this case, as distinct from "auto", if NQPTP is not running, Shairport Sync will log an error and terminate.
  2. In the systemd service file, NQPTP is now a "Want" rather than a "Require". If it's present, then it will be launched before Shairport Sync. If it's absent, Shairport Sync will launch anyway.
  3. Improve the delivery of input format changes and emit 'sdsc' metadata when changes occur.
  4. Emit new format information in the log if statistics is enabled.

Docker Changes
  1. Support for linux/arm/v6 has been dropped, as Docker is no longer supported.
  2. NQPTP is not started in the AirPlay 2 Docker image if '--service-type=classic' or '--service-type=airplay1' is in the command line options at the end of the docker run command.
     The purpose is to ensure that ports 319 and 320 are left alone when the AirPlay 2 image is set to provide Classic service only.
     Note that setting the configuration file 'service_type' to 'classic' will not prevent NQPTP from starting up -- you must use the command line option.
  3. A new "dev" target has been added. It is a large image containing the custom-built FFmpeg library, NQPTP, Avahi and D-Bus along with the Shairport Sync source and
     all necessary development tools. When started, Avahi, D-Bus and NQPTP are all installed and running. The bash shell has also been added and is entered.

Stability Improvements
  Reorganise session preemption to fully terminate the existing session before starting a new one.
  Don't delay closing the event port to wait for it to be closed at the client end.
  Add a safe_socket_close() function to ensure sockets are fully closed. Use -1 to designate closed rather than 0, to prevent attempts to reclose sockets, causing mayhem.
  Re-order FFmpeg decommissioning during teardown.
2026-05-18 09:57:12 +01:00
Mike BradyandGitHub 0965077c0e Update PulseAudio and PipeWire documentation [skip ci]
Removed redundant information about user services and automatic startup of Shairport Sync. Added a link to the relevant section for starting Shairport Sync as a user service.
2026-05-13 15:12:28 +01:00
Mike BradyandGitHub 0bd9271ea9 Update MQTT and remote control features in README [skip ci] 2026-05-10 09:02:07 +01:00
Mike BradyandGitHub f0d40ee2a8 Clarify MPRIS and D-Bus interface descriptions [skip ci]
Updated descriptions for MPRIS and D-Bus interfaces to clarify functionality.
2026-05-10 08:53:12 +01:00
Mike BradyandGitHub 48559c45df Clarify D-Bus interface usage in Shairport Sync [skip ci]
Reorganize content for clarity regarding the D-Bus interface.
2026-05-10 08:25:44 +01:00
Mike BradyandGitHub 4a4c887bdc Update D-Bus documentation for remote control features [skip ci]
Clarified that Remote Control and Advanced Remote Control only work on Classic Airplay.
2026-05-10 08:25:16 +01:00