Summary: Music Player Daemon
Summary(pl.UTF-8): Music Player Daemon - demon odtwarzajÄ…cy muzykÄ™
Name: mpd
-Version: 0.22.11
+Version: 0.23
Release: 1
License: GPL v2+
Group: Applications/Multimedia
-Source0: https://www.musicpd.org/download/mpd/0.22/%{name}-%{version}.tar.xz
-# Source0-md5: 26e0555e2a7925e2fd7cff90d7ecf27b
+Source0: https://www.musicpd.org/download/mpd/0.23/%{name}-%{version}.tar.xz
+# Source0-md5: 103db74cc275ec0f7e5b7503cfd80131
Source1: %{name}.conf
Source2: %{name}.init
Source3: %{name}.sysconfig
Source4: %{name}.tmpfiles
+Patch0: smb.patch
URL: http://www.musicpd.org/
BuildRequires: OpenAL-devel
BuildRequires: adplug-devel
BuildRequires: libcdio-devel
BuildRequires: libcdio-paranoia-devel >= 0.93
BuildRequires: libchromaprint-devel
+BuildRequires: libfmt-devel
BuildRequires: libicu-devel >= 50
BuildRequires: libid3tag-devel
BuildRequires: libmad-devel
%{?with_mod:BuildRequires: libmikmod-devel >= 3.2}
BuildRequires: libmms-devel >= 0.4
BuildRequires: libmodplug-devel
-BuildRequires: libmpdclient-devel >= 2.9
+BuildRequires: libmpdclient-devel >= 2.11
BuildRequires: libmpg123-devel >= 1.28.0
BuildRequires: libnfs-devel >= 1.11
BuildRequires: libogg-devel
+BuildRequires: libopenmpt-devel >= 0.5
BuildRequires: libsamplerate-devel >= 0.1.3
BuildRequires: libshout-devel
BuildRequires: libsidplayfp-devel >= 1.8
BuildRequires: libupnp-devel >= 1.8
BuildRequires: liburing-devel
BuildRequires: libvorbis-devel
-BuildRequires: meson >= 0.49.0
+BuildRequires: meson >= 0.56.0
BuildRequires: musepack-devel
BuildRequires: ninja
BuildRequires: opus-devel
BuildRequires: pcre-devel
+BuildRequires: pipewire-devel >= 0.3
BuildRequires: pkgconfig >= 1:0.9.0
%{?with_pulseaudio:BuildRequires: pulseaudio-devel >= 0.9.16}
BuildRequires: rpmbuild(macros) >= 1.736
Requires: libicu >= 50
%{?with_mod:Requires: libmikmod >= 3.2}
Requires: libmms >= 0.4
-Requires: libmpdclient >= 2.9
+Requires: libmpdclient >= 2.11
Requires: libmpg123 >= 1.28.0
Requires: libnfs >= 1.11
+Requires: libopenmpt >= 0.5
Requires: libsamplerate >= 0.1.3
Requires: libsidplayfp >= 1.8
Requires: libsmbclient >= 0.2
Requires: libupnp >= 1.8
+Requires: pipewire-libs >= 0.3
%{?with_pulseaudio:Requires: pulseaudio-libs >= 0.9.16}
Requires: shine >= 3.1
Requires: sqlite3 >= 3.7.3
%prep
%setup -q
+%patch0 -p1
%build
%meson build \
-Dsystemd=enabled \
-Dtcp=true \
-Dtwolame=enabled \
- -Dupnp=enabled \
+ -Dupnp=pupnp \
-Dvorbis=enabled \
-Dvorbisenc=enabled \
-Dwave_encoder=true \
--- /dev/null
+From 3f2f3251cba7b9193f39027e204ea5e3248cbb7a Mon Sep 17 00:00:00 2001
+From: Max Kellermann <max@musicpd.org>
+Date: Fri, 15 Oct 2021 09:39:23 +0200
+Subject: [PATCH] neighbor/smbclient: use [[gnu::pure]]
+
+Fixes part 1 of https://github.com/MusicPlayerDaemon/MPD/issues/1279
+---
+ src/neighbor/plugins/SmbclientNeighborPlugin.cxx | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/neighbor/plugins/SmbclientNeighborPlugin.cxx b/src/neighbor/plugins/SmbclientNeighborPlugin.cxx
+index f759e4e756..97e40e941c 100644
+--- a/src/neighbor/plugins/SmbclientNeighborPlugin.cxx
++++ b/src/neighbor/plugins/SmbclientNeighborPlugin.cxx
+@@ -45,12 +45,12 @@ class SmbclientNeighborExplorer final : public NeighborExplorer {
+
+ Server(const Server &) = delete;
+
+- gcc_pure
++ [[gnu::pure]]
+ bool operator==(const Server &other) const noexcept {
+ return name == other.name;
+ }
+
+- [[nodiscard]] gcc_pure
++ [[nodiscard]] [[gnu::pure]]
+ NeighborInfo Export() const noexcept {
+ return { "smb://" + name + "/", comment };
+ }
+@@ -169,7 +169,7 @@ ReadServers(SmbclientContext &ctx, const char *uri,
+ uri);
+ }
+
+-gcc_pure
++[[gnu::pure]]
+ static NeighborExplorer::List
+ DetectServers(SmbclientContext &ctx) noexcept
+ {
+@@ -178,7 +178,7 @@ DetectServers(SmbclientContext &ctx) noexcept
+ return list;
+ }
+
+-gcc_pure
++[[gnu::pure]]
+ static NeighborExplorer::List::iterator
+ FindBeforeServerByURI(NeighborExplorer::List::iterator prev,
+ NeighborExplorer::List::iterator end,
+From 466b5cb08d5385f54dda07b4eead668b39685a83 Mon Sep 17 00:00:00 2001
+From: Max Kellermann <max@musicpd.org>
+Date: Fri, 15 Oct 2021 09:40:27 +0200
+Subject: [PATCH] neighbor/smbclient: FmtError() instead of FormatErrno()
+
+Fixes part 2 of https://github.com/MusicPlayerDaemon/MPD/issues/1279
+---
+ src/neighbor/plugins/SmbclientNeighborPlugin.cxx | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/neighbor/plugins/SmbclientNeighborPlugin.cxx b/src/neighbor/plugins/SmbclientNeighborPlugin.cxx
+index 97e40e941..144059f50 100644
+--- a/src/neighbor/plugins/SmbclientNeighborPlugin.cxx
++++ b/src/neighbor/plugins/SmbclientNeighborPlugin.cxx
+@@ -33,6 +33,8 @@
+
+ #include <libsmbclient.h>
+
++#include <cerrno>
++#include <cstring>
+ #include <utility>
+
+ class SmbclientNeighborExplorer final : public NeighborExplorer {
+@@ -165,8 +167,8 @@ ReadServers(SmbclientContext &ctx, const char *uri,
+ ReadServers(ctx, handle, list);
+ ctx.CloseDirectory(handle);
+ } else
+- FormatErrno(smbclient_domain, "smbc_opendir('%s') failed",
+- uri);
++ FmtError(smbclient_domain, "smbc_opendir('{}') failed: {}",
++ uri, strerror(errno));
+ }
+
+ [[gnu::pure]]
+From 85611aa456cddb38cd8163a35bac6b6fa5c8fd98 Mon Sep 17 00:00:00 2001
+From: Max Kellermann <max@musicpd.org>
+Date: Fri, 15 Oct 2021 10:23:58 +0200
+Subject: [PATCH] storage/smbclient: add StoragePlugin.prefixes
+
+Should have been part of commit
+ef24cfa523b73848ba04d73154de1f95eb45a3b5
+
+Closes https://github.com/MusicPlayerDaemon/MPD/issues/1279
+---
+ src/storage/plugins/SmbclientStorage.cxx | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/storage/plugins/SmbclientStorage.cxx b/src/storage/plugins/SmbclientStorage.cxx
+index 72eb4820c2..a033f3d7f8 100644
+--- a/src/storage/plugins/SmbclientStorage.cxx
++++ b/src/storage/plugins/SmbclientStorage.cxx
+@@ -186,15 +186,15 @@ SmbclientDirectoryReader::GetInfo([[maybe_unused]] bool follow)
+ static std::unique_ptr<Storage>
+ CreateSmbclientStorageURI([[maybe_unused]] EventLoop &event_loop, const char *base)
+ {
+- if (!StringStartsWithCaseASCII(base, "smb://"))
+- return nullptr;
+-
+ SmbclientInit();
+
+ return std::make_unique<SmbclientStorage>(base);
+ }
+
++static constexpr const char *smbclient_prefixes[] = { "smb://", nullptr };
++
+ const StoragePlugin smbclient_storage_plugin = {
+ "smbclient",
++ smbclient_prefixes,
+ CreateSmbclientStorageURI,
+ };