From: Brad Smith Subject: UPDATE: mpd To: ports@openbsd.org Cc: landry@openbsd.org Date: Fri, 9 Oct 2026 17:50:41 -0400 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 - - #include - -@@ -25,7 +25,7 @@ class EventLoop; - * as thread-safe. - */ - class FineTimerEvent final : -- public IntrusiveTreeSetHook -+ public boost::intrusive::set_base_hook> - { - 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 - - 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> timers; -+ boost::intrusive::multiset>>, -+ boost::intrusive::compare, -+ boost::intrusive::constant_time_size> timers; - - public: - TimerList();