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