Needed by https://store.steampowered.com/app/1138210/Esperia__Uprising_of_the_Scarlet… demo (and presumably the full game too); without this, it throws a message box saying No Interface | 1 | 88990028 on first entry to any combat (the 1 varies depending on which specific effect is unimplemented), then segfaults if any character gets a critical hit (those are prefixed with a bar showing the character's eyes).
Even with these stubs, the game looks glitched when getting a crit, but better ugly than segfault.
The game also needs Color Matrix, Gaussian Blur and Flood effects relative to Proton 10, but those three were already stubbed in Wine 10.n.
--
v2: d2d1: Add Saturation effect stub
d2d1: Add Hue Rotation effect stub
d2d1: Add Directional Blur effect stub
d2d1: Add Brightness effect stub
d2d1: Add Blend effect stub
https://gitlab.winehq.org/wine/wine/-/merge_requests/9558
Needed by https://store.steampowered.com/app/1138210/Esperia__Uprising_of_the_Scarlet… demo (and presumably the full game too); without this, it throws a message box saying No Interface | 1 | 88990028 on first entry to any combat (the 1 varies depending on which specific effect is unimplemented), then segfaults if any character gets a critical hit (those are prefixed with a bar showing the character's eyes).
Even with these stubs, the game looks glitched when getting a crit, but better ugly than segfault.
The game also needs Color Matrix, Gaussian Blur and Flood effects relative to Proton 10, but those three were already stubbed in Wine 10.n.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/9558
To reproduce:
- `unshare -Upf ./wine cmd`
- (in another terminal) `unshare -Upf ./wine not-a-command`
The first terminal will now go completely unresponsive, until you kill -9 the relevant start.exe from the second terminal.
Root cause analysis: In the first Wine, wineserver gets Unix pid 3 in its namespace. (And a different pid in the root namespace, but no relevant process sees that.)
In the second Wine, not-a-command gets Unix pid 3 in its namespace, and sends it to wineserver.
When not-a-command notices it doesn't exist and exits, wineserver checks if pid 3 did indeed exit, and SIGKILLs it if not. But since that pid is from wrong namespace, wineserver ends up killing itself instead.
While this only happens in badly configured sandboxes, such things do exist in the wild. https://github.com/flathub/org.winehq.Wine/issues/41
The real solution would be either fixing the sandbox config, or making Wine use pidfds instead of pids, but former is out of our control, and latter would be a lot of effort and ifdefs (and unlikely to work, there's no process_vm_readv for pidfds).
The second commit only blocks cases where wineserver exists in ntdll's namespace, but not the other way round. It's a much rarer case than having the processes in mutually-inaccessible sibling namespaces, it's a much bigger patch than the ntdll side, and the error is detected at wrong side (meaning it can't print a friendly error). I'm not sure if it's worth keeping.
--
v2: server: Reject clients from wrong pid namespace
https://gitlab.winehq.org/wine/wine/-/merge_requests/9553
Control display of progress dialog with CAP_INDICATORS.
Use PeekMessage/DispatchMessage loop while scanning. Display some informations on scan job in progress dialog.
If ADF is enabled and not filled with paper, display an error message to the user and allow a retry.
Also displays paper jammed message and cover open message.
Added german translation for the new error messages and progress dialog controls.
{width=389 height=320}
Error message display are controlled with CAP_INDICATORS if Data Source UI is not shown.
--
v4: dlls/sane.ds: Display message if ADF is empty in ADF scan
https://gitlab.winehq.org/wine/wine/-/merge_requests/9530