spike(LC-131): Windows installer from Linux via NSIS #225
Loading…
Reference in a new issue
No description provided.
Delete branch "spike/lc-131-nsis-from-linux"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Spike for LC-131: prove the Windows installer can be built from Linux with NSIS, replacing the parked native-Windows-runner plan (LC-138, now closed won't-fix).
Why
The raw
lets-chat-desktop.exealready cross-builds from Linux (mingwx86_64-pc-windows-gnu,Dockerfile.desktop-windows) and ships via the auto-updater. Only the first-install installer was missing, andcargo tauri build --bundles msi|nsisis hard-gated to a Windows host - the sole reason LC-138 existed.makensis(the NSIS compiler) has a native Linux build, so a Linux container can compile a Windows installer with no Windows host and no wine.What's here
desktop/installer/lets-chat.nsi- Program Files install, Start-Menu shortcut, uninstaller + Add/Remove Programs entry, WebView2-runtime check (warns if absent), optional autostart. Parameterized.ci-build/Dockerfile.desktop-windows-installer- standalonedebian:trixie-slim+nsisstage that wraps the cross-built exe (staged in the build context) intolets-chat-desktop-setup-x86_64.exe. Kept separate from the existing windows Dockerfile/workflow so nothing currently shipping is disturbed.desktop/installer/README.md- build flow + remaining work.Proof (this branch, on Linux)
makensis v3.11(Debian trixie) compiled the script and the Dockerfile produced a valid ~160 KBPE32 ... Nullsoft Installer self-extracting archive, extractable viadocker create+docker cpexactly as the release workflow extracts the raw.exe. Linux-only toolchain confirmed viable.Not in this spike (tracked in LC-131 for full implementation)
build-desktop-windows.yml(extract raw exe -> build installer image -> publish the setup.exeto Generic Packages).osslsigncode.Spike branch - merge optional; the artifacts are the foundation for the LC-131 implementation.