#1151596 justbuild: FTBFS with fmt 12.2: missing fmt::format declarations

#1151596#5
Date:
2026-10-22 07:17:57 UTC
From:
To:
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.