WineHQ

Wine Announcement

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.