Project

General

Profile

Bug #56610

FTBFS with fmtlib 9.0.0

Added by Kaleb KEITHLEY 6 months ago. Updated 4 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
common
Target version:
-
% Done:

0%

Source:
Community (dev)
Tags:
Backport:
Regression:
No
Severity:
1 - critical
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Fedora 37/rawhide is updating to fmt 9 and builds fail, see https://kojipkgs.fedoraproject.org//work/tasks/6356/89606356/build.log

Also over in Debian experimental, see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1014549:
In file included from /usr/include/fmt/format.h:48,
from /usr/include/fmt/ostream.h:14,
from /<<PKGBUILDDIR>>/src/seastar/include/seastar/core/print.hh:24,
from /<<PKGBUILDDIR>>/src/seastar/include/seastar/util/backtrace.hh:30,
from /<<PKGBUILDDIR>>/src/seastar/include/seastar/core/task.hh:26,
from /<<PKGBUILDDIR>>/src/seastar/include/seastar/core/future.hh:24,
from /<<PKGBUILDDIR>>/src/seastar/include/seastar/core/seastar.hh:49,
from /<<PKGBUILDDIR>>/src/seastar/include/seastar/core/reactor.hh:24,
from /<<PKGBUILDDIR>>/src/seastar/src/core/exception_hacks.cc:61:
/usr/include/fmt/core.h: In instantiation of ‘constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt:
:v9::appender, char>; T = seastar::tasktrace&]’:
/usr/include/fmt/core.h:1753:29: required from ‘constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::
basic_format_context<fmt::v9::appender, char>; fmt::v9::detail::type <anonymous> = fmt::v9::detail::type::custom_type; T = seastar::tasktrace&; typename std::enable_if<IS_
PACKED, int>::type <anonymous> = 0]’
/usr/include/fmt/core.h:1877:77: required from ‘constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {seastar::tasktrace&}; Context =
fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {seastar::tasktrace}]’
/usr/include/fmt/core.h:1894:38: required from ‘constexpr fmt::v9::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<Args>::type>::type ..
.> fmt::v9::make_format_args(Args&& ...) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {seastar::tasktrace&}]’
/usr/include/fmt/core.h:3192:52: required from ‘OutputIt fmt::v9::format_to(OutputIt, fmt::v9::format_string<T ...>, T&& ...) [with OutputIt = seastar::internal::log_buf
::inserter_iterator; T = {seastar::tasktrace}; typename std::enable_if<fmt::v9::detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; fmt::v9::for
mat_string<T ...> = fmt::v9::basic_format_string<char, seastar::tasktrace>]’
/<<PKGBUILDDIR>>/src/seastar/include/seastar/util/log.hh:180:42: required from ‘void seastar::logger::log(seastar::log_level, const char*, Args&& ...) [with Args = {seas
tar::tasktrace}]’
/<<PKGBUILDDIR>>/src/seastar/include/seastar/util/log.hh:323:12: required from ‘void seastar::logger::trace(const char*, Args&& ...) [with Args = {seastar::tasktrace}]’
/<<PKGBUILDDIR>>/src/seastar/src/core/exception_hacks.cc:101:31: required from here
/usr/include/fmt/core.h:1733:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
1733 | formattable, | ^~~~~~~~~
/usr/include/fmt/core.h:1733:7: note: ‘formattable’ evaluates to false

History

#2 Updated by Tim Serong 4 months ago

We're having the same issue with Pacific on openSUSE (https://bugzilla.opensuse.org/show_bug.cgi?id=1202292).

#3 Updated by Tim Serong 4 months ago

Can confirm adding -DFMT_DEPRECATED_OSTREAM to CXXFLAGS downstream in openSUSE fixes this (as it does for Debian). Not a permanent fix, as according to the fmt release notes that define will be removed in the next major release (see https://github.com/fmtlib/fmt/blob/master/ChangeLog.rst#900---2022-07-04), but it'll work for now.

Also available in: Atom PDF