# --- T2-COPYRIGHT-BEGIN --- # t2/package/*/fmt/hotfix-chrono-ullong.patch # Copyright (C) 2026 The T2 SDE Project # SPDX-License-Identifier: GPL-2.0 or patched project license # --- T2-COPYRIGHT-END --- Spell out unsigned long long in write_digit2_separated(). The bare ullong alias from base.h is not found by newer gcc in this scope under -std=c++20, breaking consumers such as waybar. Signed-off-by: Dennie Mahne --- fmt-12.2.0/include/fmt/chrono.h.orig 2026-06-16 07:07:48.000000000 +0200 +++ fmt-12.2.0/include/fmt/chrono.h 2026-09-29 12:31:26.551393003 +0200 @@ -543,7 +543,8 @@ // https://johnnylee-sde.github.io/Fast-unsigned-integer-to-time-string/. inline void write_digit2_separated(char* buf, unsigned a, unsigned b, unsigned c, char sep) { - ullong digits = a | (b << 24) | (static_cast(c) << 48); + unsigned long long digits = + a | (b << 24) | (static_cast(c) << 48); // Convert each value to BCD. // We have x = a * 10 + b and we want to convert it to BCD y = a * 16 + b. // The difference is @@ -557,7 +558,7 @@ // Put low nibbles to high bytes and high nibbles to low bytes. digits = ((digits & 0x00f00000f00000f0) >> 4) | ((digits & 0x000f00000f00000f) << 8); - auto usep = static_cast(sep); + auto usep = static_cast(sep); // Add ASCII '0' to each digit byte and insert separators. digits |= 0x3030003030003030 | (usep << 16) | (usep << 40);