Skip to content

ADR-0014: Windows-Editor als NSIS, gebaut von Linux

  • Status: accepted
  • Datum: 2026-08-26
  • Phase: P2
  • Lastenheft: Editor-Desktop (Windows-Nutzer)

Kontext

Der Editor ist Tauri 2. Linux-Bundles entstehen auf dem Entwickler-Host (CachyOS). Das Editor-Repo liegt auf git.nasarek.dev, nicht auf GitHub. Es gibt keinen Windows-CI-Runner und keinen Windows-Build-Rechner als SSOT. Windows-Kollegen brauchen trotzdem einen Installer. MSI/WiX läuft nur auf Windows. Tauri kann NSIS-.exe von Linux mit cargo-xwin erzeugen — offiziell Last-Resort, hier der einzige Weg ohne neuen Host.

Entscheidung

Gate Wahl Warum hier Verworfen
Windows-Installer NSIS .exe Einziger Bundle-Typ, den cargo-xwin auf Linux erzeugt; WebView2-Bootstrapper enthalten MSI/WiX — braucht Windows
Build-Host Linux + scripts/build-windows.sh (cargo-xwin, Target x86_64-pc-windows-msvc) Passt zum bestehenden Host-Toolchain-Editor, kein zweites OS GitHub Actions windows-latest — Repo ist nicht auf GitHub; Gitea ohne Windows-Runner
Signatur Nur Tauri-Updater (minisign), kein Authenticode Updater-Key existiert schon; Code-Signing-Zertifikat fehlt Authenticode jetzt — Kosten/SmartScreen ohne Zertifikat nicht lösbar
Verteilung releases/windows/ + NAS latest.json Plattform windows-x86_64 Gleicher Feed wie Linux GitHub Releases als Updater-Quelle — Feed bleibt linetra.nasarek.dev

Nativer pnpm tauri build auf einem Windows-PC bleibt der bevorzugte Weg, sobald ein solcher Host oder Runner da ist (dann auch MSI). Bis dahin ist NSIS von Linux die ausgelieferte Windows-Variante.

Begründung

Kein Cross-Compile per Hand-Flaggen-Salat: ein Skript kapselt NSIS-Stubs, LLVM-RC, xwin-SDK-Cache und --bundles nsis. Das vermeidet, dass targets: all auf Linux still ein MSI versucht und fehlschlägt.

Verworfene Alternativen

Alternative Warum verworfen
Nur Dokumentation „auf Windows bauen“ Liefert kein Artefakt auf diesem Host
GitHub Actions nur für den Editor Extra-Remote, Secrets-Kopie des Updater-Keys, passt nicht zu git.nasarek.dev
Gitea Actions runs-on: windows-latest Kein Windows-Runner; Job würde hängen
cargo-xwin als Dauer-SSOT auch nach Windows-CI Schwächer getestet als MSVC auf Windows; MSI fehlt

Folgen

./scripts/build-windows.sh im Editor-Repo. Nutzer: NSIS-Setup, möglicher SmartScreen-Hinweis. latest.json braucht einen windows-x86_64-Eintrag, sobald das .exe + .sig auf dem NAS liegen.