feat(windows): bundle PixelPass viewer
This commit is contained in:
+19
-10
@@ -3,11 +3,12 @@
|
||||
This directory builds a Windows setup installer for PeerSpeak using
|
||||
[Inno Setup](https://jrsoftware.org/isinfo.php).
|
||||
|
||||
PeerSpeak ships as a **single self-contained `peerspeak.exe`** — the GUI icon,
|
||||
notification chimes, and avatar presets are all embedded in the binary
|
||||
PeerSpeak itself is a **self-contained `peerspeak.exe`** — the GUI icon,
|
||||
notification chimes, and avatar presets are embedded in the binary
|
||||
(`include_bytes!`), and the executable is statically linked against the GNU
|
||||
runtime, so there are no extra DLLs to bundle. The installer payload is just the
|
||||
`.exe` plus an `.ico` for the Start-menu / desktop shortcuts.
|
||||
runtime. The installer also bundles the matching viewer-only `pixelpass.exe`,
|
||||
which lets Windows participants watch shares hosted by Linux. VLC or mpv is
|
||||
still required to render the received stream.
|
||||
|
||||
## Version compatibility
|
||||
|
||||
@@ -30,6 +31,7 @@ per-peer noise-gate release; it cannot connect to a 0.2.x peer.)
|
||||
| `peerspeak.ico` | yes | multi-resolution app icon (from `assets/icons/*.png`) |
|
||||
| `README.md` | yes | this file |
|
||||
| `peerspeak.exe` | no (gitignored) | staged build artifact, copied from `target/x86_64-pc-windows-gnu/release/` |
|
||||
| `pixelpass.exe` | no (gitignored) | matching staged Windows viewer from the PixelPass repository |
|
||||
| `output/peerspeak-<ver>-setup.exe` | no (gitignored) | the compiled installer |
|
||||
|
||||
## Build steps
|
||||
@@ -45,12 +47,19 @@ per-peer noise-gate release; it cannot connect to a 0.2.x peer.)
|
||||
installed in that toolchain. The result is a statically-linked,
|
||||
GUI-subsystem `.exe` (no stray console window).
|
||||
|
||||
2. **Stage the binary** next to the script:
|
||||
2. **Cross-compile PixelPass's Windows viewer** from the matching PixelPass
|
||||
source, then stage both binaries next to the script:
|
||||
|
||||
```sh
|
||||
cp target/x86_64-pc-windows-gnu/release/peerspeak.exe packaging/windows/
|
||||
cp ../pixelpass/target/x86_64-pc-windows-gnu/release/pixelpass.exe \
|
||||
packaging/windows/
|
||||
```
|
||||
|
||||
PixelPass may use a separate target directory on low-space builders; copy
|
||||
the final `pixelpass.exe` from that directory instead. Do not substitute an
|
||||
older helper without re-running the ticket/viewer compatibility test.
|
||||
|
||||
3. **Regenerate the icon** if the source PNGs changed:
|
||||
|
||||
```sh
|
||||
@@ -71,12 +80,12 @@ per-peer noise-gate release; it cannot connect to a 0.2.x peer.)
|
||||
|
||||
## What the installer does
|
||||
|
||||
- Installs `peerspeak.exe` to `Program Files\PeerSpeak` (requires admin / one
|
||||
UAC prompt).
|
||||
- Installs `peerspeak.exe` and the matching `pixelpass.exe` to
|
||||
`Program Files\PeerSpeak` (requires admin / one UAC prompt).
|
||||
- Creates a Start-menu shortcut, with an optional desktop shortcut.
|
||||
- Optionally adds a Windows Firewall allow-rule for PeerSpeak (recommended —
|
||||
iroh uses UDP hole-punching, so this avoids a mid-call firewall prompt). The
|
||||
rule is removed on uninstall.
|
||||
- Optionally adds idempotent Windows Firewall allow-rules for PeerSpeak and
|
||||
PixelPass (recommended — both use iroh/QUIC). The rules are replaced on
|
||||
upgrade and removed on uninstall.
|
||||
- Provides a standard uninstaller.
|
||||
|
||||
> **Note:** the installer and the binary are **not code-signed**, so Windows
|
||||
|
||||
Reference in New Issue
Block a user