8 Commits

Author SHA1 Message Date
9115faa6c8 fix(packaging): harden PyInstaller CLI bundling on Linux and Windows
- Add explicit hidden imports/collect rules for coincurve, bip_utils and src modules
- Introduce Docker smoke tests for hd_generate and p2pkh to fail fast on missing runtime deps
- Refactor cli.py to lazy-load command modules and avoid global startup crashes from optional deps
- Use pseudo-TTY script wrapper for Wine smoke tests to prevent Invalid handle failures
2026-03-10 12:26:19 +01:00
2833c96d51 fix(windows): stabilize Wine build and ship installer + portable exe
- Run Wine as non-root with dedicated WINEPREFIX and tolerate winetricks vcrun2019 failures
- Switch to Python embeddable + offline wheelhouse install for reproducible Windows packaging
- Update PyInstaller flags to bundle coincurve cffi backend and bip_utils data files (HD wallet runtime fix)
- Build both NSIS installer and portable executable; update build output messaging
2026-03-10 11:25:35 +01:00
079ec730db fix(docker): add wine32 to enable 32-bit Wine support for winetricks
winetricks vcrun2019 invokes syswow64/regedit.exe (32-bit PE) which
requires wine32; without it Wine returns c0000135 (STATUS_DLL_NOT_FOUND).
i386 architecture is already added so wine32 installs cleanly
2026-03-10 10:06:15 +01:00
8f399f2194 fix(docker): install winetricks from script, not apt (not in bookworm)
winetricks was removed from Debian bookworm apt repositories;
download it directly from the official GitHub source instead.
Replace winetricks apt package with cabextract (its runtime dep)
2026-03-10 09:48:07 +01:00
f7c108c77f fix(docker): install vcrun2019 via winetricks to fix python.exe c0000135
Python 3.11 requires VCRUNTIME140.dll (VC++ 2019 runtime) which is
not present in the default Wine prefix; without it python.exe fails
with STATUS_DLL_NOT_FOUND (exit code 53).
2026-03-10 09:46:06 +01:00
23e7d70720 fix(docker): add xauth to Windows build image to fix xvfb-run
xvfb-run requires xauth to create the virtual display cookie;
without it the Wine/Python installer step fails with exit code 3
2026-03-10 09:42:42 +01:00
301b7ef0ae feat: add Docker build for Windows NSIS installer via Wine
- contrib/windows/Dockerfile: cross-compile using Wine + xvfb;
  installs Python 3.11 for Windows, builds cli.exe with PyInstaller,
  packages Electron app as NSIS installer
- contrib/windows/build.sh: convenience script to run the Docker build
- frontend/electron/main.cjs: resolve cli.exe on win32, cli on other platforms
- frontend/package.json: add win/nsis target; change extraResources to
  bundle resources/ dir so each platform picks its own binary
2026-03-10 09:24:35 +01:00
0a81f0db23 feat(linux): bundle Python CLI and fix Electron packaged build
- contrib/linux/Dockerfile: add libpython3.11 + PyInstaller to build
  standalone cli binary; fix venv isolation via .dockerignore
- frontend/electron/main.cjs: use bundled cli binary in prod via
  process.resourcesPath, fallback to venv/python3 in dev
- frontend/package.json: add extraResources for cli binary,
  set output dir to release/
- frontend/vite.config.js: set base './' for file:// protocol in prod
- .dockerignore: exclude venv/, node_modules/, dist/, .git/
- .gitignore: ignore release/ output directories
2026-03-10 09:00:27 +01:00