Wine release 10.0-rc1
The Wine development release 10.0-rc1 is now available.
This is the first release candidate for the upcoming Wine 10.0. It marks the beginning of the yearly code freeze period. Please give this release a good testing and report any issue that you find, to help us make the final 10.0 as good as possible.
What's new in this release:
- Bundled vkd3d upgraded to version 1.14.
- Mono engine updated to version 9.4.0.
- Initial version of a Bluetooth driver.
- UTF-8 support in the C runtime functions.
- Support for split debug info using build ids.
- Various bug fixes.
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.0-rc1/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.0-rc1 (total 17):
- #43172 IDirectPlay4::EnumConnections needs to support wide string in DPNAME structure
- #56109 Broken Radiobutton navigation (Up/Down, Accelerators) in several InnoSetup installers
- #56709 PackTouchHitTestingProximityEvaluation not located in USER32.dll when attempting to run Clip Studio Paint 3.0
- #56838 FL Studio 21 gui problem
- #57064 Bloodrayne 2 (legacy and Terminal Cut): graphical issue (foggy screen)
- #57308 Cannot load split debug symbols under /usr/lib/debug
- #57401 Dragon Unpacker crashes on both wine devel and staging
- #57411 Heroes of the Storm: screen sporadically flickers black
- #57431 Links 2003 Crashes
- #57437 PStart isn't showing a menu in the tray bar
- #57453 Regression: TWM: Cursor position offset in *some* programs.
- #57457 Mathcad 15 crashes when enter trace tab
- #57463 winebus always crashing with unknown since 8b41c2cfddba1f9973246f61e39d4a4d92912da5
- #57472 Systray support is broken in Wine 9.22
- #57474 Windows disappear irreversibly when are not shown on a virtual desktop
- #57477 After commit of 484c61111ef32d75dcf5cf1656b4469b4de3ec37 game could not launch with dxvk
- #57493 Mathcad 15 crashes on startup due to unhandled domdoc MaxElementDepth property
### Changes since 9.22:
```
Aida Jonikienė (6):
dsound: Handle NaN values in the 3D code.
dsound: Add an angle check for SetOrientation().
dsound/tests: Add NaN tests for floating-point 3D functions.
dsound: Add non-NaN value tests for SetOrientation().
winevulkan: Mirror function handling in vk_is_available_instance_function32().
winevulkan: Use WINE_UNIX_LIB instead of WINE_VK_HOST.
Alexandre Julliard (20):
ntdll: Initial version of NtContinueEx().
ntdll: Always return the handle from NtCreateIoCompletion().
server: Do not allow to open an existing mailslot in NtCreateMailslotFile.
server: Fix a token reference leak.
ntdll/tests: Remove some workarounds for old Windows versions.
ntdll/tests: Add tests for opening objects with zero access.
vkd3d: Import upstream release 1.14.
server: Use the correct handle allocation pattern for all object types.
win32u: Add some access rights when creating a desktop object.
server: Make CurrentControlSet a symlink in new prefixes.
ntdll: Make a debug channel dynamically settable only if there's no specified class.
taskmgr: Only list dynamically settable debug channels.
server: Only store a Unix name for regular files.
widl: Avoid unused variable warning.
configure: Correctly check the --enable-build-id option.
winegcc: Remove support for .def files as import libraries.
winebuild: Remove support for .def files as import libraries.
wrc: Use the correct error function for syntax errors.
server: Print signal names in traces.
ntdll: Move update_hybrid_metadata() to the ARM64EC backend.
Alfred Agrell (2):
dsound/tests: Add nonlooping SetNotificationPositions test.
dsound: Fix SetNotificationPositions at end of nonlooping buffer.
Alistair Leslie-Hughes (3):
include: Add _WIN32_WINNT_ version defines.
include: Add DB_VARNUMERIC struct.
include: Add SQL_C_TCHAR define.
Andrew Nguyen (1):
msxml3: Accept the domdoc MaxElementDepth property.
Anton Baskanov (2):
dplayx/tests: Test client side of GetMessageQueue() separately.
dplayx: Support DPMESSAGEQUEUE_RECEIVE in GetMessageQueue().
Billy Laws (5):
msi: Dynamically determine supported package architectures.
ntdll: Test more ARM64 brk instruction exception behaviour.
ntdll: Fix reported exception code for some brk immediates.
ntdll: Add arm64ec_get_module_metadata helper.
ntdll: Force redirect all ARM64EC indirect calls until the JIT is ready.
Brendan McGrath (2):
mfmediaengine: Implement the Simple Video Renderer.
mfmediaengine: Fallback to sample copy if scaling is required.
Brendan Shanks (3):
include: Use %fs/%gs prefixes instead of a separate .byte 0x64/.byte 0x65.
ntdll: Use %fs/%gs prefixes instead of a separate .byte 0x64/.byte 0x65.
ntdll: Use sched_getcpu instead of the getcpu syscall.
Conor McCarthy (12):
winegstreamer: Handle null transform in video IMediaObject::Flush().
winegstreamer: Handle null transform in video IMFTransform::ProcessMessage() DRAIN.
winegstreamer: Handle null transform in video IMFTransform::ProcessMessage() FLUSH.
winegstreamer: Handle null transform in WMA IMediaObject::Flush().
winegstreamer: Return the result code from media_source_Pause().
mf/tests: Add tests for shutting down a media source used in a session.
mf: Handle media source EndGetEvent() failure due to shutdown.
mf: Handle media source BeginGetEvent() failure due to shutdown.
mf: Handle media source event subscription failure due to source shutdown.
mf: Handle media source Start() failure due to source shutdown.
mf: Introduce IMFMediaShutdownNotify for notification of media source shutdown.
winegstreamer: Send media source shutdown notification via IMFMediaShutdownNotify.
Daniel Lehman (5):
msvcr120/tests: Add tests for _fsopen.
msvcp120/tests: Add tests for _Fiopen.
ucrtbase/tests: Add tests for _fsopen.
msvcp140/tests: Add tests for _Fiopen.
msvcp140: Call into fopen from _Fiopen.
Dmitry Timoshkov (1):
ntdll: Add NtFlushBuffersFileEx() semi-stub.
Dāvis Mosāns (1):
ntdll/tests: Unify APC test functions.
Elizabeth Figura (14):
wined3d: Use wined3d_texture_download_from_texture() even if the dst texture map binding is not valid.
wined3d: Beginnings of an HLSL FFP pixel shader implementation.
wined3d: Implement pretransformed varyings in the HLSL FFP pipeline.
wined3d: Take the depth buffer into account for HLSL pretransformed draws.
wined3d: Implement lighting in the HLSL FFP pipeline.
wined3d: Implement vertex fog in the HLSL FFP pipeline.
quartz/dsoundrender: Always treat samples as continuous if they are late or out of order.
quartz/dsoundrender: Remove the unused "tStop" argument to send_sample_data().
quartz/dsoundrender: Play non-discontinuous samples consecutively.
quartz/tests: Test whether the DirectSound renderer provides a position.
quartz/dsoundrender: Do not provide time to the passthrough.
quartz/dsoundrender: Do not ignore preroll samples.
quartz/dsoundrender: Queue samples and render them on a separate thread.
quartz/dsoundrender: Use send_sample_data() to fill the buffer with silence at EOS.
Eric Pouech (11):
kernel32: Add tests for checking the exit code of default ctrl-c handlers.
kernelbase: Fix exit code for default ctrl-c handler.
ntdll/tests: Fix format warning with clang.
configure: Properly test clang for dwarf support.
winegcc: Remap build-id linker option for clang.
configure: Use -Wl,--build-id unconditionally if requested.
configure: Don't add -Wl,--build-id linker option to CFLAGS.
dbghelp: Extend search for buildid in system directories.
dbghelp: Search debug info with buildid for RSDS debug entry w/o filenames.
server: Ensure in pending delete on close that path to unlink are unique.
winedbg: Add support for dynamic debug channel.
Esme Povirk (1):
mscoree: Update Wine Mono to 9.4.0.
Evan Tang (2):
kernelbase: Properly return 0 from EnumSystemFirmwareTable on error.
kernelbase: Add test for EnumSystemFirmwareTables on missing provider.
Fabian Maurer (8):
dplayx: Add a few more locks (Coverity).
comctl32/tests: Add tests for radio button WM_SETFOCUS.
comctl32: Send parent BN_CLICKED notification when a radio button get focused.
user32/tests: Add tests for radio button WM_SETFOCUS.
user32: Send parent BN_CLICKED notification when a radio button get focused.
oleaut32: Make OleCreateFontIndirect return error if font name is missing.
oleaut32: Remove unneeded null checks.
d3dx9: Remove superfluous null check (Coverity).
Gabriel Ivăncescu (38):
mshtml: Move htmlcomment.c contents into htmltextnode.c.
mshtml: Add an internal IWineHTMLCharacterData interface and forward text node methods to it.
mshtml: Expose the props from the IWineHTMLCharacterData interface for CharacterDataPrototype.
mshtml: Don't expose toString from text nodes in IE9+ mode.
mshtml: Expose IHTMLCommentElement2 interface for comment elements.
mshtml: Don't expose 'atomic' prop from comment nodes in IE9+ modes.
mshtml: Don't expose element props from comment nodes in IE9+ modes.
mshtml: Implement get_data for legacy DOCTYPE comment elements.
mshtml: Expose ie9_char as char for KeyboardEvent.
mshtml: Make PageTransitionEvents only available in IE11 mode.
mshtml: Make ProgressEvent constructor only available in IE10+ modes.
mshtml: Expose respective props from Element prototype.
mshtml: Don't expose fireEvent from elements in IE11 mode.
mshtml: Don't expose onmspointerhover from elements in IE11 mode.
mshtml: Move toString from HTMLElement to HTMLAnchorElement or HTMLAreaElement in IE9+ modes.
mshtml: Move hasAttributes from HTMLElement to HTMLDOMNode in IE9+ modes.
mshtml: Move normalize from HTMLElement to HTMLDOMNode in IE9+ modes.
mshtml: Don't expose onpage from elements in IE9+ modes.
mshtml: Don't expose expression methods from elements in IE9+ modes.
mshtml: Don't expose some props from elements in IE10+ modes.
mshtml: Don't expose some props from elements in IE11 mode.
mshtml: Move HTMLTableDataCellElement prototype props to the HTMLTableCellElement prototype.
mshtml: Add IHTMLDOMNode2 in every mode in node's init_dispex_info.
mshtml: Get rid of HTMLELEMENT_TIDS.
mshtml: Move HTMLDocument prototype props to the Document prototype.
mshtml: Use DocumentPrototype as the document's prototype for modes prior to IE11.
mshtml: Expose the right props from document fragments.
mshtml: Don't expose some props from document prototype depending on mode.
mshtml/tests: Add more tests for the style aliased prop names.
mshtml: Expose respective props from MSCSSPropertiesPrototype.
mshtml: Prefer builtins for style aliases that have the same name.
mshtml: Move 'filter' prop to MSCSSPropertiesPrototype in IE9 mode.
mshtml: Don't expose 'behavior' prop from styles in IE11 mode.
mshtml: Don't expose the clip* props from style declaration or properties in IE9+ modes.
mshtml: Don't expose the *Expression methods from styles in IE9+ modes.
mshtml: Don't expose toString from styles in IE9+ modes.
mshtml: Expose respective props from StyleSheetPrototype.
mshtml: Get rid of unused HTMLElement_toString_dispids.
Georg Lehmann (1):
winevulkan: Update to VK spec version 1.4.303.
Gerald Pfeifer (3):
win32u: Don't use bool as member of a union type.
msi: Use mybool instead of bool as variable name.
winhlp32: Drop unused member of struct lexret.
Giovanni Mascellani (2):
user32/tests: Check that message-only windows ignore WS_EX_TOPMOST.
win32u/window: Ignore changing WS_EX_TOPMOST for message-only windows.
Hans Leidekker (2):
msi: Assume PLATFORM_INTEL if the template property is missing.
bcrypt: Trace returned handles.
Haoyang Chen (1):
gdiplus: Use the FormatID of the source image when cloning.
Henri Verbeet (3):
d3dcompiler/tests: Clean up tests fixed by vkd3d merges.
d3d10_1/tests: Clean up tests fixed by vkd3d merges.
d3dx11/tests: Clean up tests fixed by vkd3d merges.
Jacek Caban (18):
msvcrt/tests: Silence -Wformat-security Clang warning in test_snprintf.
include: Apply LONG_PTR format hack only to Wine build.
include: Use LONG_PTR format hack on Clang in MSVC mode.
include: Use format attribute on Clang in MSVC mode.
d3d11/tests: Always use a format string in winetest_push_context calls.
ddraw/tests: Always use a format string in winetest_push_context calls.
imagehlp: Cast AddressOfData to size_t in debug traces.
mmdevapi/tests: Use %u format for unsigned int arguments.
include: Enable format attributes for debug traces in Clang MSVC mode.
gdiplus: Cast enums to unsigned type when validating its value.
jscript: Avoid unused variable warning.
msi: Avoid unused variable warning.
msxml: Avoid unused variable warning.
vbscript: Avoid unused variable warning.
wbemprox: Avoid unused variable warning.
include: Use inline assembly on Clang MSVC mode in exception helpers.
jscript: Move property allocation to update_external_prop.
jscript: Add support for deleting host properties.
Louis Lenders (1):
msvcp140: Add a version resource.
Marc-Aurel Zent (8):
ntdll: Implement NtGetCurrentProcessorNumber for macOS on x86_64.
server: Do not suspend mach task in read_process_memory.
server: Use mach_vm_read_overwrite in read_process_memory.
server: Do not suspend mach task in get_selector_entry.
server: Use mach_vm_read_overwrite in get_selector_entry.
server: Do not suspend mach task in write_process_memory.
server: Do not page-align address in write_process_memory.
server: Work around macOS W^X limitations in write_process_memory.
Matteo Bruni (5):
d3dcompiler/tests: Clean up further tests fixed by vkd3d merges.
d3dx9_43: Generate an import library.
d3dx9/tests: Add d3dx9_43 tests.
d3dx9/tests: Test the 'double' HLSL data type.
d3dcompiler/tests: Test the 'double' HLSL data type.
Mohamad Al-Jaf (5):
windows.networking.connectivity: Add stub dll.
windows.networking.connectivity: Add INetworkInformationStatics stub interface.
windows.networking.connectivity: Implement INetworkInformationStatics::GetInternetConnectionProfile().
windows.networking.connectivity/tests: Add some INetworkInformationStatics::GetInternetConnectionProfile() tests.
windows.networking.connectivity: Implement IConnectionProfile::GetNetworkConnectivityLevel().
Nikolay Sivov (6):
d2d1/effect: Improve handling of blob properties.
windowscodecs/tests: Use string literals in the metadata tests.
windowscodecs/tests: Add some tests for CreateMetadataReader().
windowscodecs/tests: Add a basic test for CreateComponentEnumerator().
windowscodecs/metadata: Add a helper to iterate over components.
windowscodecs: Implement CreateMetadataReader().
Orin Varley (3):
msxml3/tests: Add indentation test.
comctl32/tests: Add tests for a small number of items but big size to the combobox dropdown size tests.
comctl32: Make CBS_NOINTEGRALHEIGHT only set minimum combobox height.
Paul Gofman (1):
explorer: Prevent apps from showing Wine specific shell tray window with no icons.
Piotr Caban (43):
include: Add ___lc_codepage_func() declaration.
msvcp60: Improve wcsrtombs implementation.
msvcp60/tests: Add wcsrtombs tests.
msvcrt: Call _wmkdir in _mkdir function.
msvcrt: Call _wrmdir in _rmdir function.
msvcrt: Call _wchdir in _chdir function.
msvcrt: Call _wgetcwd in _getcwd function.
msvcrt: Call _wgetdcwd in _getdcwd function.
msvcrt: Call _wfullpath in _fullpath function.
ole32: Fix unsupported vector elements detection in PropertyStorage_ReadProperty.
ole32/tests: Add FMTID_UserDefinedProperties property storage tests.
ole32: Read property storage section from correct location.
ole32/tests: Add more FMTID_UserDefinedProperties property storage tests.
msvcrt: Prepare _fsopen to handle UTF-8 strings.
msvcrt: Call _wunlink in _unlink function.
msvcrt: Call _waccess in _access function.
msvcrt: Call _wchmod in _chmod function.
msvcrt: Call _unlink in remove function.
msvcrt: Call _wunlink in _wremove function.
msvcrt: Prepare _mktemp to handle UTF-8 strings.
msvcrt: Prepare _mktemp_s to handle UTF-8 strings.
msvcrt: Call _wstat64 in _stat64 function.
msvcrt: Call _wrename in rename function.
msvcrt: Call _wtempnam in _tempnam function.
msvcrt: Don't return success on GetFullPathName error in _wsearchenv_s.
msvcrt: Prepare _searchenv_s() for utf-8 encoded filename.
include: Cleanup corecrt_io.h file and use it in io.h.
msvcrt: Call _wfindfirst32 in _findfirst32 function.
msvcrt: Call _wfindnext32 in _findnext32 function.
msvcrt: Call _wfindfirst64 in _findfirst64 function.
msvcrt: Call _wfindnext64 in _findnext64 function.
msvcrt: Call _wfindfirst64i32 in _findfirst64i32 function.
msvcrt: Call _wfindnext64i32 in _findnext64i32 function.
msvcrt: Add putenv() utf-8 tests.
msvcrt: Return error on NULL path parameter in _wsopen_dispatch.
msvcrt: Prepare _sopen_dispatch to handle utf-8 encoded path.
msvcrt: Prepare freopen to handle utf-8 encoded path.
msvcrt: Prepare _loaddll to handle utf-8 encoded path.
msvcrt: Prepare _spawnl to handle utf-8 encoded arguments.
msvcrt: Prepare _execle to handle utf-8 encoded arguments.
msvcrt: Prepare remaining process creation functions to handle utf-8 encoded arguments.
ucrtbase: Enable utf8 support.
ucrtbase: Always use CP_ACP when converting environment block.
Roman Pišl (1):
kernel32: Use a proper import for HeapFree.
Rémi Bernon (45):
winebus: Ignore reports with unexpected IDs.
winex11: Read _NET_SUPPORTED atom list on process attach.
winex11: Only request the supported _NET_WM_STATE atoms.
winevulkan: Add missing wine_vkGetPhysicalDeviceSurfaceFormatsKHR manual wrapper.
win32u: Use PFN_* typedefs for vulkan function pointers.
winevulkan: Get rid of the instance/device funcs structs.
winevulkan: Generate ALL_VK_(DEVICE|INSTANCE)_FUNCS in wine/vulkan.h.
winevulkan: Move vulkan_client_object header to wine/vulkan_driver.h.
winevulkan: Name wine_instance parameters and variables more consistently.
winevulkan: Hoist physical device array and client instance handle.
winevulkan: Introduce a new vulkan_instance base structure.
winevulkan: Introduce a new vulkan_physical_device base structure.
winevulkan: Name wine_device parameters and variables more consistently.
winevulkan: Introduce a new vulkan_device base structure.
winevulkan: Restore some wine_*_from_handle helpers.
winevulkan: Introduce a new vulkan_queue base structure.
winevulkan: Introduce a new vulkan_surface base structure.
winevulkan: Introduce a new vulkan_swapchain base structure.
winevulkan: Use a vulkan_object header for other wrappers.
winevulkan: Use the result to decide if creation failed.
winevulkan: Introduce a new vulkan_object_init helper.
winevulkan: Fix incorrect client queue pointers.
winevulkan: Avoid changing client command buffer pointer.
winevulkan: Get rid of unnecessary *to_handle helpers.
winevulkan: Use the vulkan object as the wrapper tree node.
winevulkan: Keep the host function pointers in devices and instances.
win32u: Move surface and swapchain wrappers from winevulkan.
winex11: Don't update Win32 window position for offscreen windows.
winex11: Do not use desired_state when computing state updates.
winex11: Set a non-transparent window background pixel color.
win32u: Let fullscreen windows cover entire monitors, keeping aspect ratio.
winex11: Use bilinear filtering in xrender_blit.
quartz/dsoundrender: Rename "This" to "filter".
quartz/dsoundrender: Add missing static qualifier to IDispatch methods.
quartz/dsoundrender: Make brace placement consistent.
quartz/dsoundrender: Use a consistent style for method names.
quartz/dsoundrender: Make trace messages more consistent.
win32u: Add a force parameter to lock_display_devices.
win32u: Implement update_display_cache with lock_display_devices.
win32u: Remove recursive lock_display_devices calls.
win32u: Hold the display_lock when checking the cache update time.
mfmediaengine: Implement D3D-aware video frame sink.
windows.networking.connectivity: Use %I64d instead of %llu.
winex11: Move the _NET_SUPPORTED information to the thread data.
winex11: Listen to root window _NET_SUPPORTED property changes.
Santino Mazza (2):
mmdevapi/tests: Test for IAudioClockAdjustment.
mmdevapi: Do not modify buffer size after sample rate change.
Sven Baars (1):
win32u: Allow unsetting the user driver.
Tim Clem (3):
explorer: Apply a default admin token when running for the desktop.
Revert "win32u: Create explorer with the thread effective access token.".
kernelbase: Improve logging of information classes in GetTokenInformation.
Tingzhong Luo (3):
dwrite/tests: Add a test for DrawGlyphRun() bounds.
dwrite/gdiinterop: Always return valid bounds from DrawGlyphRun on success.
dwrite/gdiinterop: Apply dpi scaling to the whole target transform.
Torge Matthies (2):
advapi32/tests: Add test for CurrentControlSet link.
loader: Add Default, Failed, and LastKnownGood values to HKLM\System\Select.
Vibhav Pant (15):
winebth.sys: Add base winebth.sys driver.
winebth.sys: Add a basic unixlib stub using DBus.
winebth.sys: Create radio PDOs from the list of org.bluez.Adapter1 objects on BlueZ.
winebth.sys: Derive a unique hardware ID for radio PDOs from their corresponding BlueZ object path.
winebth.sys: Register and enable BTHPORT_DEVICE and BLUETOOTH_RADIO interfaces for radio PDOs.
bluetoothapis/tests: Fix potential test failure from memcmp'ing uninitialized bytes.
bluetoothapis/tests: Add tests for BluetoothFindFirstRadio.
bluetoothapis/tests: Add tests for BluetoothFindNextRadio.
bluetoothapis/tests: Add tests for BluetoothFindRadioClose.
bluetoothapis: Implement BluetoothFindFirstRadio, BluetoothFindNextRadio, BluetoothFindRadioClose.
winebth.sys: Set radio PDO properties from the device's corresponding org.bluez.Adapter1 object properties.
winebth.sys: Create new radio PDOs on receiving InterfacesAdded for objects that implement org.bluez.Adapter1.
winebth.sys: Remove the corresponding radio PDO on receiving InterfacesRemoved for a org.bluez.Adapter1 object.
winebth.sys: Update radio PDO properties on receiving PropertiesChanged for an org.bluez.Adapter1 object.
winebth.sys: Implement IOCTL_BTH_GET_LOCAL_INFO.
Vijay Kiran Kamuju (2):
user32: Add PackTouchHitTestingProximityEvaluation stub.
user32: Add EvaluateProximityToRect stub.
Vladislav Timonin (1):
comctl32/edit: Scroll caret on Ctrl+A.
Zhiyi Zhang (2):
appwiz.cpl: Fix wine_get_version() function pointer check.
uxtheme: Check DrawThemeEdge() content rectangle pointer.
Ziqing Hui (5):
qasf: Return S_FALSE for flushing in dmo_wrapper_sink_Receive.
qasf/tests: Test dmo_wrapper_sink_Receive if downstream fail to receive.
qasf: Return failure in dmo_wrapper_sink_Receive if process_output fails.
qasf/tests: Add more tests for dmo_wrapper_sink_Receive.
qasf: Correctly return failure in process_output.
```
The first release candidate for Wine 10.0-rc1 is now available, signifying the commencement of the annual code freeze period. The update encompasses enhancements to vkd3d, the Mono engine, the Bluetooth driver, UTF-8 support in C runtime functions, the implementation of split debug information utilizing build IDs, as well as a range of bug fixes.