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
Max Kellermann
01e5a7b1b5
output/wasapi: use class RingBuffer instead of boost::lockfree::spsc_queue
2023-01-23 13:44:54 +01:00
Max Kellermann
0b42018377
output/PipeWire: use class RingBuffer instead of boost::lockfree::spsc_queue
2023-01-23 13:44:54 +01:00
Max Kellermann
7cb6c70bc2
output/alsa: use class RingBuffer instead of boost::lockfree::spsc_queue
2023-01-23 13:44:54 +01:00
Max Kellermann
f31ae7c556
util/RingBuffer: replacement for boost::lockfree::spsc_queue
2023-01-23 13:44:54 +01:00
Max Kellermann
5728c514d1
output/wasapi: use std::hardware_destructive_interference_size
2023-01-23 13:44:53 +01:00
Max Kellermann
debac0dfd4
win32/ComWorker: use std::queue/Mutex/Cond instead of boost::lockfree::spsc_queue/WinEvent
2023-01-23 13:25:07 +01:00
Max Kellermann
80b1f49af7
lib/dbus/AppendIter: add missing include
2023-01-22 12:29:54 +01:00
Max Kellermann
868958e159
util/IntrusiveHashSet: fix find_if() concept
2023-01-22 12:25:55 +01:00
Max Kellermann
52af03a5a6
util/IntrusiveHashSet: implement remove_and_dispose_if() with constant_time_size
2023-01-22 12:24:50 +01:00
Max Kellermann
7475e971bc
util/IntrusiveList: remove_and_dispose_if() returns the number of removed items
2023-01-22 12:24:43 +01:00
Max Kellermann
c65b1fee8d
util/IntrusiveHashSet: check key equivalence in remove_and_dispose_if()
2023-01-22 12:24:41 +01:00
Max Kellermann
e2abade6aa
util/IntrusiveList: add postfix operator++
2023-01-22 12:24:33 +01:00
Max Kellermann
57673136d8
util/IntrusiveHashSet: add method expire_find_if()
2023-01-22 12:24:30 +01:00
Max Kellermann
49e122a81d
util/IntrusiveHashSet: add method remove_and_dispose_if(key)
2023-01-22 12:24:23 +01:00
Max Kellermann
74976d3199
event: make FineTimerEvent optional
...
Several applications don't need it, so let's eliminate the code from
the executable.
2023-01-22 12:21:46 +01:00
Max Kellermann
a750e4afa7
event/Loop: move code to GetEarlierTimeout()
2023-01-22 12:19:07 +01:00
Max Kellermann
c122e990a3
Merge branch 'master' of https://github.com/faceless2/MPD
2023-01-17 19:03:49 +01:00
Max Kellermann
b1422fbda4
release v0.23.12
...
-----BEGIN PGP SIGNATURE-----
iQJBBAABCgArFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAmPG4OcNHG1heEBibGFy
Zy5kZQAKCRAjbopYxttFElGQD/4lXFixr2fJuAWFYyFT4ebr2w7sPyhXwjlt5uCL
HTaMxTgQbhMmkHbGEO96UbF7gROGfq+dyvYTEmjWcVPTr/US3M8/mjT9T/DCLj6+
kF7rZM5ft6npqVxqikg/TQcUgoiSsgfI7dEK/vcXELPyx78bCaq0M0sd2GZvwiiM
vK9cxxDJ/RkF2dtfXRfGTJlihgQxaiuBZx8Bi3wJjbjvi/Lg85cu3iot9zFy5iDN
gNzC39dnPYv261lAT/LLNpzLYQzIFE5ul+8ucRNPo+mMS/odSPRdL9XYFDtarsqP
3Va83DChg7S6/GWfDeW81mQYPDuZ+1rPqbV5zEGimPsDWP9RugzPpZiFJlZrh8w7
MJp66RYxUWQpracRZIW4zMRiSzGSI3OXbvhx6qBmsn1CuQ19TkovWuRleD4lpfFv
dFzKHrdatJivM3xvq6CSg8ws+Q6f/j5sw1gzfvOofPlpybtvIrCvlvw78sKLW5n1
Ecwc+xN38bIVL3E2Ae6zeYQwArpB4+gKT3Wb+r3bjXz7YQYpETI3IbX0vixbl8pP
9O4ZKot/khOCaQBiZ5hHmiDmF5kxofLnJE4qgGX/c87ZaMUsu7hoKzksy9v7Z9wj
PNTshhWk1WrSwM1JnVjD5Ahz+Oe43UsKsGZ8Kturbuu+61uTX4QcmYpbaNilGnwk
J0cLyw==
=MW7q
-----END PGP SIGNATURE-----
Merge tag 'v0.23.12'
release v0.23.12
2023-01-17 18:58:04 +01:00
Max Kellermann
d91da96798
release v0.23.12
2023-01-17 18:54:47 +01:00
Max Kellermann
b3897df682
decoder/mad: add assert()
2023-01-17 18:53:18 +01:00
Max Kellermann
3cacb56bb7
fs/StandardDirectory: don't fall back to getpwuid() without $HOME
...
If the environment variable $HOME does not exist, don't attempt to
obtain it from /etc/passwd; without $HOME, the calling process
indicates that it does not wish MPD to access the home directory.
This also prevents MPD from attempting to load
`/root/.config/mpd/mpd.conf` if MPD got started as global systemd
service. Reading from there makes no sense, only /etc/mpd.conf shall
be used then.
This piece of code was initially added by commit 5d85792178
.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1687
2023-01-17 18:51:49 +01:00
Max Kellermann
15a1973e28
decoder/mad: fix integer underflow with very small files
...
When drop_start_samples and drop_end_samples overlap and are greater
than the actual number of samples, the `num_samples` calculation in
SubmitPCM() could underflow.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1712
2023-01-17 17:41:37 +01:00
Max Kellermann
ad7d47a8ba
output/PipeWire: use PW_KEY_TARGET_OBJECT with PipeWire 0.3.64
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1721
2023-01-17 11:50:09 +01:00
Max Kellermann
0948c607b6
lib/curl/meson.build: require CURL 7.55.0 or later
...
For CURLINFO_CONTENT_LENGTH_DOWNLOAD_T (commit 4efd0a9f77
).
2023-01-16 19:42:48 +01:00
Max Kellermann
60d04052c5
NEWS: mention the GCC13 fixes
2023-01-16 19:41:37 +01:00
Max Kellermann
c1780ac657
python/build/libs.py: update CURL to 7.87.0
2023-01-16 19:06:08 +01:00
Max Kellermann
e49cf0ec38
python/build/libs.py: update Boost to 1.81.0
2023-01-16 19:03:50 +01:00
Mike Bremford
b96e44b362
Unlike album, artist and albumartist, title and composer were not used as a fallback
...
when titlesort and composersort were specified but unavailable - this patch fixes that.
2023-01-09 18:15:44 +00:00
Max Kellermann
8a7b7dffec
Merge branch 'v0.23.x'
2023-01-06 08:12:38 +01:00
latex
7774e78864
openmpt: add at_end option
2023-01-06 03:18:36 +01:00
Max Kellermann
e1d641f684
lib/curl/Easy: drop deprecated CURLOPT_HTTPPOST wrapper
2023-01-02 14:29:17 +01:00
Max Kellermann
4efd0a9f77
lib/curl/Easy: use CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
...
CURLINFO_CONTENT_LENGTH_DOWNLOAD is deprecated and is ugly because it
uses floating point.
2023-01-02 14:28:42 +01:00
Max Kellermann
f6f8751332
io/FileReader: add missing include for uint64_t
2023-01-02 14:27:47 +01:00
gd
abb28593ce
TagBuilder::RemoveType: added missing tag pool lock before call to tag_pool_put_item
2022-12-29 08:43:10 +01:00
Max Kellermann
115693b046
increment version number to 0.23.12
2022-12-29 08:42:02 +01:00
Max Kellermann
d7de8b1453
Merge branch 'iss-1546' of https://github.com/sp1ff/MPD
2022-12-29 08:37:25 +01:00
Max Kellermann
3242943cd1
doc/protocol.rst: fix reference target
2022-12-18 08:30:25 +01:00
Mike Bremford
6adff85fd6
Added "searchcount" command, a case-insensitive "count"
...
The `count` command isn't case-insensitive. This adds `searchcount`
which is a case-insensitive version of `count`.
2022-12-18 08:29:14 +01:00
Alex
8b1ff3f005
build: harden build.yml permissions
...
This PR adds explicit [permissions section](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions ) to workflows. This is a security best practice because by default workflows run with [extended set of permissions](https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token ) (except from `on: pull_request` [from external forks](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/ )). By specifying any permission explicitly all others are set to none. By using the principle of least privilege the damage a compromised workflow can do (because of an [injection](https://securitylab.github.com/research/github-actions-untrusted-input/ ) or compromised third party tool or action) is restricted.
It is recommended to have [most strict permissions on the top level](https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions ) and grant write permissions on [job level](https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs ) case by case.
Signed-off-by: Alex <aleksandrosansan@gmail.com>
2022-12-09 11:28:26 +01:00
Max Kellermann
756621c6e4
neighbor/meson.build: add missing dependency on libfmt
2022-12-01 15:57:28 +01:00