Now that we've gone through libc++ 19 and 22 it looks like
we can remove this workaround. Also g/c the 16 yr old faad
version guard.
Index: Makefile
===================================================================
RCS file: /cvs/ports/audio/mpd/Makefile,v
retrieving revision 1.166
diff -u -p -u -p -r1.166 Makefile
--- Makefile 28 Aug 2026 19:10:01 -0000 1.166
+++ Makefile 9 Oct 2026 21:40:40 -0000
@@ -2,6 +2,7 @@ BROKEN-hppa = no atomic ops
COMMENT = Music Player Daemon
VER = 0.24.15
DISTNAME = mpd-${VER}
+REVISION = 0
EXTRACT_SUFX = .tar.xz
CATEGORIES = audio
HOMEPAGE = https://www.musicpd.org/
@@ -21,14 +22,12 @@ WANTLIB = FLAC audiofile avcodec avfilt
SITES = https://www.musicpd.org/download/mpd/${VER:R}/
-# needs libcxx update ?
COMPILER = base-clang ports-gcc
-BUILD_DEPENDS = devel/boost
BUILD_DEPENDS += textproc/py-sphinx
BUILD_DEPENDS += textproc/nlohmann-json
-LIB_DEPENDS = audio/faad>=2.6.1p0 \
+LIB_DEPENDS = audio/faad \
audio/flac \
audio/lame \
audio/libcdio \
Index: patches/patch-src_event_FineTimerEvent_hxx
===================================================================
RCS file: patches/patch-src_event_FineTimerEvent_hxx
diff -N patches/patch-src_event_FineTimerEvent_hxx
--- patches/patch-src_event_FineTimerEvent_hxx 15 Apr 2025 06:43:28 -0000
1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,24 +0,0 @@
-revert
https://github.com/MusicPlayerDaemon/MPD/commit/c5e607a3107c3ec2592f5785db4c9b55faefcaae
-
-to revisit when base libcxx is updated ?
-Index: src/event/FineTimerEvent.hxx
---- src/event/FineTimerEvent.hxx.orig
-+++ src/event/FineTimerEvent.hxx
-@@ -7,7 +7,7 @@
- #include "Chrono.hxx"
- #include "event/Features.h"
- #include "util/BindMethod.hxx"
--#include "util/IntrusiveTreeSet.hxx"
-+#include <boost/intrusive/set_hook.hpp>
-
- #include <cassert>
-
-@@ -25,7 +25,7 @@ class EventLoop;
- * as thread-safe.
- */
- class FineTimerEvent final :
-- public IntrusiveTreeSetHook<IntrusiveHookMode::AUTO_UNLINK>
-+ public
boost::intrusive::set_base_hook<boost::intrusive::link_mode<boost::intrusive::auto_unlink>>
- {
- friend class TimerList;
-
Index: patches/patch-src_event_TimerList_cxx
===================================================================
RCS file: patches/patch-src_event_TimerList_cxx
diff -N patches/patch-src_event_TimerList_cxx
--- patches/patch-src_event_TimerList_cxx 15 Apr 2025 06:43:28 -0000
1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,30 +0,0 @@
-revert
https://github.com/MusicPlayerDaemon/MPD/commit/c5e607a3107c3ec2592f5785db4c9b55faefcaae
-
-to revisit when base libcxx is updated ?
-Index: src/event/TimerList.cxx
---- src/event/TimerList.cxx.orig
-+++ src/event/TimerList.cxx
-@@ -5,10 +5,11 @@
- #include "TimerList.hxx"
- #include "FineTimerEvent.hxx"
-
--constexpr Event::TimePoint
--TimerList::GetDue::operator()(const FineTimerEvent &timer) const noexcept
-+constexpr bool
-+TimerList::Compare::operator()(const FineTimerEvent &a,
-+ const FineTimerEvent &b) const noexcept
- {
-- return timer.GetDue();
-+ return a.due < b.due;
- }
-
- TimerList::TimerList() = default;
-@@ -37,7 +38,7 @@ TimerList::Run(const Event::TimePoint now) noexcept
- if (timeout > timeout.zero())
- return timeout;
-
-- timers.pop_front();
-+ timers.erase(i);
-
- t.Run();
- }
Index: patches/patch-src_event_TimerList_hxx
===================================================================
RCS file: patches/patch-src_event_TimerList_hxx
diff -N patches/patch-src_event_TimerList_hxx
--- patches/patch-src_event_TimerList_hxx 15 Apr 2025 06:43:28 -0000
1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,35 +0,0 @@
-revert
https://github.com/MusicPlayerDaemon/MPD/commit/c5e607a3107c3ec2592f5785db4c9b55faefcaae
-
-to revisit when base libcxx is updated ?
-Index: src/event/TimerList.hxx
---- src/event/TimerList.hxx.orig
-+++ src/event/TimerList.hxx
-@@ -6,7 +6,7 @@
-
- #include "Chrono.hxx"
- #include "event/Features.h"
--#include "util/IntrusiveTreeSet.hxx"
-+#include <boost/intrusive/set.hpp>
-
- class FineTimerEvent;
-
-@@ -14,12 +14,15 @@ class FineTimerEvent;
- * A list of #FineTimerEvent instances sorted by due time point.
- */
- class TimerList final {
-- struct GetDue {
-- constexpr Event::TimePoint operator()(const FineTimerEvent
&timer) const noexcept;
-+ struct Compare {
-+ constexpr bool operator()(const FineTimerEvent &a,
-+ const FineTimerEvent &b) const
noexcept;
- };
-
-- IntrusiveTreeSet<FineTimerEvent,
-- IntrusiveTreeSetOperators<FineTimerEvent, GetDue>>
timers;
-+ boost::intrusive::multiset<FineTimerEvent,
-+
boost::intrusive::base_hook<boost::intrusive::set_base_hook<boost::intrusive::link_mode<boost::intrusive::auto_unlink>>>,
-+ boost::intrusive::compare<Compare>,
-+ boost::intrusive::constant_time_size<false>>
timers;
-
- public:
- TimerList();