FreeBSD : Installation de TrenchBroom, éditeur de carte pour Quake

Code source.

https://github.com/HackTechDev/Trenchbroom4FreeBSD

Captures d'écran.

trenchbroom01.png

TrenchBroom on FreeBSD

Status of the FreeBSD 15.0-RELEASE port, tracked on the trenchbroom-freebsd branch.

Status

The TrenchBroom target configures and compiles cleanly with CMake + Ninja + the base system's clang, and the resulting binary starts up without crashing (smoke-tested headless via QT_QPA_PLATFORM=offscreen). Not yet verified on FreeBSD:

  • The unit test suites (ctest / <Name>LibTest targets) have not been run.
  • Real (non-offscreen) OpenGL rendering has not been checked.
  • Crash-report stack traces (via cpptrace) may be lower quality than on Linux/macOS/ Windows -- the FreeBSD code path was patched in by treating it like Linux, but some of the underlying glibc-specific tricks it relies on may not translate directly.
  • Self-updating is intentionally disabled on FreeBSD (no release artifact convention exists for this platform yet), so that code path is untested by construction.

Quick start

See the FreeBSD section of BUILD.md for the required pkg packages and the exact configure/build commands.

Why this exists

TrenchBroom's build system assumes Linux, macOS or Windows in several places: which dependencies vcpkg should build versus resolve from system packages, which third-party libraries recognize the platform at all (cpptrace), and which compiler/linker quirks apply (Apple's ld64 flags, libc++'s missing floating-point std::from_chars). None of these assumptions were malicious or hard to fix -- they just never had a FreeBSD data point before. ANALYSE.md has the full write-up of each issue found and fixed, in case something regresses or a similar issue needs fixing for another platform.

Known gaps

  • vcpkg is declared as a git submodule in .gitmodules but is not actually registered yet (see ANALYSE.md); it must currently be fetched by hand (a full, non-shallow clone is required -- vcpkg's version resolution reads historical port trees from the whole git history, not just the tip commit).