The Wine development release 8.11 is now available. What's new in this release: - More mouse cursor clipping improvements. - Support for TLS alerts. - Increased available address space in WoW64 mode. - Various bug fixes. The source is available at: https://dl.winehq.org/wine/source/8.x/wine-8.11.tar.xz Binary packages for various distributions will be available from: https://www.winehq.org/download You will find documentation on https://www.winehq.org/documentation You can also get the current source directly from the git repository. Check https://www.winehq.org/git for details. Wine is available thanks to the work of many people. See the file AUTHORS in the distribution for the complete list. ---------------------------------------------------------------- Bugs fixed in 8.11 (total 26): - #48811 StarCraft II fails to load in staging - #51640 LibreOffice 7.2.0 crashes while browsing directories - #53682 wineboot shows "user_check_not_lock BUG: holding USER lock" on aarch64 since wine-7.14 - #54380 Installed windows driver triggers a window when running any program in winXP mode (unimplemented function ntoskrnl.exe.Ke386QueryIoAccessMap) - #54442 experimental wow64 mode: doesn't show some graphical windows - #54738 msi:action - The 64-bit test_register_class_info() fails in Wine - #54742 The 64-bit advapi32:registry breaks the 32-bit test_redirection() in Wine - #54751 The 64-bit advapi32:registry breaks test_CoGetPSClsid() in ole32:compobj in Wine - #54797 Lunar Magic 3.33: Crashes with BadWindow unless WINEDEBUG=+all - #54848 dnsapi:query - test_DnsQuery() fails on Rémi's Wine test machines - #54980 wine lost ability to correctly handle printer(CUPS)-supplied fonts (several programs) - #54993 Framemaker 8 crashes in internal search operation - #55013 user32:monitor - test_EnumDisplayMonitors() sometimes fails on Linux - #55016 xaudio2_8:xaudio2 - test_simple_streaming() crashes on Windows 8+ - #55027 Microsoft Office: IME result string may get doubled when edit is done - #55042 IDictionary::Add() fails to add entries with numerical keys that have the same hashes - #55043 Z-Vision for Windows: Assertion failed when clicking "LOAD" button. - #55046 ALT-TAB broken with virtual desktop and capture mouse (regression: 8.9 -> 8.10) - #55047 d3d test_cursor_clipping() fails - #55050 Wine stucks when creating prefix - #55051 Build regression in wine 8.10 using clang on aarch64 (error in backend: Invalid register name "x18") - #55055 Japanese IME fails to clear composition string when deleting the only remaining character - #55074 Multiple apps fail to show anything after launch in virtual desktop mode (Steam, Ubisoft Connect) - #55088 Program crashes when Common Dialog File open function is called - #55091 preloader build failure with GOTPCREL relocation - #55097 cmd.exe does not handle PATH with leading or sequential semicolons ---------------------------------------------------------------- Changes since 8.10: Akihiro Sagawa (1): commdlg: Fix dialog template parser when caption starts with a DBCS character. Alex Henrie (21): windows.media.speech: Fix memory leak on error path in session_worker_thread_cb (scan-build). shell32: Fix memory leak on error path in FolderItems_Constructor (scan-build). rpcrt4: Don't use GetProcAddress for ole32 functions. wldap32: Clean up LDAP_OPT_API_INFO. wusa: Zero out identity on error path in read_identity. msi: Fix memory leak on error path in MSI_OpenPackageW (scan-build). msi: Fix double free on error paths in TransformView_Create (scan-build). winhttp: Fix memory leak on error path in request_get_codepage (scan-build). msi: Fix memory leaks in HANDLE_CustomType23 (scan-build). combase: Don't export hProxyDll or rpc_execute_call. comdlg32: Don't use GetProcAddress for SHSimpleIDListFromPath. comctl32: Remove duplicate declarations of MONTHCAL functions. hhctrl: Initialize item->items to NULL in parse_index_sitemap_object (scan-build). urlmon: Don't export urlmon_instance. wininet: Don't overallocate in urlcache_encode_url_alloc (scan-build). conhost: Use correct pointer type in edit_line_transpose_words (scan-build). advpack: Check the return value of adv_install in DoInfInstallW (scan-build). wbemprox: Fix memory leak on error path in enum_key (scan-build). sane: Fix use after free in create_item (scan-build). crypt32: Don't export CRYPT_CopyReversed. ws2_32: Don't export num_startup. Alexandre Julliard (39): include: Remove redundant __WINE_USE_MSVCRT checks. makefiles: Define WINE_UNIX_LIB for all files that are built for Unix. loader: Make the loader position-independent on 64-bit. winegcc: Fix an uninitialized variable warning in the PE build. wow64: Don't force wow64 dlls to load at low addresses. kernel32/tests: Fix the PROCESS_BASIC_INFORMATION exit status type. server: Also enforce the size of varargs data structures. ntdll: Support the lower memory limit in MEM_ADDRESS_REQUIREMENTS. ntdll: Allocate 64-bit and kernel stacks in high memory. ntdll: Load modules with a high base address in high memory. ntdll: Make only the necessary pages writable in the ARM64EC code map. kernelbase: Don't define stdcall functions on non-i386. ntdll: Don't define stdcall functions on non-i386. wow64cpu: Don't define stdcall functions on non-i386. include: Don't support stdcall functions on non-i386. makefiles: Pass the dll extension from configure. makefiles: Make the dll extension a per-architecture variable. makefiles: Don't build native import libraries for PE-only build. makefiles: Disable native import libraries on ARM64. conhost: Use nameless union/structs. explorer: Use nameless union/structs. ipconfig: Use nameless union/structs. netstat: Use nameless union/structs. oleview: Use nameless unions/structs. regedit: Use nameless unions/structs. services: Use nameless unions/structs. include: Disallow fastcall functions in Unix libraries. loader: Force building the main loader as PIE on 64-bit. loader: Always build the main loader as PIE if we have a preloader. loader: Build the preloader as PIE on 64-bit. winecfg: Use nameless unions/structs. winedbg: Use nameless unions/structs. winefile: Use nameless unions/structs. winemenubuilder: Use nameless unions/structs. winhlp32: Use nameless unions/structs. wordpad: Use nameless unions/structs. wow64: Map a copy of ntdll to build the syscall table. ntdll: Implement _errno(). wow64: Don't load the 32-bit ntdll as an image to avoid debugger notifications. Alistair Leslie-Hughes (1): wbemdisp: Support DISPATCH_PROPERTYGET in Object Invoke. Andrey Gusev (1): include: Add flags in D3D11_RESOURCE_MISC_FLAG. Bernhard Kölbl (2): mf: Clear queued topologies on session shutdown. mf: Don't leak sink in session_get_renderer_node_service(). Connor McAdams (10): uiautomationcore: Store all events in an event list. uiautomationcore: Clone UiaCacheRequest structure passed to UiaAddEvent. uiautomationcore: Add support for cloning UiaCondition structures. uiautomationcore: Implement UiaRaiseAutomationEvent. uiautomationcore: Unconditionally match all events registered on the desktop node with a scope of subtree. uiautomationcore/tests: Add tests for cross-process events. uiautomationcore: Add support for creating serverside events. uiautomationcore: Prevent creation of duplicate serverside events. uiautomationcore: Add support for advising providers of events on serverside events. uiautomationcore: Implement UiaEventAddWindow. Daniel Lehman (1): wininet: Free temporary buffer in InternetQueryOptionW loop. David Kahurani (3): gdiplus: Allow NULL format in GdipAddPathString. msi: Reject shorter/longer lines in MsiDatabaseImportA. msi: Convert newlines to alternate representation when exporting. Davide Beatrici (21): winepulse: Move main loop logic into mmdevapi. winealsa: Implement main_loop in unixlib. winecoreaudio: Implement main_loop in unixlib. wineoss: Implement main_loop in unixlib. winepulse: Move AudioClient's Initialize's exclusive mode check into unixlib. winepulse: Move get_application_name into mmdevapi. winealsa: Call mmdevapi's get_application_name. winecoreaudio: Call mmdevapi's get_application_name. wineoss: Call mmdevapi's get_application_name. winepulse: Move stream_release into mmdevapi. winealsa: Use mmdevapi's stream_release. winecoreaudio: Use mmdevapi's stream_release. wineoss: Use mmdevapi's stream_release. winealsa: Use mmdevapi's set_stream_volumes. winecoreaudio: Use mmdevapi's set_stream_volumes. wineoss: Use mmdevapi's set_stream_volumes. winepulse: Use mmdevapi's set_stream_volumes. winealsa: Use create_stream's channel count in AudioClient's Initialize. winecoreaudio: Use create_stream's channel count in AudioClient's Initialize. wineoss: Use create_stream's channel count in AudioClient's Initialize. winepulse: Refactor AudioClient's Initialize to match other drivers. Eric Pouech (9): kernel32/tests: Extend console inheritance tests. include/dbghelp.h: Added some missing definitions. dbghelp: Create implementation basis for SymSrvGetFileIndex*(). dbghelp/tests: Add tests for SymSrvGetIndexesInfo. dbghelp/tests: Add tests for SymSrvGetInfoIndexes. dbghelp: Implement SymSrvGetFileIndexInfo for PE modules. dbghelp/tests: Add explicit tests about loading ELF modules. dbghelp: Fix reading Wine loader's base address. winedump: Tidy up print out in minidumps. Etaash Mathamsetty (2): ntdll: Allow RtlAllocateHeap to crash with invalid handle. user32: Add GetSystemDpiForProcess export. Fabian Maurer (3): wineps.drv: Use afm FamilyName instead of FullName. mmdevapi: Don't redefine stream_handle (gcc 4.3). gdiplus: Refactor and add comments for easier understanding. Gabriel Ivăncescu (27): jscript: Correctly implement context for indirect eval calls in ES5+ modes. jscript: Fix addressing invalid memory if ref is an argument. jscript: Fix function leak in scope_init_locals. jscript: Get rid of jsobj in scope_chain_t. jscript: Don't use iface_to_jsdisp where it's not necessary to grab it. jscript: Store detached args into a scope's specialized buffer. jscript: Start from the last argument when adding them to named locals. jscript: Get rid of the function instance in arguments obj. mshtml: Traverse and unlink AreaElements properly. mshtml: Fix style declaration leak in HTMLStyle_Create. mshtml: Fix nsIDOMNode leak when retrieving an item in the node list. mshtml: Fix node leak when enumerating nodes. mshtml: Handle failure and cleanup properly when enumerating nodes. mshtml: Fix leaks in create_all_list. mshtml: Fix element leaks in get_elem_source_index. mshtml: Fix text node leak in Element innerText setter. mshtml: Fix text node leak in OptionElement text setter. mshtml/tests: Fix CurrentStyle leak in test_style_filters. jscript: Use jsstr_empty instead of allocating empty string. jscript: Implement `caller` for function instances and prototype. jscript: Throw error when accessing `arguments` prop of bind functions. jscript: Don't expose Function.prototype.arguments in non-html mode. jscript: Store ref to scope directly instead of frame in arguments object. jscript: Don't use detached arguments buffer in html mode. jscript: Always create detached variable objects with no class. jscript: Properly handle passing undefined value to Number.toPrecision. jscript: Properly handle passing undefined value to Number.toString in ES5+ mode. Georg Lehmann (1): winevulkan: Update to VK spec version 1.3.254. Giovanni Mascellani (5): dxgi: Do not uselessly pass queue_family_index around. dxgi: Remove now-useless function d3d12_swapchain_create_buffers(). dxgi: Do not destroy D3D12 resources unless requested. dxgi: Only create D3D12 resources when necessary. dxgi: Rename and split d3d12_swapchain_destroy_buffers(). Hans Leidekker (1): secur32: Add support for sending TLS alerts. Huw D. M. Davies (2): winepulse: Don't overwrite the result in the insufficient buffer case. winepulse: Return E_NOTIMPL when the property is not found. Jacek Caban (3): user32: Remove no longer used setupapi import. win32u: Remove duplicated d3dkmdt.h include. configure: Use -fvisibility=hidden when building with msvcrt and cross compiler is not available. Jactry Zeng (2): atl/tests: Move regular DWORD tests into a loop. atl: Convert REG_DWORD to a correct type. Jinoh Kang (1): loader: Set the visibility of symbols in preloader to "hidden". Liam Middlebrook (2): cmd/tests: Add tests for PATH separator. cmd: Fix empty strings between PATH separators. Nikolay Sivov (4): scrrun/dictionary: Compare key values in addition to their hashes. oleaut32/recinfo: Use CRT allocation functions. oleaut32/recinfo: Use CoTaskMem* allocations for the record data. oleaut32: Trace typelib guid in GetRecordInfoFromGuids(). Olivier F. R. Dierick (1): ntoskrnl.exe: Add Ke386QueryIoAccessMap stub. Paul Gofman (1): crypt32: Do not create persistent container in CRYPT_CreateKeyProv(). Rémi Bernon (41): server: Pass the message code to get_hardware_msg_bit. server: Use hardware message category when checking filter. imm32: Avoid resizing IMCC to zero-size buffer. winex11: Remove now unnecessary WM_X11DRV_CLIP_CURSOR_NOTIFY. win32u: Move grab_pointer registry option from winex11. win32u: Add a clipping_reset member to user_thread_info. win32u: Add a clipping_cursor member to user_thread_info. winex11: Move clip_fullscreen_window foreground check inside it. win32u: Move fullscreen window cursor clipping from winex11. server: Update desktop cursor window when cursor pos changes. server: Keep track of the current desktop cursor handle. server: Introduce and send new WM_WINE_SETCURSOR hardware message. win32u: Add a hwnd parameter to SetCursor driver entry points. win32u: Notify drivers of cursor changes on WM_WINE_SETCURSOR. wineandroid: Set the window cursor immediately in SetCursor. winex11: Set the window cursor immediately in SetCursor. server: Update the DF_WINE_CREATE_DESKTOP desktop flag on opening. win32u: NtUserGetObjectInformation returns a BOOL, not NTSTATUS. winex11: Don't grab the cursor if another process is focused. winex11: Simplify the cursor clipping retry mechanism. winex11: Replace the clipping message HWND with a BOOL flag. winegstreamer: Introduce new stream_descriptor_set_tag helper. winegstreamer: Pass a struct wg_parser_stream to media_stream_create. winegstreamer: Factor the creation of the first stream media type. winegstreamer: Introduce new init_video_media_types helper. winegstreamer: Introduce new init_audio_media_types helper. winegstreamer: Pass the stream descriptor to media_stream_create. win32u: Remove unnecessary set_cursor new_clip rect copy. server: Pass set_cursor flags in WM_WINE_CLIPCURSOR wparam. win32u: Use a specific flag instead of shrinking the clip rect. winegstreamer: Remove colorimetry and chroma-site from wg_format caps. winegstreamer: Remove the callback mechanism from wg_allocator. winegstreamer: Move release_memory_sample helper around. winegstreamer: Lazily allocate wg_allocator unix memory. imm32/tests: Test how deleting a character can behave. imm32: Use offsets instead of lengths to decide on sending updates. winex11: Report empty preedit string when result string is committed. winex11: Make sure HIMC is opened before sending IME updates. win32u: Split default UpdateDisplayDevices implementation to a helper. win32u: Move virtual desktop display settings logic from winex11. configure: Build x86_64 PE code with mcmodel=small. Shaun Ren (8): sapi: Partially implement ISpMMSysAudio::SetState. sapi: Free completed buffers asynchronously in SpMMAudio. sapi: Implement ISpMMSysAudio::Write. sapi: Implement ISpMMSysAudio::EventHandle. sapi: Implement ISpVoice::SetOutput. sapi: Implement ISpVoice::Set/GetVoice. sapi: Implement ISpVoice::Set/GetRate. sapi: Implement ISpVoice::Set/GetVolume. Tatsuyuki Ishi (3): win32u: Move QueryDisplayConfig from user32. win32u: Cleanup naming and log messages for QueryDisplayConfig. win32u: Avoid SEGV in QueryDisplayConfig when run as service. Tim Clem (1): ntdll: Treat read faults on readable pages as write faults on macOS. Vladislav Timonin (2): shell32: Show >4GB values in size columns of My Computer. shell32: Don't show size for inaccessible drives in My Computer. Zebediah Figura (1): xaudio2/tests: Fix the IID_IXAudio28 declaration. Ziqing Hui (1): winegstreamer: Implement Flush for WMV decoder DMO.