MusicPlayerDaemon/MPD

mpd 0.23.15 does not build with fmt 11.0.1

brad0 opened this issue · 5 comments

Updating system copy of fmt to 11.0.1 exposing that mpd does not build with it.

[1/576] /usr/local/bin/meson --internal vcstagger ../mpd-0.23.15/src/GitVersion.cxx GitVersion.cxx 0.23.15 /home/ports/pobj/mpd-0.23.15/mpd-0.23.15 @VCS_TAG@ '(.*)' ' '
[2/576] c++ -Iliblog.a.p -I. -I../mpd-0.23.15 -Isrc -I../mpd-0.23.15/src -I/usr/local/include -fdiagnostics-color=always -D_LIBCPP_ENABLE_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Wpedantic -std=c++17 -ffast-math -ftree-vectorize -Wcast-qual -Wdouble-promotion -Wmissing-declarations -Wshadow -Wunused -Wvla -Wwrite-strings -Wunreachable-code-aggressive -Wused-but-marked-unused -fno-threadsafe-statics -fmerge-all-constants -Wextra-semi -Wmismatched-tags -Woverloaded-virtual -Wsign-promo -Wno-non-virtual-dtor -Wcomma -Wheader-hygiene -Winconsistent-missing-destructor-override -Wsuggest-override -fvisibility=hidden -ffunction-sections -fdata-sections -D_GNU_SOURCE -O2 -pipe -D_BSD_SOURCE -fPIC -MD -MQ liblog.a.p/src_Log.cxx.o -MF liblog.a.p/src_Log.cxx.o.d -o liblog.a.p/src_Log.cxx.o -c ../mpd-0.23.15/src/Log.cxx
FAILED: liblog.a.p/src_Log.cxx.o
c++ -Iliblog.a.p -I. -I../mpd-0.23.15 -Isrc -I../mpd-0.23.15/src -I/usr/local/include -fdiagnostics-color=always -D_LIBCPP_ENABLE_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Wpedantic -std=c++17 -ffast-math -ftree-vectorize -Wcast-qual -Wdouble-promotion -Wmissing-declarations -Wshadow -Wunused -Wvla -Wwrite-strings -Wunreachable-code-aggressive -Wused-but-marked-unused -fno-threadsafe-statics -fmerge-all-constants -Wextra-semi -Wmismatched-tags -Woverloaded-virtual -Wsign-promo -Wno-non-virtual-dtor -Wcomma -Wheader-hygiene -Winconsistent-missing-destructor-override -Wsuggest-override -fvisibility=hidden -ffunction-sections -fdata-sections -D_GNU_SOURCE -O2 -pipe -D_BSD_SOURCE -fPIC -MD -MQ liblog.a.p/src_Log.cxx.o -MF liblog.a.p/src_Log.cxx.o.d -o liblog.a.p/src_Log.cxx.o -c ../mpd-0.23.15/src/Log.cxx
../mpd-0.23.15/src/Log.cxx:34:23: error: no member named 'back_inserter' in namespace 'std'
        fmt::vformat_to(std::back_inserter(buffer), format_str, args);
                        ~~~~~^
In file included from ../mpd-0.23.15/src/Log.cxx:20:
In file included from ../mpd-0.23.15/src/Log.hxx:25:
In file included from /usr/local/include/fmt/core.h:5:
In file included from /usr/local/include/fmt/format.h:41:
/usr/local/include/fmt/base.h:1392:23: error: no matching member function for call to 'format'
    ctx.advance_to(cf.format(*static_cast<qualified_type*>(arg), ctx));
                   ~~~^~~~~~
/usr/local/include/fmt/base.h:1373:21: note: in instantiation of function template specialization 'fmt::detail::value<fmt::context>::format_custom_arg<std::exception_ptr, fmt::formatter<std::exception_ptr>>' requested here
    custom.format = format_custom_arg<
                    ^
/usr/local/include/fmt/base.h:1631:10: note: in instantiation of function template specialization 'fmt::detail::value<fmt::context>::value<const std::exception_ptr>' requested here
  return {arg_mapper<Context>().map(val)};
         ^
../mpd-0.23.15/src/Log.cxx:50:2: note: in instantiation of function template specialization 'LogFmt<char[7], const char *&, const std::exception_ptr &>' requested here
        LogFmt(level, exception_domain, "{}: {}", msg, ep);
        ^
../mpd-0.23.15/src/lib/fmt/ExceptionFormatter.hxx:41:7: note: candidate function template not viable: 'this' argument has type 'const fmt::formatter<std::exception_ptr>', but method is not marked const
        auto format(std::exception_ptr e, FormatContext &ctx) {
             ^
2 errors generated.

Duplicate of #2068

Duplicate of #2068

Testing the comitted fix doesn't fix my build issue.

Oh, right, it's a different issue; I was misled by the title "fmt 11.0.1" but the problem has really nothing to do with fmt.

Oh, right, it's a different issue; I was misled by the title "fmt 11.0.1" but the problem has really nothing to do with fmt.

The issue came about from updating from 10.2.1 to 11.0.1.

@MaxKellermann Thank you. That does it.