The Little Bool of Doom

Fedora update trips DOOM over “true/false,” and the comments go berserk

TLDR: Fedora’s rebuild broke Chocolate Doom because new C rules turned “true” and “false” into reserved words that clashed with old code. Commenters split between pinning the code to older standards and calling the change a travesty, with jokes about assembly rabbit holes and Schrödinger’s bool fueling the drama.

Classic DOOM hit a surprisingly tiny speed bump that turned into a giant internet pothole: Fedora’s mass rebuild made Chocolate Doom fail because the newest version of the C programming language (C23) now treats true and false as real keywords. The game’s old code had its own homemade “bool,” and when modern compilers said “nope,” the little bool of doom lived up to its name.

The comments went wild. djoldman laughed at the author’s detour into Compiler Explorer, confessing the classic “ah‑ha… now what does this mean,” which became the thread’s running meme for “I found the bug, but I can’t read wizard glyphs.” kccqzy countered that peeking at the machine code is a slow, painful way to fix code—follow the language rules instead. Pragmatists like Joker_vD demanded the simple fix: lock the build to an older standard like C17 and move on, calling it the only sane path for legacy code. Nostalgia delivered the punchline as theamk recalled a bool that was both true and false—cue Schrödinger jokes. Then came the flamethrower: lowbloodsugar raged that it’s a “travesty,” insisting “0 is false, anything else is true,” and blaming compilers for pedantry. It’s a full‑on retro showdown: safety and modern rules versus “don’t break my classic game.”

Key Points

  • Fedora Linux’s mass rebuild for version 42 revealed a build failure in the Chocolate Doom package.
  • GCC reported a compilation error: ‘false’ cannot be used as an enumeration constant under C23.
  • Chocolate Doom defines a custom boolean type using enum {false, true} when compiling as C.
  • Older C standards permitted this approach; C89 lacked bool and C99 used _Bool with stdbool.h macros.
  • C23 makes bool, true, and false keywords, creating a naming conflict that breaks the build.

Hottest takes

"That is a fucking travesty... 0 is false and any other value is true" — lowbloodsugar
"Arguably, that's the sanest one: you can't expect the old C code to follow the rules of the new versions" — Joker_vD
"ah hah! I found you. hrm, now what does this mean..." — djoldman
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.