Repository navigation
fix(wine): make setup detect a provisioned prefix - #23
Merged
Merged
Conversation
Two defects made `uur setup` fail on a fully installed prefix. 1. The service check matched `gameviewerserver.exe`, but the Windows service NetEase registers uses `GameViewerService.exe` as its ImagePath. `GameViewerServer.exe` is the streaming server and never appears in the service registration, so `client_service_registered` and `query_client_service` always returned false. A completed install was reported as "GameViewerService has no valid registered executable" and setup re-downloaded and re-installed every run. Both checks now share one `SERVICE_IMAGE` constant, and the `system.reg` parse is factored into a pure `service_image_path` helper so it is testable without a Wine prefix. 2. `wineboot --init` returns before wineserver flushes `system.reg`/`user.reg` to disk (measured ~7s on Wine 11), so a freshly created prefix was misread as uninitialized and setup aborted with "Wine prefix initialization failed (exit status: 0)". Added a bounded `flush_prefix` barrier that waits for `wineserver -w` to return, then polls for the registry files. Verified on Wine 11.19: a clean install into an isolated prefix succeeds end to end, re-running setup takes the already-provisioned fast path, and `setup --repair` verifies without reinstalling.
Contributor
Author
|
need review again |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two defects made
uur setupfail on a fully installed prefix.The service check matched
gameviewerserver.exe, but the Windows service NetEase registers usesGameViewerService.exeas its ImagePath.GameViewerServer.exeis the streaming server and never appears in the service registration, soclient_service_registeredandquery_client_servicealways returned false. A completed install was reported as "GameViewerService has no valid registered executable" and setup re-downloaded and re-installed every run.Both checks now share one
SERVICE_IMAGEconstant, and thesystem.regparse is factored into a pureservice_image_pathhelper so it is testable without a Wine prefix.wineboot --initreturns before wineserver flushessystem.reg/user.regto disk (measured ~7s on Wine 11), so a freshly created prefix was misread as uninitialized and setup aborted with "Wine prefix initialization failed (exit status: 0)". Added a boundedflush_prefixbarrier that waits forwineserver -wto return, then polls for the registry files.Verified on Wine 11.19: a clean install into an isolated prefix succeeds end to end, re-running setup takes the already-provisioned fast path, and
setup --repairverifies without reinstalling.