From aba2dc0df5c50c244904f2b1bb458334a851d426 Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Thu, 30 Apr 2026 18:32:24 -0500 Subject: Clean up empty dirs left by VFS, suppress noisy Qt debug Fixes #64: VFS now tracks the directories it creates outside the data dir (external mappings + RootBuilder game-root deploys) and removes them on unmount, but only if still empty. Pre-existing user dirs and the game root itself are never touched. RootBuilder manifest gains a "dirs" field so the cleanup survives a crashed session. Also drops a Path-repr qDebug in bg3_file_mapper that crashed Qt's logger on surrogate-escaped paths, and defaults QT_LOGGING_RULES to default.debug=false in the launcher and AppRun (still overridable) so the same class of plugin bug stays muted in shipped builds. Co-Authored-By: Claude Opus 4.7 (1M context) --- docker/build-inner.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'docker') diff --git a/docker/build-inner.sh b/docker/build-inner.sh index 957d53e..fb5497b 100755 --- a/docker/build-inner.sh +++ b/docker/build-inner.sh @@ -376,6 +376,12 @@ export FLUORINE_ORIG_QT_PLUGIN_PATH="${QT_PLUGIN_PATH:-}" # Clear it for our process; game launches restore via FLUORINE_ORIG_LD_PRELOAD. unset LD_PRELOAD +# Suppress Qt debug logging by default. Some plugins (e.g. BG3 file mapper) +# qDebug() Path objects whose surrogate-escaped bytes crash Qt's logger with +# "unicode category" errors. User can re-enable with QT_LOGGING_RULES override. +: "${QT_LOGGING_RULES:=default.debug=false}" +export QT_LOGGING_RULES + # ── Sync entire app to ~/.local/share/fluorine/bin/ ── # This gives instances a stable symlink target that won't break if the user # moves or deletes the original tarball extraction directory. @@ -710,6 +716,10 @@ export FLUORINE_ORIG_QT_PLUGIN_PATH="${QT_PLUGIN_PATH:-}" # Steam injects 32-bit gameoverlayrenderer.so via LD_PRELOAD — clear it. unset LD_PRELOAD +# Suppress Qt debug logging by default (see comment in main launcher). +: "${QT_LOGGING_RULES:=default.debug=false}" +export QT_LOGGING_RULES + export PATH="${BIN}:${PATH}" # Replace (not append) LD_LIBRARY_PATH — Steam game mode injects its runtime # libs which break Python/Qt. RPATH handles the binary's own deps. -- cgit v1.3.1