The Wine development release 3.1 is now available.
What's new in this release (see below for details): - Kerberos authentication support. - Window class redirection for Common Controls 6. - Support for X11 ARGB visuals. - DOSBox required for running DOS executables. - Various bug fixes.
The source is available from the following locations:
https://dl.winehq.org/wine/source/3.x/wine-3.1.tar.xz http://mirrors.ibiblio.org/wine/source/3.x/wine-3.1.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 3.1 (total 29):
13332 widl fails with unknown embedded type for somedata (0x0) 37997 Jeskola Buzz Build 1499 (.NET 4.0 app) crashes on unimplemented function msvcp100.dll.??0_Concurrent_queue_base_v4@details@Concurrency@@IAE@I@Z 38064 Using alt+enter to fullscreen any rpgmaker XP game causes keyboard input lose and not fullscreen 38436 Grand Theft Auto V failed to launch 39319 Multiple 64-bit applications fail to start due to loader refusing to map 32-bit resource-only dll into 64-bit process (Solid Edge ST8, ICU4C tools) 40078 With IrfanView copied image detail is horizontally flipped 40418 Doom 4 requires bcrypt AES provider 40623 DOOM (2016) demo (Steam) crashes on launch due to Denuvo copy protection 40926 Multiple games (Solus Project, Dying Light) require unimplemented function msvcp110.dll.??0_Concurrent_queue_base_v4@details@Concurrency@@IEAA@_K@Z 42170 Microsoft .NET Framework 4.6.2 offline installer does not complete, needs wevtapi.EvtNext stub 42330 Grand Theft Auto V (Steam): black screen, only audio 42716 64-bit MetaTrader5 refuses to start, reports 'A debugger has been found running in your system' (Denuvo Anti-Tamper x64) 43538 x64dbg needs unimplemented function msvcp120.dll.??0_Concurrent_queue_base_v4@details@Concurrency@@IAE@I@Z 43595 Rainmeter doesn't run, demands windows 7 or later (needs (stub) ID2D1Factory1) 43728 Magic: The Gathering Online intensive CPU usage when idle 44035 Xenia emulator doesn't start 44138 Native Access needs unimplemented function iphlpapi.dll.if_indextoname 44158 QueryProcessCycleTime() causing exception/crash 44176 EverQuest crashes with unimplemented function d3dx9_43.dll.D3DXCreateKeyframedAnimationSet 44270 Exception when organizing favorites in Windows Media Player 6.4 (unimplemented function shdocvw.dll.DoOrganizeFavDlg) 44277 WOLF RPG Editor: Certain background music doesn't stop when using XAudio2 44294 Possible access to unintended macro in "wine/dlls/comdlg32/fontdlg.c" line 592 44296 Qt 5 programs fail to resolve DNS SRV records 44310 WritePrivateProfileString doesn't check for flush errors 44329 Listview does not reset returned state mask for subitems 44347 Touhou Shinpiroku trial terminates 44349 winedbg: stepping is broken using GDB proxy 44365 armel build fails: selected processor does not support `strd r4,[sp]' in ARM mode 44379 Visual Novel "A Clockwork Ley-Line": ntdll.dll.RtlPushFrame called
----------------------------------------------------------------
Changes since 3.0:
Akihiro Sagawa (1): kernel32: Return the list of module handles even if the last argument is null.
Alex Henrie (8): wintrust/tests: Initialize structure passed to WintrustLoadFunctionPointers. include: Correct definition of CRYPT_PROVUI_FUNCS. schannel/tests: Avoid dereferencing a null function pointer. include: Add WIDL attributes to dhtmled.idl. dhtmled.ocx: Add dll and stub DHTMLEdit object. include: Add CertRegisterSystemStore and CertUnregisterSystemStore. crypt32/tests: Drop store test workarounds for Windows <= 2000. gameux/tests: Drop game stats test workarounds for Windows <= 2000.
Alexandre Julliard (36): ntdll: Export strnlen. ntdll: Use DWORDs for ARM assembly instructions. comdlg32: Add a helper function to select a combo box item. commdlg: Implement custom template support in 16-bit file dialogs. winex11: Don't allocate a window surface for off-screen windows. wineandroid: Don't allocate a window surface for off-screen windows. server: Only update the modified parts of the context on thread suspend. include: Add missing CONTEXT_ALL definitions. include: Add a few more TEB structure definitions. ntdll: Implement RtlPushFrame, RtlPopFrame and RtlGetFrame. ntdll: Store the context on the thread stack after the initial suspend. ntdll: Move suspending a thread on startup back to the platform-specific files. user32: Also user the thread-safe display DC in icon functions. configure: Check the positive form of the warning options. opengl32: Update to the current OpenGL spec. winex11: Use the correct colormap for the OpenGL parent window. winex11: Use a separate XRender format for the root window. winex11: Force the alpha bits in the window surface for 32-bit visuals. winex11: Support using an ARGB visual as default visual. winex11: Default to an ARGB visual when depth is set to 32. mshtml: Avoid using a global display DC. server: Allow creating image mappings for all supported CPU platforms. ntdll: Don't return 64-bit image info to 32-bit processes. server: Implement the ImageContainsCode flag for image mappings. ntdll: Move file mapping functionality to a helper function. ntdll: Check for file mappings that cannot be loaded as dlls. wineandroid: Handle additional mouse event types. winevdm: Require DOSBox for running DOS executables. krnl386: Remove support for running DOS executables. ntdll: Remove support for vm86 mode. wineandroid: Force non-zero state on ACTION_BUTTON_RELEASE to avoid duplicate events. krnl386: Remove support for DOS devices and event handling. krnl386: Remove support for VGA emulation. winedbg: Remove support for vm86 exceptions. kernel32: Remove support for vm86 exceptions. comdlg32: Correctly initialize the item dialog structure.
Alistair Leslie-Hughes (3): dpnet: Use the global HeapAlloc() wrappers. advapi32: Support WinLogonIdsSid in IsWellKnownSid. d3dx9: Stub D3DXCreateKeyframedAnimationSet().
Andrew Eikum (3): xinput: XInputGetStateEx takes the same struct as XInputGetState. services: Add support for service status change notifications. advapi32: Implement NotifyServiceStatusChange.
Andrey Gusev (4): winmm/tests: Fix memory leak. d3d8/tests: Use GetModuleHandleA instead of LoadLibraryA. api-ms-win-core-shutdown-l1-1-0: Add dll. api-ms-win-security-lsalookup-l2-1-0: Add dll.
André Hentschel (1): ntdll: Determine write fault based on failed instruction on ARM64.
Anton Romanov (1): ole32: Make CoWaitForMultipleHandles peek at all posted messages.
Aric Stewart (1): joy.cpl: Add parameters for Condition FF effects.
Austin English (1): kernel32: Add QueryProcessCycleTime stub.
Bernhard Übelacker (1): user32: Validate DIB offset in CURSORICON_GetFileEntry.
Dmitry Timoshkov (26): include: Fix the LSA_SEC_HANDLE definition. include: MICROSOFT_KERBEROS_NAME_A definition should be available regardless of UNICODE. kerberos: Use kerberos prefix instead of krb5. kerberos: Implement SpGetInfo. include: Fix the SpInitializeFn typedef. kerberos: Add stubs for SpInitialize and SpShutdown. kerberos: Add SpUserModeInitialize implementation. kerberos: Add SpInstanceInit stub. kerberos: Don't fail InitializeSecurityContext if there are unsupported flags. kerberos: Fix printing of the sequence message number. kerberos: Print verbose traces on gssapi failures. kerberos: Add support for KerbQueryTicketCacheMessage. secur32: Add support for loading SSP/AP dll as an SSPI provider. secur32: Implement AcquireCredentialsHandle in the SSP/AP wrapper. secur32: Implement FreeCredentialsHandle in the SSP/AP wrapper. secur32: Implement InitializeSecurityContext in the SSP/AP wrapper. secur32: Implement DeleteSecurityContext in the SSP/AP wrapper. secur32: Implement AcceptSecurityContext in the SSP/AP wrapper. secur32: Implement QueryContextAttributes in the SSP/AP wrapper. secur32: Implement MakeSignature in the SSP/AP wrapper. secur32: Implement VerifySignature in the SSP/AP wrapper. secur32: Implement EncryptMessage in the SSP/AP wrapper. secur32: Implement DecryptMessage in the SSP/AP wrapper. secur32: Remove Kerberos SSPI stubs. secur32: Implement LsaFreeReturnBuffer. secur32: Print contents of LSA_STRING in traces.
Fabian Maurer (1): kernel32: Add stub for ReOpenFile.
François Gouget (2): ole32/tests: Add a trailing '\n' to ok() calls. dxgi: Fix a trailing '\n' in a FIXME().
Gijs Vermeulen (2): compobj.dll16: Add StringFromIID. ole2disp.dll16: Implement SafeArrayGet[UBound|LBound].
Guo Lv (1): user32: Make functions use display dc thread-safe.
Hans Leidekker (23): dnsapi: Use default server list if passed in array is empty. msi: Write registry values for source components too. crypt32: Add a stub implementation of CertUnregisterPhysicalStore. iphlpapi: Implement if_indextoname. webservices: Fix is_nil_element in binary mode. webservices: Take the output encoding into account in WsCopyNode. webservices: Don't write a colon for namespace attributes with empty prefix. webservices: Simplify write_dict_string. webservices: Also set localname and value for xmlns attributes. webervices/tests: Add tests for out of range string IDs. kerberos: Implement SpAcquireCredentialsHandle. kerberos: Implement SpInitLsaModeContext. kerberos: Implement SpAcceptLsaModeContext. kerberos: Implement SpDeleteContext. kerberos: Implement SpFreeCredentialsHandle. kerberos: Implement SpQueryContextAttributes. kerberos: Implement SpMakeSignature. kerberos: Implement SpVerifySignature. kerberos: Implement SpSealMessage. kerberos: Implement SpUnsealMessage. kerberos: Don't check for GSS_S_CONTINUE_NEEDED from gss_acquire_cred. kerberos: Fix parameter check in kerberos_SpUnsealMessage. kerberos: Use the global memory allocation helpers.
Henri Verbeet (30): d3d10: Validate the DXBC version. d3d11: Validate the DXBC version. winex11: Failing to create a context in X11DRV_wglCreateContextAttribsARB() is not an internal error. d2d1: Introduce a registry key to limit the maximum supported factory version. winex11: Implement WGL_ARB_create_context_no_error. wined3d: Introduce WINED3D_RESOURCE_ACCESS_MAP. wined3d: Get rid of WINED3D_POOL_SCRATCH. wined3d: Use the resource access flags in arbfp_blit_supported(). wined3d: Use the resource access flags in fbo_blitter_supported(). wined3d: Use the resource access flags in ffp_blit_supported(). wined3d: Use the resource access flags in buffer_init(). wined3d: Use the resource access flags in wined3d_device_update_texture(). wined3d: Use the resource access flags in wined3d_device_evict_managed_resources(). d2d1: Use the global memory allocation helpers. wined3d: Use the resource access flags in resource_init(). wined3d: Use the resource access flags in resource_cleanup(). wined3d: Use the resource access flags in wined3d_resource_set_priority(). wined3d: Use the resource access flags in surface_blt_special(). d2d1: Introduce a helper function to allocate arrays. d2d1: Use d2d_array_reserve() in d2d_clip_stack_push(). wined3d: Use the resource access flags in ffp_blitter_use_cpu_clear(). wined3d: Use the resource access flags in wined3d_surface_blt(). wined3d: Use more resource access flags in wined3d_texture_use_pbo(). d2d1: Replace d2d_calloc() with a global heap_calloc() helper. d3d10: Use the global memory allocation helpers. wined3d: Use the resource access flags in wined3d_texture_set_lod(). wined3d: Use the resource access flags in wined3d_texture_unload(). wined3d: Use the resource access flags in texture_resource_sub_resource_map(). wined3d: Replace the pool in struct wined3d_sub_resource_desc with resource access flags. wined3d: Replace the pool in struct wined3d_resource_desc with resource access flags.
Huw D. M. Davies (13): winebrowser: Fix calling convention for wine_get_unix_file_name(). hhctrl: Use a helper to free the wintype structure. hhctrl: Fix loading of the wintype data on 64-bit. ole32: Implement saving of view cache entries. oleaut32/tests: Remove some no longer needed test work-arounds. oleaut32: Fix vtable offset for a SYS_WIN32 typelib loaded on WIN64. gdi32: Don't bother using the return value of HeapFree(). ole32: Only load the contents stream for the static clsids. ole32: Explicitly enumerate the presentation streams rather than using EnumElements. gdi32: Allocate the bitmap bits during CreateBitmapIndirect() to catch out-of-memory errors. ole32: Don't keep the streams open. ole32: There's no need to recreate the static entry when parsing the CONTENTS stream. ole32: Allow caching of icon aspects for static class caches.
Jacek Caban (18): schtasks: Added /delete command implementation. schtests: Added /create command implementation. schtasks: Added support for /f argument in create command. ole32: Post quit message after leaving wait loop in CoWaitForMultipleHandles. ole32: Don't dispatch WM_QUIT messages in CoWaitForMultipleHandles. ole32: Don't stop processing messages after WM_QUIT in CoWaitForMultipleHandles. ole32/tests: Added more CoWaitForMultipleHandles tests. kernel32: Always set bytes read in ReadFile. kernel32: Don't initialize Information of passed OVERLAPPED struct in ReadFile. kernel32: Always set bytes written in WriteFile. kernel32: Don't initialize Information of passed OVERLAPPED struct in WriteFile. schtasks: Ignore /tr and /ru options. mshtml: Added IDOMEvent::get_srcElement implementation. crypt32: Added support for szOID_NIST_sha* OIDs. crypt32: Support constructed strings in octet strings decoder. crypt32/tests: Added more decoding tests. crypt32: Fixed decoded size calculation in CRYPT_AsnDecodeSequence when indefinite length is used. crypt32: Always set returned size in CRYPT_CopySignerInfo.
Józef Kucia (38): dxgi/tests: Add test for creating IDXGIFactory2. d3d10_1/tests: Introduce check_interface() helper function. dxgi: Update to IDXGIFactory2. dxgi: Update to IDXGISwapChain1. dxgi: Implement dxgi_factory_CreateSwapChainForHwnd(). dxgi: Update to IDXGIFactory4. dxgi: Implement CreateDXGIFactory2(). d3d11: Prefer D3D11 interfaces. dxgi: Set BufferUsage in dxgi_swapchain_GetDesc(). dxgi/tests: Zero swapchain descriptions. dxgi: Implement dxgi_swapchain_GetDesc1(). dxgi: Implement dxgi_swapchain_GetFullscreenDesc(). dxgi/tests: Introduce check_interface() function. dxgi: Implement dxgi_factory_EnumAdapterByLuid(). dxgi/tests: Add test for adapter locally unique identifiers. dxguid: Add more Direct3D IIDs. dxgi/tests: Fix crash in test_output_desc(). wined3d: Add buffer usage to wined3d_swapchain_desc. dxgi: Stop ignoring buffer usage. d3d11: Use proper bind flags for swapchain textures. dxgi/tests: Add test for back buffer usage flags. widl: Increase max import depth. widl: Reformat do_import(). dxgi: Allow wrapping adapter objects. dxgi: Allow wrapping factory objects. wined3d: Simplify code paths in wined3d_cs_exec_update_sub_resource(). dxgi: Add FIXME messages for unhandled DXGI_SWAP_CHAIN_FULLSCREEN_DESC fields. dxgi: Require window when creating swapchain. dxgi: Implement IDXGIAdapter3. dxgi: Implement IDXGIOutput4. dxgi/tests: Add test for wrapping COM objects. dxgi/tests: Accept higher adapter refcounts in test_create_swapchain(). d3d11: Validate resource access flags for buffers and 2D textures. d3d11/tests: Add test for resource access flags. d3d10core/tests: Add test for resource access flags. d3d11/tests: Cleanup viewport offsets in test_fractional_viewports(). d3d11/tests: Add option to use selected adapter. d3d11/tests: Print adapter information.
Kimmo Myllyvirta (1): dxgi: Add stub implementation for DXGI_PRESENT_TEST.
Louis Lenders (1): uxtheme: Add stub for SetWindowThemeAttribute.
Lucian Poston (1): d2d1: Implement ID2D1Factory1.
Mark Jansen (1): shobjidl.idl: Fix some typo's.
Martin Storsjo (4): ucrtbase: Hook up __intrinsic_setjmpex for x86_64 and arm64. ntdll: Implement NtFlushInstructionCache using __clear_cache where available. configure: Check for -Wno-pragma-pack. msvcrt: Optimize the aarch64 setjmp/longjmp using stp/ldp.
Masanori Kakura (1): xaudio2: Partially implement XA2SRC_SetChannelVolumes().
Michael Müller (2): include: Add activation.idl with IActivationFactory interface. include/objidl.idl: Add IApartmentShutdown interface.
Michael Stefaniuc (31): kernel32/tests: Fix the HeapReAlloc name in two comments. include: Add generic HeapAlloc() wrappers. vbscript: Use the global HeapAlloc() wrappers. advapi32: Use the global HeapAlloc() wrappers. advpack: Use the global HeapAlloc() wrappers. appwiz.cpl: Use the global HeapAlloc() wrappers. atl: Use the global HeapAlloc() wrappers. browseui: Use the global HeapAlloc() wrappers. dwrite: Use the global HeapAlloc() wrappers. localspl: Use the global HeapAlloc() wrappers. explorerframe: Use the global HeapAlloc() wrappers. dnsapi: Use the global HeapAlloc() wrappers. hhctrl.ocx: Use the global HeapAlloc() wrappers. iccvid: Use the global HeapAlloc() wrappers. dwrite/tests: Use the global HeapAlloc() wrappers. gdi32/tests: Use the global HeapAlloc() wrappers. inetcomm: Use the global HeapAlloc() wrappers. inetcpl.cpl: Use the global HeapAlloc() wrappers. inseng: Use the global HeapAlloc() wrappers. jsproxy: Use the global HeapAlloc() wrappers. hlink: Use the global HeapAlloc() wrappers. msident: Use the global HeapAlloc() wrappers. msscript.ocx: Use the global HeapAlloc() wrappers. ieframe: Use the global HeapAlloc() wrappers. jscript: Use the global HeapAlloc() wrappers. mshtml: Use the global HeapAlloc() wrappers. netprofm: Use the global HeapAlloc() wrappers. odbccp32: Use the global HeapAlloc() wrappers. ole32: Use the global HeapAlloc() wrappers. oleacc: Use the global HeapAlloc() wrappers. msvcrt: Use the global HeapAlloc() wrappers.
Nikolay Sivov (54): urlmon/tests: Add some more PARSE_PATH_FROM_URL tests. user32: Add SysLink to known classes list. oleaut32/tests: Use SafeArraySetIID() directly. comctl32/updown: Remove window subclass right before window is destroyed. shell32: Reduce code duplication in GetCommandString(). comctl32/listview: Always return zero state mask for subitems. ole2disp: Implement SafeArrayDestroyData(). user32/edit: Fix EM_SETWORDBREAKPROC return value. msxml3: Use IUri API to load documents. msxml3: Implement custom document importing callback. msxml3: Register msxsl:node-set() extension function. shell32: Fix a trace message. comctl32/tests: Link to activation context API directly. comctl32/tests: Remove not so useful macro. comctl32/tests: Add a helper to replace macro. comctl32/tests: Enable cGrow field tests for version 6 serialization format. comctl32/tests: Link to comctl32.dll dynamically. comctl32/tests: A test for TCN_SELCHANGING handling. comctl32/tests: Use better names for test window procedures. comctl32/tests: Extend TCM_SETTOOLTIPS test. comctl32/tests: Remove some test sequences that are not interesting. comctl32/tests: Reload library before starting version 6 tests. user32: Enable window class redirection. wevtapi: Add EvtNext() stub. comctl32/tests: Enable more ListView tests. comctl32/tests: Use public macro for ListView class name. comctl32/tests: Run Header format mask tests on version 6. comctl32/tests: Add more tests for tab focus. comctl32/tests: Run some DateTime tests on version 6 too. comctl32/tests: Run DPA tests on version 6. user32/tests: Add more A/W message data conversion tests. comctl32/tests: Enable IP address control tests on version 6. comctl32/tests: Enable Trackbar tests on version 6. dbghelp: Preserve caller supplied structure size member in SymGetModuleInfo() functions. dbghelp: Make sure returned module info strings are null-terminated. dbghelp: Use correct destination buffer length when initializing module data. winedbg: Remove some unnecessary pointer casts. ole32/tests: Move stream creation to test function that's using it. dbghelp: Use correct module name buffer length when doing enumeration. user32: Make it possible to create windows for redirected classes. user32/edit: Fix replacement text trace. comctl32/treeview: Fix tooltip window leak. comctl32/tests: Run more TreeView tests on version 6. comctl32: Introduce Edit control. comctl32/edit: Get rid of ansi buffer. winedbg: Use longer module names when printing module list. comctl32/edit: Merge theming logic. comctl32/edit: Fix replacement text trace. comctl32/updown: Use HeapAlloc() wrappers. comctl32/treeview: Use HeapAlloc() wrappers. comctl32/header: Use HeapAlloc() wrappers. comctl32/hotkey: Use HeapAlloc() wrappers. comctl32/imagelist: Use HeapAlloc() wrappers. user32/tests: Add some tests for GetClassName() and versioned classes.
Paul Graham (1): kernel32: Fix failure reporting in WritePrivateProfile* and add tests.
Piotr Caban (14): msvcp100: Add Concurrency::details::_Concurrent_queue_base_v4 class stub. msvcp100: Add _Concurrent_queue_base_v4::_Internal_throw_exception implementation. msvcp100: Add _Concurrent_queue_base_v4 constructor implementation. msvcp100: Add _Concurrent_queue_base_v4 destructor implementation. msvcp100: Add _Concurrent_queue_base_v4::_Internal_finish_clear implementation. msvcp100: Add _Concurrent_queue_base_v4::_Internal_size implementation. msvcp100: Add _Concurrent_queue_base_v4 push/pop implementation. msvcp120: Add _Concurrent_queue_base_v4 tests. msvcp120: Add _Concurrent_queue_base_v4 multi-threaded tests. msvcp100: Support exceptions while copying object in _Concurrent_queue_base_v4::_Internal_push. msvcr100: Add _NonReentrantPPLLock@details class stub. msvcr100: Use scoped_lock internal buffer when locking critical_section. msvcr100: Add _NonReentrantPPLLock class implementation. msvcr100: Add _ReentrantPPLLock class implementation.
Sebastian Lackner (4): include: Add shellscalingapi.h. shcore: Add stub dll and GetProcessDpiAwareness stub. shcore: Implement semi-stub for GetDpiForMonitor. shcore: Add SetProcessDpiAwareness stub.
Sergio Gómez Del Real (1): ole32: Prevent adding additional cache entries to static class caches.
Stefan Dösinger (2): ws2_32/tests: Fix the printed value in a few ok lines. ddraw/tests: Make test_depth_readback work on Nvidia GPUs on Windows.
Thomas Faber (4): usp10: Re-use script caches for the same font. ntdll: Handle RtlReAllocateHeap failure in com_class_add_progid (Coverity). comctl32/tests: Fix broken ok() messages. comctl32: Unset the toolbar's hot item when deleting a button.
Vijay Kiran Kamuju (1): shdocvw: Add stub DoOrganizeFavDlg.
Wei Xie (1): wininet: Don't release connection too early.
Zebediah Figura (9): winedbg/gdbproxy: Add support for floating-point registers on x86 and x86_64. winedbg/gdbproxy: Replace memory read over a breakpoint with the real value. quartz: Wait for the PullPin thread to terminate. hlink: Directly check for S_OK from IHlinkBrowseContext_GetObject(). user32/tests: Add a helper to check clipboard sequence and messages. user32/tests: Wait for the WM_CLIPBOARDUPDATE message to be received. dbghelp: Avoid an infinite loop. user32/tests: Flush events after test_ShowWindow(). user32: Kill focus before minimizing a window.
-- Alexandre Julliard julliard@winehq.org