From 45aefb63e84fd3c75be7b24264885a53f3fb44b8 Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Wed, 1 Apr 2026 15:31:43 -0500 Subject: Fix SLR download failures and CMake rebuild detection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace SHA256SUMS verification with Content-Length check for SLR downloads. Valve's CDN frequently serves stale SHA256SUMS that don't match the current archive, causing persistent checksum mismatches. Fix CMake DEPENDS for nak_ffi to glob all .rs sources instead of hardcoding a few files — previously changes to slr.rs (and most other Rust files) were silently ignored by ninja. Also wrap prefix init and runtime commands through SLR pressure-vessel container, and expose Proton install directories to the container. Co-Authored-By: Claude Opus 4.6 (1M context) --- src/src/protonlauncher.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/src/protonlauncher.cpp b/src/src/protonlauncher.cpp index 3c279fa..c6fc545 100644 --- a/src/src/protonlauncher.cpp +++ b/src/src/protonlauncher.cpp @@ -463,9 +463,9 @@ bool ProtonLauncher::launchWithProton(qint64& pid) const // Build: [wrappers] run_script [--filesystem=...] -- proton_script protonArgs QStringList slrArgs; - // Expose the game directory (and its FUSE-mounted Data/) to the - // pressure-vessel container. Without this, the container's mount - // namespace may not see FUSE mounts on the host. + // Expose host directories to the pressure-vessel container. + // Without --filesystem= flags, the container's mount namespace + // may not see FUSE mounts or system-installed Proton paths. if (!m_binary.isEmpty()) { const QString gameDir = QFileInfo(m_binary).absolutePath(); slrArgs << QStringLiteral("--filesystem=%1").arg(gameDir); @@ -473,6 +473,13 @@ bool ProtonLauncher::launchWithProton(qint64& pid) const if (!m_prefixPath.isEmpty()) { slrArgs << QStringLiteral("--filesystem=%1").arg(m_prefixPath); } + // Expose the Proton installation directory — needed for + // system-installed Protons (e.g. /usr/share/steam/compatibilitytools.d/) + // whose files may not be visible inside the container by default. + { + const QString protonDir = QFileInfo(protonScript).absolutePath(); + slrArgs << QStringLiteral("--filesystem=%1").arg(protonDir); + } slrArgs << "--" << protonScript << protonArgs; wrapProgram(m_wrapperCommands, runScript, slrArgs, program, arguments); -- cgit v1.3.1