Files
peerspeak/packaging/windows
molluskandClaude Opus 4.8 a30d9d5dbf
cargo-deny / cargo-deny (push) Has been cancelled
windows-build / windows-build (push) Has been cancelled
Add plain-English Windows install/join guide for end users
A non-technical walkthrough to send alongside the installer: covers the
SmartScreen "unknown publisher" warning, the firewall/desktop-shortcut
checkboxes, and joining/creating a call via room tickets. Uses the actual UI
labels (Join Room / Create New Room / Copy Ticket / Leave Room).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 16:46:07 -04:00
..

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.

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

  1. Cross-compile the Windows binary (from the repo root, inside the peerspeak-win archlinux distrobox):

    RUSTC_BOOTSTRAP=1 ./win-cross-build.sh -Z build-std=std,panic_abort
    

    This needs the rust-src component and the x86_64-pc-windows-gnu target 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:

    cp target/x86_64-pc-windows-gnu/release/peerspeak.exe packaging/windows/
    
  3. 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
    
  4. Compile the installer with Inno Setup. On Linux this runs under Wine:

    cd packaging/windows
    wine ~/.wine/drive_c/InnoSetup6/ISCC.exe peerspeak.iss
    

    The installer lands at output/peerspeak-<version>-setup.exe.

What the installer does

  • Installs peerspeak.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.
  • 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.