Bump to 0.6.3 and document the screen-share work merged on this branch: the advanced Settings section + per-call quality picker (96e41de), the hardware-decode-defaults-off frame-1 freeze fix (96e41de), the per-call quality override fix (e378b2e), and the VLC-honors-viewer-settings fix (faad8ce). All local-only — no wire-protocol change, old configs load unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PeerSpeak — Windows installer
This directory builds a Windows setup installer for PeerSpeak using Inno Setup.
PeerSpeak ships as a single self-contained peerspeak.exe — the GUI icon,
notification chimes, and avatar presets are all 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.
Version compatibility
The installer version tracks the release version in Cargo.toml — keep
MyAppVersion in peerspeak.iss in sync when cutting a release. Do not reuse an
old installer filename after a crate-version bump.
Per VERSIONING.md, a MINOR bump in 0.x is a breaking wire change:
peers on different MINOR versions can't connect (they fail fast at the
handshake rather than misbehaving). So when you ship a new Windows build after
a MINOR bump, everyone on the call must reinstall — an old Windows build
and a newer Linux/Windows peer won't talk. (0.3.0 was the chat file-sharing +
per-peer noise-gate release; it cannot connect to a 0.2.x peer.)
Files
| File | Tracked | Purpose |
|---|---|---|
peerspeak.iss |
yes | Inno Setup script |
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/ |
output/peerspeak-<ver>-setup.exe |
no (gitignored) | the compiled installer |
Build steps
-
Cross-compile the Windows binary (from the repo root, inside the
peerspeak-winarchlinux distrobox):RUSTC_BOOTSTRAP=1 ./win-cross-build.sh -Z build-std=std,panic_abortThis needs the
rust-srccomponent and thex86_64-pc-windows-gnutarget installed in that toolchain. The result is a statically-linked, GUI-subsystem.exe(no stray console window). -
Stage the binary next to the script:
cp target/x86_64-pc-windows-gnu/release/peerspeak.exe packaging/windows/ -
Regenerate the icon if the source PNGs changed:
magick assets/icons/peerspeak-16.png assets/icons/peerspeak-24.png \ assets/icons/peerspeak-32.png assets/icons/peerspeak-48.png \ assets/icons/peerspeak-64.png assets/icons/peerspeak-128.png \ assets/icons/peerspeak-256.png packaging/windows/peerspeak.ico -
Compile the installer with Inno Setup. On Linux this runs under Wine:
cd packaging/windows wine ~/.wine/drive_c/InnoSetup6/ISCC.exe peerspeak.issThe installer lands at
output/peerspeak-<version>-setup.exe.
What the installer does
- Installs
peerspeak.exetoProgram 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.
- Provides a standard uninstaller.
Note: the installer and the binary are not code-signed, so Windows SmartScreen will show an "unknown publisher" warning on first run. The user clicks More info → Run anyway. Removing this warning requires a paid code-signing certificate.