justbuild 1.6.5-0.2 fails to build in sid on arm64 with fmtlib
12.2.0+ds1-2 from experimental during the fmtlib transition rebuild.
To reproduce, rebuild the unmodified source in a clean sid build environment
with libfmt-dev and libfmt12 12.2.0+ds1-2 from experimental, together with
the package's normal build dependencies. No spdlog dependency is involved.
retry_config.hpp and hash_info.cpp use fmt::format while including
fmt/core.h; logger.hpp also uses fmt::vformat through that header.
In fmt 12.2, fmt/core.h includes fmt/base.h rather than fmt/format.h by
default. These uses need an explicit fmt/format.h include. Isolated header
probes reproduce the missing declaration with the 12.2 headers and compile
with an explicit fmt/format.h include; a full package rebuild with that
change has not been tested.
This is distinct from #1124167, the older fmt/chrono.h consteval error
reported against 1.6.3-1 and fixed in 1.6.3-2.
Relevant original compiler diagnostics:
/build/reproducible-path/justbuild-1.6.5/debian/build/src/src/buildtool/common/remote/retry_config.hpp:115:26: error: ‘format’ is not a member of ‘fmt’
/build/reproducible-path/justbuild-1.6.5/debian/build/src/src/buildtool/common/remote/retry_config.hpp:126:26: error: ‘format’ is not a member of ‘fmt’
/build/reproducible-path/justbuild-1.6.5/debian/build/src/src/buildtool/common/remote/retry_config.hpp:137:26: error: ‘format’ is not a member of ‘fmt’
/build/reproducible-path/justbuild-1.6.5/debian/build/src/src/buildtool/crypto/hash_info.cpp:79:21: error: ‘format’ is not a member of ‘fmt’
The full build log is attached.