From c360dbf9c42f71e7931c56b7a396ba7f7e9982e6 Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Mon, 23 Feb 2026 17:44:12 -0600 Subject: Remove umu-run, keep game as child process for Steam tracking MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove umu-run entirely (crashed due to pressure-vessel/FUSE incompatibility) — use raw `proton run` instead - Replace startDetached() with QProcess::start() so the game stays in Fluorine's process tree. This lets Steam track the game lifetime and makes the "close game" button work when Fluorine is added as a non-Steam game. - Add writeIniValueDirect/readIniValueDirect for safe Bethesda INI handling without QSettings corruption - Fix prefix_setup.rs to skip umu-run bootstrapping - Clean up settings UI, build scripts, and docs for umu-run removal Co-Authored-By: Claude Opus 4.6 --- docker/AppRun.sh | 5 ++++- docker/build-inner.sh | 5 ++--- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'docker') diff --git a/docker/AppRun.sh b/docker/AppRun.sh index f0ae807..e897309 100644 --- a/docker/AppRun.sh +++ b/docker/AppRun.sh @@ -89,6 +89,9 @@ if [ -d "${APPIMAGE_DIR}/plugins/plugin_python" ]; then fi # ── Environment ── +# Save original LD_LIBRARY_PATH so child processes (xdg-open, kde-open, etc.) +# can use host libraries instead of the bundled (potentially older) ones. +export FLUORINE_ORIG_LD_LIBRARY_PATH="${LD_LIBRARY_PATH:-}" export PATH="${HERE}/usr/bin:${HERE}/usr/libexec:${PATH}" export LD_LIBRARY_PATH="${HERE}/usr/lib:${HERE}/usr/libexec:${LD_LIBRARY_PATH:-}" @@ -117,7 +120,7 @@ else export MO2_PYTHON_DIR="${APPIMAGE_DIR}/python" fi # Do not export PYTHONHOME/PYTHONPATH globally here. MO2 sets Python runtime -# internally for plugin_python, while child processes (umu/NaK/launchers) must +# internally for plugin_python, while child processes (NaK/launchers) must # use their own system Python environment. unset PYTHONHOME PYTHONPATH PYTHONNOUSERSITE diff --git a/docker/build-inner.sh b/docker/build-inner.sh index fa44a60..8b7ac93 100755 --- a/docker/build-inner.sh +++ b/docker/build-inner.sh @@ -39,7 +39,6 @@ mkdir -p "${OUT_DIR}/plugins" "${OUT_DIR}/dlls" "${OUT_DIR}/lib" # ── Main binary + helpers ── cp -f "${RUNDIR}/ModOrganizer" "${OUT_DIR}/ModOrganizer-core" -[ -f "${RUNDIR}/umu-run" ] && cp -f "${RUNDIR}/umu-run" "${OUT_DIR}/umu-run" [ -f "${RUNDIR}/README-PORTABLE.txt" ] && cp -f "${RUNDIR}/README-PORTABLE.txt" "${OUT_DIR}/" [ -f "/src/src/fluorine-manager" ] && cp -f "/src/src/fluorine-manager" "${OUT_DIR}/" @@ -334,7 +333,7 @@ export MO2_PLUGINS_DIR="${HERE}/plugins" export MO2_DLLS_DIR="${HERE}/dlls" export MO2_PYTHON_DIR="${PYTHON_DST}" # PYTHONHOME is set only for the MO2 process (not exported to children like -# umu-run/Proton which have their own Python). MO2_PYTHON_DIR lets the +# Proton which has its own Python). MO2_PYTHON_DIR lets the # binary reconstruct it internally. MO2_PYTHONHOME="${PYTHON_DST}" unset PYTHONPATH PYTHONNOUSERSITE PYTHONHOME @@ -443,7 +442,7 @@ if [ -d "${PYTHON_SRC}" ]; then fi # Save the original (pre-AppImage) environment so game launches can restore it. -# Without this, AppImage's LD_LIBRARY_PATH/PATH leak into umu-run/Proton and +# Without this, AppImage's LD_LIBRARY_PATH/PATH leak into Proton and # cause library conflicts that make games crash. export FLUORINE_ORIG_LD_LIBRARY_PATH="${LD_LIBRARY_PATH:-}" export FLUORINE_ORIG_PATH="${PATH}" -- cgit v1.3.1