Source: gr-limesdr
Version: 3.0.1.10.69-4
Severity: serious
Tags: ftbfs
Justification: fails to build from source (but built successfully in the past)
X-Debbugs-Cc: sramacher@debian.org
Dear maintainer,
gr-limesdr FTBFS with the new fmtlib:
[ 46%] Built target doxygen_target
In file included from /usr/include/spdlog/fmt/fmt.h:29,
from /usr/include/spdlog/common.h:50,
from /usr/include/gnuradio/logger.h:37,
from /build/reproducible-path/gr-limesdr-3.0.1.10.69/lib/device_handler.h:26,
from /build/reproducible-path/gr-limesdr-3.0.1.10.69/lib/device_handler.cc:21:
/usr/include/fmt/base.h: In instantiation of ‘static void fmt::v11::detail::value<Context>::format_custom(void*, fmt::v11::parse_context<typename Context::char_type>&, Context&) [with T = boost::basic_format<char>; Formatter = fmt::v11::formatter<boost::basic_format<char> >; Context = fmt::v11::context; typename Context::char_type = char]’:
/usr/include/fmt/base.h:2220:19: required from ‘constexpr fmt::v11::detail::value<Context>::value(T&, fmt::v11::detail::custom_tag) [with T = const boost::basic_format<char>; typename std::enable_if<has_formatter<T, typename Context::char_type>(), int>::type <anonymous> = 0; Context = fmt::v11::context]’
2220 | custom.format = format_custom<value_type, formatter<value_type, char_type>>;
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/fmt/base.h:2200:65: required from ‘fmt::v11::detail::value<Context>::value(T&) [with T = const boost::basic_format<char>; typename std::enable_if<(fmt::v11::detail::use_formatter<T>::value || (!1)), int>::type <anonymous> = 0; Context = fmt::v11::context]’
2200 | FMT_CONSTEXPR20 FMT_INLINE value(T& x) : value(x, custom_tag()) {}
| ^
/usr/include/fmt/base.h:2773:20: required from ‘constexpr fmt::v11::detail::format_arg_store<Context, NUM_ARGS, NUM_NAMED_ARGS, DESC> fmt::v11::make_format_args(T& ...) [with Context = context; T = {const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >}; int NUM_ARGS = 1; int NUM_NAMED_ARGS = 0; long long unsigned int DESC = 15]’
2773 | return {{args...}};
| ^
/usr/include/spdlog/logger.h:328:75: required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >&}; spdlog::string_view_t = fmt::v11::basic_string_view<char>]’
328 | fmt::vformat_to(fmt::appender(buf), fmt, fmt::make_format_args(args...));
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/usr/include/spdlog/logger.h:80:13: required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v11::format_string<T ...>, Args&& ...) [with Args = {const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >&}; fmt::v11::format_string<T ...> = fmt::v11::fstring<const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >&>]’
80 | log_(loc, lvl, details::to_string_view(fmt), std::forward<Args>(args)...);
| ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/spdlog/logger.h:98:12: required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, const T&) [with T = boost::basic_format<char>; typename std::enable_if<(! spdlog::is_convertible_to_any_format_string<const T&>::value), int>::type <anonymous> = 0]’
98 | log(loc, lvl, "{}", msg);
| ~~~^~~~~~~~~~~~~~~~~~~~~
/usr/include/spdlog/logger.h:90:12: required from ‘void spdlog::logger::log(spdlog::level::level_enum, const T&) [with T = boost::basic_format<char>]’
90 | log(source_loc{}, lvl, msg);
| ~~~^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/spdlog/logger.h:243:12: required from ‘void spdlog::logger::info(const T&) [with T = boost::basic_format<char>]’
243 | log(level::info, msg);
| ~~~^~~~~~~~~~~~~~~~~~
/build/reproducible-path/gr-limesdr-3.0.1.10.69/lib/device_handler.cc:62:9: required from here
62 | GR_LOG_INFO(d_logger, boost::format("LimeSuite version: %s") % LMS_GetLibraryVersion());
| ^
/usr/include/fmt/base.h:2240:29: error: passing ‘const fmt::v11::formatter<boost::basic_format<char> >’ as ‘this’ argument discards qualifiers [-fpermissive]
2240 | ctx.advance_to(cf.format(*static_cast<qualified_type*>(arg), ctx));
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/gnuradio/logger.h:323:10: note: in call to ‘decltype (((fmt::v11::formatter<boost::basic_format<char> >*)this)->fmt::v11::detail::native_formatter<fmt::v11::basic_string_view<char>, char, fmt::v11::detail::type::string_type>::format(bfmt.boost::basic_format<char>::str(), ctx)) fmt::v11::formatter<boost::basic_format<char> >::format(const boost::format&, FormatContext&) [with FormatContext = fmt::v11::context; decltype (((fmt::v11::formatter<boost::basic_format<char> >*)this)->fmt::v11::detail::native_formatter<fmt::v11::basic_string_view<char>, char, fmt::v11::detail::type::string_type>::format(bfmt.boost::basic_format<char>::str(), ctx)) = fmt::v11::basic_appender<char>; boost::format = boost::basic_format<char>]’
323 | auto format(const boost::format& bfmt, FormatContext& ctx)
| ^~~~~~
In file included from /usr/include/spdlog/fmt/fmt.h:29,
from /usr/include/spdlog/common.h:50,
from /usr/include/gnuradio/logger.h:37,
from /build/reproducible-path/gr-limesdr-3.0.1.10.69/lib/device_handler.h:26,
from /build/reproducible-path/gr-limesdr-3.0.1.10.69/lib/rfe_impl.cc:25:
/usr/include/fmt/base.h: In instantiation of ‘static void fmt::v11::detail::value<Context>::format_custom(void*, fmt::v11::parse_context<typename Context::char_type>&, Context&) [with T = boost::basic_format<char>; Formatter = fmt::v11::formatter<boost::basic_format<char> >; Context = fmt::v11::context; typename Context::char_type = char]’:
/usr/include/fmt/base.h:2220:19: required from ‘constexpr fmt::v11::detail::value<Context>::value(T&, fmt::v11::detail::custom_tag) [with T = const boost::basic_format<char>; typename std::enable_if<has_formatter<T, typename Context::char_type>(), int>::type <anonymous> = 0; Context = fmt::v11::context]’
2220 | custom.format = format_custom<value_type, formatter<value_type, char_type>>;
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/fmt/base.h:2200:65: required from ‘fmt::v11::detail::value<Context>::value(T&) [with T = const boost::basic_format<char>; typename std::enable_if<(fmt::v11::detail::use_formatter<T>::value || (!1)), int>::type <anonymous> = 0; Context = fmt::v11::context]’
2200 | FMT_CONSTEXPR20 FMT_INLINE value(T& x) : value(x, custom_tag()) {}
| ^
/usr/include/fmt/base.h:2773:20: required from ‘constexpr fmt::v11::detail::format_arg_store<Context, NUM_ARGS, NUM_NAMED_ARGS, DESC> fmt::v11::make_format_args(T& ...) [with Context = context; T = {const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >}; int NUM_ARGS = 1; int NUM_NAMED_ARGS = 0; long long unsigned int DESC = 15]’
2773 | return {{args...}};
| ^
/usr/include/spdlog/logger.h:328:75: required from ‘void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >&}; spdlog::string_view_t = fmt::v11::basic_string_view<char>]’
328 | fmt::vformat_to(fmt::appender(buf), fmt, fmt::make_format_args(args...));
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/usr/include/spdlog/logger.h:80:13: required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v11::format_string<T ...>, Args&& ...) [with Args = {const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >&}; fmt::v11::format_string<T ...> = fmt::v11::fstring<const boost::basic_format<char, std::char_traits<char>, std::allocator<char> >&>]’
80 | log_(loc, lvl, details::to_string_view(fmt), std::forward<Args>(args)...);
| ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/spdlog/logger.h:98:12: required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, const T&) [with T = boost::basic_format<char>; typename std::enable_if<(! spdlog::is_convertible_to_any_format_string<const T&>::value), int>::type <anonymous> = 0]’
98 | log(loc, lvl, "{}", msg);
| ~~~^~~~~~~~~~~~~~~~~~~~~
/usr/include/spdlog/logger.h:90:12: required from ‘void spdlog::logger::log(spdlog::level::level_enum, const T&) [with T = boost::basic_format<char>]’
90 | log(source_loc{}, lvl, msg);
| ~~~^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/spdlog/logger.h:243:12: required from ‘void spdlog::logger::info(const T&) [with T = boost::basic_format<char>]’
243 | log(level::info, msg);
| ~~~^~~~~~~~~~~~~~~~~~
/build/reproducible-path/gr-limesdr-3.0.1.10.69/lib/rfe_impl.cc:114:9: required from here
114 | GR_LOG_INFO(d_logger, boost::format("LimeSuite version: %s") % LMS_GetLibraryVersion());
| ^
/usr/include/fmt/base.h:2240:29: error: passing ‘const fmt::v11::formatter<boost::basic_format<char> >’ as ‘this’ argument discards qualifiers [-fpermissive]
2240 | ctx.advance_to(cf.format(*static_cast<qualified_type*>(arg), ctx));
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/gnuradio/logger.h:323:10: note: in call to ‘decltype (((fmt::v11::formatter<boost::basic_format<char> >*)this)->fmt::v11::detail::native_formatter<fmt::v11::basic_string_view<char>, char, fmt::v11::detail::type::string_type>::format(bfmt.boost::basic_format<char>::str(), ctx)) fmt::v11::formatter<boost::basic_format<char> >::format(const boost::format&, FormatContext&) [with FormatContext = fmt::v11::context; decltype (((fmt::v11::formatter<boost::basic_format<char> >*)this)->fmt::v11::detail::native_formatter<fmt::v11::basic_string_view<char>, char, fmt::v11::detail::type::string_type>::format(bfmt.boost::basic_format<char>::str(), ctx)) = fmt::v11::basic_appender<char>; boost::format = boost::basic_format<char>]’
323 | auto format(const boost::format& bfmt, FormatContext& ctx)
| ^~~~~~
make[3]: *** [lib/CMakeFiles/gnuradio-limesdr.dir/build.make:82: lib/CMakeFiles/gnuradio-limesdr.dir/device_handler.cc.o] Error 1
See
https://buildd.debian.org/status/fetch.php?pkg=gr-limesdr&arch=amd64&ver=3.0.1.10.69-4%2Bb2&stamp=1791374119&raw=0
for details.
Cheers