diff --git a/backend/data/release_digests.json b/backend/data/release_digests.json index 3038653..666dc5c 100644 --- a/backend/data/release_digests.json +++ b/backend/data/release_digests.json @@ -43,8 +43,8 @@ "ShadowBroker_0.9.8_x64_en-US.msi": "fe22f9d51e4360d74c18a7250c2fbb9ed4fa4c7a884b3ac0d04a21115466386b" }, "v0.9.81": { - "ShadowBroker_v0.9.81.zip": "31e5273253f329746ca2c4dc3f1da47e50a30981759b33056b3174e6474b9e4b", - "ShadowBroker_0.9.81_x64-setup.exe": "eca884b9d37eeccd0f11c91dcc6f6ae1b3609d9dee72bd73c37c9a427babfef2", - "ShadowBroker_0.9.81_x64_en-US.msi": "a45b177c26c95d2b28d71592d7147e88ff4e104865f214fde11249d311ec9e25" + "ShadowBroker_v0.9.81.zip": "af8c87ccdece8fbb9aadc6be63cce10d3fcba74e6d87ef83289dda6d555fd270", + "ShadowBroker_0.9.81_x64-setup.exe": "4e866fa0423c0c2470ed32f4809167a7815dc23ee7762b69e95681c1f3a28250", + "ShadowBroker_0.9.81_x64_en-US.msi": "8977c9a1c54e1f0d030436be9c4e3d81d766cc0080699eb747649095f360c7ff" } } diff --git a/desktop-shell/tauri-skeleton/scripts/build-backend-runtime.cjs b/desktop-shell/tauri-skeleton/scripts/build-backend-runtime.cjs index 6fcd685..eb9fb99 100644 --- a/desktop-shell/tauri-skeleton/scripts/build-backend-runtime.cjs +++ b/desktop-shell/tauri-skeleton/scripts/build-backend-runtime.cjs @@ -130,6 +130,45 @@ function stageBackendRuntime() { }); stagePrivacyCoreArtifact(); stageReleaseAttestation(); + stageStartScripts(); +} + +/** + * Copy ``start.bat`` and ``start.sh`` from the repo root into the + * staged backend-runtime/ so they sit next to ``privacy_core.dll``. + * + * Why: an MSI/EXE/AppImage user who wants to launch via the dev-style + * scripts (because the desktop shell is failing, or they prefer the + * browser frontend at localhost:3000) shouldn't have to clone the + * source repo just to get the scripts. Having them inside the install + * directory also means the bundled ``privacy_core.dll`` fallback in + * those scripts resolves to the SAME directory as the script, which + * is exactly the layout the v0.9.81 script update is looking for. + * + * Tracked from issue #319: users who fell back to start.bat from + * their MSI install dir had to go fetch it from GitHub, then saw a + * scary "install Rust" warning because the script didn't know where + * the bundled DLL was. Bundling the script removes both problems. + */ +function stageStartScripts() { + const scripts = ['start.bat', 'start.sh']; + for (const name of scripts) { + const src = path.join(repoRoot, name); + if (!fs.existsSync(src)) { + console.warn(`backend-runtime staged without ${name} (not at repo root)`); + continue; + } + const dst = path.join(outputDir, name); + fs.copyFileSync(src, dst); + // Preserve executable bit on POSIX systems for the .sh script. + if (name.endsWith('.sh') && process.platform !== 'win32') { + try { + fs.chmodSync(dst, 0o755); + } catch { + /* best-effort; not fatal on filesystems that don't honor chmod */ + } + } + } } function stagePrivacyCoreArtifact() {