UltraStar-Deluxe / USDX

The free and open source karaoke singing game UltraStar Deluxe, inspired by Sony SingStar™
https://usdx.eu
GNU General Public License v2.0
832 stars 160 forks source link

Installer error, probably UAC-related #647

Closed barbeque-squared closed 1 year ago

barbeque-squared commented 1 year ago

When trying to run a self-compiled installer, I get an error after the UAC prompt.

Actual behaviour

An error dialog pops up. Window title = UltraStar Deluxe 2020.4.0 Dev Setup Error message = Unable to elevate, error 0:\Users\[REDACTED]\AppData\Local\Temp\ns[a-z][4-numbers].tmp

When opening the directory it contains just a single file: UAC.dll

After closing the first popup, it actually opens a second identical one, except the path it reports is slightly different. The directory it reports again contains just a single UAC.dll.

After closing the second, the installer process goes away entirely.

Expected behaviour

???

Steps to reproduce

  1. Make the installer (makensis "installer/UltraStar Deluxe.nsi")
  2. Run the generated installer
  3. Get the UAC prompt
  4. Click Yes

Details

Trying to run the updater causes the same issue.

I did change line 13 in the UltraStar Deluxe.nsi to read !makensis Update.nsi instead of what it was before (but I doubt this has any relation with UAC).

This blocks #644 (and thus also actually doing a release).

basisbit commented 1 year ago

Can not reproduce. Building the nsis installer on Windows with Nsis 3.0.8 works fine here and the result has all the DLLs, exe and so on. Please extend the issue description by what you expect to happen and what you did do before.

barbeque-squared commented 1 year ago

Alright, I've compared a working 2020.4.0 installer with my self-compiled installer: 2023-02-07-192304_1036x957_scrot Left side = working, right side = broken I've filtered it to only show differences and collapsed the languages/resources/themes directories, as I suspect these aren't relevant.

$PLUGINSDIR also contains the UAC.dll in both versions (not shown in picture because they're identical)

But what immediately jumps out to me is three things:

Is this normal? Especially the lack of an Uninstall.exe? Also: /installer/settings/files_main_uninstall.nsh:66 references pcre3.dll, but I couldn't find a file like that in git.

barbeque-squared commented 1 year ago

I spent some time yesterday, also tried a newer version of https://nsis.sourceforge.io/UAC_plug-in but I keep getting the same error. It's probably something on my PC, but I have no idea what.

I can build the installer just fine, it's just impossible for me to test if it actually works. Do I need to supply the installer when doing a release? If yes, can someone test it if I attach mine here? Alternatively it needs to be built automatically, because I do not want to be dependent on too many people for releases (Mac is currently the exception as I just don't have the hardware).

s09bQ5 commented 1 year ago

Can't we use Travis or AppVeyor to build the release installer?

barbeque-squared commented 1 year ago

@s09bQ5 I created #652 to maybe hopefully fix this. beware that it'll create bigger .exe's than it did in the past (I disabled compression for devbuilds, it makes the .exe generation about 100 times faster -- release builds will still use proper compression) but assuming the jobs actually pass, it'll be a win anyway:

barbeque-squared commented 1 year ago

I merged #652, for the jobs work and the installer it generates also actually works. Obviously something must be different somewhere, but I can't be bothered to figure it out because as long as there's a working Windows installer somewhere, awesome.