git: dd3766b3fc07 - main - audio/musicpd: Update to 0.24.3

From: Thomas Zander <riggs_at_FreeBSD.org>
Date: Sun, 13 Apr 2025 19:38:37 UTC
The branch main has been updated by riggs:

URL: https://cgit.FreeBSD.org/ports/commit/?id=dd3766b3fc0794abca3182d2dcbf691329610b92

commit dd3766b3fc0794abca3182d2dcbf691329610b92
Author:     Thomas Zander <riggs@FreeBSD.org>
AuthorDate: 2025-04-13 17:51:38 +0000
Commit:     Thomas Zander <riggs@FreeBSD.org>
CommitDate: 2025-04-13 19:38:35 +0000

    audio/musicpd: Update to 0.24.3
    
    This is a major upgrade to the 0.24.x branch of MPD. For most users it
    is expected to just work[tm], but a lot has changed behind the scenes.
    Details:
    - See changelog since 0.23.17, see
      https://raw.githubusercontent.com/MusicPlayerDaemon/MPD/v0.24.3/NEWS
    - The SOUNDCLOUD and YAJL OPTIONs have been retired upstream and in the
      port.
---
 audio/musicpd/Makefile                             | 26 +++++++--------
 audio/musicpd/distinfo                             |  6 ++--
 audio/musicpd/files/patch-doc_mpdconf.example      | 37 ++++++++++++----------
 .../files/patch-src_decoder_plugins_FfmpegIo.cxx   | 12 -------
 ...h-src_input_plugins_CdioParanoiaInputPlugin.cxx | 11 +++++++
 audio/musicpd/files/patch-src_lib_nfs_Error.cxx    | 20 ------------
 .../musicpd/files/patch-src_lib_yajl_Callbacks.hxx | 11 -------
 audio/musicpd/files/patch-src_lib_yajl_Gen.hxx     | 11 -------
 audio/musicpd/files/patch-src_lib_yajl_Handle.hxx  | 11 -------
 audio/musicpd/files/patch-src_net_DscpParser.cxx   | 14 ++++++++
 .../musicpd/files/patch-src_protocol_ArgParser.cxx | 10 ------
 11 files changed, 59 insertions(+), 110 deletions(-)

diff --git a/audio/musicpd/Makefile b/audio/musicpd/Makefile
index 9cdfdcd3d580..9d8fc52b190a 100644
--- a/audio/musicpd/Makefile
+++ b/audio/musicpd/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	musicpd
-PORTVERSION=	0.23.17
-PORTREVISION=	3
+PORTVERSION=	0.24.3
 CATEGORIES=	audio
 MASTER_SITES=	https://www.musicpd.org/download/mpd/${PORTVERSION:R}/
 DISTNAME=	mpd-${PORTVERSION}
@@ -12,21 +11,22 @@ WWW=		https://www.musicpd.org/
 LICENSE=	GPLv2+
 LICENSE_FILE=	${WRKSRC}/COPYING
 
-LIB_DEPENDS=	libboost_iostreams.so:devel/boost-libs \
-		libfmt.so:devel/libfmt \
+LIB_DEPENDS=	libfmt.so:devel/libfmt \
 		libicudata.so:devel/icu
 
-USES=		compiler:c++17-lang localbase:ldflags meson pkgconfig \
+USES=		compiler:c++20-lang localbase:ldflags meson pkgconfig \
 		python:build tar:xz
 
 USE_RC_SUBR=	${PORTNAME}
 MESON_ARGS=	--auto-features=disabled \
 		-Dbzip2=enabled \
+		-Dchromaprint=disabled \
 		-Dhttpd=true \
 		-Dicu=enabled \
 		-Dmpcdec=disabled \
 		-Doss=enabled \
 		-Dpipe=true \
+		-Dshine=disabled \
 		-Dsyslog=enabled \
 		-Dzlib=enabled
 
@@ -55,7 +55,7 @@ OPTIONS_MULTI_FILE_FORMAT=	\
 OPTIONS_GROUP=	ACCESS PLAYBACK
 
 OPTIONS_GROUP_ACCESS=	CDPARANOIA CURL LAME NFS PLAYLISTS QOBUZ \
-			SMB SOUNDCLOUD UPNP YAJL
+			SMB UPNP
 
 OPTIONS_GROUP_PLAYBACK=	AO JACK OPENAL OPENMPT PIPEWIRE PULSEAUDIO \
 			SHOUTCAST SNDIO
@@ -71,11 +71,9 @@ PLAYLISTS_DESC=	Enable extra playlist support (wma, RSS)
 QOBUZ_DESC=	Streaming service support: Qobuz
 SIDPLAY_DESC=	Sidplay support (C64 mono and stereo files)
 SMB_DESC=	SMB network support (currently strongly discouraged)
-SOUNDCLOUD_DESC=Streaming service support: SoundCloud
 TWOLAME_DESC=	TwoLAME support (mp2)
 VORBISENC_DESC=	Ogg Vorbis encoder
 WILDMIDI_DESC=	WildMIDI support (MIDI files)
-YAJL_DESC=	JSON support via libyajl
 ZZIP_DESC=	Support for zzip archives
 
 OPTIONS_DEFAULT=CURL FFMPEG FLAC ID3TAG LAME MANPAGES OPUS \
@@ -83,7 +81,8 @@ OPTIONS_DEFAULT=CURL FFMPEG FLAC ID3TAG LAME MANPAGES OPUS \
 		WAVPACK
 
 MANPAGES_MESON_ENABLED=	documentation
-MANPAGES_BUILD_DEPENDS=	${LOCALBASE}/bin/sphinx-build:textproc/py-sphinx@${PY_FLAVOR}
+MANPAGES_BUILD_DEPENDS=	${LOCALBASE}/bin/sphinx-build:textproc/py-sphinx@${PY_FLAVOR} \
+	${PYTHON_PKGNAMEPREFIX}sphinx_rtd_theme>=0:textproc/py-sphinx_rtd_theme@${PY_FLAVOR}
 
 # Decoder plugins
 ADPLUG_MESON_ENABLED=	adplug
@@ -193,11 +192,10 @@ ID3TAG_LIB_DEPENDS=	libid3tag.so:audio/libid3tag
 IPV6_MESON_ENABLED=	ipv6
 
 # Commercial service support
-QOBUZ_MESON_ENABLED=	qobuz
+QOBUZ_MESON_ON=		-Dqobuz=enabled -Dnlohmann_json=enabled
 QOBUZ_LIB_DEPENDS=	libgcrypt.so:security/libgcrypt
-QOBUZ_IMPLIES=		CURL YAJL
-SOUNDCLOUD_MESON_ENABLED=	soundcloud
-SOUNDCLOUD_IMPLIES=	CURL YAJL
+QOBUZ_BUILD_DEPENDS=	${LOCALBASE}/include/nlohmann/json.hpp:devel/nlohmann-json
+QOBUZ_IMPLIES=		CURL
 
 # Misc library support
 AVAHI_MESON_ON=		-Dzeroconf=avahi
@@ -206,8 +204,6 @@ MDNSRESPONDER_MESON_ON=		-Dzeroconf=bonjour
 MDNSRESPONDER_LIB_DEPENDS=	libdns_sd.so:net/mDNSResponder
 UPNP_MESON_ON=		-Dupnp=npupnp
 UPNP_LIB_DEPENDS=	libnpupnp.so:net/libnpupnp
-YAJL_MESON_ENABLED=	yajl
-YAJL_LIB_DEPENDS=	libyajl.so:devel/yajl
 
 MPDUSER?=	mpd
 MPDGROUP?=	mpd
diff --git a/audio/musicpd/distinfo b/audio/musicpd/distinfo
index 92b91de6afd7..60939364c663 100644
--- a/audio/musicpd/distinfo
+++ b/audio/musicpd/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1738356364
-SHA256 (mpd-0.23.17.tar.xz) = a86f4fe811695743b08db82a9f1a840b8918bb4f46b06f48aa1d8d1b5386dff2
-SIZE (mpd-0.23.17.tar.xz) = 779344
+TIMESTAMP = 1744525479
+SHA256 (mpd-0.24.3.tar.xz) = 4225680e068b2ad87e3c2de414ec3209758de93d671f89fa3bae90b70af478a2
+SIZE (mpd-0.24.3.tar.xz) = 1014788
diff --git a/audio/musicpd/files/patch-doc_mpdconf.example b/audio/musicpd/files/patch-doc_mpdconf.example
index 48eb896465cd..b1a8089a580d 100644
--- a/audio/musicpd/files/patch-doc_mpdconf.example
+++ b/audio/musicpd/files/patch-doc_mpdconf.example
@@ -1,64 +1,67 @@
---- doc/mpdconf.example.orig	2023-05-22 17:46:38 UTC
+--- doc/mpdconf.example.orig	2025-03-11 10:05:29 UTC
 +++ doc/mpdconf.example
-@@ -10,14 +10,14 @@
- # be disabled and audio files will only be accepted over ipc socket (using
+@@ -11,7 +11,7 @@
  # file:// protocol) or streaming files over an accepted protocol.
  #
+ #music_directory		"$XDG_MUSIC_DIR"
 -#music_directory		"~/music"
 +music_directory		"/var/mpd/music"
  #
  # This setting sets the MPD internal playlist directory. The purpose of this
  # directory is storage for playlists created by MPD. The server will use
- # playlist files not created by the server but only if they are in the MPD
+@@ -19,7 +19,7 @@
  # format. This setting defaults to playlist saving being disabled.
  #
+ #playlist_directory		"$XDG_CONFIG_HOME/mpd/playlists"
 -#playlist_directory		"~/.mpd/playlists"
 +playlist_directory		"/var/mpd/.mpd/playlists"
  #
  # This setting sets the location of the MPD database. This file is used to
  # load the database at server start up and store the database while the
-@@ -25,7 +25,7 @@
- # MPD to accept files over ipc socket (using file:// protocol) or streaming
+@@ -28,7 +28,7 @@
  # files over an accepted protocol.
  #
+ #db_file			"$XDG_CACHE_HOME/mpd/database"
 -#db_file			"~/.mpd/database"
 +db_file			"/var/mpd/.mpd/database"
  
  # These settings are the locations for the daemon log files for the daemon.
  #
-@@ -35,7 +35,7 @@
- # If you use systemd, do not configure a log_file.  With systemd, MPD
+@@ -39,7 +39,7 @@
  # defaults to the systemd journal, which is fine.
  #
+ #log_file			"$XDG_CACHE_HOME/mpd/log"
 -#log_file			"~/.mpd/log"
 +log_file			"/var/mpd/.mpd/log"
  
  # This setting sets the location of the file which stores the process ID
  # for use of mpd --kill and some init scripts. This setting is disabled by
-@@ -43,19 +43,19 @@
- #
+@@ -48,7 +48,7 @@
  # If you use systemd, do not configure a pid_file.
  #
+ #pid_file			"$XDG_RUNTIME_DIR/mpd/mpd.pid"
 -#pid_file			"~/.mpd/pid"
 +pid_file			"/var/mpd/.mpd/pid"
  
  # This setting sets the location of the file which contains information about
  # most variables to get MPD back into the same general shape it was in before
- # it was brought down. This setting is disabled by default and the server
+@@ -56,13 +56,13 @@
  # state will be reset on server start up.
  #
+ #state_file			"$XDG_RUNTIME_DIR/mpd/state"
 -#state_file			"~/.mpd/state"
 +state_file			"/var/mpd/.mpd/state"
  #
  # The location of the sticker database.  This is a database which
  # manages dynamic information attached to songs.
  #
+ #sticker_file			"$XDG_CACHE_HOME/sticker.sql"
 -#sticker_file			"~/.mpd/sticker.sql"
 +sticker_file			"/var/mpd/.mpd/sticker.sql"
  #
  ###############################################################################
  
-@@ -67,7 +67,7 @@
+@@ -74,7 +74,7 @@
  # initialization. This setting is disabled by default and MPD is run as the
  # current user.
  #
@@ -67,16 +70,16 @@
  #
  # This setting specifies the group that MPD will run as. If not specified
  # primary group of user specified with "user" setting will be used (if set).
-@@ -85,7 +85,7 @@
- #bind_to_address		"any"
+@@ -93,7 +93,7 @@
  #
  # And for Unix Socket
+ #bind_to_address		"$XDG_RUNTIME_DIR/mpd/socket"
 -#bind_to_address		"~/.mpd/socket"
-+#bind_to_address		"/var/mpd/.mpd/socket"
++bind_to_address		"/var/mpd/.mpd/socket"
  #
  # This setting is the TCP port that is desired for the daemon to get assigned
  # to.
-@@ -181,8 +181,8 @@
+@@ -189,8 +189,8 @@
  #
  #database {
  #       plugin "simple"
@@ -87,7 +90,7 @@
  #}
  #
  # An example of database config for a satellite setup
-@@ -227,14 +227,14 @@ input {
+@@ -235,14 +235,14 @@ input {
  #
  # An example of an OSS output:
  #
diff --git a/audio/musicpd/files/patch-src_decoder_plugins_FfmpegIo.cxx b/audio/musicpd/files/patch-src_decoder_plugins_FfmpegIo.cxx
deleted file mode 100644
index a4217e44ce77..000000000000
--- a/audio/musicpd/files/patch-src_decoder_plugins_FfmpegIo.cxx
+++ /dev/null
@@ -1,12 +0,0 @@
-https://github.com/MusicPlayerDaemon/MPD/issues/1898
-
---- src/decoder/plugins/FfmpegIo.cxx.orig	2023-10-08 08:11:05 UTC
-+++ src/decoder/plugins/FfmpegIo.cxx
-@@ -25,6 +25,7 @@ extern "C" {
- #include "input/InputStream.hxx"
- 
- extern "C" {
-+#include <libavutil/error.h>
- #include <libavutil/mem.h>
- }
- 
diff --git a/audio/musicpd/files/patch-src_input_plugins_CdioParanoiaInputPlugin.cxx b/audio/musicpd/files/patch-src_input_plugins_CdioParanoiaInputPlugin.cxx
new file mode 100644
index 000000000000..3c33c16f1ffc
--- /dev/null
+++ b/audio/musicpd/files/patch-src_input_plugins_CdioParanoiaInputPlugin.cxx
@@ -0,0 +1,11 @@
+--- src/input/plugins/CdioParanoiaInputPlugin.cxx.orig	2025-03-16 11:40:07 UTC
++++ src/input/plugins/CdioParanoiaInputPlugin.cxx
+@@ -5,6 +5,8 @@
+  * CD-Audio handling (requires libcdio_paranoia)
+  */
+ 
++#include <cstddef>
++
+ #include "CdioParanoiaInputPlugin.hxx"
+ #include "lib/cdio/Paranoia.hxx"
+ #include "lib/fmt/RuntimeError.hxx"
diff --git a/audio/musicpd/files/patch-src_lib_nfs_Error.cxx b/audio/musicpd/files/patch-src_lib_nfs_Error.cxx
deleted file mode 100644
index e93ed7f839c1..000000000000
--- a/audio/musicpd/files/patch-src_lib_nfs_Error.cxx
+++ /dev/null
@@ -1,20 +0,0 @@
---- src/lib/nfs/Error.cxx.orig	2020-09-23 13:26:51 UTC
-+++ src/lib/nfs/Error.cxx
-@@ -33,13 +33,13 @@
- #include "Error.hxx"
- #include "util/StringFormat.hxx"
- 
-+#include <cassert>
-+#include <string.h>
-+#include <sys/time.h>
-+
- extern "C" {
- #include <nfsc/libnfs.h>
- }
--
--#include <cassert>
--
--#include <string.h>
- 
- static StringBuffer<256>
- FormatNfsClientError(struct nfs_context *nfs, const char *msg) noexcept
diff --git a/audio/musicpd/files/patch-src_lib_yajl_Callbacks.hxx b/audio/musicpd/files/patch-src_lib_yajl_Callbacks.hxx
deleted file mode 100644
index a6b6fa9381ba..000000000000
--- a/audio/musicpd/files/patch-src_lib_yajl_Callbacks.hxx
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/lib/yajl/Callbacks.hxx.orig	2025-01-29 16:11:53 UTC
-+++ src/lib/yajl/Callbacks.hxx
-@@ -32,7 +32,7 @@
- #include "util/Cast.hxx"
- #include "util/StringView.hxx"
- 
--#include <yajl_parse.h>
-+#include <yajl/yajl_parse.h>
- 
- namespace Yajl {
- 
diff --git a/audio/musicpd/files/patch-src_lib_yajl_Gen.hxx b/audio/musicpd/files/patch-src_lib_yajl_Gen.hxx
deleted file mode 100644
index 05e45ddfec43..000000000000
--- a/audio/musicpd/files/patch-src_lib_yajl_Gen.hxx
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/lib/yajl/Gen.hxx.orig	2025-01-29 16:11:53 UTC
-+++ src/lib/yajl/Gen.hxx
-@@ -31,7 +31,7 @@
- 
- #include "util/ConstBuffer.hxx"
- 
--#include <yajl_gen.h>
-+#include <yajl/yajl_gen.h>
- 
- #include <algorithm>
- #include <string_view>
diff --git a/audio/musicpd/files/patch-src_lib_yajl_Handle.hxx b/audio/musicpd/files/patch-src_lib_yajl_Handle.hxx
deleted file mode 100644
index cc90959b4b9f..000000000000
--- a/audio/musicpd/files/patch-src_lib_yajl_Handle.hxx
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/lib/yajl/Handle.hxx.orig	2025-01-29 16:11:53 UTC
-+++ src/lib/yajl/Handle.hxx
-@@ -29,7 +29,7 @@
- 
- #pragma once
- 
--#include <yajl_parse.h>
-+#include <yajl/yajl_parse.h>
- 
- #include <utility>
- 
diff --git a/audio/musicpd/files/patch-src_net_DscpParser.cxx b/audio/musicpd/files/patch-src_net_DscpParser.cxx
new file mode 100644
index 000000000000..eb8d51688676
--- /dev/null
+++ b/audio/musicpd/files/patch-src_net_DscpParser.cxx
@@ -0,0 +1,14 @@
+--- src/net/DscpParser.cxx.orig	2025-03-11 10:05:29 UTC
++++ src/net/DscpParser.cxx
+@@ -9,7 +9,10 @@
+ #ifdef _WIN32
+ #include <ws2tcpip.h>
+ #else
+-#include <netinet/ip.h>
++#include <sys/types.h>
++#include <sys/socket.h>
++#include <netinet/in.h>
++#include <arpa/inet.h>
+ #endif
+ 
+ #ifndef IPTOS_DSCP_AF11
diff --git a/audio/musicpd/files/patch-src_protocol_ArgParser.cxx b/audio/musicpd/files/patch-src_protocol_ArgParser.cxx
deleted file mode 100644
index 6944c08007ac..000000000000
--- a/audio/musicpd/files/patch-src_protocol_ArgParser.cxx
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/protocol/ArgParser.cxx.orig	2021-10-14 13:25:21 UTC
-+++ src/protocol/ArgParser.cxx
-@@ -24,6 +24,7 @@
- #include "util/NumberParser.hxx"
- 
- #include <stdlib.h>
-+#include <stdio.h>
- 
- static inline ProtocolError
- MakeArgError(const char *msg, const char *value) noexcept