Commit Graph
5907 Commits
Author SHA1 Message Date
Mike BradyandGitHub feebb5eec8 Update RELEASENOTES-DEVELOPMENT.md 2024-04-25 15:25:38 +01:00
Mike BradyandGitHub b054c0047a Update check_classic_mac_basic.yml
back to macOS-13
2024-04-25 15:13:17 +01:00
Mike Brady d45863b530 Simplify basic macOS check build. 2024-04-25 15:10:47 +01:00
Mike Brady be74e3e171 Add some extra CFLAG settings to configure.ac for libconfig libpopt and openssl/libcrypto to enable compilation on macOS without extra flag settings. 2024-04-25 15:08:50 +01:00
Mike BradyandGitHub 76fbb6b31c Update RELEASENOTES-DEVELOPMENT.md 2024-04-25 11:15:55 +01:00
Mike BradyandGitHub 080375c902 Update RELEASENOTES-DEVELOPMENT.md 2024-04-25 11:15:39 +01:00
Mike BradyandGitHub cc963bf046 Update check_classic_mac_basic.yml 2024-04-25 11:05:13 +01:00
Mike BradyandGitHub b93ee5e24e Update RELEASENOTES-DEVELOPMENT.md 2024-04-25 11:00:45 +01:00
Mike BradyandGitHub 5de64fd012 Update RELEASENOTES-DEVELOPMENT.md 2024-04-25 10:59:24 +01:00
Mike Brady 85f8ea12dd Use PKG_CHECK_MODULES to find the ao lib if possible. 2024-04-25 10:27:26 +01:00
Mike BradyandGitHub 76a6f1db67 Update RELEASENOTES-DEVELOPMENT.md 2024-04-24 16:33:03 +01:00
Mike BradyandGitHub f8dc330f3f Update check_classic_mac_basic.yml 2024-04-24 10:50:29 +01:00
Mike BradyandGitHub 3b3a04248b Update check_classic_mac_basic.yml
Move to Node.20 version of actions/checkout
2024-04-24 10:48:02 +01:00
Mike BradyandGitHub 241e02d7ea Update RELEASENOTES-DEVELOPMENT.md 2024-04-24 10:37:32 +01:00
Mike Brady c0f5112b8d Remove some almost-never-used and therefore untested code, and remove a potentially misleading comment from the ALSA backend. 2024-04-24 10:31:10 +01:00
Mike BradyandGitHub 5d24d84768 Update RELEASENOTES-DEVELOPMENT.md 2024-04-07 09:05:51 +01:00
Mike BradyandGitHub 2ec1602a95 Update RELEASENOTES-DEVELOPMENT.md 2024-04-07 09:04:57 +01:00
Mike BradyandGitHub e3a3a2acc9 Update RELEASENOTES-DEVELOPMENT.md 2024-04-07 09:03:35 +01:00
Mike BradyandGitHub b5ea2b1078 Merge pull request #1838 from 1ockwood/mqtt-documentation-updates
Update MQTT.md. Thanks!
2024-04-07 08:54:13 +01:00
Craig Lockwood 5959a08c0a Update MQTT Home Assistant example, plus some other MQTT documentation tweaks. 2024-04-06 16:25:00 -04:00
Mike BradyandGitHub d5d984303a Update RELEASENOTES-DEVELOPMENT.md 2024-04-01 13:21:59 +01:00
Mike BradyandGitHub 6eba4fd83e Merge pull request #1831 from kuzhylol/master
This patch introduces modification to AirPlay attributes allowing AirPlay clients seeing only appropriate Endpoints of specific version of AirPlay protocol.

[Test]
Run two instances of shairport-sync - built for version 1 and for version 2.

TuneBlade recognizes only AirPlay version 1 instance running.
MacOS/iOS recognizes only AirPlay version 2 instance running.

Without that patch, both MacOS/iOS detect two endpoints at the same time. The TuneBlade detects only AirPlay version 1 since it doesn't support AirPlay version 2.
2024-04-01 13:02:20 +01:00
Mike BradyandGitHub dec034952d Update RELEASENOTES-DEVELOPMENT.md 2024-04-01 11:20:19 +01:00
Mike BradyandGitHub 5922f9d1b4 Merge pull request #1813 from rmounce/fix-ptp-net-iface
Limit PTP addresses to configured network interface.
2024-04-01 10:38:58 +01:00
Oleh Kuzhylnyi 3dc5926243 Add version-based visibility of shairport-sync endpoints
This patch introduces modification to AirPlay attributes allowing AirPlay clients
seeing only appropriate Endpoints of specific version of AirPlay protocol.

[Test]
Run two instances of shairport-sync - built for version 1 and for version 2.

TuneBlade recognizes only AirPlay version 1 instance running.
MacOS/iOS recognizes only AirPlay version 2 instance running.

Without that patch, both MacOS/iOS detect two endpoints at the same time.
The TuneBlade detects only AirPlay version 1 since it doesn't support AirPlay version 2.
2024-03-26 19:48:42 -03:00
Mike Brady 0f07107c36 Look for DACP-ID and Active-Remote in the GET /info request, where it sometimes appears from AirPlay from an intel Mac. 2024-03-25 20:28:11 +00:00
Mike BradyandGitHub 9862793256 Merge pull request #1820 from hvilleneuve29/development_yocto
Add configure option to enable/disable creation of user/group
2024-03-08 09:32:39 +00:00
Mike BradyandGitHub ab59f20180 Merge pull request #1812 from HNKNTA/master
Update docker compose file
2024-03-08 09:19:30 +00:00
Mike BradyandGitHub d6ad6da1d6 Merge pull request #1821 from porg/patch-2
Update AIRPLAY2.md - Version introduced + Supported devices
2024-03-07 09:55:10 +00:00
porgandGitHub b97557257c Update AIRPLAY2.md - Version introduced + Supported devices
The introduction paragraph now more clearly mentions the hard facts/requirements with "as of v4.1 and newer" and the supported devices are displayed in bullet list format for better readabilty.
2024-03-07 10:31:27 +01:00
Hugo Villeneuve 2dfeaa6825 Add configure option to enable/disable creation of user/group
Useful for Yocto, for example, where groupadd or getenv is not available.

Enabled by default, to keep same behavior as before.
2024-03-07 00:20:39 -05:00
Mike BradyandGitHub a51589ed2c Update RELEASENOTES-DEVELOPMENT.md 2024-03-04 11:18:39 +00:00
Mike Brady cf10ff9d7a Build scripts/shairport-sync.service, scripts/shairport-sync.service-avahi and scripts/shairport-sync unconditionally for Linux to facilitate different installation methods. 2024-03-04 11:13:56 +00:00
Ryan Mounce b6a3835d45 Limit PTP addresses to configured network interface
Otherwise every address on the system is advertised and AirPlay 2
sources will send PTP announce + signalling messages to all of them in
parallel.
2024-02-27 22:20:27 +10:30
HNKNTA 997ab4396c Update docker compose file
Added S6_KEEP_ENV to example, without it pulse connection won't happen
2024-02-26 20:29:15 +02:00
Mike BradyandGitHub 2dba9bc8ca Update RELEASENOTES-DEVELOPMENT.md 2024-02-25 17:38:37 +00:00
Mike BradyandGitHub 4aee4ec864 Merge pull request #1811 from klemensn/keep-password-private
Omit password in debug (syslog) output
2024-02-25 17:24:43 +00:00
Mike BradyandGitHub ebe597809c Merge pull request #1810 from klemensn/printf-null-string
Avoid passing NULL pointer to printf(3) %s
2024-02-25 17:23:59 +00:00
Mike BradyandGitHub 6561b848f6 Merge pull request #1803 from klemensn/initial-pledge
initial pledge(2) on OpenBSD
2024-02-25 17:14:29 +00:00
Klemens Nanni b831da4bf1 Omit password in debug (syslog) output
Configuration files may contain it, but those can be protected with
filesystem permissions.

Debug log, however, may end up in syslog(3) which is usually accessible
by all users on a system.

Avoid disclosing user secrets by simply not printing the password.
2024-02-24 14:41:02 +01:00
Klemens Nanni 22fc3bccab Avoid passing NULL pointer to printf(3) %s
OpenBSD issues syslog(3) warnings about these as they may hint at bugs:
	shairport-sync: vfprintf %s NULL in "metadata socket address is "%s" port %d."

Metadata listener socket is empty by default so use the existing `strnull`.
2024-02-24 14:12:25 +01:00
Klemens Nanni 5cdde02c9a initial pledge(2) on OpenBSD
Limit the set of system calls shairport-sync is allowed to make,
most importantly fork(2)/execve(2) if and only if user defined commands
are run.

OpenBSD's official audio/shairport-sync port already ships with this
patch.

https://man.openbsd.org/pledge.2
2024-02-12 12:23:46 +01:00
Mike BradyandGitHub 00a4758404 Merge pull request #1800 from klemensn/rtsp-listener-exit-segfault
Fix crash on double pthread_cancel(3) on exit (detected on OpenBSD).
2024-02-06 10:04:33 +00:00
Klemens Nanni 783d600a10 Fix crash on double pthread_cancel(3) on exit
On OpenBSD 7.4-current, failure to listen on the RTSP socket(s) results
the `rtsp_listener_thread` being pthread_cancel(3)'ed twice, once through
`rtsp_listen_loop()` and again via atexit(3) handler `exit_rtsp_listener()`:

```
$ nc -4l 5000 &
$ nc -6l 5000 &
$ shairport-sync -c/dev/null
warning: could not establish a service on port 5000 -- program terminating. Is another instance of Shairport Sync running on this device?
Segmentation fault (core dumped)
```
```
Program terminated with signal SIGSEGV, Segmentation fault.
433             if (tib->tib_canceled == 0 && tid != 0 &&
[Current thread is 1 (process 290061)]
```

`die()` -> `exit(EXIT_FAILURE)` normally in this case, thus forgoing the
first cancel and relying on the atexit handler alone.

With Mike Brady.
2024-02-01 18:35:35 +01:00
Mike BradyandGitHub 750e43bcaf Update RELEASENOTES-DEVELOPMENT.md 2024-01-30 16:17:06 +00:00
Mike BradyandGitHub 926cd56eac Merge pull request #1797 from klemensn/openbsd-doc-nits
OpenBSD doc nits
2024-01-30 15:56:00 +00:00
Mike BradyandGitHub 2810559f29 Merge pull request #1798 from klemensn/config-perm-segfault
Exit on config read error to avoid crash on EACCES
2024-01-30 14:05:48 +00:00
Klemens Nanni ad1fc121eb Exit on config read error to avoid crash on EACCES
Failure to read does not exit despite
`    /* Read the file. If there is an error, report it and exit. */`

EACCES (e.g. insufficient filesystem permissions) is enough to crash
on access through later `config_*()` such as those when either of
either of D-Bus, MPRIS or MQTT is used.

Seen `--with-mpris-interface` and
```
$ ls -l /etc/shairport-sync.conf
-rw-r-----  1 root  _shairport  28114 Jan 25 01:53 /etc/shairport-sync.conf
$ shairport-sync
Segmentation fault (core dumped)
```
2024-01-30 03:57:37 +01:00
Klemens Nanni 2eb2cc20e5 clarify root privilege requirements
NQPTP works and runs as _shairport user on OpenBSD.

Linux capabilities(7) allow starting as unprivileged user in the first
place, otherwise programs only need to start and perform privileged
actions such as bind(2)ing sockets as root, after that they can and
should! drop privileges.

Instead of updating/repeating supported systems, drop listings.
2024-01-30 03:17:57 +01:00
Klemens Nanni 5cc825c7e2 Sprinkle OpenBSD news in README.md 2024-01-30 03:03:36 +01:00