WineHQ

Wine Announcement

The Wine development release 6.13 is now available.

What's new in this release (see below for details):
  - Proper scrollbar theming.
  - More work towards WinSock PE conversion.
  - Preparation work for the GDI syscall interface.
  - Some progress on the IPHLPAPI PE conversion.
  - Various bug fixes.

The source is available from the following locations:

  https://dl.winehq.org/wine/source/6.x/wine-6.13.tar.xz
  http://mirrors.ibiblio.org/wine/source/6.x/wine-6.13.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 6.13 (total 31):

  15381  CoFreeUnusedLibraries will crash COM server or cause 0x800703E6/I_RpcReceive error 0x3e6
  28326  CDBurnerXP's audio player is missing some visual elements
  28795  ExeInfoPE v0.0.3.0: PE protection schemes that abuse %gs won't run (breaks glibc TLS selector)
  32517  installer of QQMusic 8.6 hangs
  34966  Academagia (WPF game) dialog windows are invisible until alt-tabed out
  35611  A lot of user32:msg tests fail in the Japanese locale
  35921  Multiple games and applications need IDirectXVideoProcessorService via DXVA2CreateVideoService (DXVA Checker 3.x/4.x, Perfect World, Kodi)
  37370  Doom 3 (CD version) installer: 'cancel' button does nothing in 'Please insert: DOOM 3 Disk x' dialog
  39377  Add support for 'msidbControlAttributesFormatSize' in static text controls to format and label properties such as 'PrimaryVolumeSpaceRequired' (SkySaga installer)
  41703  Workaround LdrUnloadDll() for C libraries that do not support the dlclose() function
  43173  Far Cry 4 sound stops
  45198  Project CARS 2 shows only a black screen (requires constant buffer offsetting)
  45620  Dishonored 2 Demo crashes at launch
  45807  Incorrect toolbar background in MFC apps, when visual theming enabled
  50374  pCon.planner doesn't finish installation and doesn't open
  50404  Sims 4 crashes on startup with builtin msvcrt
  51152  The 64-bit ntdll:exception test fails in Wine
  51262  Since 308a5e7 no 32bit program starts
  51277  Multiple games become unresponsive with plugged in controller (INSIDE, The Hong Kong Massacre, Sniper Elite 3)
  51281  C:\users\<user>\appdata\local not created on prefix update
  51295  ntoskrnl.exe:ntoskrnl occasionally hangs in test_overlapped()
  51329  Windows PC Health Check requires api-ms-win-core-featurestaging-l1-1-0.dll
  51331  Battle.net client unusable, reports "The Battle.net Update Agent went to sleep. Attempting to wake it up..."
  51340  d3d10core:d3d10core, d3d11:d3d11 test_texture_compressed_3d() fails on Nvidia (cw-gtx560)
  51348  uxtheme.SetWindowTheme should use SendMessage to send WM_THEMECHANGED
  51366  several wine-mono network tests fail with timeout
  51368  World of Warcraft : undefined d3d state
  51381  Battlefield 4 cannot find online matches
  51382  NetEase Cloud Music crashes on zh_CN.UTF-8 locale.
  51416  deferred context memory leak
  51425  Mathearbeit G 5.6 installer reports null pointer exception in module 'shell32.dll' starting with Wine 6.9-142-g98d43c5dcfb

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

Changes since 6.12:

Aaron Hill (1):
      crypt32: Implement CNG_RSA_PUBLIC_KEY_BLOB encoding/decoding.

Adrian Thiele (1):
      mfplat: Use D3DFORMAT for dxgi buffer copy function.

Alex Henrie (1):
      api-ms-win-core-featurestaging-l1-1-0: Add DLL.

Alexandre Julliard (26):
      ntdll: Implement SystemEmulation* information classes.
      ntdll: Implement NtWow64GetNativeSystemInformation().
      ntdll: Forward RtlGetNativeSystemInformation() to NtWow64GetNativeSystemInformation() on 32-bit.
      ntdll: Get rid of the almost empty nt.c.
      ntdll: Get rid of the almost empty directory.c.
      ntdll: Get rid of the almost empty virtual.c.
      wow64: Add stub dll.
      wow64win: Add stub dll.
      ntdll: Store the pthread TEB value on thread init.
      ntdll: Allocate a 32-bit %fs selector on Linux in Wow64 mode.
      ntdll: Switch back to the pthread %fs register in signal handlers.
      winebuild: Add a specific platform id for Linux.
      winebuild: Save/restore the %fs register in the syscall dispatcher on Linux.
      ntdll: Make the ntdll exports and relocations processing more generic.
      ntdll: Also load the Wow64 ntdll for the main exe target machine.
      ntdll: Add support for LdrSystemDllInitBlock.
      ntdll: Fix iosb handling in NtCancelIoFile().
      ntdll: Pass a length pointer instead of an IO_STATUS_BLOCK to the async callbacks.
      ntdll: Add a helper function to open a file object.
      ntdll: Avoid calling NtOpenFile() from the Unix side.
      ntdll: Avoid calling NtCreateFile() from the Unix side.
      ntdll: Avoid calling NtReadFile() from the Unix side.
      ntdll/tests: Add tests for IO_STATUS_BLOCKs in Wow64 mode.
      ntdll: Don't restore %fs selector on nested signals.
      ntdll: Use the 32-bit RtlUserThreadStart as initial Eip in the 32-bit context.
      server: Don't generate dll load event for native binaries on Wow64.

Alistair Leslie-Hughes (3):
      secur32: Set error flag on pull callback.
      include: Update _IMAGEHLP_MODULEW64 stucture.
      dbghelp: Initialize new structure members.

Andrew Eikum (1):
      shell32: Fix unused knownfolder definition.

Arkadiusz Hiler (1):
      dinput: Don't add 'default value 0' entries to the data transform.

Bernhard Übelacker (1):
      hhctrl.ocx: Handle only the number of bytes given in html_fragment_len.

Biswapriyo Nath (2):
      include: Add some function declarations in propvarutil.h.
      winecrt0: Add missing members in _JUMP_BUFFER for SJLJ.

Brendan Shanks (1):
      ntdll: Fix locale detection on Mac.

Damjan Jovanovic (3):
      wininet: InternetGetLastResponseInfoW() returns wide chars, not ASCII.
      wininet: Return the required buffer size from InternetGetLastResponseInfo() when it's too small.
      wininet: The buffer is returned from InternetGetLastResponseInfo() even when the error is 0.

Dmitry Timoshkov (1):
      winex11.drv: Don't free cached DnD data after informing an application about the drop event.

Eric Pouech (2):
      dbghelp: Correctly initialize the module_pair structure in SymGetTypeFromName.
      dbghelp/tests: Try to fix failure in current dbghelp tests.

Esdras Tarsis (3):
      bthprops.cpl: Add BluetoothFindNextRadio stub.
      api-ms-win-core-console-l3-2-0: Add stub dll.
      api-ms-win-core-kernel32-legacy-l1-1-5: Add stub dll.

Esme Povirk (1):
      rundll32: Only call LoadLibrary16 on x86.

François Gouget (24):
      user32/tests: Use WineTest contexts to simplify test_mdi().
      user32/tests: Fix the wording of an ok() message.
      shell32/test: Fix an ok() message.
      shell32/tests: Use WineTest contexts to simplify shellpath.
      shell32/tests: Fix the PathResolve() tests on Windows 8.1, early 10.
      winetest: Report GetLastError() when CreateProcess() fails.
      ntdll/tests: TZinfo sometimes does not get a MUI string.
      ntdll/tests: Improve the RtlWaitOnAddress() timeout checks.
      kernel32: Fix the formatting of an NLS_IsUnicodeOnlyLcid() trace.
      mlang/tests: Fix the check for non-English locales in test_GetCodePageInfo().
      oleaut32: Fix a trace containing a null character.
      oleaut32/tests: Allow testing VarParseNumFromStr() using Unicode strings.
      oleaut32/tests: Add more VarParseNumFromStr() tests.
      oleaut32: Fix the Var*FromStr() prototypes.
      user32/tests: Fix the keyboard layout id in an ok() message.
      kernel32/tests: Use WineTest contexts to simplify test_Loader().
      winetest: Create the -d directory if it does not exist already.
      oleaut32/tests: Use EQ_DOUBLE() in vartype too.
      oleaut32: Update the VarDateFromStr() Y2K cutoff.
      oleaut32: Update the SystemTimeToVariantTime() Y2K cutoff.
      kernel32/tests: Allow failure when loading the 268 bytes minimal PE image.
      oleaut32/tests: Report the error when VarParseNumFromStr() fails.
      oleaut32: Fix VarParseNumFromStr()'s support for two-character currencies.
      oleaut32: VarParseNumFromStr() accepts trailing currency symbols.

Georg Lehmann (3):
      winevulkan: Fix pointer typedef base types.
      winevulkan: Update to VK spec version 1.2.185.
      winevulkan: Enable VK_HUAWEI_subpass_shading.

Gerald Pfeifer (1):
      nsiproxy: Include netinet/in.h before if_ether.h.

Giovanni Mascellani (2):
      winegstreamer: Set MF_MT_ALL_SAMPLES_INDEPENDENT for audio types.
      mf/sar: Allow requesting more than a sample per period.

Henri Verbeet (10):
      d3d11: Only complain once about d3d10 interface emulation in d3d11_device_context_SwapDeviceContextState().
      d2d1: Do not clear the device context state in d2d_device_context_draw().
      wined3d: Use wined3d_mask_from_size() in state_stencil().
      wined3d: Use wined3d_mask_from_size() in wined3d_context_vk_apply_draw_state().
      wined3d: Use wined3d_mask_from_size() in wined3d_render_pass_vk_init().
      winex11: Request VK_KHR_external_memory_capabilities in get_gpu_properties_from_vulkan().
      winex11: Request VK_KHR_display in get_gpu_properties_from_vulkan().
      wined3d: Use wined3d_mask_from_size() in shader_glsl_ld_uav().
      wined3d: Use wined3d_mask_from_size() in shader_glsl_atomic().
      wined3d: Use wined3d_mask_from_size() in shader_glsl_get_sample_function().

Hugh McMaster (8):
      reg/tests: Split 'import' syntax tests into a separate function.
      reg/tests: Test use of registry views when importing keys and values.
      reg: Support use of registry views in the 'import' command.
      reg/tests: Add registry view syntax tests for the 'import' operation.
      reg/tests: Test use of registry views when exporting registry data.
      reg/tests: Split 'export' syntax tests into a separate function.
      reg/tests: Use correct file and line arguments with delete_file().
      reg: Support use of registry views when exporting registry data.

Huw D. M. Davies (30):
      maintainers: Add a Network Store Interface section.
      mountmgr.sys: Move dhcp lookup to a worker thread.
      iphlpapi: Implement ConvertInterfaceIndexToLuid() on top of nsi.
      iphlpapi: Implement ConvertInterfaceLuidToIndex() on top of nsi.
      iphlpapi: Implement ConvertInterfaceGuidToLuid() on top of nsi.
      iphlpapi: Implement ConvertInterfaceLuidToGuid() on top of nsi.
      iphlpapi/tests: Run the interface conversion tests on all interfaces.
      dhcpcsvc: Pass a luid instead of the adapter name.
      iphlpapi: Implement ConvertInterfaceAliasToLuid().
      iphlpapi: Implement ConvertInterfaceLuidToAlias().
      mountmgr: Retrieve the unix-name from the alias.
      iphlpapi: ConvertInterfaceLuidToNameW/NameToLuidW use names based on the luid's type and index.
      iphlpapi: Implement GetIfTable2Ex() on top of nsi.
      iphlpapi: Implement IfGetEntry2Ex() on top of nsi.
      iphlpapi: Implement GetNumberOfInterfaces() on top of nsi.
      iphlpapi: Implement ConvertGuidToString[AW]().
      iphlpapi: Implement ConvertStringToGuidW().
      iphlpapi: Use ConvertGuidToStringA() where possible.
      iphlpapi: Implement GetInterfaceInfo() on top of GetIfTable().
      iphlpapi: Implement GetAdapterIndex() on top of GetIfTable().
      iphlpapi: Implement GetIfTable() on top of nsi.
      iphlpapi: Implement GetIfEntry() on top of nsi.
      iphlpapi: Implement AllocateAndGetIfTableFromStack() on top of nsi.
      iphlpapi: Return the TCPIP device name in MIB_IFROW.
      iphlpapi: Remove unused function getInterfaceStatsByName().
      nsiproxy: Implement IP unicast enumerate_all.
      nsiproxy: Implement IP unicast get_all_parameters.
      iphlpapi: Implement GetUnicastIpAddressTable() on top of nsi.
      iphlpapi: Implement GetUnicastIpAddressEntry() on top of nsi.
      netapi32: Default to CP_UTF8 when WINEUNIXCP is not set.

Jacek Caban (32):
      gdi32: Introduce NtGdiExtGetObjectW.
      gdi32: Reimplement GetObjectA on top of GetObjectW.
      gdi32: Implement CreatePenIndirect on top of CreatePen.
      gdi32: Introduce NtGdiCreatePen.
      gdi32: Implement CreateBitmapIndirect on top of CreateBitmap.
      gdi32: Introduce NtGdiCreateBitmap.
      gdi32: Use ntgdi names for bitmap functions.
      gdi32: Move CreateDiscardableBitmap implementation to objects.c.
      gdi32: Introduce NtGdiDeleteObjectApp.
      gdi32: Introduce NtGdiExtCreateRegion.
      gdi32: Use ntgdi names for region constructors.
      gdi32: Use ntgdi names for region functions.
      gdi32: Move region helper functions to objects.c.
      gdi32/tests: Remove workarounds for old Windows versions.
      gdi32/test: Add more handle table tests.
      gdi32: Store ntgdi object types in handle table.
      gdi32: Rename gdi_private.h to ntgdi_private.h.
      gdi32: Use NtGdiCreateClientObj for metafile objects.
      gdi32: Use NtGdiCreateClientObj for enhmetafile objects.
      include: Fix C++ InitPropVariantFromGUIDAsBuffer implementation.
      include: Declare NTSTATUS in propvarutils.h.
      gdi32: Introduce NtGdiLineTo.
      gdi32: Introduce NtGdiMoveTo.
      gdi32: Use NtGdiArcInternal for Arc implementation.
      gdi32: Use NtGdiArcInternal for ArcTo implementation.
      gdi32: Use NtGdiArcInternal for Chord implementation.
      gdi32: Use NtGdiArcInternal for Pie implementation.
      gdi32: Handle metafiles directly in LineTo implementation.
      gdi32: Handle metafiles directly in MoveToEx implementation.
      gdi32: Handle metafiles directly in Chord and Pie implementations.
      gdi32: Handle metafiles directly in Arc implementation.
      gdi32: Introduce DC_ATTR struct and use it to store current position.

Jactry Zeng (1):
      gdi32: Fix a typo in unix_face_create().

Julian Rüger (1):
      po: Update German translation.

Nikolay Sivov (8):
      mf/evr: Query d3d device manager via MR_VIDEO_RENDER_SERVICE service.
      evr/mixer: Set MF_MT_INTERLACE_MODE for the mixer output types.
      mf/session: Forward MR_POLICY_VOLUME_SERVICE service requests to the SAR node.
      mf/session: Use better failure code for rendering node service requests.
      winegstreamer: Use consistent trace format for MF objects.
      mfplat: Add some Video Processor attributes to tracing.
      mfmediaengine: Handle shutdown state in SetSource().
      mfmediaengine: Update network state when loading the media source.

Paul Gofman (11):
      mshtml: Move assert.h include to mshtml_private.h.
      mshtml_private.tlb: Add private typelib.
      mshtml: Export requestAnimationFrame() through a private interface.
      mshtml: Add console object stub implementation.
      ntdll: Add SystemKernelDebuggerInformationEx info class to NtQuerySystemInformation().
      ntdll: Add stub for ProcessInstrumentationCallback info class in NtSetInformationProcess().
      mshtml: Add stub for HTMLElement classList property.
      mshtml: Add stub object for HTMLElement classList.
      mshtml: Implement IWineDOMTokenList_add() method.
      mshtml: Implement IWineDOMTokenList_remove() method.
      ntdll: Comment out stubs for Nt and Zw functions.

Piotr Caban (1):
      msvcrt: Update round_limb on first limb length change in printf.

Rémi Bernon (15):
      ntoskrnl.exe/tests: Only count test driver load notify.
      ntoskrnl.exe/tests: Sync test utils with wine/test.h.
      ntoskrnl.exe/tests: Add more tests for button array caps.
      ntoskrnl.exe/tests: Add some HidD_GetInputReport tests.
      ntoskrnl.exe/tests: Add some HidD_GetFeature tests.
      ntoskrnl.exe/tests: Add some HidD_SetFeature tests.
      ntoskrnl.exe/tests: Add some HidD_SetOutputReport tests.
      ntoskrnl.exe: Send IRP_MN_SURPRISE_REMOVAL to the device stack first.
      ntoskrnl.exe/tests: Return STATUS_PENDING from IOCTL_HID_READ_REPORT.
      ntoskrnl.exe/tests: Add HID driver test in polled mode.
      hidclass.sys: Return error on invalid write buffer size.
      ntoskrnl.exe/tests: Add some IOCTL_HID_WRITE_REPORT tests.
      hidclass.sys: Return error on invalid read buffer size.
      ntoskrnl.exe/tests: Add some IOCTL_HID_READ_REPORT tests.
      wine.inf: Consistently quote shell open and print commands.

Steve Lhomme (1):
      include: Add AV1 support to dxva.h.

Tim Clem (3):
      wininet/tests: Test InternetCrackUrl when given a bogus length.
      wininet: Make heap_strndupAtoW stop at the first null.
      wininet: Treat dwUrlLength as a maximum in InternetCrackUrlW.

Zebediah Figura (64):
      server: Don't check the user data for NULL in async_terminate().
      server: Call the close_handle callback and release_object_from_handle() in the same loop.
      server: Explicitly return whether a select request was immediately signaled.
      server: Remove special handling of STATUS_MORE_PROCESSING_REQUIRED.
      ws2_32/tests: Fix some connection timeout tests.
      ws2_32/tests: Add more tests for connection failure.
      server: Return a Win32 error code from IOCTL_AFD_WINE_GET_SO_ERROR.
      server: Separate a poll_single_socket() helper.
      server: Report AFD_POLL_CONNECT_ERR if a previous connection attempt failed.
      wined3d: Factor out most of the execute_command_list callback to a common function.
      wined3d: Pass a wined3d_cs pointer to wined3d_not_from_cs().
      wined3d: Set an array of constant buffers as a single CS operation.
      wined3d: Set an array of shader resource views as a single CS operation.
      wined3d: Set an array of samplers as a single CS operation.
      server: Clear the connection error after a successful connection.
      ws2_32/tests: Add more tests for invalid calls to connect() and ConnectEx().
      server: Explicitly forbid connecting a listening or connected socket.
      ws2_32: Move the setsockopt(IP_DROP_MEMBERSHIP) implementation to ntdll.
      ws2_32: Move the setsockopt(IP_DROP_SOURCE_MEMBERSHIP) implementation to ntdll.
      wined3d: Introduce a wined3d_bound_range() helper.
      wined3d: Set an array of UAVs as a single CS operation.
      ws2_32: Move the getsockopt(IP_HDRINCL) implementation to ntdll.
      ws2_32: Move the setsockopt(IP_HDRINCL) implementation to ntdll.
      ws2_32: Move the getsockopt(IP_MULTICAST_IF) implementation to ntdll.
      ws2_32: Move the setsockopt(IP_MULTICAST_IF) implementation to ntdll.
      ws2_32: Move the getsockopt(IP_MULTICAST_LOOP) implementation to ntdll.
      include: Fix a byte offset in a comment.
      wined3d: Move the uploads array in wined3d_deferred_context_record_command_list().
      wined3d: Fix some memory leaks when destroying command lists.
      wined3d: Fix some memory leaks when destroying deferred contexts.
      ws2_32: Move the setsockopt(IP_MULTICAST_LOOP) implementation to ntdll.
      ws2_32: Move the getsockopt(IP_MULTICAST_TTL) implementation to ntdll.
      ws2_32: Move the setsockopt(IP_MULTICAST_TTL) implementation to ntdll.
      ws2_32: Move the getsockopt(IP_OPTIONS) implementation to ntdll.
      ws2_32: Move the setsockopt(IP_OPTIONS) implementation to ntdll.
      ws2_32: Move the getsockopt(IP_PKTINFO) implementation to ntdll.
      ws2_32: Move the setsockopt(IP_PKTINFO) implementation to ntdll.
      ws2_32: Move the getsockopt(IP_TOS) implementation to ntdll.
      ws2_32: Move the setsockopt(IP_TOS) implementation to ntdll.
      ws2_32: Move the getsockopt(IP_TTL) implementation to ntdll.
      qasf: Switch to the quartz debug channel.
      qcap: Switch to the quartz debug channel.
      qedit: Switch to the quartz debug channel.
      qdvd: Switch to the quartz debug channel.
      amstream: Switch to the quartz debug channel.
      winegstreamer: Avoid using WARN_ON from a GStreamer callback.
      winegstreamer: Factor out create_element().
      winegstreamer: Avoid using Wine debugging functions at all in the Unix library.
      winegstreamer: Switch to the quartz debug channel.
      strmbase: Switch to the quartz debug channel.
      wined3d: Recursively acquire queued command lists in wined3d_cs_acquire_command_list().
      wined3d: Set the entire stream output state as a single CS operation.
      wined3d: Set both the stream source and frequency for a given index as a single CS operation.
      d3d11: Fail IASetVertexBuffers() if any of the offsets are unaligned.
      wined3d: Set an arary of stream sources as a single CS operation.
      d3d11: Fail OMSetRenderTargets() if any of the views have the wrong binding flags.
      wined3d: Set an array of rendertarget views as a single CS operation.
      d3d11: Implement constant buffer offsetting for OpenGL.
      d3d11/tests: Add tests for constant buffer offsetting.
      ntdll: Use a separate +unwind debug channel for unwinding on x86-64.
      quartz: Factor out more of AdviseTime() and AdvisePeriodic().
      quartz: Use a condition variable to wake up the system clock advise thread.
      quartz/tests: Check that system clock measurements are in sequence instead of comparing absolute time.
      quartz: Free outstanding advise requests when destroying a system clock.

Zhiyi Zhang (17):
      user32: Avoid unnecessary scroll bar drawing.
      user32: Remove SCROLL_DrawInterior_9x().
      user32: Modify SCROLL_MovingThumb outside of SCROLL_DrawMovingThumb().
      user32: Introduce a SCROLL_DrawNCScrollBar() to draw scroll bars in non-client area.
      user32: Call SCROLL_DrawScrollBar() to draw arrows in SCROLL_HandleScrollEvent().
      uxtheme: Avoid memory leaks.
      user32: Call SCROLL_DrawScrollBar() to draw moving thumb in SCROLL_HandleScrollEvent().
      user32: Call SCROLL_DrawScrollBar() to draw tracks in SCROLL_HandleScrollEvent().
      user32: Pass a scroll bar tracking info parameter to SCROLL_DrawScrollBar().
      user32: Separate scroll bar drawing calculation from actual drawing.
      user32: Separate scroll bar window checks from actual drawing.
      user32: Draw scroll bar size box and size grip in a single function.
      uxtheme: Move themed scroll bar to uxtheme.
      uxtheme: Move themed dialog to uxtheme.
      uxtheme: Support drawing themed standard scroll bars.
      uxtheme: Support pressed state for themed scroll bars.
      uxtheme: Support scroll bar state tracking in non-client areas.

Ziqing Hui (4):
      include: Add the D2D12DAffineTransform definitions.
      d2d1/tests: Add an effects test.
      d2d1: Add a ID2D1Image interface for effects.
      d2d1: Implement d2d_effect_GetOutput().

--
Alexandre Julliard
julliard@winehq.org