Skip to content

Conversation

@ReenigneArcher
Copy link
Member

@ReenigneArcher ReenigneArcher commented May 26, 2025

Description

This PR adds a WIX installer for Sunshine. The NSIS installer will be removed at a later point after any bugs with the WIX installer are ironed out.

This is a requirement for having an ARM64 installer for #3905 or #3369

TODO:

  • custom actions are not running
  • shortcut is not created
  • vigembus installer won't run because we're already running an msi installer... proposed solution: feat(windows): add ViGEmBus driver management API and UI integration #4625
  • application icon not showing in installed apps screen
  • fix start menu directory structure
  • should we hide cmd/powershell windows?
  • document process for migrating from old installer to new one

For first release after this is merged, we will keep both exe and msi, so that the winget automation will still work to auto update winget. We will then to update winget manually to use the msi

Screenshot

Issues Fixed or Closed

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Dependency update (updates to dependencies)
  • Documentation update (changes to documentation)
  • Repository update (changes to repository files, e.g. .github/...)

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated the in code docstring/documentation-blocks for new or existing methods/components

@ReenigneArcher ReenigneArcher force-pushed the feat/installer/windows/add-wix-installer branch 4 times, most recently from 14ce5ed to f20af0e Compare May 27, 2025 00:11
@codecov
Copy link

codecov bot commented May 27, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 15.45%. Comparing base (f59e6aa) to head (e18cc13).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3916      +/-   ##
==========================================
- Coverage   15.49%   15.45%   -0.05%     
==========================================
  Files          94       94              
  Lines       19248    19248              
  Branches     8907     8907              
==========================================
- Hits         2982     2974       -8     
- Misses      12868    14975    +2107     
+ Partials     3398     1299    -2099     
Flag Coverage Δ
Archlinux 11.60% <ø> (ø)
FreeBSD-14.3-aarch64 ?
FreeBSD-14.3-amd64 13.73% <ø> (-0.01%) ⬇️
Homebrew-ubuntu-22.04 13.91% <ø> (ø)
Linux-AppImage 11.93% <ø> (ø)
Windows-AMD64 13.49% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 47 files with indirect coverage changes

@codecov
Copy link

codecov bot commented May 27, 2025

Bundle Report

Bundle size has no change ✅

@ReenigneArcher ReenigneArcher force-pushed the feat/installer/windows/add-wix-installer branch 5 times, most recently from 9e4b955 to 6ef5e6e Compare May 27, 2025 02:01
@sonarqubecloud
Copy link

@cgutman
Copy link
Collaborator

cgutman commented Jun 13, 2025

The latest NSIS version now runs properly on ARM64 systems, so we can stick with NSIS if we want. WiX does make it easier to support having a single unified installer for both x64 and ARM64 binaries if we want that.

@ReenigneArcher
Copy link
Member Author

Good to know. I still need to setup a VM to test this out.

I think msi would still be nice to use, especially for anyone installing Sunshine with a script as it supports more CLI options. I discovered in a recent change that I couldn't even get the output of the installer scripts to a log file with NSIS.

Do you know the process for unifying the installer? That would be pretty nice.

@ReenigneArcher ReenigneArcher added this to the stable release milestone Jul 1, 2025
@ReenigneArcher ReenigneArcher force-pushed the feat/installer/windows/add-wix-installer branch 10 times, most recently from c3efb02 to 07c0044 Compare July 4, 2025 22:17
@ReenigneArcher ReenigneArcher added the help wanted Extra attention is needed label Jul 4, 2025
@ReenigneArcher ReenigneArcher added roadmap This PR closes a roadmap entry ai PR has signs of heavy ai usage (either indicated by user or assumed) labels Jul 17, 2025
@ReenigneArcher ReenigneArcher force-pushed the feat/installer/windows/add-wix-installer branch from 07c0044 to 805e270 Compare October 6, 2025 22:09
@LizardByte-bot

This comment was marked as outdated.

@ReenigneArcher ReenigneArcher force-pushed the feat/installer/windows/add-wix-installer branch 2 times, most recently from 46f307b to b57a26e Compare January 24, 2026 18:37
@ReenigneArcher ReenigneArcher removed the help wanted Extra attention is needed label Jan 24, 2026
@LizardByte LizardByte deleted a comment from sonarqubecloud bot Jan 24, 2026
@LizardByte LizardByte deleted a comment from sonarqubecloud bot Jan 24, 2026
@ReenigneArcher ReenigneArcher force-pushed the feat/installer/windows/add-wix-installer branch 2 times, most recently from a348849 to a6dbf17 Compare January 24, 2026 20:35
Replaces custom-actions.wxs and custom-shortcuts.wxs with sunshine-installer.wxs, consolidating custom actions and shortcut definitions. Adds patch.xml for WiX patching. Updates windows_wix.cmake to use new resource files, install the WiX Util extension, and adjust build directories. This streamlines and modernizes the Windows installer packaging process.
Remove CA_GamepadInstall and CA_GamepadUninstall custom actions from the WiX installer and update the InstallExecuteSequence accordingly. ServiceInstall is now run after FirewallAdd, and RestoreNvPrefs now runs after ServiceUninstall. This removes the PowerShell-based gamepad install/uninstall steps and fixes the action ordering to avoid references to the removed actions.
@ReenigneArcher ReenigneArcher force-pushed the feat/installer/windows/add-wix-installer branch from a6dbf17 to e18cc13 Compare February 1, 2026 00:12
@sonarqubecloud
Copy link

sonarqubecloud bot commented Feb 1, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai PR has signs of heavy ai usage (either indicated by user or assumed) roadmap This PR closes a roadmap entry

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Sunshine: change windows installer to WiX

4 participants