diff --git a/audio/musicpd/Makefile b/audio/musicpd/Makefile index 9cdfdcd3d580..9d8fc52b190a 100644 --- a/audio/musicpd/Makefile +++ b/audio/musicpd/Makefile @@ -1,249 +1,245 @@ 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} MAINTAINER= riggs@FreeBSD.org COMMENT= Remote-controllable music daemon 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 PORTDOCS= AUTHORS README.md NEWS SUB_FILES= pkg-message OPTIONS_SUB= yes OPTIONS_DEFINE= DOCS ID3TAG IPV6 ISO9660 MANPAGES SQLITE3 \ PROXYDB VORBISENC ZZIP OPTIONS_RADIO= RESAMPLER ZEROCONF OPTIONS_RADIO_ZEROCONF= AVAHI MDNSRESPONDER OPTIONS_RADIO_RESAMPLER= SAMPLERATE SOXR OPTIONS_MULTI= DOCUMENTATION FILE_FORMAT OPTIONS_MULTI_FILE_FORMAT= \ ADPLUG AUDIOFILE FAAD FFMPEG FLAC FLUIDSYNTH \ GME MAD MIKMOD MODPLUG MPG123 \ OPUS SIDPLAY SNDFILE TWOLAME \ VORBIS WAVPACK WILDMIDI 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 ADPLUG_DESC= AdPlug support FAAD_DESC= AAC/MP4 decoding via libfaad GME_DESC= GME support (video game music files) ISO9660_DESC= Direct support for ISO 9660 images PROXYDB_DESC= Proxy database support via libmpdclient LAME_DESC= Support for MP3 Icecast Streams OPENMPT_DESC= Support for OpenMPT playback 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 \ PLAYLISTS PROXYDB SNDFILE VORBIS VORBISENC \ 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 ADPLUG_LIB_DEPENDS= libadplug.so:audio/libadplug AUDIOFILE_MESON_ENABLED=audiofile AUDIOFILE_LIB_DEPENDS= libaudiofile.so:audio/libaudiofile FAAD_MESON_ENABLED= faad FAAD_LIB_DEPENDS= libfaad.so:audio/faad FFMPEG_MESON_ENABLED= ffmpeg FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg \ libavformat.so:multimedia/ffmpeg \ libavutil.so:multimedia/ffmpeg FLAC_MESON_ENABLED= flac FLAC_LIB_DEPENDS= libFLAC.so:audio/flac FLUIDSYNTH_MESON_ENABLED= fluidsynth FLUIDSYNTH_LIB_DEPENDS= libfluidsynth.so:audio/fluidsynth GME_MESON_ENABLED= gme GME_LIB_DEPENDS= libgme.so:audio/libgme MAD_MESON_ENABLED= mad MAD_LIB_DEPENDS= libmad.so:audio/libmad MIKMOD_MESON_ENABLED= mikmod MIKMOD_LIB_DEPENDS= libmikmod.so:audio/libmikmod MODPLUG_MESON_ENABLED= modplug MODPLUG_LIB_DEPENDS= libmodplug.so:audio/libmodplug MPG123_MESON_ENABLED= mpg123 MPG123_LIB_DEPENDS= libmpg123.so:audio/mpg123 NFS_MESON_ENABLED= nfs NFS_LIB_DEPENDS= libnfs.so:net/libnfs OPENMPT_MESON_ENABLED= openmpt OPENMPT_LIB_DEPENDS= libopenmpt.so:audio/libopenmpt OPUS_MESON_ENABLED= opus OPUS_LIB_DEPENDS= libopus.so:audio/opus \ libogg.so:audio/libogg PLAYLISTS_MESON_ENABLED=expat PLAYLISTS_LIB_DEPENDS= libexpat.so:textproc/expat2 SIDPLAY_MESON_ENABLED= sidplay SIDPLAY_LIB_DEPENDS= libsidplayfp.so:audio/libsidplayfp SIDPLAY_CXXFLAGS= -D_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR SNDFILE_MESON_ENABLED= sndfile SNDFILE_LIB_DEPENDS= libsndfile.so:audio/libsndfile VORBIS_MESON_ENABLED= vorbis VORBIS_LIB_DEPENDS= libvorbis.so:audio/libvorbis WAVPACK_MESON_ENABLED= wavpack WAVPACK_LIB_DEPENDS= libwavpack.so:audio/wavpack WILDMIDI_MESON_ENABLED= wildmidi WILDMIDI_LIB_DEPENDS= libWildMidi.so:audio/wildmidi # Encoder plugins VORBISENC_IMPLIES= VORBIS VORBISENC_MESON_ENABLED= vorbisenc VORBISENC_LIB_DEPENDS= libvorbisenc.so:audio/libvorbis LAME_MESON_ENABLED= lame LAME_LIB_DEPENDS= libmp3lame.so:audio/lame TWOLAME_MESON_ENABLED= twolame TWOLAME_LIB_DEPENDS= libtwolame.so:audio/twolame # Filter plugins SAMPLERATE_MESON_ENABLED= libsamplerate SAMPLERATE_LIB_DEPENDS= libsamplerate.so:audio/libsamplerate SOXR_MESON_ENABLED= soxr SOXR_LIB_DEPENDS= libsoxr.so:audio/libsoxr # Output plugins AO_MESON_ENABLED= ao AO_LIB_DEPENDS= libao.so:audio/libao JACK_MESON_ENABLED= jack JACK_LIB_DEPENDS= libjack.so:audio/jack JACK_CXXFLAGS= -Wno-register OPENAL_MESON_ENABLED= openal OPENAL_USES= openal PIPEWIRE_MESON_ENABLED= pipewire PIPEWIRE_LIB_DEPENDS= libpipewire-0.3.so:multimedia/pipewire PULSEAUDIO_MESON_ENABLED= pulse PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio SHOUTCAST_MESON_ENABLED=shout SHOUTCAST_LIB_DEPENDS= libshout.so:audio/libshout SHOUTCAST_IMPLIES= VORBIS SNDIO_MESON_ENABLED= sndio SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio # Input plugins CDPARANOIA_MESON_ENABLED= cdio_paranoia CDPARANOIA_LIB_DEPENDS= libcdio_paranoia.so:sysutils/libcdio-paranoia CURL_MESON_ENABLED= curl webdav CURL_LIB_DEPENDS= libcurl.so:ftp/curl CURL_IMPLIES= PLAYLISTS SMB_MESON_ENABLED= smbclient SMB_USES= samba:lib # Archive plugins ZZIP_MESON_ENABLED= zzip ZZIP_LIB_DEPENDS= libzzip.so:devel/zziplib ISO9660_MESON_ENABLED= iso9660 ISO9660_LIB_DEPENDS= libiso9660.so:sysutils/libcdio # Database plugins SQLITE3_MESON_ENABLED= sqlite SQLITE3_LIB_DEPENDS= libsqlite3.so:databases/sqlite3 PROXYDB_MESON_ENABLED= libmpdclient PROXYDB_LIB_DEPENDS= libmpdclient.so:audio/libmpdclient # Tag plugins ID3TAG_MESON_ENABLED= id3tag ID3TAG_LIB_DEPENDS= libid3tag.so:audio/libid3tag # Network support 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 AVAHI_LIB_DEPENDS= libavahi-client.so:net/avahi-app 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 USERS= ${MPDUSER} GROUPS= ${MPDGROUP} post-patch: # Make musicpd run as ${MPDUSER} by default @${REINPLACE_CMD} -e 's|%%MPDUSER%%|${MPDUSER}|' \ ${WRKSRC}/doc/mpdconf.example # Fix man pages for executable names @${REINPLACE_CMD} \ -e 's#^``mpd#``${PORTNAME}#' \ -e 's#:: mpd#:: ${PORTNAME}#' \ -e 's#mpd(1)#${PORTNAME}(1)#' \ -e 's#mpd.conf(5)#${PORTNAME}.conf(5)#' \ ${WRKSRC}/doc/mpd.1.rst ${WRKSRC}/doc/mpd.conf.5.rst @${REINPLACE_CMD} \ -e "s#'mpd'#'${PORTNAME}'#" \ -e "s#'mpd.conf'#'${PORTNAME}.conf'#" \ -e "s#'mpd.conf doc#'${PORTNAME}.conf doc#" \ ${WRKSRC}/doc/conf.py do-install: ${INSTALL_PROGRAM} ${WRKSRC}/_build/mpd \ ${STAGEDIR}${PREFIX}/bin/${PORTNAME} ${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR}/ ${INSTALL_DATA} ${WRKSRC}/doc/mpdconf.example \ ${STAGEDIR}${PREFIX}/etc/${PORTNAME}.conf.sample do-install-MANPAGES-on: ${INSTALL_MAN} ${WRKSRC}/_build/doc/${PORTNAME}.1 \ ${STAGEDIR}${PREFIX}/share/man/man1 ${INSTALL_MAN} ${WRKSRC}/_build/doc/${PORTNAME}.conf.5 \ ${STAGEDIR}${PREFIX}/share/man/man5 .include 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,108 +1,111 @@ ---- 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. # -#user "nobody" +user "%%MPDUSER%%" # # 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" -# path "~/.local/share/mpd/db" -# cache_directory "~/.local/share/mpd/cache" +# path "/var/mpd/.local/share/mpd/db" +# cache_directory "/var/mpd/.local/share/mpd/cache" #} # # 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: # -#audio_output { -# type "oss" -# name "My OSS Device" +audio_output { + type "oss" + name "Default OSS Device" ## device "/dev/dsp" # optional ## mixer_type "hardware" # optional ## mixer_device "/dev/mixer" # optional ## mixer_control "PCM" # optional -#} +} # # An example of a shout output (for streaming to Icecast): # 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 - #include - } - 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 ++ + #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 -+#include -+#include -+ - extern "C" { - #include - } -- --#include -- --#include - - 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 -+#include - - 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 -+#include - - #include - #include 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 -+#include - - #include - 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 + #else +-#include ++#include ++#include ++#include ++#include + #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 -+#include - - static inline ProtocolError - MakeArgError(const char *msg, const char *value) noexcept