Wine 10.5 is now available, offering enhanced support for larger page sizes on ARM64, an updated Mono engine, improved pairing capabilities in the Bluetooth driver, Vulkan H.264 decoding, and %GS register swapping on macOS. The release additionally incorporates several bug fixes.
The update addresses 22 issues, including the malfunction of SetFocus, SetActiveWindow, and SetForegroundWindow. Wine experiences segmentation faults on Asahi Linux as a result of 16k page sizes. Microsoft Edge is experiencing freezing issues shortly after launch. Shrift 2 Translation Patch 1.3 Game v2.07, Encountered an issue with the file pointer following a write operation in appending mode. An error occurred during the installation of Pantheon. The launcher for Brothers: A Tale of Two Sons is not functioning properly, and there are issues with the video modes. The Rally Trophy keyboard key is no longer configurable. The configuration for the input device no longer displays the mapped keys. ntoskrnl.exe tests may result in a Blue Screen of Death (BSOD). The Listview / LVM_GETORIGIN function is returning incorrect coordinates. The selected items in the listbox are displayed even when LBS_NOSEL is applied. The Queen of Heart 99 SE experiences a malfunction. The PS Core installer is experiencing crashes. winegcc experiences segmentation faults in version 10.4, while wine-10.4 encounters hanging issues on macOS (Rosetta 2). Additionally, mscoree:comtest and mscoree:mscoree are failing. The ListView control does not properly manage the WM_VSCROLL(SB_BOTTOM) message, and keyboard input is lost after switching applications using Alt-Tab in a virtual desktop environment. The Game Controllers panel experiences a crash upon exit, and the TipTap launcher for OverField also encounters a crash.
The change log outlines several modifications implemented in the makefiles within the Xcode project. Recent modifications encompass the direct management of makefile disable flags within the configure process, the prevention of program builds solely for the host architecture, and the elimination of superfluous tests. Additional modifications encompass resolving crashes in MFShutdown on Windows, eliminating the less aesthetically pleasing fallback method for retrieving a thread's GSBASE on macOS, and discontinuing x86_64 Mac-specific TEB access workarounds.
New tests have been incorporated for the purpose of saving textures to DDS files, executing Vulkan H.264 decoding, and, where feasible, implementing VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV_READ_FORMAT_. Additional modifications encompass correcting the sequence of non-commutative binary operations in the PDB/FPO unwinder, the introduction of a new PDB reader, and the implementation of EVENT_OBJECT_VALUECHANGE for edit controls.
Multiple modifications have been implemented in the Xcode project, including the addition of a loop attribute in the sample_gradient() shader function, maintaining the connection from the inner window to the outer window even when detached, and addressing test failures. Additional modifications consist of eliminating unnecessary imports, establishing secret parameters for create_symmetric_key()/generate_symmetric_key() as constant, and incorporating support for BCRYPT_AES_WRAP_KEY_BLOB in both BCryptExportKey() and BCryptImportKey().
The change log further discusses the inclusion of stubs for the IEnumObjects and IObjectCollection interfaces, as well as the omission of outdated flags in the regsvr32 command.
The update outlines the modifications implemented across different tests and functionalities within the Android operating system. The modifications encompass the incorporation of tests for the current selection with LBS_NOSEL, along with enhancements to libtiff, and the addition of support for App1 metadata blocks in the decoder and App0 reader. The text additionally discusses the implementation of codecvt_char16 constructors and destructor, as well as the implementation of CM_Get_Device_Interface_List[_Size][_Ex]W() and CM_Get_Device_Interface_PropertyW() for DEVPKEY_Device_InstanceId.
The update further elaborates on the utilization of WinEx11, a novel driver for the desktop window, alongside the integration of Win32u and Win32u_GenericWGL_(ARB|EXT)_extensions_string support. The document also addresses the refinement of code style in X11DRV_wglCreatePbufferARB, X11DRV_wglQueryPbufferARB, and X11DRV_wglBindTexImageARB, in addition to the restructuring of control flow in X11DRV_GetWindowStateUpdates.
It also outlines the incorporation of tests for a 6-axis force feedback joystick, the provision for a dynamic number of PID axes, and the establishment of Bluetooth RFCOMM sockets. The document also addresses the resolution for persistent buffer overrun issues during the update of expression constants.
Here is the announcement:
Wine release 10.5
The Wine development release 10.5 is now available.
What's new in this release:
- Support for larger page sizes on ARM64.
- Mono engine updated to version 10.0.0.
- Pairing support in the Bluetooth driver.
- Vulkan H.264 decoding.
- %GS register swapping on macOS.
- Various bug fixes.
The source is available at ( https://dl.winehq.org/wine/source/10.x/wine-10.5.tar.xz)
Binary packages for various distributions will be available from the respective [download sites][1].
You will find documentation [here][2].
Wine is available thanks to the work of many people. See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download
[2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation
[3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-10.5/AUTHORS
### Bugs fixed in 10.5 (total 22):
- #2155 Failure of SetFocus, SetActiveWindow and SetForegroundWindow
- #52715 wine segfaults on asahi linux due to 16k pages (apple M1 hardware, linux kernel/userland)
- #56377 Microsoft Edge freezes almost immediately after launching
- #56479 Shrift 2 Translation Patch 1.3Gamev2.07: could not load file or assembly. access denied.
- #56837 Bad file pointer after a file write in appending mode
- #57010 Pantheon - error during installation
- #57406 Brothers - A Tale of Two Sons launcher fails to launch
- #57784 Video modes are broken
- #57919 Rally Trophy: Keyboard key is not configurable anymore, regression
- #57920 Rally Trophy: Input device configuration doesn't show mapped keys anymore, regression
- #57940 ntoskrnl.exe tests can trigger BSOD
- #57948 Listview / LVM_GETORIGIN returns wrong coordinates
- #57973 Listbox selected items are rendered even with LBS_NOSEL
- #57987 The Queen of Heart 99 SE : Config.exe crashes just before saving and quitting
- #57996 PS Core installer crashes (regression)
- #58006 winegcc seg-faults in wine 10.4
- #58008 wine-10.4 hangs on macOS (Rosetta 2)
- #58022 mscoree:comtest and mscoree:mscoree fail
- #58024 Listview does not handle WM_VSCROLL(SB_BOTTOM)
- #58038 Keyboard input lost after alt-tabbing in virtual desktop
- #58050 Game Controllers panel crashes on exit
- #58052 TipTap launcher for OverField crashes: Call to unimplemented function USER32.dll.IsTopLevelWindow
### Changes since 10.4:
```
Alex Henrie (4):
ntdll: Correct NtAllocateReserveObject arguments in specfile.
ntdll: Implement querying StorageDeviceProperty for optical discs.
cryptui: Use wide character string literal for L"".
shell32/tests: Use wide character string literals.
Alexandre Julliard (48):
winegcc: Store the output name in a global variable.
winegcc: Use -nostdlib for MSVC builds.
winegcc: Always add strip flag to the linker args explicitly.
winegcc: Validate the target option after all arguments have been handled.
winegcc: Always pass the -x option through the files list.
winegcc: Store the linking options in global variables.
winegcc: Store the files arguments in a global variable.
ntdll: Limit the header mapping size to the size of the file.
ntdll: Don't use private writable mappings on macOS.
ntdll: Retrieve the host page size on the Unix side on ARM64.
ntdll: Align virtual memory allocations to the host page size.
ntdll: Align virtual memory deallocations to the host page size.
ntdll: Apply virtual page protections to the entire host page.
ntdll: Align file mappings to the host page size.
ntdll: Align stack guard pages to the host page size.
ntdll: Align to the host page size when calling mlock/munlock/msync.
server: Support the host page size being different from the Windows page size.
widl: Preserve pragma pack() statements in header files.
widl: Use pragma pack in generated files.
include: Use pragma pack in idl files.
ntdll: Round the size of the .so NT header to the file alignment.
winegcc: Don't forward -v to the compiler by default.
winegcc: Only pass explicit linker arguments with -print-libgcc-file-name.
winegcc: Set the entry point option in get_link_args().
winegcc: Add a helper function to read options from a file.
include: Move InitializeObjectAttributes definition to ntdef.h.
ntdll: Use the InitializeObjectAttributes macro in more places.
ntdll/tests: Use the InitializeObjectAttributes macro in more places.
kernelbase: Use the InitializeObjectAttributes macro in more places.
wine.inf: Add list of known dlls.
wineboot: Fetch the list of supported machines once at startup.
wineboot: Create section objects for known dlls.
advapi32: Delay import cryptsp.
comctl32: Delay import oleacc.
comdlg32: Delay import winspool
gdiplus: Delay import mlang.
imagehlp: Delay import dbghelp.
wldap32: Delay import some libraries.
ntdll: Only enable redirection around the calls that access the file system.
ntdll: Add a helper to build an NT name from the system directory.
ntdll: Try to open dll mappings from the KnownDlls directory first.
ntdll: Only check HAVE_PTHREAD_TEB when setting %fs on Linux.
wineps.drv: Delay import winspool.
kernelbase: Redirect system32 paths manually for delayed file moves.
setupapi: Don't print an error when failing to replace a native dll.
setupapi: Delay fake dll installation until reboot for files in use.
makefiles: Handle the makefile disable flags directly in configure.
makefiles: Skip building some programs that are only useful for the host architecture.
Alfred Agrell (1):
server: Fall back to epoll_wait if epoll_pwait2 doesn't work.
Anders Kjersem (1):
setupapi: Don't add backslash on empty folder.
André Zwing (2):
bluetoothapis/tests: Don't test function directly when reporting GetLastError().
kernel32/tests: Don't test function directly when reporting GetLastError().
Attila Fidan (1):
winewayland: Don't use a destroyed surface in text input.
Bartosz Kosiorek (4):
gdiplus/test: Add GdipReversePath test for Path Pie.
gdiplus: Fix GdipReversePath for mixed Bezier and Line points in subpath.
gdiplus/tests: Add tests for GdipGetPathWorldBounds with single point.
gdiplus: Add single point support for GdipGetPathWorldBounds.
Bernhard Übelacker (1):
joy.cpl: Set devnotify to NULL after it got unregistered (ASan).
Brendan McGrath (5):
mfplat/tests: Fix crash in MFShutdown on Windows.
mfplat/tests: Fix leak of media events.
mfplat/tests: Fix leak of media source.
winegstreamer: Allow NULL for time_format.
mfsrcsnk: Allow NULL for time_format.
Brendan Shanks (6):
ntdll: Remove ugly fallback method for getting a thread's GSBASE on macOS.
ntdll: Ensure init_handler runs in signal handlers before any compiler-generated memset calls.
ntdll: Don't access the TEB through %gs when using the kernel stack in x86_64 syscall dispatcher.
ntdll: Set %rsp to be inside syscall_frame before accessing %gs in x86_64 syscall dispatcher.
ntdll: On macOS x86_64, swap GSBASE between the TEB and macOS TSD when entering/leaving PE code.
ntdll: Remove x86_64 Mac-specific TEB access workarounds that are no longer needed.
Connor McAdams (5):
d3dx9/tests: Add a test for reading back a texture saved as D3DXIFF_JPG.
d3dx9/tests: Add more tests for saving textures to DDS files.
d3dx9: Add support for saving IDirect3DTexture9 textures to DDS files in D3DXSaveTextureToFileInMemory().
d3dx9: Add support for saving IDirect3DCubeTexture9 textures to DDS files in D3DXSaveTextureToFileInMemory().
d3dx9: Add support for saving IDirect3DVolumeTexture9 textures to DDS files in D3DXSaveTextureToFileInMemory().
Dmitry Timoshkov (1):
bcrypt/tests: Add some tests for export/import of BCRYPT_AES_WRAP_KEY_BLOB.
Elizabeth Figura (18):
wined3d: Feed fog constants through a push constant buffer.
wined3d: Introduce a separate wined3d_extra_ps_args state for point sprite enable.
wined3d/glsl: Move legacy shade mode to shader_glsl_apply_draw_state().
wined3d: Partially move shade mode to wined3d_extra_ps_args.
kernel32/tests: Add more tests for orphaned console handles.
server: Fail to create an unbound input/output when there is no console.
server: Use a list of screen buffers per console.
server: Allow waiting on an orphaned screen buffer.
server: Track unbound input signaled state based on its original console.
server: Track unbound output signaled state based on its original console.
d3d11: Plumb SubmitDecoderBuffers() through wined3d.
wined3d: Create and submit video decode command buffers.
wined3d: Call vkQueueSubmit() if there are semaphores.
wined3d: Add a "next" pointer to wined3d_context_vk_create_image().
wined3d: Implement Vulkan H.264 decoding.
d3d11/tests: Add tests for H.264 decoding.
wined3d: Invert gl_FragCoord w.
wined3d: Use VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV_READ_FORMAT_UNKNOWN if possible.
Eric Pouech (11):
dbghelp: Fix order of non-commutative binary op:s in PDB/FPO unwinder.
dbghelp: Introduce new PDB reader, use it for unwinding FPO frames.
dbghelp: Don't keep PDB files mapped after parsing is done.
dbghelp: Introduce a vtable per module_format.
dbghelp: Rename struct internal_line into lineinfo.
dbghelp: Always copy the source file string.
dbghelp: Introduce interface for line info access.
dbghelp: Introduce method to get next/prev line information.
dbghelp: Introduce method to enumerate line numbers.
dbghelp: Add method to enumerate source files.
dbghelp: No longer store line information from old PDB reader.
Eric Tian (1):
gdiplus: Avoid storing NULL in gdip_font_link_section.
Esme Povirk (9):
comctl32: Implement EVENT_OBJECT_VALUECHANGE for edit controls.
comctl32/tests: Test MSAA events for edit controls.
mscoree: Update Wine Mono to 10.0.0.
win32u: Implement EVENT_OBJECT_NAMECHANGE.
comctl32/tests: Add test for SysLink accDoDefaultAction.
comctl32: Implement accDoDefaultAction for SysLink controls.
comctl32/tests: Test accLocation values on SysLink control.
comctl32/tests: Test SetWindowText and LM_GETITEM for SysLink.
comctl32/tests: Test MSAA events for SysLink.
Francisco Casas (1):
d2d1: Add [loop] attribute in sample_gradient() shader function.
Gabriel Ivăncescu (8):
mshtml: Keep the link from the inner window to the outer window even when detached.
jscript: Obtain the jsdisp for host objects in other contexts.
mshtml: Make sure manually created document dispex info is initialized in IE9+ modes.
mshtml: Release the node if there's no script global when handling events.
jscript: Get rid of the funcprot argument.
mshtml: Don't mess with the outer window if we're already detached.
jscript: Don't leak when popping (u)int values off the stack.
jscript: Don't leak when return value of host constructor is not used.
Hans Leidekker (7):
adsldp/tests: Fix test failures.
wbemprox: Get rid of unused imports.
wbemprox: Get rid of the per-table lock.
bcrypt: Make secret parameter to create_symmetric_key()/generate_symmetric_key() const.
bcrypt: Only print a fixme if a vector has been set.
bcrypt: Add support for BCRYPT_AES_WRAP_KEY_BLOB in BCryptExportKey().
bcrypt: Add support for BCRYPT_AES_WRAP_KEY_BLOB in BCryptImportKey().
Kevin Martinez (2):
shell32: Added stub for IEnumObjects interface.
shell32: Added stub for IObjectCollection interface.
Kostin Mikhail (1):
regsvr32: Ignore obsolete flag /c.
Louis Lenders (3):
win32u: Add stub for NtUserSetAdditionalForegroundBoostProcesses.
powrprof: Add stub for PowerRegisterForEffectivePowerModeNotifications.
dwmapi: Do not prefer native dll.
Marc-Aurel Zent (5):
server: Implement ThreadPriority class in NtSetInformationThread.
server: Move last thread information to get_thread_info flags.
server: Return the correct base/actual thread priorities.
kernelbase: Use ProcessPriorityClass info class in GetPriorityClass.
server: Return the correct base/actual process priority.
Nikolay Sivov (13):
user32/tests: Add some tests for current selection with LBS_NOSEL.
comctl32/tests: Add some tests for current selection with LBS_NOSEL.
user32/listbox: Do not paint item selection with LBS_NOSEL.
comctl32/listbox: Do not paint item selection with LBS_NOSEL.
libtiff: Provide zlib allocation functions.
windowscodecs/metadata: Always initialize handler pointer.
windowscodecs/jpeg: Add support for App1 metadata blocks in the decoder.
windowscodecs/tests: Add some tests for the App0 reader.
comctl32/listview: Handle WM_VSCROLL(SB_BOTTOM).
windowscodecs/converter: Implement BW -> 24BGR conversion.
windowscodecs/converter: Implement 48bppRGB -> 128bppRGBFloat conversion.
wmphoto: Use CRT allocation functions.
d3d10/effect: Fix constant buffer overrun when updating expression constants (ASan).
Paul Gofman (11):
wintrust: Don't set desktop window when initializing provider data.
kernel32/tests: Add tests for known dlls load specifics.
ntdll/tests: Fix a test failure on Windows wow64.
msvcp140: Implement codecvt_char16 ctors and dtor.
msvcp140: Implement codecvt_char16_do_out().
msvcp140: Implement codecvt_char16_do_in().
msvcp: Fix output size check in codecvt_wchar_do_out().
setupapi/tests: Add a test for SetupDiOpenDeviceInterface().
cfgmgr32: Implement CM_Get_Device_Interface_List[_Size][_Ex]W().
cfgmgr32: Implement CM_Get_Device_Interface_List[_Size][_Ex]A().
cfgmgr32: Implement CM_Get_Device_Interface_PropertyW() for DEVPKEY_Device_InstanceId.
Piotr Caban (1):
msvcrt: Update file position in _flsbuf() in append mode.
Robert Lippmann (1):
server: Use INOTIFY_CFLAGS.
Rémi Bernon (54):
winex11: Use the current state when deciding how to reply to WM_TAKE_FOCUS.
winex11: Use the state tracker for the desktop window _NET_WM_STATE.
opengl32: Remove unused type parameter.
opengl32: Remove unnecessary interlocked exchange.
opengl32: Use an explicit GLsync pointer in the union.
opengl32: Introduce an opengl_context_from_handle helper.
opengl32: Introduce a wgl_pbuffer_from_handle helper.
winex11: Introduce a new handle_state_change helper.
winex11: Track _NET_ACTIVE_WINDOW property changes.
dinput/tests: Load cfgmgr32 dynamically.
dinput/tests: Add more EnumDevicesBySemantics tests.
dinput: Fix EnumDeviceBySemantics user checks.
dinput: Fix keyboard / mouse semantics matching.
dinput: Only load mappings that have not yet been set.
dinput: Avoid overriding app-configured action map controls.
winex11: Get rid of now unnecessary unmap_window helper.
winex11: Keep _NET_WM_USER_TIME on individual toplevel windows.
winex11: Avoid stealing focus during foreground window mapping.
win32u: Introduce a new opengl_driver_funcs structure.
win32u: Implement opt-in WGL_(ARB|EXT)_extensions_string support.
wineandroid: Use win32u for WGL_(ARB|EXT)_extensions_string support.
winemac: Use win32u for WGL_(ARB|EXT)_extensions_string support.
winewayland: Use win32u for WGL_(ARB|EXT)_extensions_string support.
winex11: Use win32u for WGL_(ARB|EXT)_extensions_string support.
win32u: Add a nulldrv init_wgl_extensions implementation.
cfgmgr32/tests: Load some functions dynamically.
winemac: Use the default wglGetPixelFormatAttribivARB implementation.
winemac: Remove the driver wglChoosePixelFormatARB implementation.
win32u: Implement opt-in generic wgl(Get|Set)PixelFormat(WINE).
wineandroid: Use win32u generic wgl(Get|Set)PixelFormat(WINE).
winewayland: Use win32u generic wgl(Get|Set)PixelFormat(WINE).
winex11: Use win32u generic wgl(Get|Set)PixelFormat(WINE).
winemac: Use win32u generic wgl(Get|Set)PixelFormat(WINE).
win32u: Add a null driver set_pixel_format implementation.
winex11: Only set focus_time_prop for managed windows.
winex11: Keep track of whether mapped window needs activation.
winex11: Refactor X11DRV_GetWindowStateUpdates control flow.
win32u: Return foreground window changes from GetWindowStateUpdates.
win32u: Call ActivateWindow callback when foreground window changes.
winex11: Use _NET_ACTIVE_WINDOW to request/track window activation.
win32u: Move WGL_ARB_pixel_format extension registration.
winex11: Ignore GL drawable creation failure on reparent.
win32u: Remove unnecessary win32u_(get|set)_window_pixel_format exports.
setupapi: Implement SetupDiOpenDeviceInterface(A|W).
winex11: Cleanup code style in X11DRV_wglCreatePbufferARB.
winex11: Cleanup code style in X11DRV_wglQueryPbufferARB.
winex11: Cleanup code style in X11DRV_wglBindTexImageARB.
winex11: Compute texture binding enum from the texture target.
winex11: Remove some pbuffer related dead code.
opengl32/tests: Cleanup memory DC rendering tests.
opengl32/tests: Update memory DC pixel format tests.
opengl32/tests: Update memory DC drawing tests.
gdi32/tests: Test selecting bitmap on a D3DKMT memory DC.
opengl32/tests: Test GL rendering on D3DKMT memory DCs.
Sven Baars (9):
dmime/tests: Use wine_dbgstr_longlong.
win32u: Store window styles in a DWORD (Coverity).
win32u: Always set DriverVersion.
makedep: Fix a compilation warning.
d3dxof: Fix a memory leak on error path (Coverity).
d3dxof/tests: Fix a memory leak on error path (Coverity).
adsldp: Fix a leak on error path in search_ExecuteSearch() (Valgrind).
adsldp: Free ber in search_GetNextRow() (Valgrind).
adsldp/tests: Fix a name leak (Valgrind).
Tim Clem (1):
imm32: Add a stub for CtfImmRestoreToolbarWnd.
Tomasz Pakuła (4):
dinput/tests: Add tests for 6-axis force feedback joystick.
include: Define the max number of supported HID PID axes.
winebus: Support creation of dynamic number of PID axes.
winebus: Get the number of haptic axes from SDL.
Vibhav Pant (16):
ws2_32/tests: Add tests for creating Bluetooth RFCOMM sockets.
server: Add support for creating Bluetooth RFCOMM sockets.
ws2_32: Add bind tests for Bluetooth RFCOMM sockets.
ws2_32: Support bind for Bluetooth RFCOMM addresses.
winebth.sys: Register a pairing agent with BlueZ during startup.
winebth.sys: Broadcast a WINEBTH_AUTHENTICATION_REQUEST PnP event on receiving a RequestConfirmation request from BlueZ.
winebth.sys: Implement IOCTL_WINEBTH_AUTH_REGISTER.
bluetoothapis: Implement BluetoothRegisterForAuthenticationEx and BluetoothUnregisterForAuthentication.
bluetoothapis/tests: Add tests for BluetoothRegisterForAuthenticationEx and BluetoothUnregisterAuthentication.
winebth.sys: Support cancellation of pairing sessions via BlueZ.
winebth.sys: Implement IOCTL_WINEBTH_RADIO_SEND_AUTH_RESPONSE.
bluetoothapis: Add stub for BluetoothSendAuthenticationResponseEx.
bluetoothapis: Implement BluetoothSendAuthenticationResponseEx.
bluetoothapis/tests: Add tests for BluetoothSendAuthenticationResponseEx.
winebth.sys: Allow service auth requests from BlueZ for authenticated devices.
ws2_32/tests: Check for WSAEAFNOSUPPORT or WSAEPROTONOSUPPORT if socket() fails for AF_BTH.
Vitaly Lipatov (1):
wow64: Skip memcpy for null pointer.
Yongjie Yao (1):
wmp: Check the return value of IOleClientSite_QueryInterface().
Yuri Hérouard (1):
comctl32: Avoid segfault in PROPSHEET_DoCommand when psInfo is NULL.
Ziqing Hui (7):
shell32/tests: Remove old windows tests for test_copy.
shell32/tests: Add more tests to test_copy.
shell32/tests: Introduce check_file_operation helper.
shell32/tests: Use more check_file_operation.
shell32/tests: Use check_file_operation in test_rename.
shell32/tests: Use check_file_operation in test_delete.
shell32/tests: Use check_file_operation in test_move.
```