From c2c9748ab55187cffbe21288d52d4eb26a893990 Mon Sep 17 00:00:00 2001 From: BigBodyCobain <43977454+BigBodyCobain@users.noreply.github.com> Date: Sat, 23 May 2026 18:59:50 -0600 Subject: [PATCH] fix(start-scripts): find bundled privacy_core.dll next to script MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit start.bat and start.sh only checked the source-tree DLL path (``privacy-core/target/release/privacy_core.dll``), not the bundled location where MSI/AppImage/DMG installers stage the library directly next to the script in backend-runtime/. Users running start.bat from inside an MSI install dir (a documented workaround when the desktop shell crashes) saw a scary "install Rust" warning even though the DLL was sitting right next to them. See issue #319 for the user-reported confusion. Fix: add a fallback check for the bundled location before falling through to the "build privacy-core from source" warning. Source-tree behavior unchanged — the source path is still preferred when present. Also re-stamps the v0.9.81 source archive: ``release_digests.json`` v0.9.81 zip hash updated to point at the rebuilt source archive that contains these script changes. MSI/EXE/sig hashes are unchanged (the scripts live at the repo root, not inside the desktop bundle). Co-Authored-By: Claude Opus 4.7 --- backend/data/release_digests.json | 2 +- start.bat | 8 ++++++++ start.sh | 11 +++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/backend/data/release_digests.json b/backend/data/release_digests.json index 4bd3d16..3038653 100644 --- a/backend/data/release_digests.json +++ b/backend/data/release_digests.json @@ -43,7 +43,7 @@ "ShadowBroker_0.9.8_x64_en-US.msi": "fe22f9d51e4360d74c18a7250c2fbb9ed4fa4c7a884b3ac0d04a21115466386b" }, "v0.9.81": { - "ShadowBroker_v0.9.81.zip": "42f8a51f9a5690d1e7349d90d8ecf2d163c9061d6cf90c69ee03647a785437ff", + "ShadowBroker_v0.9.81.zip": "31e5273253f329746ca2c4dc3f1da47e50a30981759b33056b3174e6474b9e4b", "ShadowBroker_0.9.81_x64-setup.exe": "eca884b9d37eeccd0f11c91dcc6f6ae1b3609d9dee72bd73c37c9a427babfef2", "ShadowBroker_0.9.81_x64_en-US.msi": "a45b177c26c95d2b28d71592d7147e88ff4e104865f214fde11249d311ec9e25" } diff --git a/start.bat b/start.bat index 310d5da..4f670ce 100644 --- a/start.bat +++ b/start.bat @@ -237,6 +237,14 @@ echo [*] Backend Node.js dependencies OK. echo. echo [*] Checking privacy-core shared library... set "PRIVACY_CORE_DLL=%ROOT%\privacy-core\target\release\privacy_core.dll" +:: MSI/EXE installers stage privacy_core.dll directly in backend-runtime/ +:: alongside this script. If somebody runs start.bat from an installed +:: app directory (no source checkout, no Rust toolchain), they shouldn't +:: see a spurious "install Rust" warning because the DLL is right next +:: to them — just at a different path than the source-tree build. +if not exist "%PRIVACY_CORE_DLL%" if exist "%ROOT%\privacy_core.dll" ( + set "PRIVACY_CORE_DLL=%ROOT%\privacy_core.dll" +) if not exist "%PRIVACY_CORE_DLL%" ( where cargo >nul 2>&1 if errorlevel 1 ( diff --git a/start.sh b/start.sh index 2e69390..367574e 100644 --- a/start.sh +++ b/start.sh @@ -203,6 +203,17 @@ echo "" echo "[*] Checking privacy-core shared library..." PRIVACY_CORE_SO="$SCRIPT_DIR/privacy-core/target/release/libprivacy_core.so" PRIVACY_CORE_DYLIB="$SCRIPT_DIR/privacy-core/target/release/libprivacy_core.dylib" +# MSI/AppImage/DMG installers stage the platform-specific shared library +# directly alongside this script (in backend-runtime/). If somebody runs +# start.sh from an installed app dir without Rust, they shouldn't see a +# spurious "install Rust" warning — the library is right next to them, +# just at a different path than the source-tree build. +if [ ! -f "$PRIVACY_CORE_SO" ] && [ -f "$SCRIPT_DIR/libprivacy_core.so" ]; then + PRIVACY_CORE_SO="$SCRIPT_DIR/libprivacy_core.so" +fi +if [ ! -f "$PRIVACY_CORE_DYLIB" ] && [ -f "$SCRIPT_DIR/libprivacy_core.dylib" ]; then + PRIVACY_CORE_DYLIB="$SCRIPT_DIR/libprivacy_core.dylib" +fi if [ ! -f "$PRIVACY_CORE_SO" ] && [ ! -f "$PRIVACY_CORE_DYLIB" ]; then if command -v cargo >/dev/null 2>&1; then echo "[*] Building privacy-core release library..."