aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-04-01 15:31:43 -0500
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-04-01 15:31:43 -0500
commit45aefb63e84fd3c75be7b24264885a53f3fb44b8 (patch)
treeb702079f16be91eb7e170d608c3de9879976c10e /src
parente92d166ce97a9335f0e16526b40dc5dc456c361c (diff)
Fix SLR download failures and CMake rebuild detection
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) <noreply@anthropic.com>
Diffstat (limited to 'src')
-rw-r--r--src/src/protonlauncher.cpp13
1 files changed, 10 insertions, 3 deletions
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);