Commit Graph

17627 Commits

Author SHA1 Message Date
Max Kellermann c83ab0dc58 unix/SignalHandlers: shut down if parent process dies in --no-daemon mode
By default, if the parent of a process dies, the process gets SIGHUP
and is supposed to shut down.  This however doesn't work for MPD,
because MPD redefines SIGHUP with a different meaning (like most
daemons do).

To work around this, we configure the kernel to send SIGTERM instead
of SIGHUP.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1706
2023-03-06 13:00:07 +01:00
Max Kellermann d9952b9054 CommandLine: hard-code `daemon=false` if ENABLE_DAEMON is not set 2023-03-06 13:00:06 +01:00
Max Kellermann 04e60d67ae command/playlist: allow range in "playlistmove"
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1689
2023-03-06 12:01:45 +01:00
Max Kellermann f4adbdbe31 python/build/libs.py: update FFmpeg to 6.0 2023-03-06 10:13:12 +01:00
Max Kellermann 484b820dfc python/build/libs.py: disable more unused FFmpeg features 2023-03-06 10:06:39 +01:00
Max Kellermann 9bcba41cd6 Merge branch 'pipewire-lock' of https://github.com/ncfavier/MPD
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1753
2023-03-06 10:06:03 +01:00
Naïm Favier eabc487e59
output/PipeWire: lock thread loop in SendTag 2023-03-06 10:03:14 +01:00
Max Kellermann 5c5e522fcd output/jack: remove DLL support
This effectively reverts commit 0f02bbc2fe which was a horrible
kludge for JACK support on Windows.  Maintaining this kludge doesn't
seem worth the trouble (the JACK version was never updated), and
apparently nobody uses this.
2023-03-06 08:10:00 +01:00
Max Kellermann f687028c87 output/PipeWire: use class StaticVector 2023-03-06 08:09:07 +01:00
Max Kellermann 05f0b9c29c python/build/libs.py: update CURL to 7.88.1 2023-03-06 07:56:08 +01:00
Max Kellermann 4a8ec20858 python/build/libs.py: update OpenSSL to 3.0.8 2023-03-06 07:56:08 +01:00
Max Kellermann c5e36a7dd8 subprojects: update expat to 2.5.0-2 2023-03-06 07:51:02 +01:00
Max Kellermann d5fafa1340 output/PipeWire: map tags "Date" and "Comment" 2023-03-06 07:48:25 +01:00
Max Kellermann e8994b43a0 output/PipeWire: convert tag mapping to array 2023-03-06 07:44:06 +01:00
Max Kellermann 6ada2c9c3f lib/curl/Request: add method GetEasy() 2023-03-05 08:50:39 +01:00
Max Kellermann bbf190fc42 lib/curl/Multi: add `noexcept` 2023-03-05 08:49:20 +01:00
Max Kellermann 963ff1997d lib/curl/Easy: add methods SetXferInfoFunction(), SetMimePost() 2023-03-05 08:47:40 +01:00
Max Kellermann 5c2a576546 io/BufferedReader: add missing include 2023-03-05 08:43:41 +01:00
Max Kellermann 452400b7ef net/SocketAddress: remove __cpp_lib_span checks 2023-03-05 08:41:33 +01:00
Moviuro 20a5276560
doc/mpd.1.rst: add documentation for --systemd
This switch was introduced in ce77b148d9
2023-03-01 09:55:27 +01:00
Max Kellermann c94eee6199 Merge branch 'master' of https://github.com/lerenwe/MPD-Windows-With-Libsample 2023-02-23 14:44:06 +01:00
Sweet Blue 2a75222fe2
Added libsamplerate to win32 build script 2023-02-23 14:26:32 +01:00
Sweet Blue 7d9d173c9f
Updated libs.py to integrate libsamplerate 0.2.2 2023-02-23 14:25:11 +01:00
Dave Hocker f248fe2dec Resolve deprecation warnings by replacing use of sprintf with FmtBuffer 2023-02-06 11:56:49 +01:00
Brad Smith e0df0b6d74 oss: Remove use of the soundcard.h header, OpenBSD no longer uses OSS 2023-02-03 18:38:20 -05:00
Sean DuBois a41414e0e0 Decoder/FluidSynth: Allow gain to be adjusted 2023-02-01 12:00:19 -05:00
Max Kellermann f1cea1f152 util/IntrusiveHashSet: add unlink(), is_linked() 2023-01-31 13:07:26 +01:00
Max Kellermann 02f5698868 event/Loop: remove unnecessary include
Not used since a3b32819b1
2023-01-31 13:04:25 +01:00
Bryan Waite e25816fc05
Provide alternative ways to check for
https://superuser.com/questions/287371/obtain-kernel-config-from-currently-running-linux-system/287372#287372
2023-01-31 08:21:39 +00:00
Max Kellermann 5b07c8fc6c util/CharUtil: add IsLowerAlphaNumericASCII() 2023-01-29 09:39:40 +01:00
Max Kellermann b45afd1cab util/StringBuffer: add `constexpr` 2023-01-29 09:38:40 +01:00
Max Kellermann 8b73257a86 storage/meson.build: move MemoryDirectoryReader.cxx to storage_api.a
This library is required by the plugins, so this fixes a dependency issue.
2023-01-29 08:21:58 +01:00
Max Kellermann def6fffcf1 event/Loop: fixup for NO_FINE_TIMER_EVENT 2023-01-29 08:07:03 +01:00
Max Kellermann 78b13577ef test/net/TestIPv[46]Address: add more tests 2023-01-28 08:15:41 +01:00
Max Kellermann 1f5d50ccce lib/curl/Setup: include cleanup 2023-01-28 08:06:10 +01:00
Max Kellermann ebf65572dd util/ByteOrder: remove unnecessary operator=
The compiler can just use the uint32_t constructor instead.  This was
redundant code.
2023-01-28 07:48:03 +01:00
Max Kellermann c30c293d6f input/async: check for errors in Seek()
Fixes a busy loop in BufferingInputStream::RunThreadLocked() because
the method never learns that seeking is ignored, even though the HTTP
stream is already broken and can never be read; nobody cared to check
for errors.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1727
2023-01-28 07:44:59 +01:00
Max Kellermann 9ee1be6fba command/database: add missing include for UINT_MAX 2023-01-23 15:50:49 +01:00
Max Kellermann 76177dbc79 win32/HResult: use [[gnu::const]] 2023-01-23 15:35:36 +01:00
Max Kellermann 6cc532c9a0 win32/HResult: remove unused function FormatHResultError() 2023-01-23 15:35:36 +01:00
Max Kellermann 3cc770a00b remove obsolete Boost dependency
Boost makes building a piece of software much more difficult than
necessary.  It's a huge library, and just uncompressing it takes a
considerable amount of time. MPD only used a tiny fraction of it, yet
its header bloat made the MPD build very slow.  Locating Boost was
difficult due to its arcane build system and its resistance to use
pkg-config; it's always a special case.  MPD could never use features
of newer Boost versions because Linux distributions always shipped old
Boost versions.  Boost made everything complicated and slow.

So, finally, after getting rid of GLib (commit ccdb94b06c), switching
to C++ and using Boost (commit 0801b3f495), we've finally get rid of
it 8 years later.

Unfortunately, I had to reimplement parts of it along the way
(e.g. IntrusiveList).  Kind of NIH, but on the other hand, compiling
MPD has become much easier for users.
2023-01-23 15:06:58 +01:00
Max Kellermann 7ef0bfbdf1 event/meson.build: disable Boost 2023-01-23 14:58:38 +01:00
Max Kellermann bafde1900b lib/nfs/Manager: use IntrusiveList instead of boost::intrusive::set
MPD usually has only one NFS connection, maybe two, so managing them
in a tree seems like overkill, and since we want to get rid of Boost
anyway...
2023-01-23 14:58:09 +01:00
Max Kellermann 5844242cfb input/cache/Manager: use IntrusiveHashSet instead of boost::intrusive::set 2023-01-23 14:19:22 +01:00
Max Kellermann 7e7cdf73b9 input/InputStream: add method GetUriView() 2023-01-23 14:15:18 +01:00
Max Kellermann 5ca74acd8d input/InputStream: allow emplacing the URI 2023-01-23 14:15:18 +01:00
Max Kellermann cd2aaac0c2 output/osx: fix typo 2023-01-23 14:15:18 +01:00
Max Kellermann ff8a7225fc output/osx: change type to std::size_t to fix -Wc++11-narrowing 2023-01-23 14:06:56 +01:00
Max Kellermann c6eac285ea test/util/TestRingBuffer: add "U" literal suffix to work around -Wsign-compare 2023-01-23 14:05:55 +01:00
Max Kellermann d0be122fc6 output/osx: use class RingBuffer instead of boost::lockfree::spsc_queue 2023-01-23 13:55:50 +01:00