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.