Software 42837 Published by

Alexandre Julliard has announced a new development release of the Windows compatibility layer Wine. This version comes with proper scrollbar theming, more work towards WinSock PE conversion, preparation work for the GDI syscall interface, some progress on the IPHLPAPI PE conversion, and various bug fixes.



Wine release 6.13

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\\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().

Wine