Max Kellermann
5cd86e272f
input/curl: disable CURLOPT_FAILONERROR
...
Let OnHeaders() check the status.
The status checking code was added by commit 4f021cbced in 2011,
but in 2008, commit a8e81326d0 enabled `CURLOPT_FAILONERROR`, which
means the status checking code never had any effect.
This allows `LoadExcludeListOrLog()` to hide boring "404 Not Found"
log messages via `IsFileNotFound()`.
2023-05-22 19:03:12 +02:00
Max Kellermann
740cbe9e02
event/Loop: remove failing assert()
...
The `assert(!quit)` can fail if the `EventThread` gets stopped before
it enters `EventLoop::Run()`. There is a similar problem with `alive`,
which gets reset by `EventThread::Stop()`.
If that happens, then `EventLoop::Run()` should return immediately
without handling any events.
2023-05-22 18:14:25 +02:00
Max Kellermann
ed890a273a
doc/user.rst: document the replaygain_missing_preamp setting
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1785
2023-05-22 16:17:05 +02:00
Max Kellermann
068cd559e1
db/update/Walk: clear Song::in_playlist
...
Without clearing all `in_playlist` flags, the songs will never be
revealed again if they were hidden once by a CUE sheet, not even after
the CUE sheet gets deleted or modified.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1784
2023-05-22 15:41:58 +02:00
Max Kellermann
dc127f39a7
util/ScopeExit: use std::declval()
...
Fixes GCC 10 error:
error: cannot call member function `Foo` without object
2023-05-22 15:01:25 +02:00
Max Kellermann
7a99a7008c
util/ScopeExit: use std::exchange()
2023-05-22 14:44:45 +02:00
Max Kellermann
70b451db7b
util/ScopeExit: add noexcept
2023-05-22 14:44:17 +02:00
Max Kellermann
2ab03a0914
util/ScopeExit: allow the function to throw
...
Fixes crash inside AtScopeExit() in the WASAPI output plugin.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1759
2023-05-22 14:43:23 +02:00
Max Kellermann
2fa8c7d2db
lib/crypto/meson.build: link with ffmpeg_util_dep
...
This adds `MakeFfmpegError()` to the executable and fixes a linker
failure when `libavutil` is available, but `libavformat` and
`libavcodec` are not.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1786
2023-05-22 14:05:13 +02:00
Max Kellermann
7c759ba8b0
lib/ffmpeg/meson.build: move libavutil helpers into separate library
2023-05-22 14:03:47 +02:00
Max Kellermann
6d9b452fde
lib/ffmpeg/LogError: remove unused library
2023-05-22 13:48:33 +02:00
Max Kellermann
8ba68fdb47
io/OutputStream: use std::span
2023-05-21 21:35:11 +02:00
Max Kellermann
e72d27566c
io/BufferedOutputStream: use std::string_view
2023-05-21 21:31:32 +02:00
Max Kellermann
01c02a1ef8
util/StaticFifoBuffer: add method MoveFrom()
2023-05-21 21:26:20 +02:00
Max Kellermann
4bb4611e78
Merge branch 'v0.23.x'
2023-05-21 21:18:45 +02:00
Michiel Beijen
f7eb1c9a83
Fix meson build warning for get_pkgconfig_variable
...
Otherwise, building will generate these warnings:
systemd/system/meson.build:5: WARNING: Project targeting '>= 0.56.0' but tried to use feature deprecated since '0.56.0': Dependency.get_pkgconfig_variable. use Dependency.get_variable(pkgconfig : ...) instead
systemd/user/meson.build:5: WARNING: Project targeting '>= 0.56.0' but tried to use feature deprecated since '0.56.0': Dependency.get_pkgconfig_variable. use Dependency.get_variable(pkgconfig : ...) instead
2023-05-21 21:07:14 +02:00
Max Kellermann
2d22e6dee4
subprojects: update sqlite to 3.41.2-2
2023-05-21 21:05:17 +02:00
Max Kellermann
4587bf759d
subprojects: update expat to 2.5.0-2
2023-05-21 21:04:56 +02:00
Max Kellermann
e1e37cfe3c
TagPrint, command/File: two more libfmt 10 workarounds
...
libfmt 10 doesn't know how to format a StringView, and doesn't cast to
std::string_view anymore. The StringView class has been removed from
MPD 0.24 completely, and this is a stable-branch-only workaround.
Closes https://github.com/MusicPlayerDaemon/MPD/pull/1814
2023-05-21 21:03:20 +02:00
latex
381934985a
reorder ffmpeg to be lower priority than gme
...
This should prevent ffmpeg from taking priority over the gme plugin.
The ffmpeg plugin is more buggy than gme.
One of the prominent bugs of preferring ffmpeg over gme is that ffmpeg
cannot seek SAP files while gme can. This should prevent that from
happening.
2023-05-21 20:58:53 +02:00
Max Kellermann
a8042885ac
TimePrint: minor fixup for libfmt 10
...
libfmt version 10 has difficulties formatting a `StringBuffer`, and we
need to help it by explicitly invoking the `c_str()` method.
2023-05-21 20:58:19 +02:00
Max Kellermann
a71e68db50
command/player, SongPrint: use AudioFormatFormatter()
...
libfmt version 10 apparently doesn't know how to format a
`StringBuffer`, failing the MPD build. Since we have a formatter
specialization for `AudioFormat`, let's use that - it's better and
easier to use.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1807
2023-05-21 20:57:59 +02:00
Max Kellermann
1417578b3d
db/update/Archive: validate directory names
...
Fixes assertion failure if the ZIP file contains a path that begins
with a slash.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1793
2023-05-21 20:57:38 +02:00
Max Kellermann
96befa138c
db/update/Archive: ignore filenames with newline character
2023-05-21 20:56:38 +02:00
Max Kellermann
16a99804de
db/update/Archive: move check to IsAcceptableFilename()
2023-05-21 20:56:32 +02:00
Max Kellermann
75a39ed279
db/update/Archive: remove useless log message
2023-05-21 20:55:59 +02:00
Benjamin Cremer
4d357ab77c
Fix syntax error in mpdconf.example
2023-05-21 20:51:57 +02:00
datasone
d4f3dd49b4
db/SimpleDatabasePlugin: store in_playlist value of songs into database
...
Fixes hide_playlist_targets not working after server restart
Currently, `hide_playlists_targets` works by skipping songs with
`in_playlist` value set to true in
[`Directory::Walk`](https://github.com/MusicPlayerDaemon/MPD/blob/a57bcd02382947abbd961594cdf00302c0c7866a/src/db/plugins/simple/Directory.cxx#L237 ). But
`in_playlist` is not stored and only updated in
[`UpdateWalk::PurgeDanglingFromPlaylists`](https://github.com/MusicPlayerDaemon/MPD/blob/a57bcd02382947abbd961594cdf00302c0c7866a/src/db/update/Playlist.cxx#L139 ),
which will only be executed while updating DB.
This causes the problem that playlist target songs are correctly
hidden after database update, but will remain visible after mpd server
restarted. This pr solves the problem by storing `in_playlist` value
of songs into the `SimpleDatabase` file.
2023-05-21 20:51:47 +02:00
kaliko
4ec6d0555a
check systemd unit dir from systemd.pc in meson
2023-05-21 20:51:33 +02:00
Max Kellermann
a6a1182c4c
python/build/libs.py: update OpenSSL to 3.1.0
2023-05-21 20:50:03 +02:00
Max Kellermann
a59c9c602b
python/build/libs.py: update CURL to 8.0.1
2023-05-21 20:50:03 +02:00
Max Kellermann
0c4d824d64
subprojects/sqlite3.wrap: update to 3.41.0-1
2023-05-21 20:50:03 +02:00
Max Kellermann
a5281856c9
python/build/libs.py: update WildMidi to 0.4.5
2023-05-21 20:50:03 +02:00
Max Kellermann
0206a46d39
decoder/gme: require GME 0.6 or later
...
This allows dropping a few compile-time version checks and we can use
pkg-config to detect the library.
2023-05-21 20:50:03 +02:00
Max Kellermann
9475ef2202
fs/Charset: assign fs_charset
...
This got lost 8 years ago in commit 87c88fcb27
D'oh!
2023-05-21 20:50:03 +02:00
Max Kellermann
edae00e719
fs/Charset: remove useless log message
2023-05-21 20:50:03 +02:00
Max Kellermann
fb695bc55f
command/{file,storage}: remove stray "#pragma GCC diagnostic pop"
2023-05-21 20:50:03 +02:00
Max Kellermann
23a5b8fd3c
python/build/meson.py: remove unused import
2023-05-21 20:43:09 +02:00
Max Kellermann
273a93cfcf
build/python/cmake: set CMAKE_C_FLAGS_INIT, not CMAKE_C_FLAGS
...
According to
https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_FLAGS_INIT.html
the _INIT variables should be set in the toolchain file.
2023-05-21 20:43:05 +02:00
Max Kellermann
d105985d78
build/python/cmake: set CMAKE_OSX_SYSROOT on macOS
2023-05-21 20:43:00 +02:00
Max Kellermann
f8cfeb39e9
build/python/cmake: add "env" parameter
2023-05-21 20:42:51 +02:00
Max Kellermann
d5d3982d3c
build/python/build/project.py: add "lazy" parameter to make_build_path()
2023-05-21 20:42:27 +02:00
Max Kellermann
47341107ea
build/python/build/project.py: raise exception on regex mismatch
2023-05-21 20:42:18 +02:00
Max Kellermann
90eaa87a4d
python/build/zlib.py: use autotools to be more portable
...
Right now, zlib is only built for Windows, but we may eventually
changed that, so don't hard-code `win32/Makefile.gcc`.
2023-05-21 20:42:12 +02:00
Max Kellermann
b09a54b2c2
python/build/autotools.py: use toolchain.arflags
2023-05-21 20:42:04 +02:00
Max Kellermann
10aec174d5
python/{cmake,autotools}: build in verbose mode
...
Make sure all the gory details are visible in CI logs.
2023-05-21 20:41:49 +02:00
Max Kellermann
d32ed194e8
python/build/autotools.py: dump config.log on configure error
...
For better error logs on CI.
2023-05-21 20:41:44 +02:00
Felix Hädicke
70d0fbd715
python/makeproject: do not use hard-code absolute path to make
2023-05-21 20:41:38 +02:00
Felix Hädicke
302432e157
python/makeproject: set appropriate build jobs count depending on the number of CPUs
2023-05-21 20:41:34 +02:00
Felix Hädicke
4ab8a677dc
build/python: do not use absolute path for tar
2023-05-21 20:41:29 +02:00