Wine Announcement

The Wine development release 8.1 is now available.

What's new in this release:
  - Windows version set to Windows 10 for new prefixes.
  - Many code cleanups that were deferred during code freeze.  
  - Various bug fixes.

The source is available at:

Binary packages for various distributions will be available from:

You will find documentation on

You can also get the current source directly from the git
repository. Check 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.1 (total 27):

 - #43235  Dungeons & Dragons Online crashes on FreeBSD
 - #44650  Multiple Blizzard games need dxgi and d3d11 dlls mapped without hole between two LOAD segments (Diablo III v2. 6. 1. 49286+, World of Warcraft, Overwatch)
 - #47508  FL Studio: Pressing backspace while editing the name of something closes edit name window prematurely
 - #49202  Never exited critical section in freetype.c
 - #49443  Anno 1800: Super slow & bad performance
 - #49615  Device read errors logged in dmesg when running wine commands with empty CD/DVD drive, since 5.5
 - #51040  msi:package fails on Windows 10 if privileges not high enough
 - #51313  gdi32:driver sometimes fails with a STATUS_GRAPHICS_PRESENT_OCCLUDED error
 - #51784  The dinput8:hid output is too big in Wine
 - #52354  winemac.drv not functional on non metal GPUs
 - #52462  Wine don't recognize Ipega PG-9025 LT, RT and right analog stick is miss-mapped to RT and LT
 - #52878  Free PC Audit fails to show info in 'Brief' tab (needs GetBinaryValue method of the StdRegProv class)
 - #52936  winhttp:url assumes 0xfb00 cannot be converted to the ANSI codepage, fails with UTF-8 codepage
 - #53142  ieframe:webbrowser - test_ClientSite() has a rare failure on Windows 10 1809+
 - #53274  adsldp:ldap - test_ParseDisplayName() sometimes fails to connect to the server
 - #53386  cmd.exe: FOR /F USEBACKQ doesn't handle UTF-16 output of commands.
 - #53594  GOG Galaxy crashes in GetExtendedTcpTable()
 - #53666  Logitech X-56 Stick crashes the joystick subsystem if connected
 - #54030  Snagit needs Win32_Volume class ( 'select deviceid from win32_volume where driveletter =C:')
 - #54215  ListView doesn't refresh when changing between List and Details styles.
 - #54289  RtlCopyContext buffer overflow
 - #54328  nsi:nsi - test_tcp_tables() sometimes crashes in Wine
 - #54337  AviUtl shows Japanese text as garbage after conversion in ExEdit edit box
 - #54353  crypt32:cert - testVerifyRevocation() gets unexpected success in Wine on second run
 - #54357  Spurious fixme message when calling ScrollWindow()
 - #54364  RtlGenRandom fails on systems with more than 128 cores
 - #54376  ws2_32:sock - test_reuseaddr() overflows a sockaddr variable by reading an AF_INET6 peer name into it


Changes since 8.0:

Ake Rehnman (1):
      dbghelp: Store path to module image when passed through file handle.

Akihiro Sagawa (2):
      user32/tests: Add DBCS WM_CHAR tests for edit control.
      user32/edit: Fix WM_CHAR handler for double-byte characters.

Alex Henrie (23):
      include: Add RTL_CONSTANT_STRING.
      dwrite: Handle memory allocation failure in bidi_compute_bracket_pairs (cppcheck).
      winex11: Simplify confusing condition and error messages in wglShareLists.
      winspool: Improve the grammar of a comment in get_servername_from_name.
      msi: Fix memory leak on realloc failure in create_diff_row_query (cppcheck).
      msi: Fix memory leak on realloc failure in msi_get_window_text (cppcheck).
      msi: Fix memory leak on realloc failure in search_directory (cppcheck).
      mshtml: Handle memory allocation failure in set_statustext.
      twain_32: Handle realloc failure in twain_add_onedriver (cppcheck).
      dbghelp: Handle memory allocation failure in image_locate_build_id_target (cppcheck).
      hhctrl: Handle memory allocation failure in ReadChmSystem (cppcheck).
      hhctrl: Handle memory allocation failure in SearchCHM_File (cppcheck).
      inetcomm: Fix memory leak on realloc failure in copy_headers_to_buf (cppcheck).
      msvcrt: Change return type of _ctime32_s and _ctime64_s to errno_t.
      include: Add ctime_s.
      include: Add localtime_s.
      shell32: Handle memory allocation failure in Dde_OnRequest (cppcheck).
      shell32: Handle memory allocation failure in parse_dde_command (cppcheck).
      include: Remove __WINE_MALLOC from functions that shouldn't have it.
      appwiz: Fix memory leak on realloc failure in install_from_registered_dir (cppcheck).
      winex11: Fix memory leak on realloc failure in import_xdnd_selection (cppcheck).
      server: Fix buffer overrun in map_view handler.
      urlmon: Use the _recalloc function instead of reimplementing it.

Alexandre Julliard (20):
      krnl386: Make MapLS argument non-const to avoid some compiler warnings.
      krnl386: Remove a trace that causes compiler warnings.
      shell32: Allocate a full SHITEMID to avoid a compiler warning.
      tools: Add a common helper to get the argv0 directory.
      tools: Add a common helper to cleanup temp files.
      tools: Move signal masking to the common make_temp_file() helper.
      tools: Add a common helper to setup signal handlers.
      shell32: Allocate the right size for an ITEMIDLIST.
      scrobj: Initialize a variable to silence a compiler warning.
      ntdll: Initialize a variable to silence a compiler warning.
      ntdll: Prefer the ntdll path over argv[0] on platforms without reliable exe information.
      user32: Copy directly to the buffer in unpack_message().
      shlwapi/tests: Don't write uninitialized data.
      gdiplus: Initialize a variable to avoid a spurious compiler warning.
      ole32/tests: Raise an exception instead of accessing a bad pointer directly.
      makedep: Don't output rules for disabled modules.
      tools: Make sure that config.h is included.
      include: Add some C99 floating point comparison macros.
      wow64cpu: Move base address to leave more room for wow64.dll.
      kernelbase: Report correct errors in GetModuleHandleExA().

Alistair Leslie-Hughes (5):
      mountmgr.sys: Don't attempt to read from invalid media.
      include: Add _XHR enum values.
      include: Add D3DKMT_ENUMADAPTERS2 structure.
      secur32: QueryContextAttributesW check for valid object before use.
      secur32: Trace fContextReq consistently.

Bernhard Kölbl (12): Move constraints vector to the recognition session. Do not force calling convention on internal callbacks. Return IAsyncAction from session_StopAsync. Return IAsyncAction from session_PauseAsync. Test the recognizer state. Test starting, stopping, pausing and resuming the recognition session. Add a worker thread to the recognition session. Check if stopping the session resets the paused state. Allow the recognition session worker to be paused. Add an audio capturing system. Partially implement the speech recognizer state. Store recorded audio in a temporary ringbuffer.

Brendan Shanks (7):
      include/msvcrt: Add __WINE_(DEALLOC|MALLOC) attributes to _strdup and _wcsdup.
      include/msvcrt: Add __WINE_(ALLOC_SIZE|DEALLOC|MALLOC) attributes to _aligned_malloc functions.
      include/msvcrt: Add __WINE_(ALLOC_SIZE|DEALLOC) attributes to _recalloc.
      taskmgr: Use exit code 1 when terminating processes.
      taskkill: Use exit code 1 when terminating processes.
      ntdll: Add stub for NtQueryInformationProcess(ProcessCycleTime).
      kernelbase: Implement and add tests for QueryProcessCycleTime.

Eric Pouech (20):
      dbghelp: Don't search path when we have a file handle to loaded image.
      winedbg: Pass loaded image's file handle to dbghelp.
      dbghelp: Expose the real path to the module in SymGetModuleInfo*().
      dbghelp: In dwarf debug info, use the same name of anonymous UDT as pdb.
      dbghelp: Don't use dbghelp_current_cpu.
      winedbg: Use debuggee's bitness for 'examine /a' command.
      conhost.exe: Handle ctrl-pause/break key strokes.
      conhost.exe: Handle ctrl-\ in Wine.
      winedbg: Track loaded modules.
      winedbg: Fix read access to variables with thread local storage.
      include: Be consistent in naming regarding MSF's block.
      include: Update some fields in PDB headers.
      include: Consistenly use _size to name the size of a sub-block.
      include: Use stream to denote MSF stream/file.
      winedump: Introduce a helper to print PE section's characteristics.
      winedump: Correctly dump PDB_STREAM_INDEX.segment.
      winedump: Explain a bit more errors on hash header.
      winedump: Dump correctly ranges part of DBI stream.
      winedump: Properly dump segment map information from PDB/DBI stream.
      winedump: Be stricter about sizes while walking module's list.

Evan Tang (6):
      mshtml: Implement IHTMLRect2 for HTMLRect.
      ntdll: TlsIndex should not actually contain tls indices.
      secur32: Schannel AcceptSecurityContext support.
      secur32: Share code for schannel Acquire and AcceptCredentialsHandle.
      secur32: Fix schannel AcquireCredentialsHandle algorithm mismatch error return.
      secur32: Add test for schannel AcceptSecurityContext.

Fabian Maurer (7):
      user32/tests: Don't assign const variable to other const (gcc 4.7).
      wldap32: Free resource in error case and return error code (Coverity).
      wldap32: Set error code in error cases (Coverity).
      d2d1_1: Don't redefine D2D1_PROPERTY_BINDING (gcc 4.3).
      d3dx10core: Don't redefine ID3D10Device1 (gcc 4.3).
      winedump: Prevent "format overflow" warning.
      dwrite/tests: Prevent "misleading indentation" warnings.

François Gouget (5):
      user32: GetClipboardData() should set last error when the format is not found.
      user32/tests: Use wine_dbgstr_an() to trace malformed Unicode strings.
      user32: Fix a SetClipboardData() underflow and improve the tests.
      user32: Fix a SetClipboardData() buffer overflow.
      d3d12/tests: Don't check the refcount after releasing the dxgi adapter.

Gabriel Ivăncescu (20):
      mshtml: Don't release the frame returned by get_frame_by_name.
      mshtml: Don't hold ref to the created window in the FrameBase.
      mshtml: Release the image factory's dispex.
      mshtml: Don't initialize HTMLElement dispex for Option constructor.
      mshtml/tests: Fix EventObj leak in onclick test.
      mshtml/tests: Fix window leaks in dom tests.
      mshtml: Implement location props when there's no URI.
      mshtml: Defer populating the IActiveScript field until it's fully initialized.
      jscript: Implement SID_GetCaller for QueryService.
      vbscript: Add a ServiceProvider stub.
      vbscript: Implement SID_GetCaller for QueryService.
      include/mshtml: Add the other IHTMLEventObj* interfaces.
      mshtml: Use Scrollbar_Auto as default for vertical scrollbars.
      jscript: Pass the correct ServiceProvider when invoking external prop.
      mshtml: Return undefined from window.XMLHttpRequest for uninitialized documents.
      mshtml: Traverse and unlink builtin func disps.
      mshtml: Simplify dynamic props unlinking.
      mshtml: Tie window.location to the outer window.
      mshtml: Embed the HTMLLocation into the outer window.

Georg Lehmann (1):
      winevulkan: Update to VK spec version 1.3.240.

Gerald Pfeifer (2):
      localspl: Avoid uninitialized variable in fill_builtin_form_info.
      tools: Include limits.h for PATH_MAX.

Hans Leidekker (22):
      advapi32: Bump random buffer size.
      dplayx/tests: Skip tests when the dll is missing.
      wbemprox: Implement Win32_Volume.
      wbemprox: Implement GetBinaryValue() method.
      wbemprox: Remove reg_ prefix from static functions.
      winhttp/tests: Fix test failures with the UTF-8 code page.
      adsldp/tests: Avoid test failures when the server is down.
      ntdll/tests: Mark more Windows 11 test failures as broken.
      ntdll/tests: Fix path test failures on Windows 11.
      ntdll/tests: Fix some Wow64 test failures on Windows 11.
      gdi32/tests: Mark another D3DKMTCheckOcclusion() test as flaky.
      ws2_32/tests: Fix some test failures on Windows 11.
      ws2_32/tests: Skip adapters that aren't up and running in test_bind().
      ntdll: Add Windows 11 version.
      ntdll: Default to Windows 10.
      winecfg: Fix CurrentVersion registry string for Windows 10 and up.
      msi/tests: Avoid test failures when running with insufficient rights.
      msi: Install and patch global assemblies in InstallFinalize.
      msi: Perform late initialization of the assembly caches.
      msi: Remove msi_ prefix from static functions.
      msi: Get rid of unnecessary typedefs.
      wbemprox: Recognize Windows 11.

Huw D. M. Davies (1):
      winebuild: Reorder the includes to avoid a build error on macOS.

Jacek Caban (2):
      win32u: Silence spurious FIXME in NtUserScrollWindowEx.
      ieframe/tests: Relax session count test.

James McDonnell (1):
      kernel32: Use MoveFileWithProgress() to partially implement MoveFileTransacted(),

Jinoh Kang (9):
      ntoskrnl.exe/tests: Use loopback address in test_wsk_listen_socket.
      riched20: Obtain the composition start index after deleting selection.
      ntdll: Check for delayed free block in heap_validate_ptr.
      ntdll: Validate subheap's owner heap when validating heap.
      ntdll: Validate blocks in the heap pending free request list.
      ntdll: Remove redundant WARN_ON(heap) check.
      ws2_32/test: Fix sockaddr buffer overflow in test_reuseaddr.
      include: Add noreturn attribute to RtlRaiseStatus.
      include/msvcrt: Add noreturn attribute to _assert.

Joshua Ashton (1):
      winevulkan: Enable VK_EXT_hdr_metadata.

K.B.Dharun Krishna (1):
      po: Update Tamil translation.

Kacper Michajłow (1):
      include: Add some DXGI_COLOR_SPACE_TYPE enumeration values.

Mohamad Al-Jaf (5):
      include: Add windows.system.profile.systemmanufacturers.idl file.
      windows.system.profile.systemmanufacturers: Add stub DLL.
      windows.system.profile.systemmanufacturers: Stub ISmbiosInformationStatics interface.
      windows.system.profile.systemmanufacturers/tests: Add ISmbiosInformationStatics_get_SerialNumber tests.
      windows.system.profile.systemmanufacturers: Implement ISmbiosInformationStatics_get_SerialNumber.

Nikolay Sivov (11):
      include: Add recent DirectWrite API changes.
      windows.globalization: Implement ILanguage::get_LanguageTag().
      comctl32/header: Do not touch 'hwnd' field in HDM_LAYOUT.
      ktmw32: Use syscall interface for transaction objects stubs.
      propsys: Add InitPropVariantFromStringVector().
      d3dx9/preshader: Set input table size for texture shaders.
      d3dx9: Create parameter evaluator for texture shaders.
      d3dx9: Partially implement D3DXFillTextureTX().
      d3dx9/tests: Add a helper to compare filled cube textures.
      d3dx9: Fix ARGB texture fills with negative component values.
      d3dx9: Partially implement D3DXFillCubeTextureTX().

Paul Gofman (14):
      ntdll/tests: Fix the case of absent XSTATE context in test_copy_context().
      ntdll/tests: Fix xstate tests failing on modern Windows and CPUs with more xstate features.
      ntdll/tests: Fix random test failure in test_restore_context().
      ntdll: Factor out context_copy_ranges() function.
      ntdll: Do not use extended context in RtlCopyContext() if extended state is not copied.
      ddraw: Do not report D3DDEVCAPS_HWRASTERIZATION for RGB emulation device.
      ntdll: Use MemAvailable field for free RAM estimation if available.
      cryptnet: Cache revocation status in verify_cert_revocation().
      cryptnet: Use cert data hash as cache id instead of serial number.
      cryptnet: Also hash issuer cert for cache id.
      msmpeg2vdec: Add stub dll.
      msauddecmft: Add stub dll.
      ntdll: Add stub for NtQueryInformationProcess( ProcessHandleTable ).
      ws2_32: Provide same address order from gethostbyname() on consequent calls.

Robert Wilhelm (2):
      vbscript: Return type mismatch for UBound(Empty) and UBound(NULL).
      vbscript: Return type mismatch for LBound(Empty) and LBound(NULL).

Rémi Bernon (57):
      sechost: Use heap_strdup_multi_AtoW for dependencies in CreateServiceA.
      services: Use a separate allocation for NotifyParamsArray[0].params.
      dwrite: Statically init the system_fallback locale list.
      schedsvc: Avoid mismatching heap in SchRpcEnumFolders.
      schedsvc: Avoid mismatching heap in SchRpcEnumTasks.
      schedsvc: Avoid mismatching heap in RPC allocations.
      schedsvc: Use CRT allocation functions in remaining calls.
      dinput: Avoid sending envelope report if it has been removed.
      windows.gaming.input: Fix infinite effect duration scaling.
      windows.gaming.input: Introduce new effect_reorient_direction helper.
      windows.gaming.input: Fix magnitude sign for constant and ramp effects.
      hidp: Allow match all usages on specific functions only.
      oledb32: Fix error info cleanup dispparams rgvarg index.
      oledb32/tests: Avoid use-after-free and unused assignment.
      dinput: Remove outdated and superfluous comments.
      dinput: Add traces to the ANSI wrappers.
      dinput: Remove unnecessary initialization helpers.
      dinput: Move dinput class implementation to dinput.c.
      dinput: Rename lpdid local variable to device.
      include: Add Windows.Foundation.Collections.IVectorChangedEventArgs definition.
      include: Add Windows.Foundation.Collections.IMapChangedEventArgs<T> definition.
      include: Add Windows.Foundation.Collections.MapChangedEventHandler<K, V> definition.
      include: Add Windows.Foundation.Collections.IMap<K, V> definition.
      include: Add Windows.Foundation.Collections.IObservableMap<K, V> definition.
      include: Add Windows.Foundation.Collections.IPropertySet definition.
      include: Add Windows.Foundation.Collections.IObservableVector<T> definition.
      include: Add Windows.Foundation.IAsyncActionWithProgress<TProgress> definition.
      include: Add Windows.Foundation.IAsyncOperationWithProgress<TResult, TProgress> definition.
      dinput: Use an internal refcount on all dinput devices.
      dinput: Introduce a new struct to keep input thread state.
      dinput: Introduce new input_thread_update_device_list helper.
      dinput: Keep an internal refcount for dinput devices references.
      dinput: Keep a reference on acquired devices while waiting.
      dinput: Update the input thread device list when notified only.
      dinput: Update the device status while holding its CS.
      dinput: Cleanup low-level hooks on input thread exit.
      dinput: Introduce new dinput_unacquire_window_devices helper.
      dinput: Unacquire all devices on internal thread error.
      dinput: Keep track of input thread users using public refcounts.
      gitlab: Run dinput 64-bit tests in a dedicated job.
      dinput/tests: Dynamically allocate async operation handlers.
      dinput: Move window hook checks to input_thread_update_device_list.
      dinput: Move rawinput registration to input_thread_update_device_list.
      dinput: Move di_em_win_wndproc function around.
      dinput: Use SendMessageW to notify and stop input thread.
      dinput: Avoid entering hook CS for rawinput messages.
      include: Declare some NtUser pointer related syscalls.
      win32u: Move NtUserEnableMouseInPointer from user32.
      win32u: Stub NtUserIsMouseInPointerEnabled syscall.
      win32u: Stub NtUserGetPointerInfoList syscall.
      win32u/tests: Test NtUserEnableMouseInPointer syscall.
      win32u/tests: Test NtUserIsMouseInPointerEnabled syscall.
      win32u/tests: Test NtUserGetPointerInfoList syscall signature.
      comctl32/tests: Test unicode nature of window subclasses.
      comctl32: Save unicode window nature on SetWindowSubclass call.
      comctl32: Always use unicode messages for subclass procedures.
      comctl32: Skip restoring window proc if it has been modified.

Santino Mazza (3):
      mshtml/tests: Test for get_all and get_body in document fragments.
      mshtml: Use This->node for HTMLDocument_get_all.
      mshtml: Implement HTMLDocument_get_body for document fragments.

Shaun Ren (3):
      winegstreamer: Parse all tag events in query_tags.
      winegstreamer: Map MF_SD_LANGUAGE to ISO 639-1 for QuickTime media.
      mfplay/tests: Add tests for MF_SD_LANGUAGE.

Zebediah Figura (31):
      d3d11/tests: Add a basic test for vertex formats.
      d3d10core/tests: Add a basic test for vertex formats.
      wined3d: Separate a parse_channel_desc() helper.
      wined3d: Use a string channel desc to initialize typed formats.
      rpcrt4: Use a CONTAINING_RECORD helper to retrieve CStdStubBuffer from IRpcStubBuffer.
      rpcrt4: Use a CONTAINING_RECORD helper to retrieve CInterfaceStubHeader from CStdStubBuffer.
      rpcrt4: Rename "ref_counted_vtbl" to "struct delegating_vtbl".
      rpcrt4: Use a flexible array member in struct delegating_vtbl.
      rpcrt4: Use CONTAINING_RECORD in release_delegating_vtbl().
      win32u: Make call_messageAtoW() static.
      win32u: Make the global "caret" structure static.
      win32u: Make create_brush() hidden.
      win32u: Make draw_frame_caption() static.
      win32u: Make draw_scroll_bar() static.
      win32u: Make DrawTextW() hidden.
      win32u: Make get_winproc_ptr() static.
      win32u: Make ImmProcessKey() hidden.
      win32u: Make ImmTranslateMessage() hidden.
      win32u: Make is_child() hidden.
      ntdll: Make fd_set_file_info() static.
      ntdll: Make call_user_mode_callback() hidden.
      ntdll: Make user_mode_callback_return() hidden.
      ntdll: Make __wine_syscall_dispatcher_prolog_end() hidden on x86_64.
      ntdll: Make __wine_unix_call_dispatcher_prolog_end() hidden on x86_64.
      win32u: Make send_message_timeout() hidden.
      win32u: Make set_visible_region() hidden.
      winex11: Make client_foreign_window_proc hidden.
      winex11: Include x11drv.h in xrandr.c even if compiling without xrandr.
      winepulse: Include mult.c in pulse.c.
      include: Fix the definition of DIFXAPILOGCALLBACK_* functions.
      include: Add more definitions to difxapi.h.

Zhiyi Zhang (4):
      comctl32/tests: Add WM_STYLECHANGED tests for changing listview view styles.
      comctl32/listview: Repaint when changing view styles.
      include: Add uiviewsettingsinterop.idl.
      opengl32/tests: Make context current before calling wglCopyContext().