Max Kellermann
a404e5754e
Merge tag 'v0.23.17'
...
release v0.23.17
2025-01-29 17:20:02 +01:00
Max Kellermann
b080ca8627
release v0.23.17
2025-01-29 17:11:53 +01:00
Max Kellermann
0e8cd3b961
client/Process: explicitly disallow "idle" and "noidle" in command lists
...
These commands cannot possibly work with command lists because command
lists are supposed to be atomic, but suspended command execution
conflicts with that.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/2167
2025-01-29 17:08:53 +01:00
Max Kellermann
8fcb6e148f
decoder/list: probe "ffmpeg" before "sndfile" and "audiofile"
...
For FFmpeg's DTS-WAV support, see code comment.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/2158
2025-01-29 15:42:54 +01:00
Max Kellermann
c0a9434f34
command/file: "albumart" tries to send larger chunks if available
...
If we only receive very little data from the InputStream, try a second
Read() call to get more data. This works around tiny reads at input
buffer boundaries with the io_uring input plugin. These tiny reads
are inefficient, and we can afford to wait one more low-level I/O
iteration to finish (but not more).
Closes https://github.com/MusicPlayerDaemon/MPD/issues/2186
2025-01-29 13:07:05 +01:00
Max Kellermann
d7212624b0
input/{async,thread}: clear the CircularBuffer when it becomes empty
...
First step towards fixing https://github.com/MusicPlayerDaemon/MPD/issues/2186
2025-01-29 13:05:24 +01:00
Max Kellermann
70a0a781c8
input/async: move the IsEOF() check to a separate block
2025-01-29 12:59:04 +01:00
Max Kellermann
ab011adf77
meson.build: require GCC 12 or clang 14
...
GCC 10 doesn't have std::make_unique_for_overwrite(), so let's drop it.
2025-01-29 12:24:48 +01:00
Max Kellermann
8ea3f86f43
Revert "meson.build: disable -Wsuggest-override with GCC 8"
...
This reverts commit 56c0733b42
. GCC 8
is no longer supported.
2025-01-29 12:22:11 +01:00
Max Kellermann
bd78307940
input/{async,thread}: add an additional Cond field
...
This eliminates the ScopeExchangeInputStreamHandler kludge.
2025-01-29 12:14:42 +01:00
Max Kellermann
3cc7b7dbf9
Merge branch 'v0.23.x'
2025-01-29 12:09:18 +01:00
Max Kellermann
57e7fb3f62
tag/Id3Load, ...: use std::make_unique_for_overwrite()
...
Don't zero-initialize the buffers. This removes some useless
overhead.
2025-01-29 12:01:27 +01:00
Max Kellermann
687475cf3c
db/update/InotifyUpdate: handle IN_CREATE without IN_ISDIR
...
A new symlink causes `IN_CREATE`. Usually, we catch `IN_CREATE` only with
IN_ISDIR to watch the new directory, but otherwise `IN_CREATE` is not
handled. Regular files are "created" but they have usable content
only with `IN_CLOSE_WRITE`. Yet symlinks have only `IN_CREATE` and
they are immediately usable.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/2192
2025-01-29 09:41:08 +01:00
Max Kellermann
c48dbd5dd4
lib/nfs/meson.build: reject libnfs 6
...
libnfs version 6 has major API changes and MPD 0.23 has never been
adapted to these. This additional configure-time check fixes
potential compile-time failures.
2025-01-29 09:04:55 +01:00
Max Kellermann
37049aab36
lib/nfs/Connection: remove EnableCloseOnExec() call
...
SOCK_CLOEXEC has been added to libnfs version 2, and since we require
at least version 4, we can safely remove this call.
2025-01-29 09:02:05 +01:00
Max Kellermann
18495fbb4e
lib/nfs/meson.build: require libnfs 4.0
...
All Linux distributions have at least version 4, and thus I cannot
test with older versions.
2025-01-29 09:00:37 +01:00
Max Kellermann
cdcee16738
client/File: improve error message
...
Users are confused by "Access denied". Let's write an error message
that is more clear.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/2184
2025-01-29 08:28:30 +01:00
Max Kellermann
83c2d9c964
test/meson.build: add another missing dependency on libevent.a
...
Necessary for including Client.hxx.
2025-01-28 19:52:25 +01:00
Max Kellermann
074a041760
test/meson.build: add missing dependencies on libevent.a
2025-01-28 19:47:36 +01:00
Max Kellermann
083d39ea80
decoder/plugins/meson.build: add missing dependency to libid3tag
2025-01-28 19:38:50 +01:00
Max Kellermann
a5da7fd51a
Merge branch 'v0.23.x'
2025-01-28 19:33:19 +01:00
Max Kellermann
cf9a2eb508
.github/workflows/build.yml: disable yajl on macOS
...
This yajl on Homebrew comes with broken headers:
/opt/homebrew/Cellar/yajl/2.1.0/include/yajl/yajl_parse.h:22:10: fatal error: 'yajl/yajl_common.h' file not found
#include <yajl/yajl_common.h>
^~~~~~~~~~~~~~~~~~~~
2025-01-28 19:31:35 +01:00
Max Kellermann
0aeda01ba6
lib/yajl: drop "yajl/" prefix from #include paths
...
According to the yajl API documentation, #include lines should have
the "yajl/" path prefix, but the actual pkg-config file contains:
includedir=${dollar}{prefix}/include/yajl
.. which already contains this directory name, and thus the "yajl/"
prefix cannot work. Unfortunately, the yajl project hasn't been
maintained for nearly 10 years, and there's little chance this bug
will ever be fixed.
2025-01-28 19:27:46 +01:00
Max Kellermann
3798d11a8d
.github/workflows/build.yml: disable NFS support
...
Homebrew comes with libnfs 6 which is not supported by MPD 0.23.
2025-01-28 19:23:36 +01:00
Max Kellermann
fab03f800a
subprojects: remove libmicrohttpd
...
This one will be pulled in by libnpupnp automatically. No need to
have it here.
2025-01-28 19:17:06 +01:00
Max Kellermann
5b5b101c56
subprojects: add id3tag
2025-01-28 19:15:43 +01:00
Max Kellermann
7770accee0
python/build/libs.py: remove libmad (unused)
2025-01-28 19:14:03 +01:00
Max Kellermann
eb3cd7bed3
subprojects: add lame
2025-01-28 19:13:59 +01:00
Max Kellermann
56cc2f4c65
subprojects: add libmpdclient wrap
2025-01-28 19:13:46 +01:00
Max Kellermann
9723af3f35
subprojects: add openssl
2025-01-28 19:13:45 +01:00
Max Kellermann
dcf3cf4216
subprojects: add ogg, flac, opus
2025-01-28 19:13:19 +01:00
Max Kellermann
578c94081f
subprojects: add curl
2025-01-28 19:12:57 +01:00
Max Kellermann
efa8304d2d
subprojects/.gitignore: sort
2025-01-28 19:12:42 +01:00
Max Kellermann
2752f67877
lib/nfs/meson.build: add missing dependency on libevent.a
2025-01-28 19:05:09 +01:00
Max Kellermann
f55e0df614
lib/curl/meson.build: add missing internal dependency on libevent.a
2025-01-28 18:52:37 +01:00
Max Kellermann
177ffde90f
Merge branch 'v0.23.x'
2025-01-28 18:45:02 +01:00
Max Kellermann
0d1fb9a02c
meson.build: build libnpupnp and libmicrohttpd statically as submodules
2025-01-28 18:43:23 +01:00
Max Kellermann
a0a39ae828
.github/workflows/build.yml: update actions/checkout to v4
2025-01-28 18:39:17 +01:00
Max Kellermann
e57c60e3d8
.github/workflows/build.yml: update hendrikmuhs/ccache-action to v1.2
2025-01-28 18:38:59 +01:00
Max Kellermann
53090e3745
.github/workflows/build.yml: update actions/setup-python to v5
2025-01-28 18:37:06 +01:00
Max Kellermann
93eb3da48a
subprojects: add liburing
2025-01-28 18:35:21 +01:00
Max Kellermann
75a3d9340e
python/build/libs.py: update FFmpeg to 7.1
2025-01-28 18:34:29 +01:00
Max Kellermann
9445ea1565
subprojects: add libnpupnp
2025-01-28 18:34:29 +01:00
Max Kellermann
a5a26d304b
subprojects: update sqlite3 to 3.48.0-1
2025-01-28 18:34:29 +01:00
Max Kellermann
1d8d298a22
subprojects: update fmt to 11.1.1-2
2025-01-28 18:34:28 +01:00
Max Kellermann
508bfbe334
pipewire/meson.build: add "include_type:system"
...
This suppresses a compiler warning due to sloppy code in PipeWire:
/usr/include/spa-0.2/spa/utils/json-core.h:440:29: error: implicit conversion increases floating-point precision: 'float' to 'double' [-Werror,-Wdouble-promotion]
440 | return spa_dtoa(str, size, val);
| ~~~~~~~~ ^~~
2025-01-28 18:34:12 +01:00
Max Kellermann
1385212572
io/uring/meson.build: detect liburing with include_type=system
...
This avoids breakages due to `-Wgnu-anonymous-struct`.
2025-01-28 18:34:07 +01:00
Max Kellermann
8dcd6ea2b4
increment version number to 0.23.17
2025-01-28 18:13:07 +01:00
Max Kellermann
75d0914373
Merge branch 'fix-handle-status' of https://github.com/geneticdrift/MPD
2025-01-28 06:18:19 +01:00
Max Kellermann
35dc1fc589
io/UniqueFileDescriptor: use AdoptTag in the constructors that adopt ownership
2025-01-23 16:57:39 +01:00