Source: android-cuttlefish
Version: 1.55.4+dfsg.1-1
Severity: important
Tags: ftbfs
Control: affects -1 src:fmtlib
X-Debbugs-Cc: [email protected], [email protected]

android-cuttlefish 1.55.4+dfsg.1-1 fails to build with fmtlib
12.2.0+ds1-2 during the fmtlib transition rebuild in sid on arm64:

  https://release.debian.org/transitions/html/auto-fmtlib.html

To reproduce, rebuild the unmodified source in a clean sid arm64 build
environment with libfmt-dev and libfmt12 12.2.0+ds1-2 from experimental.

fmt 12.2 makes fmt/core.h lightweight: it includes fmt/base.h rather
than fmt/format.h by default. pci.h includes only fmt/core.h, but uses
std::string and fmt::format. Please include <string> and <fmt/format.h>
explicitly rather than relying on transitive declarations.

  https://raw.githubusercontent.com/fmtlib/fmt/12.2.0/include/fmt/core.h

Relevant build-log excerpt:

In file included from cuttlefish/host/libs/vm_manager/pci.cpp:16:
./cuttlefish/host/libs/vm_manager/pci.h:30:8: error: 'string' in namespace 
'std' does not name a type
   30 |   std::string Id() const {
      |        ^~~~~~
./cuttlefish/host/libs/vm_manager/pci.h:19:1: note: 'std::string' is defined in 
header '<string>'; this is probably fixable by adding '#include <string>'
   18 | #include <fmt/core.h>
  +++ |+#include <string>
   19 |

The observed compiler diagnostic is the missing std::string declaration;
the fmt::format use also needs the explicit formatting header. A patched
consumer build has not been tested.

The full build log is attached.

Attachment: android-cuttlefish-fmt122-arm64.log.gz
Description: application/gzip

Reply via email to