From e63aba69599ecc2513991a551472c25cf755ee74 Mon Sep 17 00:00:00 2001 From: DanS Date: Wed, 10 Jun 2026 17:23:53 -0500 Subject: [PATCH] fix(build): embed xmrig in the Windows exe (extract it from the published zip) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The wallet is meant to ship xmrig embedded (HAS_EMBEDDED_XMRIG -> getXmrigPath() extracts it at runtime), but build.sh only embedded a flat prebuilt-binaries/xmrig-hac/xmrig.exe — while the published DRG-XMRig archive ships the binary inside a versioned subdir (drg-xmrig-6.25.3-win-x64/xmrig.exe). So xmrig.exe was never present, HAS_EMBEDDED_XMRIG stayed undefined, and the Windows wallet ran with no miner: "xmrig binary not found", pool mining and the thread benchmark both fail. build.sh now extracts xmrig.exe (flattened) from the matching win-x64 zip when a raw binary isn't already staged, so the existing embed step fires. (Checks the extracted file rather than unzip's exit code, which is non-zero when a glob matches nothing.) Verified: --win-release now logs "Extracted xmrig.exe", stages it (6.7M), and defines HAS_EMBEDDED_XMRIG=1. Co-Authored-By: Claude Opus 4.8 --- build.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/build.sh b/build.sh index c107a4d..c3ea180 100755 --- a/build.sh +++ b/build.sh @@ -630,6 +630,24 @@ HDR # ── xmrig binary (from prebuilt-binaries/xmrig-hac/) ──────────────── local XMRIG_DIR="$SCRIPT_DIR/prebuilt-binaries/xmrig-hac" + # The published DRG-XMRig archives ship the binary inside a versioned subdir, not as a flat + # xmrig.exe. Extract it from the matching win-x64 zip if it isn't already staged — otherwise + # the embed below never fires (HAS_EMBEDDED_XMRIG stays undefined) and the wallet ships with + # no miner ("xmrig binary not found" at runtime). + if [[ ! -f "$XMRIG_DIR/xmrig.exe" ]]; then + local _xz; _xz=$(ls "$XMRIG_DIR"/drg-xmrig-*-win-x64.zip 2>/dev/null | head -1) + if [[ -n "$_xz" ]] && command -v unzip >/dev/null 2>&1; then + local _xtmp; _xtmp=$(mktemp -d) + # -j flattens the versioned subdir; check the file (not unzip's exit code, which is + # non-zero if a pattern matches nothing). + unzip -j -o "$_xz" '*xmrig.exe' -d "$_xtmp" >/dev/null 2>&1 || true + if [[ -f "$_xtmp/xmrig.exe" ]]; then + cp -f "$_xtmp/xmrig.exe" "$XMRIG_DIR/xmrig.exe" + info " Extracted xmrig.exe from $(basename "$_xz")" + fi + rm -rf "$_xtmp" + fi + fi if [[ -f "$XMRIG_DIR/xmrig.exe" ]]; then cp -f "$XMRIG_DIR/xmrig.exe" "$RES/xmrig.exe" info " Staged xmrig.exe ($(du -h "$XMRIG_DIR/xmrig.exe" | cut -f1))"