The Wine development release 8.17 is now available.

What's new in this release:
  - Bundled vkd3d upgraded to version 1.9.
  - Initial window management in the Wayland driver.
  - SoundFont support in DirectMusic.
  - Various bug fixes.

The source is available at:

  https://dl.winehq.org/wine/source/8.x/wine-8.17.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.17 (total 19):

 - #34789  MeGUI: Wrong icon for file chooser
 - #38823  Sumatra PDF 3.0: tabs don't work correctly
 - #43137  The Elder Scrolls: Oblivion crashes after opening logo screens.
 - #46483  Cemu 1.12.0 crashes on unimplemented function msvcp140.dll.?_Throw_C_error@std@@YAXH@Z
 - #48969  RageMP crashes on unimplemented function msvcp140.dll.?_Throw_future_error@std@@YAXAEBVerror_code@1@@Z
 - #51327  GdipCreateFont initializes font with ANSI_CHARSET
 - #54588  iphlpapi:iphlpapi - test_GetExtendedTcpTable() sometimes fails because the buffer is too small in Wine
 - #55001  ToneX by IK Multimedia needs unimplemented function msvcp140.dll.?_Throw_C_error@std@@YAXH@Z
 - #55184  Dwarf Fortress (Steam) crashes on unimplemented function msvcp140_atomic_wait.dll.__std_acquire_shared_mutex_for_instance
 - #55240  The 64-bit winmm:capture & winmm:wave get BADDEVICEID on Windows 10+
 - #55486  Finale 27 printing mangled
 - #55522  SoftEther VPN Server Manager
 - #55529  Text in SRPG Studio games ends with a tofu/missing character glyph.
 - #55587  quartz:vmr9 - test_changed3ddevice() crashes on Windows 8+
 - #55592  Separable Subsurface Scattering needs 'mov' opcode support for fx_4_0 effect
 - #55599  Metatrader 4 - not possible to add any indicator to a chart
 - #55614  ReCore crashes on unimplemented function msvcp110.dll.?_Winerror_map@std@@YAPEBDH@Z
 - #55635  mfreadwrite:mfplat - test_interfaces() crashes on Windows 7 & 8
 - #55651  d3d10:effect - test_effect_fx_4_1_blend_state() fails on Windows 7+

----------------------------------------------------------------

Changes since 8.16:

Akihiro Sagawa (3):
      cmd/tests: Add dir built-in command test.
      cmd/tests: Test file time stamp format.
      cmd: Always outputs leading zeros when listing file time information.

Alex Henrie (24):
      include: Move RTL functions that belong in winnt.h from winternl.h to winnt.h.
      oleaut32: Use CRT allocation functions in connpt.c.
      oleaut32: Use CRT allocation functions in hash.c.
      oleaut32: Use CRT allocation functions in olepicture.c.
      oleaut32: Use CRT allocation functions in typelib.c.
      advpack: Use CRT allocation functions.
      gameux: Use CRT allocation functions.
      mciwave: Use CRT allocation functions.
      msvfw32: Use CRT allocation functions.
      ncrypt: Use the wcsdup function instead of reimplementing it.
      shell32: Use the wcsdup function instead of reimplementing it.
      wshom: Use the wcsdup function instead of reimplementing it.
      dsound: Use malloc and free instead of _recalloc.
      conhost: Use the wcsdup function instead of reimplementing it.
      dxdiag: Use CRT allocation functions.
      reg: Use the wcsdup function instead of reimplementing it.
      regedit: Use the wcsdup function instead or reimplementing it.
      sc: Use CRT allocation functions.
      wordpad: Use the wcsdup function instead of reimplementing it.
      avifil32: Use CRT allocation functions.
      wpcap: Use the strdup function instead of reimplementing it.
      include: Move RTL functions that belong in ntddk.h from winternl.h to ntddk.h.
      include: Correct conflicting definition of PSID.
      include: Correct conflicting definition of PSECURITY_DESCRIPTOR.

Alexandre Julliard (26):
      winebuild: Add a separate helper for .seh annotations.
      winebuild: Remove unnecessary .cfi_startproc/endproc annotations.
      winebuild: Add a few more SEH annotations.
      winebuild: Make the syscall thunks position-independent on ARM64.
      oleaut32: Add SEH annotations to ARM64 assembly code.
      rpcrt4: Add SEH annotations to ARM64 assembly code.
      vcomp: Add SEH annotations to ARM64 assembly code.
      ntdll: Remove unneeded SEH annotations in Unix code.
      kernel32/tests: Comment out one more test that can crash on Windows.
      kernel32/tests: Don't make assumptions about argv[0] of the main process.
      kernel32/tests: Unaligned SRW locks crash on ARM platforms.
      kernel32/tests: Update dll characteristics to make the module loadable on ARM64.
      vkd3d: Import upstream release 1.9.
      server: Don't zero out the PE optional header regardless of specified size.
      winedump: Don't zero out the PE optional header regardless of specified size.
      ntdll: Consistently use the IMAGE_FIRST_SECTION helper macro.
      dbghelp: Consistently use the IMAGE_FIRST_SECTION helper macro.
      imagehlp: Use the IMAGE_FIRST_SECTION helper macro.
      krnl386: Use the IMAGE_FIRST_SECTION helper macro.
      widl: Use the IMAGE_FIRST_SECTION helper macro.
      kernel32/tests: Fix loader tests on Windows ARM64.
      winebuild: Set ASLR-related dll flags by default.
      server: Require ASLR support on non-x86 platforms.
      ntdll: Release the low address space reservation for 64-bit apps.
      ntdll: Don't release the low address space reservation on wow64.
      ntdll: Don't free reserved memory on 64-bit macOS.

Alexandros Frantzis (7):
      winewayland.drv: Remove wayland_surface destruction double locking.
      winewayland.drv: Handle xdg_toplevel close event.
      winewayland.drv: Handle xdg_toplevel configure event size hint.
      winewayland.drv: Handle xdg_toplevel maximized state.
      winewayland.drv: Handle client-initiated user-driven window move.
      winewayland.drv: Handle client-initiated user-driven window resize.
      winewayland.drv: Fix removal of wl_seat globals.

Alistair Leslie-Hughes (9):
      mfreadwrite/reader: Update to IMFSourceReaderEx.
      d3drm: Correctly query for the returned interface.
      msado15: Recordset::Open - Correctly update count/index values.
      mfreadwrite/tests: Move test_interfaces after test_factory.
      msado15: _Recordset::Filter set index on value.
      d3dx9: Trace pointer value in D3DXValidMesh().
      msado15: Implement _Recordset::get_ActiveConnection.
      msado15: _Recordset::Open store active connection parameter.
      msado15: Update editMode in AddNew/Cancel/Update functions.

Ally Sommers (2):
      server: Return WSAEOPNOTSUPP on listen() if the socket's type is SOCK_DGRAM.
      ws2_32/tests: Add more tests for SO_REUSEADDR.

Andrew Brobston (1):
      d2d1: Support GUID_WICPixelFormat32bppRGB.

Bartosz Kosiorek (1):
      gdiplus/tests: Add tests of InterpolationMode Bilinear for GdipDrawImagePointsRect.

Biswapriyo Nath (19):
      include: Add ID3D12VideoDecoder in d3d12video.idl.
      include: Add ID3D12VideoDevice in d3d12video.idl.
      include: Add ID3D12VideoDecoderHeap in d3d12video.idl.
      include: Add ID3D12VideoDecodeCommandList in d3d12video.idl.
      include: Add video decode profile guids in d3d12video.idl.
      include: Add D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT in d3d12video.idl.
      include: Add ID3D12VideoDevice1 in d3d12video.idl.
      include: Add ID3D12VideoExtensionCommand in d3d12video.idl.
      include: Add ID3D12VideoDevice2 in d3d12video.idl.
      include: Add ID3D12VideoEncoder in d3d12video.idl.
      include: Add ID3D12VideoEncoderHeap in d3d12video.idl.
      include: Add ID3D12VideoDevice3 in d3d12video.idl.
      include: Add ID3D12VideoMotionEstimator in d3d12video.idl.
      include: Add ID3D12VideoMotionVectorHeap in d3d12video.idl.
      include: Add ID3D12VideoEncodeCommandList in d3d12video.idl.
      include: Add ID3D12VideoDecodeCommandList1 in d3d12video.idl.
      include: Add ID3D12VideoEncodeCommandList1 in d3d12video.idl.
      include: Add ID3D12VideoEncodeCommandList2 in d3d12video.idl.
      include: Add some structures in d3d12video.idl.

Brendan Shanks (3):
      winecoreaudio: Stop using the deprecated kAudioObjectPropertyElementMaster constant.
      winecoreaudio: Use os_unfair_lock when available instead of OSSpinLock.
      msv1_0: Implement ntlm_fork() using posix_spawn().

Connor McAdams (21):
      uiautomationcore: Add UiaHasServerSideProvider stub.
      uiautomationcore: Add a common helper function for creating HUIANODEs.
      uiautomationcore: Implement UiaHasServerSideProvider.
      include: Add missing WinEvent definitions.
      uiautomationcore/tests: Add method expect definitions for all Accessible test interfaces.
      uiautomationcore/tests: Add support for debug printing Accessible method calls.
      uiautomationcore/tests: Add support for debug printing Provider method calls.
      uiautomationcore: Add stub IRawElementProviderFragmentRoot implementation for MSAA providers.
      uiautomationcore: Add a common helper function for querying IServiceProvider on IAccessible interfaces.
      uiautomationcore: Implement IRawElementProviderFragment::get_FragmentRoot for MSAA providers.
      uiautomationcore: Don't return oleacc proxy IAccessibles from GetIAccessible for MSAA providers.
      uiautomationcore/tests: Increase wait timeout for cross-process event with navigation.
      uiautomationcore: Pass through failure HRESULTS on MSAA accState based property IDs for MSAA providers.
      uiautomationcore: Implement IRawElementProviderFragmentRoot::GetFocus for MSAA providers.
      uiautomationcore: Add stub IProxyProviderWinEventHandler implementation for MSAA providers.
      uiautomationcore: Handle EVENT_SYSTEM_ALERT in IProxyProviderWinEventHandler::RespondToWinEvent() for MSAA providers.
      uiautomationcore/tests: Add tests for IProxyProviderWinEventHandler based MSAA to UIA event bridging.
      uiautomationcore: Check providers for an IProxyProviderWinEventHandler interface when attaching events.
      uiautomationcore: Add WinEvent hook on the UIA event thread.
      uiautomationcore: Track HWNDs that need WinEvent translation.
      uiautomationcore: Make sure event thread is started when listening for WinEvents.

Eric Pouech (3):
      dbghelp: Check that dwarf unwinder did actually unwind.
      ntdll: Allow empty application nodes in actctx.
      winedump: Improve dumping DEBUG directory entries in PE images.

Esme Povirk (4):
      user32/tests: Account for some messages from dual-monitor setups.
      user32/tests: Fix WM_WINDOWPOSCHANGED entries.
      user32/tests: Use a child window for test_PeekMessage3.
      user32/tests: Use open_clipboard helper in msg tests.

François Gouget (1):
      tests: Update the documentation.

Gabriel Ivăncescu (22):
      mshtml: Move some Element methods around.
      mshtml: Move some AnchorElement methods up.
      mshtml: Move some AreaElement methods up.
      mshtml: Move some FormElement methods up.
      mshtml: Move some FrameElement methods down.
      mshtml: Move some IFrame methods down.
      mshtml: Move some ObjectElement methods up.
      mshtml: Move some SelectElement methods up.
      mshtml: Move node vtbl QI methods around.
      mshtml: Move node vtbl destructor methods down.
      mshtml: Get rid of useless element destructors.
      mshtml: Use specific dispex vtbls for remaining HTML elements.
      mshtml: Use specific dispex for each SVG element.
      mshtml: Use the dispex's query_interface for DocumentType nodes.
      mshtml: Use the dispex's query_interface for Document nodes and fragments.
      mshtml: Use the dispex's query_interface for DOMTextNodes.
      mshtml: Use the dispex's query_interface for the remaining nodes.
      mshtml: Use the dispex's destructor for all nodes.
      mshtml: Use the dispex's get_dispid for all nodes.
      mshtml: Use the dispex's get_name for all nodes.
      mshtml: Use the dispex's invoke for all nodes.
      mshtml: Use the event_target vtbl's handle_event for all nodes.

Hans Leidekker (6):
      winmm/tests: Avoid truncating the handle passed to waveInGetDevCapsW().
      wbemprox: Get Win32_OperatingSystem.BuildType from the registry.
      wbemprox: Fix Win32_OperatingSystem.TotalVirtual/VisibleMemorySize.
      wbemprox: Implement Win32_OperatingSystem.InstallDate.
      systeminfo: Add an implementation on top of WMI.
      secur32: Only return success from initialize_package() when initialization fully succeeds.

Henri Verbeet (2):
      wined3d: Don't validate the frontbuffer's DRAWABLE location in wined3d_swapchain_resize_buffers() when NO3D is set.
      d3d11/tests: Properly mark the indexed sample position test as succeeding with the Vulkan backend.

Huw D. M. Davies (1):
      gdiplus: Copy the compound array in GdipClonePen().

Jacek Caban (4):
      mshtml: Remove unused functions.
      include: Support ARM64EC target in intrin.h.
      include: Move __getReg intrinsic to intrin.h.
      include: Support ARM64EC target in winnt.h.

Jactry Zeng (5):
      msi: Use CreateFileW() for handling path from cabinet_open() instead.
      cabinet/tests: Initialize CURR_DIR globally.
      msxml3: Store ValidateOnParse property in domdoc_properties instead.
      msxml3: Add ValidateOnParse support for IXMLDOMDocument3_{get,set}Property().
      msxml3/tests: Add tests of ValidateOnParse property.

Jeff Smith (2):
      gdiplus/tests: Test GdipCreateFont character set initialization.
      gdiplus: Fix GdipCreateFont character set initialization.

Jinoh Kang (1):
      wbemprox: Fix out-of-bounds access caused by codepoints above U+00FF.

Joel Holdsworth (6):
      include: Add flags to FILE_RENAME_INFORMATION used by FileRenameInformationEx.
      ntdll/tests: Test both FileRenameInformation and FileRenameInformationEx in test_file_rename_information.
      include: Add flags to FILE_LINK_INFORMATION used by FileLinkInformationEx.
      ntdll/tests: Test both FileLinkInformation and FileLinkInformationEx in test_file_link_information.
      ntdll/tests: Skip FileRenameInformationEx tests on older Windows versions.
      ntdll/tests: Skip FileLinkInformationEx tests on older Windows versions.

Martin Storsjö (2):
      include: Update the d3d12 headers from vkd3d.
      include: Update the d3d12 header from vkd3d.

Mohamad Al-Jaf (7):
      windows.applicationmodel: Add IPackageStatics stub interface.
      windows.applicationmodel: Implement IPackageStatics::get_Current().
      windows.applicationmodel: Implement IPackage::get_InstalledLocation().
      windows.applicationmodel: Add IStorageItem stub interface.
      windows.applicationmodel/tests: Add IStorageItem::get_Path() tests.
      windows.applicationmodel: Implement IStorageItem::get_Path().
      windows.applicationmodel/tests: Use PathRemoveFileSpecW() instead of PathCchRemoveFileSpec().

Nikolay Sivov (6):
      d3d10/effect: Implement 'mov' opcode for expressions.
      d3d10/effect: Implement instructions used for signed integer division.
      d3d10/effect: Add signed integer compare instructions for expressions.
      d3d10/tests: Add some tests for D3D10.1 blend state in effects.
      d3dcompiler: Add support for matrix majority compiler flags.
      d3d10/tests: Test for correct return value.

Paul Gofman (7):
      mf/tests: Add tests for AAC decoder with different input number of channels.
      winegstreamer: Handle missing or zero channel count in _GetOutputAvailableType in AAC decoder.
      winegstreamer: Correct output available types attrs in AAC decoder for channel count > 2.
      winegstreamer: Validate maximum channel count in _SetInputType in AAC decoder.
      winegstreamer: Also return output with 2 channels for multichannel inputs from AAC decoder.
      shell32: Avoid stack corruption with long name in SHELL_TryAppPathW().
      shell32: Handle long command line in execute_from_key().

Piotr Caban (7):
      msvcp110: Add _Winerror_map implementation.
      msvcr110: Simplify _StructuredTaskCollection finished task counter updating.
      msvcr110: Use Context blocking functions in _StructuredTaskCollection class.
      msvcp140_atomic_wait: Add __std_acquire_shared_mutex_for_instance implementation.
      wineps.drv: Remove unused hmtx_tab field from TYPE42 structure.
      wineps.drv: Don't crash if specified font is missing required table in T42_download_header.
      msvcp90: Silence FIXME in _Locinfo::_Locinfo_ctor and _Locinfo::_Locinfo_Addcats functions.

Rémi Bernon (74):
      dmusic: Avoid swallowing collection Load failures.
      dmusic: Rewrite downloading instrument to port.
      dmusic: Parse collection wave table.
      dmusic: Parse collection wave lists.
      dmusic: Keep an internal ref on the instrument's collection.
      dmusic: Implement downloading wave to port.
      dmusic: Parse instrument regions articulation lists.
      dmusic: Implement instrument articulation downloads.
      dmime/tests: Test that SendPMsg also converts reference time.
      dmime: Convert DMUS_PMSG music and reference times in SendPMsg.
      dmime: Get rid of the DMUS_PMSGItem typedef.
      dmime: Use a struct list to keep performance messages.
      dmime: Remove unnecessary struct message members.
      dmime: Rename DMUS_PMSGToItem to message_from_DMUS_PMSG.
      dmime: Pass the DMUS_PMSG through the performance graph.
      dmband: Rename IDirectMusicBandImpl prefix to band.
      dmband: Get rid of the IDirectMusicBandImpl typedef.
      dmband: Get rid of the IDirectMusicBandTrack typedef.
      dmband: Avoid leaking bands on band track Release.
      dmband: Avoid leaking collection on band release.
      dmband: Rewrite band lbin list parsing.
      dmband: Rewrite band lbil list parsing.
      dmband: Rewrite band dmbd chunk parsing.
      dmband: Rewrite band IPersistStream_Load.
      dmime: Rename IDirectMusicSegment8Impl method prefix to segment.
      dmime: Use one-liners for segment parameter checks.
      dmime: Get rid of the IDirectMusicSegmentImpl typedef.
      dmime: Avoid leaking tracks in IDirectMusicSegment_Release.
      dmime: Rewrite segment IDirectMusicSegment_GetTrack.
      dmime: Rewrite segment IDirectMusicSegment_GetTrackGroup.
      dmime: Rewrite segment IDirectMusicSegment_InsertTrack.
      dmime: Rewrite segment IDirectMusicSegment_RemoveTrack.
      dmime: Use segment_append_track in Clone and parse_track_form.
      dmime/tests: Add some DMUS_NOTIFICATION_PMSG tests.
      dmime/tests: Test wave segments and DMUS_WAVE_PMSG.
      dmime/tests: Test sequence track and DMUS_NOTE_PMSG.
      dmime/tests: Test band track and DMUS_PATCH_PMSG.
      dmusic/tests: Fixup chunk alignment in steam_end_chunk.
      dmusic: Keep the original instrument patch in the entry.
      dmband: Rewrite band track lbdl/lbnd lists parsing.
      dmband: Rewrite band track DBMT chunk parsing.
      dmband: Rewrite band track IPersistStream_Load.
      dmime: Get rid of the IDirectMusicSeqTrack typedef.
      dmime: Implement DirectMusicSeqTrack IPersistStream_Load.
      dmloader: Rename IDirectMusicLoaderImpl method prefix to loader.
      dmloader: Get rid of the IDirectMusicLoaderImpl typedef.
      dmloader: Initialize ref to 1, and release after QueryInterface.
      dmloader: Introduce a new loader_stream_create helper.
      dmloader: Get rid of the custom generic stream wrapper.
      dmime/tests: Remove some duplicated tests.
      dmime/tests: Move performance tests into dmime.c.
      dmime/tests: Test performance Init with a created port.
      dmime: Set the port direct sound before activating it.
      dmime: Initialize performance in Init rather than InitAudio.
      dmime: Return DMUS_E_AUDIOPATHS_IN_USE when audio paths are in use.
      dmime: Return DMUS_E_AUDIOPATH_INACTIVE when audio paths are not enabled.
      dmloader: Use a simpler file stream implementation.
      dmusic/tests: Test default gm.dls sound font instruments.
      dmloader: Remove invalid default DLS collection check.
      dmloader: Add fallbacks if the configured GMFilePath doesn't exist.
      dmusic: Avoid leaking articulations when freeing regions.
      dmusic: Avoid crashing in traces if wave doesn't have a WSMPL.
      dmusic: Implement SoundFont2 collection parsing.
      dmusic: Implement SoundFont2 wave sample parsing.
      dmusic: Implement SoundFont2 instrument parsing.
      dmime/tests: Add some tests for GUID_ConnectToDLSCollection.
      dmime/tests: Test segment state and playing a custom track.
      dmime: Implement IDirectMusicSegment_SetParam.
      dmband: Implement band track GUID_ConnectToDLSCollection parameter.
      dmime: Implement IDirectMusicSegment_(Download|Unload).
      dmband: Implement IDirectMusicBand_(Download|Unload).
      dmband: Implement band track GUID_UnloadFromAudioPath parameter.
      dmband: Implement band track GUID_DownloadToAudioPath parameter.
      dmime: Implement IDirectMusicPerformance_DownloadInstrument.

Yuxuan Shui (4):
      gdi32: Make GetStockObject hotpatchable.
      user32: Make CallWindowProcA hotpatchable.
      user32: Add hotpatchable wrapper for GetWindowLongA.
      rtworkq: Fix leak of thread pool work items.

Zebediah Figura (5):
      wined3d: Pass a wined3d_stateblock_state to wined3d_device_validate_device().
      d3d10core/tests: Test performing a full clear after a draw.
      wined3d: Remove invalid parameter checks from internal wined3d_device_set_*() functions.
      wined3d: Make wined3d_stateblock_state_{init,cleanup}() static.
      wined3d: Move struct wined3d_stateblock into stateblock.c.

Zhiyi Zhang (2):
      user32/tests: Fix test failures in Hindi UTF-8 and mixed locales.
      user32: Enable IsDialogMessageA() ASCII to Unicode mapping only when the user default lang ID is CJK.
