fix(release): CI starts the Windows launcher under Wine from a build that unpacks itself, so the uncompressed launcher builds again #37
No reviewers
Labels
No labels
area/build
area/install
area/saves
area/ui
area/updates
good first issue
gpu/amd
gpu/intel
gpu/nvidia
help wanted
kind
bug
kind
chore
kind
docs
kind
feature
kind
performance
kind
question
platform/linux
platform/steam-deck
platform/windows
priority
critical
priority
high
priority
low
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/LongshotLauncher!37
Loading…
Reference in a new issue
No description provided.
Delete branch "HumanBean/LongshotLauncher:fix/wine-self-check"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
No launcher has been released since PR 32: every build since then fails at CI's Wine
--self-check, so neither nightlies norv1.0.0-rc.3can be published. Wine can't load the uncompressed single-file program. This PR keeps the program uncompressed (PR 32's antivirus fix) and changes what CI starts under Wine.What changed
scripts/package.sh: withWINE_CHECK_EXE=<path>, it also publishes the Windows program with-p:IncludeAllContentForSelfExtract=true, the same code built to unpack itself to disk at start, and writes it to that path. It isn't put in the release.publish()now takes its output folder.release.yml: the build job setsWINE_CHECK_EXEto$RUNNER_TEMP/wine-check/LongshotLauncher.exeand starts that file under Wine instead of the shipped setup.Why the shipped file can't be checked under Wine
An uncompressed .NET single file has its assemblies mapped straight from the bundle. Wine refuses that mapping:
That's from run 125's build job. The compressed program worked under Wine only because it decompressed into memory. Uncompressed single-file is .NET's default and is expected to work on real Windows, but nobody has started the uncompressed program on Windows yet. That needs a Windows tester before the next rc is tagged.
Testing
scripts/package.sh nightly-test-winecheck <dir>withWINE_CHECK_EXEset, on Linux with the .NET 10 SDK: builds all three files and the check program (the same 106 MB setup as before; the check program is the same size with a different SHA-256).winepackage (the same as CI's step):setup.exe --self-check: the0x8007046Cfailure above, the same as CI;--self-check:LongshotLauncher nightly-test-winecheck.python -I tests/test_launcher_core.py --longshot <Longshot checkout>: 634 checks passed.python -I tests/test_release.py: OK.bash -n scripts/package.sh: OK.setup.exeon real Windows. The merge's nightly is the first published build of it.🤖 Generated with Claude Code