Mostly to avoid polluting other logs and artifacts, and also to avoid
recompiling crosstests over and over.
--
v3: ci: Wrap complex commands in CI scripts.
ci: Build crosstests with -Wno-array-bounds.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/359
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52665
I'm unsure how to add tests for this given it requires an app to be installed via MSIX to get a package ID in Windows otherwise `IPackageStatics::get_Current()` returns `0x80073d54`.
--
v7: windows.applicationmodel: Implement IStorageItem::get_Path().
windows.applicationmodel/tests: Add IStorageItem::get_Path() tests.
windows.applicationmodel: Add IStorageItem stub interface.
windows.applicationmodel: Implement IPackage::get_InstalledLocation().
windows.applicationmodel: Implement IPackageStatics::get_Current().
windows.applicationmodel: Add IPackageStatics stub interface.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3548
Find only supports one Column to filter on.
The parser for this will be the same for both Find/Filter with the only different
is the Filter supports multiple columns.
In trying to keep this patch small, only WSTR/BSTR/Integer have been supported. (The Common cases).
--
v3: msado15: Implement _Recordset Find
https://gitlab.winehq.org/wine/wine/-/merge_requests/2498
On Fri Sep 22 06:50:36 2023 +0000, Aidan Khoury wrote:
> `RtlImageNtHeader` lacks proper image boundary checks for e_lfanew, so
> using it in this case is not safe.
this raises the questions does native ntdll.RtlImageHeader check for e_lfanew being within image boundary? if so, it builtin implementation has to be fixed (with test case please)
and if it doesn't you can still add the check on RtlImageHeader's returned value
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870#note_46285
On Thu Sep 21 20:03:38 2023 +0000, Aidan Khoury wrote:
> No, but if you supply invalidly formed images to the mspatcha.dll APIs
> it will raise an exception with code 0xE0000001. I made this a separate
> function so I could mark it as `DECLSPEC_NORETURN`.
(my question was unclear: I meant does native throw this exception?)
what does native do if the exception is continued? (I doubt this helper can be DECLSPEC_NOTRETURN)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870#note_46284
> What about If I changed the commit message to winmm: MCI_MapMsgAtoW return error code directly instead of a boolean.
That's my point: it doesn't currently return a boolean, it returns a tri-state. One of those values tells the caller to skip calling `MCI_UnmapMsgAtoW()`. Your change gets rid of this.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3854#note_46283
This goes on top of MR 320 and 345.
--
v6: tests/shader-runner: Add a '--dump-dxil' command line switch.
tests/shader-runner: Test shaders with dxcompiler.
tests/shader-runner: Replace immediate shader type strings with an enum.
tests/shader-runner: Do not exit if a 'require' directive is not met.
tests/shader-runner: Handle individual keywords in shader directives.
vkd3d-shader/dxil: Implement DX instruction LoadInput.
vkd3d-shader/dxil: Declare shader inputs.
vkd3d-shader/dxbc: Load input signatures also from ISG1 chunks.
vkd3d-shader/spirv: Build undefined values once.
vkd3d-shader/spirv: Introduce a Static Single Assignment register type.
vkd3d-shader/d3d-asm: Trace undefined registers.
vkd3d-shader: Make the paramater allocator slab size at least MAX_REG_OUTPUT.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/346
These are the tests from !3367 (Defer listens on addresses currently bound first by another socket). The tests marked `todo_wine` rely on a more accurate implementation of `SO_REUSEADDR`.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3921
Windows 10 [received support](https://devblogs.microsoft.com/commandline/af_unix-comes-to-window… for AF_UNIX sockets in Insider Build 17063. This merge request adds basic support for AF_UNIX sockets to ws2_32 and wineserver.
Of particular note is the difficulty in handling `sun_path`. Most of the functions that allow for translating Windows paths to Unix paths are not accessible from ws2_32. I considered the following options:
* Pass the Windows path to wineserver and do the conversion there.
* This is, as far as I can tell, not possible without major rearchitecting. wineserver does not have functions to translate Windows paths to Unix paths, for obvious reasons.
* Obtain the current working directory of the requesting process and temporarily change directories to there.
* This only handles relative paths and fails for absolute paths, UNC paths, etc.
* Conditionally change directories based on whether the path is relative or not.
* This is error-prone and wineserver does not have the requisite functions to do this cleanly.
I ultimately decided to pass the translated Unix path to wineserver, which changes directories to `dirname(path)`. It then provides `bind` and `connect` with `basename(path)`. This is not threadsafe, but wineserver is not (currently) multithreaded.
Abstract sockets are not fully supported by this patch, matching the behavior of Windows.
--
v59: ws2_32/tests: Add test for AF_UNIX sockets.
server: Fix getsockname() and accept() on AF_UNIX sockets.
server: Introduce error when attempting to create a SOCK_DGRAM AF_UNIX socket.
server: Allow for deletion of socket files.
ws2_32: Add support for AF_UNIX sockets.
ws2_32: Add afunix.h header.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2786
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v2: d3d10/effect: Add signed integer compare instructions for expressions.
d3d10/effect: Implement instructions used for signed integer division.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3896
On Thu Sep 21 20:34:12 2023 +0000, Aidan Khoury wrote:
> I can for this, but we also need to check if it's a 32-bit image since
> patch transforms are never applied to 64-bit images
`RtlImageNtHeader` lacks proper image boundary checks for e_lfanew, so using it in this case is not safe.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870#note_46247
This clears up much of the todo list for mspatcha. GetFilePatchSignature* and NormalizeFileForPatchSignature have now been implemented in these changes.
These changes bring better support for things like the Adobe Acrobat installer without the need for things like the winetricks mspatcha.dll native dll override. Still needed is support for interleaved streams in the LZXD decompression logic, however this is a great start to better supporting software installers that use the Windows interface for creating and applying patches to files.
This is the beginning of the fixes required for bug 12501: https://bugs.winehq.org/show_bug.cgi?id=12501
--
v32: mspatcha: Use unaligned typedefs for basic types
mspatcha: Use string comparison for section names
mspatcha: Add support for 32-bit file image patch transforms
mspatcha: Add implementations for GetFilePatchSignature* routines
mspatcha: Add support for 32-bit file normalization
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870
This clears up much of the todo list for mspatcha. GetFilePatchSignature* and NormalizeFileForPatchSignature have now been implemented in these changes.
These changes bring better support for things like the Adobe Acrobat installer without the need for things like the winetricks mspatcha.dll native dll override. Still needed is support for interleaved streams in the LZXD decompression logic, however this is a great start to better supporting software installers that use the Windows interface for creating and applying patches to files.
This is the beginning of the fixes required for bug 12501: https://bugs.winehq.org/show_bug.cgi?id=12501
--
v31: mspatcha: Use unaligned typedefs for basic types
mspatcha: Use string comparison for section names
mspatcha: Relocate PE/COFF image functions
mspatcha: Add support for 32-bit file image patch transforms
mspatcha: Add implementations for GetFilePatchSignature* routines
mspatcha: Add support for 32-bit file normalization
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870
This clears up much of the todo list for mspatcha. GetFilePatchSignature* and NormalizeFileForPatchSignature have now been implemented in these changes.
These changes bring better support for things like the Adobe Acrobat installer without the need for things like the winetricks mspatcha.dll native dll override. Still needed is support for interleaved streams in the LZXD decompression logic, however this is a great start to better supporting software installers that use the Windows interface for creating and applying patches to files.
This is the beginning of the fixes required for bug 12501: https://bugs.winehq.org/show_bug.cgi?id=12501
--
v30: mspatcha: Use unaligned typedefs for basic types
mspatcha: Use string comparison for section names
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870
This clears up much of the todo list for mspatcha. GetFilePatchSignature* and NormalizeFileForPatchSignature have now been implemented in these changes.
These changes bring better support for things like the Adobe Acrobat installer without the need for things like the winetricks mspatcha.dll native dll override. Still needed is support for interleaved streams in the LZXD decompression logic, however this is a great start to better supporting software installers that use the Windows interface for creating and applying patches to files.
This is the beginning of the fixes required for bug 12501: https://bugs.winehq.org/show_bug.cgi?id=12501
--
v29: mspatcha: Use string comparison for section names
mspatcha: Use unaligned typedefs for basic types
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870
Windows 10 [received support](https://devblogs.microsoft.com/commandline/af_unix-comes-to-window… for AF_UNIX sockets in Insider Build 17063. This merge request adds basic support for AF_UNIX sockets to ws2_32 and wineserver.
Of particular note is the difficulty in handling `sun_path`. Most of the functions that allow for translating Windows paths to Unix paths are not accessible from ws2_32. I considered the following options:
* Pass the Windows path to wineserver and do the conversion there.
* This is, as far as I can tell, not possible without major rearchitecting. wineserver does not have functions to translate Windows paths to Unix paths, for obvious reasons.
* Obtain the current working directory of the requesting process and temporarily change directories to there.
* This only handles relative paths and fails for absolute paths, UNC paths, etc.
* Conditionally change directories based on whether the path is relative or not.
* This is error-prone and wineserver does not have the requisite functions to do this cleanly.
I ultimately decided to pass the translated Unix path to wineserver, which changes directories to `dirname(path)`. It then provides `bind` and `connect` with `basename(path)`. This is not threadsafe, but wineserver is not (currently) multithreaded.
Abstract sockets are not fully supported by this patch, matching the behavior of Windows.
--
v58: ws2_32/tests: Add test for AF_UNIX sockets.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2786
This clears up much of the todo list for mspatcha. GetFilePatchSignature* and NormalizeFileForPatchSignature have now been implemented in these changes.
These changes bring better support for things like the Adobe Acrobat installer without the need for things like the winetricks mspatcha.dll native dll override. Still needed is support for interleaved streams in the LZXD decompression logic, however this is a great start to better supporting software installers that use the Windows interface for creating and applying patches to files.
This is the beginning of the fixes required for bug 12501: https://bugs.winehq.org/show_bug.cgi?id=12501
--
v28: mspatcha: Use string comparison for section names
mspatcha: Use unaligned typedefs
mspatcha: Relocate PE/COFF image functions
mspatcha: Add support for 32-bit file image patch transforms
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870
> Understood. Should the tests be added (`todo_wine`'d) to document the behavior discrepancy or should those only be included with the implementation if it becomes necessary to fix a real application?
If you want to submit the tests alone I think they'd be accepted.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3367#note_46211
Looks okay I think although I find the seat locking again a bit overkill. I don't really see a scenario where a wine process would be used across seats, can this really happen on Wayland?
I understand that as the event is dynamically sent we may have to support it, but I would find it simpler if we could assume that we have a seat from the start (eventually waiting for it on startup, idk), and where we'd just abort if the seat is removed.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3909#note_46203
This clears up much of the todo list for mspatcha. GetFilePatchSignature* and NormalizeFileForPatchSignature have now been implemented in these changes.
These changes bring better support for things like the Adobe Acrobat installer without the need for things like the winetricks mspatcha.dll native dll override. Still needed is support for interleaved streams in the LZXD decompression logic, however this is a great start to better supporting software installers that use the Windows interface for creating and applying patches to files.
This is the beginning of the fixes required for bug 12501: https://bugs.winehq.org/show_bug.cgi?id=12501
--
v27: mspatcha: Use string comparison for section names
mspatcha: Use unaligned typedefs
mspatcha: Relocate PE/COFF image functions
mspatcha: Add support for 32-bit file image patch transforms
mspatcha: Add implementations for GetFilePatchSignature* routines
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870
Windows 10 [received support](https://devblogs.microsoft.com/commandline/af_unix-comes-to-window… for AF_UNIX sockets in Insider Build 17063. This merge request adds basic support for AF_UNIX sockets to ws2_32 and wineserver.
Of particular note is the difficulty in handling `sun_path`. Most of the functions that allow for translating Windows paths to Unix paths are not accessible from ws2_32. I considered the following options:
* Pass the Windows path to wineserver and do the conversion there.
* This is, as far as I can tell, not possible without major rearchitecting. wineserver does not have functions to translate Windows paths to Unix paths, for obvious reasons.
* Obtain the current working directory of the requesting process and temporarily change directories to there.
* This only handles relative paths and fails for absolute paths, UNC paths, etc.
* Conditionally change directories based on whether the path is relative or not.
* This is error-prone and wineserver does not have the requisite functions to do this cleanly.
I ultimately decided to pass the translated Unix path to wineserver, which changes directories to `dirname(path)`. It then provides `bind` and `connect` with `basename(path)`. This is not threadsafe, but wineserver is not (currently) multithreaded.
Abstract sockets are not fully supported by this patch, matching the behavior of Windows.
--
v56: ws2_32/tests: Add test for AF_UNIX sockets fix.
server: Fix getsockname() and accept() on AF_UNIX sockets.
server: Introduce error when attempting to create a SOCK_DGRAM AF_UNIX socket.
server: Allow for deletion of socket files.
ws2_32: Add support for AF_UNIX sockets.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2786
> You can't assume that the path is null-terminated.
I'm pretty sure I can assume `unix_path` is null-terminated. It's ultimately provided by `wine_nt_to_unix_file_name()` (`wine_get_unix_file_name()` doesn't modify it), with the line:
```c
if (*size > strlen(name)) strcpy( /* unix_path = */ nameA, name );
```
Multiple places across other DLLs assume `wine_get_unix_file_name()` provides a null-terminated string, passing its return value to e.g. `fprintf()` and `strstr()`.
> In fact it shouldn't be, you should use an explicit length instead.
Whether I `strlen()` here or when first getting this buffer from `wine_get_unix_file_name()` seems irrelevant to me; is there something I'm missing?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2786#note_46190
This clears up much of the todo list for mspatcha. GetFilePatchSignature* and NormalizeFileForPatchSignature have now been implemented in these changes.
These changes bring better support for things like the Adobe Acrobat installer without the need for things like the winetricks mspatcha.dll native dll override. Still needed is support for interleaved streams in the LZXD decompression logic, however this is a great start to better supporting software installers that use the Windows interface for creating and applying patches to files.
This is the beginning of the fixes required for bug 12501: https://bugs.winehq.org/show_bug.cgi?id=12501
--
v26: mspatcha: Use string comparison for section names
mspatcha: Use unaligned typedefs
mspatcha: Relocate PE/COFF image functions
mspatcha: Add support for 32-bit file image patch transforms
mspatcha: Add implementations for GetFilePatchSignature* routines
mspatcha: Add support for 32-bit file normalization
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870
--
v2: Release 1.9.
vkd3d-shader/d3dbc: Translate sm1 fragment outputs to system values.
vkd3d-shader/dxbc: Map sm4 fragment outputs to system values based on their name.
vkd3d-shader: Add definitions for more fragment output system values.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/356
On Thu Sep 21 09:50:20 2023 +0000, Petrichor Park wrote:
> Oh dear. Do I need to worry about the big scary warning at the top
> saying that my merge failed?
> I don't think I did this right.
No, you didn't. Don't stress too much over it, though, git is nice folk, but it's a well established fact that it's not one with whom it's immediately easy to make friends. Hoping to help, here is what I would do now:
```sh
git checkout master
git pull # Ensure that your master is up-to-date
git checkout impl-tangent
git reset --hard b54b3c60 # Recover your last known-good state of this branch (I got the commit hash from the MR history)
git log
git show # Check that's what you intend to submit
git rebase master # Magic is happening here! Basically your commit is replayed as if it was replayed on top of master
# Git will tell you there is a conflict: basically you added line `{"tan", ...},` in `hlsl.y` and, in the same place,
# Nikolay added line `{"tex1D", ...},` a few days ago (commit c5d680d141; how do I know? I used git blame)
# Solving this conflict is simple: both lines have to appear in the file, so edit the file and just remove
# the markers git added around the conflict; but they also have to be in alphabetic order, so perhaps you'll have to swap them
git add -u # This is probably not needed, because git will automatically detect you fixed the conflict; but if it doesn't happen that's how you add the changes to the index
git diff --cached # Check that the diff now looks correct
git rebase --continue # Tell git that the conflict is resolved and it can carry on with the rebase
git log
git show # Check again before force-pushing, one is never too sure
git push -f # The MR is now updated and the scary warning should go away
```
Please feel free to ask if I can help you further.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/321#note_46176
On Thu Sep 21 09:49:58 2023 +0000, Dallas Strouse wrote:
> Hi, I'm back again :P
> Since it's probably about time for it, and I forgot to send that email a
> while back, I might as well ask now: are there plans to make Wine use
> libdecor at some point in the future, so that there are "native" window
> decorations for desktops that don't provide xdg-decoration? A lot of the
> work here for compositor-initiated window closing is a requirement for
> that.
> There may be performance implications for this, IIRC, since you'd have
> to work with another library's event loop on top of another GUI toolkit
> not made for games, and GTK doesn't support wl_subsurfaces normally
> *iirc*. SDL does it, at least, so there's that. But something to maybe
> consider. I'm satisfied with the default window decorations right now, myself.
Hi! At this point there are no plans to use any external client-side mechanism to draw window decorations. For libdecor, in particular, my impression is that while its abstractions for event dispatching and surface configuration are helpful for typical Wayland clients, they are not a good match for the driver's integration needs, for which we need finer and more direct control.
Some other ideas:
1. Support server-side decorations, which will help with KDE and wlroots based compositors.
2. Create a Wine decoration theme to better match typical GNOME/KDE etc (will only help with apps that don't do their own decorations).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3909#note_46175
Windows 10 [received support](https://devblogs.microsoft.com/commandline/af_unix-comes-to-window… for AF_UNIX sockets in Insider Build 17063. This merge request adds basic support for AF_UNIX sockets to ws2_32 and wineserver.
Of particular note is the difficulty in handling `sun_path`. Most of the functions that allow for translating Windows paths to Unix paths are not accessible from ws2_32. I considered the following options:
* Pass the Windows path to wineserver and do the conversion there.
* This is, as far as I can tell, not possible without major rearchitecting. wineserver does not have functions to translate Windows paths to Unix paths, for obvious reasons.
* Obtain the current working directory of the requesting process and temporarily change directories to there.
* This only handles relative paths and fails for absolute paths, UNC paths, etc.
* Conditionally change directories based on whether the path is relative or not.
* This is error-prone and wineserver does not have the requisite functions to do this cleanly.
I ultimately decided to pass the translated Unix path to wineserver, which changes directories to `dirname(path)`. It then provides `bind` and `connect` with `basename(path)`. This is not threadsafe, but wineserver is not (currently) multithreaded.
Abstract sockets are not fully supported by this patch, matching the behavior of Windows.
--
v54: ws2_32/tests: Add test for AF_UNIX sockets fix.
server: Fix getsockname() and accept() on AF_UNIX sockets.
server: Introduce error when attempting to create a SOCK_DGRAM AF_UNIX socket.
server: Allow for deletion of socket files.
ws2_32: Add support for AF_UNIX sockets.
ntdll/unix: Add support for AF_UNIX sockets to multiple functions.
ws2_32: Add afunix.h header.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2786
On Thu Sep 21 08:28:33 2023 +0000, Gabriele wrote:
> I wonder if from this MR, we'll be able to somehow test those changes,
> by using an environment variable or something similar.
> I'd be very interested in testing it out as soon as it gets merged!
An easy and non-intrusive way to experiment with the upstream Wayland driver is:
1. Create the registry key `HKEY_CURRENT_USER\Software\Wine\Drivers\Graphics="x11,wayland"`
2. Unset the `DISPLAY` env. variable, e.g, `DISPLAY= wine ...`, to force the use of the Wayland driver
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3909#note_46166
This clears up much of the todo list for mspatcha. GetFilePatchSignature* and NormalizeFileForPatchSignature have now been implemented in these changes.
These changes bring better support for things like the Adobe Acrobat installer without the need for things like the winetricks mspatcha.dll native dll override. Still needed is support for interleaved streams in the LZXD decompression logic, however this is a great start to better supporting software installers that use the Windows interface for creating and applying patches to files.
This is the beginning of the fixes required for bug 12501: https://bugs.winehq.org/show_bug.cgi?id=12501
--
v25: mspatcha: Use string comparison for section names
mspatcha: Use unaligned typedefs
mspatcha: Relocate PE/COFF image functions
mspatcha: Add support for 32-bit file image patch transforms
mspatcha: Add implementations for GetFilePatchSignature* routines
mspatcha: Add support for 32-bit file normalizing
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870
This clears up much of the todo list for mspatcha. GetFilePatchSignature* and NormalizeFileForPatchSignature have now been implemented in these changes.
These changes bring better support for things like the Adobe Acrobat installer without the need for things like the winetricks mspatcha.dll native dll override. Still needed is support for interleaved streams in the LZXD decompression logic, however this is a great start to better supporting software installers that use the Windows interface for creating and applying patches to files.
This is the beginning of the fixes required for bug 12501: https://bugs.winehq.org/show_bug.cgi?id=12501
--
v24: mspatcha: Use string comparison for section names
mspatcha: Use unaligned typedefs
mspatcha: Relocate PE/COFF image functions
mspatcha: Add support for 32-bit file image patch transforms
mspatcha: Add implementations for GetFilePatchSignature* routines
mspatcha: Add support for 32-bit file normalizing
mspatcha/tests: Add additional unit tests for ApplyPatchToFileByBuffers
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870
This clears up much of the todo list for mspatcha. GetFilePatchSignature* and NormalizeFileForPatchSignature have now been implemented in these changes.
These changes bring better support for things like the Adobe Acrobat installer without the need for things like the winetricks mspatcha.dll native dll override. Still needed is support for interleaved streams in the LZXD decompression logic, however this is a great start to better supporting software installers that use the Windows interface for creating and applying patches to files.
This is the beginning of the fixes required for bug 12501: https://bugs.winehq.org/show_bug.cgi?id=12501
--
v23: mspatcha: Use string comparison for section names
mspatcha: Use unaligned typedefs
mspatcha: Relocate PE/COFF image functions
mspatcha: Add support for 32-bit file image patch transforms
mspatcha: Add implementations for GetFilePatchSignature* routines
mspatcha: Add support for 32-bit file normalizing
mspatcha/tests: Add additional unit tests for ApplyPatchToFileByBuffers
mspatcha/tests: Add unit tests for NormalizeFileForPatchSignature and GetFilePatchSignature*
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870
This clears up much of the todo list for mspatcha. GetFilePatchSignature* and NormalizeFileForPatchSignature have now been implemented in these changes.
These changes bring better support for things like the Adobe Acrobat installer without the need for things like the winetricks mspatcha.dll native dll override. Still needed is support for interleaved streams in the LZXD decompression logic, however this is a great start to better supporting software installers that use the Windows interface for creating and applying patches to files.
This is the beginning of the fixes required for bug 12501: https://bugs.winehq.org/show_bug.cgi?id=12501
--
v22: mspatcha: Use string comparison for section names
mspatcha: Use unaligned typedefs
mspatcha: Relocate PE/COFF image functions
mspatcha: Add support for 32-bit file image patch transforms
mspatcha: Add implementations for GetFilePatchSignature* routines
mspatcha: Add support for 32-bit file normalizing
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870
This goes on top of MR 320 and 345.
--
v4: tests/shader-runner: Add a '--dump-dxil' command line switch.
tests/shader-runner: Test shaders with dxcompiler.
tests/shader-runner: Replace immediate shader type strings with an enum.
tests/shader-runner: Do not exit if a 'require' directive is not met.
tests/shader-runner: Handle individual keywords in shader directives.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/346
This clears up much of the todo list for mspatcha. GetFilePatchSignature* and NormalizeFileForPatchSignature have now been implemented in these changes.
These changes bring better support for things like the Adobe Acrobat installer without the need for things like the winetricks mspatcha.dll native dll override. Still needed is support for interleaved streams in the LZXD decompression logic, however this is a great start to better supporting software installers that use the Windows interface for creating and applying patches to files.
This is the beginning of the fixes required for bug 12501: https://bugs.winehq.org/show_bug.cgi?id=12501
--
v21: mspatcha: Remove useless unused parameter annotation
mspatcha: Fix check for if patch was necessary
mspatcha: Fix normalize_old_file_image result if no old file is supplied
mspatcha: Use string comparison for section names
mspatcha: Use unaligned typedefs
mspatcha: Remove useless result variable in NormalizeFileForPatchSignature
mspatcha: Relocate PE/COFF image functions
mspatcha: Cleanup normalize_old_file_image return logic
mspatcha: Fix new file buffer local variable assignment
mspatcha: Fix relocation block enumeration
mspatcha: Fix progress callback behaviour
mspatcha: Fix binary to hex string conversions for GetFilePatchSignatureByBuffer
mspatcha: Add support for 32-bit file image patch transforms
mspatcha: Add implementations for GetFilePatchSignature* routines
mspatcha: Add support for 32-bit file normalizing
mspatcha/tests: Add additional unit tests for ApplyPatchToFileByBuffers
mspatcha/tests: Add unit tests for NormalizeFileForPatchSignature and GetFilePatchSignature*
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870
This clears up much of the todo list for mspatcha. GetFilePatchSignature* and NormalizeFileForPatchSignature have now been implemented in these changes.
These changes bring better support for things like the Adobe Acrobat installer without the need for things like the winetricks mspatcha.dll native dll override. Still needed is support for interleaved streams in the LZXD decompression logic, however this is a great start to better supporting software installers that use the Windows interface for creating and applying patches to files.
This is the beginning of the fixes required for bug 12501: https://bugs.winehq.org/show_bug.cgi?id=12501
--
v20: mspatcha: Remove useless unused parameter annotation
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870
This goes on top of MR 320 and 345.
--
v3: tests/shader-runner: Add a '--dump-dxil' command line switch.
tests/shader-runner: Test shaders with dxcompiler.
tests/shader-runner: Replace immediate shader type strings with an enum.
tests/shader-runner: Do not exit if a 'require' directive is not met.
tests/shader-runner: Handle individual keywords in shader directives.
vkd3d-shader/dxil: Do not compile compute shaders.
vkd3d-shader/dxil: Do not access null code blocks on failure.
vkd3d-shader/dxil: Implement DX instruction LoadInput.
vkd3d-shader/dxil: Declare shader inputs.
vkd3d-shader/dxbc: Load input signatures also from ISG1 chunks.
vkd3d-shader/spirv: Build undefined values once.
vkd3d-shader/spirv: Introduce a Static Single Assignment register type.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/346
On Thu Sep 21 05:34:32 2023 +0000, Zebediah Figura wrote:
> I assume you mean -Wunused-parameter, since -Wunused-variable alone
> shouldn't warn on parameters.
> I don't think -Wunused-parameter is reasonable to enable for Wine. The
> Windows API has far, far too many unused parameters for annotating them
> all to be worthwhile.
Yes, sorry you are correct, I meant `-Wunused-parameter`. I'll just remove this line then
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870#note_46134
On Thu Sep 21 05:19:42 2023 +0000, Jeffrey Smith wrote:
> At each commit along the patch set, all tests need to run clean.
> Anything that fails on Wine should be marked as such with `todo_wine` or
> `todo_wine_if` as appropriate.
> So you would start with commit(s) adding tests, generally including
> (marked) failing tests. Then any commit that changes/fixes a test
> result should adjust/remove the todo markers in the same commit.
Ah okay, that would have been great to know before I removed all the todo's lol. This is going to be a mess to cleanup, got any tips?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870#note_46133
This goes on top of MR 320 and 345.
--
v2: tests/shader-runner: Add a '--dump-dxil' command line switch.
tests/shader-runner: Test shaders with dxcompiler.
tests/shader-runner: Replace immediate shader type strings with an enum.
tests/shader-runner: Do not exit if a 'require' directive is not met.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/346
At each commit along the patch set, all tests need to run clean.
Anything that fails on Wine should be marked as such with `todo_wine` or `todo_wine_if` as appropriate.
So you would start with commit(s) adding tests, generally including failing tests. Then any commit that changes/fixes a test result should adjust/remove the todo markers in the same commit.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870#note_46130
> I.e. server side decorations can be used as a primary option and if it's not available, Wine can fall back to libdecor.
That is how it's intended to be used, yes, but it is a workaround for applications or libraries that can't provide suitable window decorations themselves.
The idea that it's a workaround for GNOME isn't wrong, but it isn't right either. There are plenty of reasons why window decorations might not be supported, be it because the compositor needs to be as fast as possible, or it's just not technically possible.
I'm purely proposing libdecor here so that the experience on GNOME, Weston, and whatever desktops result from this migration and don't have xdg-decoration are able to integrate more "nicely", being subjective.
Again, I'm fine with it not having libdecor. In fact, using a library like that might even pose some technical challenges with things like web browsers running in Wine, which like to embed window decorations *in* their window, like libadwaita likes to do.
The performance hit with libdecor is more theoretical than anything, and would need to be confirmed before using it as a fact. It might even be fixable with some consultation with GTK folks on how to work with subsurfaces in a GTK context.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3909#note_46127
This clears up much of the todo list for mspatcha. GetFilePatchSignature* and NormalizeFileForPatchSignature have now been implemented in these changes.
These changes bring better support for things like the Adobe Acrobat installer without the need for things like the winetricks mspatcha.dll native dll override. Still needed is support for interleaved streams in the LZXD decompression logic, however this is a great start to better supporting software installers that use the Windows interface for creating and applying patches to files.
This is the beginning of the fixes required for bug 12501: https://bugs.winehq.org/show_bug.cgi?id=12501
--
v7: mspatcha: Fix binary to hex string conversions for GetFilePatchSignatureByBuffer
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870
The default exit code is only used when a process is killed by the system or through a signal.
These are exceptional cases where exit code 1 (killed by Task Manager) is more appropriate than the normal termination code of 0.
Chromium does not restart helper processes that exit with code 0 (see [kill.h](https://source.chromium.org/chromium/chromium/src/+/main:base/proce…), with this fix they are restarted when killed by the system or by a signal.
--
v3: server: Set the default thread exit code to 1.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3648
On Thu Sep 21 00:46:47 2023 +0000, Jinoh Kang wrote:
> I'm not sure if it is correct to flip the "violent delth" flag
> parameter. Anyways, this looks like a duplicate of
> https://gitlab.winehq.org/wine/wine/-/merge_requests/3648, so you might
> want to ask about its status?
@iamahuman thanks for pointing out that older thread, I'll follow up on that!
With regards to the `violent_death` parameter, are there any guidelines around when it is appropriate to set that to a value of 1? From what I can see, it's primarily used when a protocol error is encountered (e.g. [here](https://gitlab.winehq.org/wine/wine/-/blob/wine-8.16/server/request.c… and [here](https://gitlab.winehq.org/wine/wine/-/blob/wine-8.16/server/request.c…) and the server can no longer communicate with the client process. That seems fairly similar to the abnormal process termination scenario (with the main difference being that the server isn't trying to send or receive a message at the time it detects the pipe close), but there might be some nuance there that I'm overlooking?
If there's a more appropriate mechanism to set the non-zero exit code in the abnormal process termination scenario then I'd certainly be happy to update the patch to use that instead. The current implementation was designed to be as minimally intrusive as possible whilst still achieving the desired behaviour, but I'm not familiar enough with the internal workings of the Wine server to be completely confident in its correctness, so any guidance here is much appreciated! (I'm also happy to add comments if desired, since I recognise that the current code is not particularly explicit in communicating its intent to readers.)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3908#note_46121
libdecor makes sense as a workaround for Gnome which doesn't support server side decorations. I.e. server side decorations can be used as a primary option and if it's not available, Wine can fall back to libdecor.
It shouldn't matter much for games I think, since games normally run in fullscreen if you care about performance, so window decorations are really irrelevant in gaming use case.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3909#note_46120