Source: opm-common
Version: 2025.10+ds-5
Severity: important
Tags: ftbfs
Control: affects -1 src:fmtlib
X-Debbugs-Cc: [email protected], [email protected]

opm-common 2025.10+ds-5 fails to build in sid on arm64 with fmtlib
12.2.0+ds1-2 from experimental during the fmtlib transition rebuild.

To reproduce, first rebuild spdlog against the experimental fmt packages,
then rebuild Doxygen against that fmt12-compatible spdlog. Rebuild
opm-common in a clean sid build environment with libfmt-dev and libfmt12
12.2.0+ds1-2, explicitly selecting rebuilt Doxygen and its rebuilt spdlog
runtime rather than the archive binaries.

Equil.cpp includes <fmt/core.h> and calls fmt::format. In fmt 12.2,
core.h includes base.h instead of format.h by default; code using
fmt::format should include <fmt/format.h> explicitly. This explains the
missing declaration below, but a complete build with that change has not
been tested.

This is distinct from #1092847 (fmt::join / fmt 11 formatting failures,
fixed in 2024.10+ds-4) and #1143681 (GCC 16 std::abs(__float128)
redefinition, fixed in 2025.10+ds-5).

Relevant build-log excerpt:

  
/build/reproducible-path/opm-common-2025.10+ds/opm/input/eclipse/EclipseState/InitConfig/Equil.cpp:40:42:
 error: ‘format’ is not a member of ‘fmt’; did you mean ‘std::format’?
     40 |             const std::string msg = fmt::format("Equilibration data 
specification error:\n"
        |                                          ^~~~~~
  
/build/reproducible-path/opm-common-2025.10+ds/opm/input/eclipse/EclipseState/InitConfig/Equil.cpp:63:42:
 error: ‘format’ is not a member of ‘fmt’; did you mean ‘std::format’?
     63 |             const std::string msg = fmt::format("Equilibration input 
error for region {}:\n"
        |                                          ^~~~~~

The full build log is attached.

Attachment: opm-common-fmt122-arm64.log.gz
Description: application/gzip

Reply via email to