The Wine development release 10.14 is now available.
What's new in this release:
Bundled vkd3d upgraded to version 1.17.
Mono engine updated to version 10.2.0.
Support for ping on IPv6.
Gitlab CI now running on Debian Trixie.
Various bug fixes.
The source is available at https://dl.winehq.org/wine/source/10.x/wine-10.14.tar.xz
Binary packages for various distributions will be available from the respective download sites.
You will find documentation here.
Wine is available thanks to the work of many people. See the file AUTHORS for the complete list.
Bugs fixed in 10.14 (total 19):
#18233 Approach underscore bar inactive with multiple database open
#27974 warn:winsock:wsaErrno errno 115, (Operation now in progress).
#35622 VemsTune: program crashes on switching view modes
#55557 wpcap:wpcap crashes on macOS
#56639 Phantasy Star Online: Blue Burst: various missing/black textures
#57027 GetFinalPathNameByHandleW does not handle paths exceeding MAX_PATH (260 chars)
#57835 ROCS Show Ready crashes on unimplemented function msvcp140_atomic_wait.dll.__std_tzdb_get_time_zones
#57946 Multiple games need maxAnisotropy values handling (GreedFall, Mafia III: Definitive Edition)
#58141 [MDK] [WOW64] Stack overflow
#58169 Trae installer fails: "Failed to expand shell folder constant userpf"
#58334 ShowStopper crashes on unimplemented function ntdll.dll.RtlQueryProcessHeapInformation
#58403 Death to Spies: intro videos show black screen (audio works)
#58482 Roblox Studio installer crashes on unimplemented function api-ms-win-core-memory-l1-1-3.dll.VirtualProtectFromApp
#58531 MemoryRegionInformation incorrectly returns STATUS_SUCCESS for freed memory regions
#58574 Multiple applications require gameinput.dll (Fritz Chess Coach, Le Mans Ultimate)
#58577 MsiGetComponentPath/MsiLocateComponent doesn't resolve a reference to .NET GAC
#58600 Command line tab completion works improperly with files/directories containing delimiter characters
#58608 SCardTransmit should work with pioSendPci=NULL
#58615 winepath changes behaviour and strips ending path separator now
Changes since 10.13:
Adam Markowski (2): po: Update Polish translation. po: Update Polish translation. Alexandre Julliard (39): tapi32: Move registry keys out of wine.inf. win32u: Add NtGdiCancelDC() stub. win32u: Implement NtUserGetCursorPos(). win32u: Implement NtGdiGet/SetMiterLimit(). server: Add a helper to check a process wow64 status. include: Always use Unicode string constants for the PE build. server: Use LIST_FOR_EACH_ENTRY in more places. cabinet: Use the correct structure for DllGetVersion(). rsaenh: Don't reset key when nothing was encrypted. winebuild: Only allow thiscall functions on i386. server: Fix get_next_hook return value when no hook is found. kernel32: Preserve trailing slash for existing paths in wine_get_dos_file_name(). kernel32: Preserve trailing slash for existing paths in wine_get_unix_file_name(). win32u: Define all stubs as syscalls. vkd3d: Import upstream release 1.17. sxs: Add support for language in manifest names. sxs: Support XML escaping in manifest names. sxs: Take manifest language into account when building the file name. sxs: Install policy files the same way as normal manifests. win32u: Disable some unused code when EGL is missing. gitlab: Update CI image to debian trixie. setupapi: Use SetupDiGetActualSectionToInstallW instead of duplicating that logic. setupapi: Add support for Include directive. setupapi: Add support for Needs directive. wine.inf: Use Needs directive to reduce duplication. winedump: Remove const from a member that is written to. kernel32/tests: Clear FPU status flags before checking control word. ntdll/tests: Also test mxcsr register in user callbacks. ntdll/tests: Use a direct syscall to test xmm registers. gdi32/tests: Remove some workarounds for NT4. gdi32: Handle the default color profile on the GDI side. gdi32: Handle the ICM\mntr key on the GDI side. winex11: Create the ICM profile file at startup. win32u: Remove the __wine_get_icm_profile() syscall. win32u: Remove the GetICMProfile driver entry point. amstream/tests: Use nameless unions/structs. qcap: Use nameless unions/structs. qedit: Use nameless unions/structs. winegstreamer: Use nameless unions/structs. Alexandros Frantzis (2): winewayland: Mark only windows with per-pixel alpha as layered. winewayland: Handle NULL values for xkb layout name and description. Anders Kjersem (1): advpack: Support ADN_DEL_IF_EMPTY flag in DelNode(). Attila Fidan (1): winegstreamer/wma_decoder: Return S_OK from AllocateStreamingResources(). Aurimas Fišeras (2): po: Update Lithuanian translation. po: Update Lithuanian translation. Bernhard Übelacker (8): ntdll/tests: Mark test as broken with old Windows versions. ntdll: Fix XState data initialisation with non-AVX CPUs. kernel32/tests: Test paths in GetFinalPathNameByHandleW exceeding MAX_PATH. kernel32: Handle paths in GetFinalPathNameByHandleW exceeding MAX_PATH. bluetoothapis/tests: Avoid crash in gatt tests with some Windows versions. kernelbase/tests: Fix test failing with old Windows 10. ntdll/tests: Add check for len and avoid CommitSize with old Windows. propsys/tests: Skip tests of properties not supported by old Windows. Brendan McGrath (1): winegstreamer: Only add the capsfilter for avdec_h264. Brendan Shanks (1): ntdll: Implement NtGetCurrentProcessorNumber() with pthread_cpu_number_np() when available on macOS. Connor McAdams (8): ntoskrnl/tests: Add tests for getting IRP_MN_QUERY_DEVICE_TEXT based device properties. ntoskrnl: Set DEVPKEY_Device_BusReportedDeviceDesc from driver. winebus: Handle IRP_MN_QUERY_DEVICE_TEXT. hidclass: Print a warning for unhandled IRP_MN_QUERY_DEVICE_TEXT text types. winebth.sys: Print a warning for unhandled IRP_MN_QUERY_DEVICE_TEXT text types. wineusb.sys: Print a warning for unhandled IRP_MN_QUERY_DEVICE_TEXT text types. winebus: Generate unique container IDs when adding devices. winebus: Override device instance enumerator string if bus type is known. Conor McCarthy (1): winegstreamer: Use a stride alignment of 2 for NV12 in align_video_info_planes(). Dmitry Timoshkov (3): comdlg32: PRINTDLG_UpdatePrintDlgW() should update dmCopies field in DEVMODE. kernel32/tests: Test FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_POSIX_SEMANTICS | FILE_ATTRIBUTE_DIRECTORY. kernelbase: For FILE_FLAG_BACKUP_SEMANTICS also handle FILE_ATTRIBUTE_DIRECTORY in CreateFile. Elizabeth Figura (3): qcap/tests: Test subtype validation in QueryAccept() and SetFormat(). quartz/tests: Add more tests for video window style. quartz: Preserve the current visibility in IVideoWindow::put_Style(). Esme Povirk (1): mscoree: Update Wine Mono to 10.2.0. Gabriel Ivăncescu (4): jscript: Allow objects that expose "length" prop for Function.apply under certain conditions. jscript: Return proper error when passing wrong type to Function.apply. jscript: Fallback to Object's toString for Arrays when 'this' isn't an array in ES5 mode. jscript: Fix error value when passing non-string 'this' to String's toString. Georg Lehmann (3): winevulkan: Reorder bitmasks to handle aliases correctly. winevulkan: Disable h265 extensions. winevulkan: Update to VK spec version 1.4.325. Gerald Pfeifer (1): winebus.sys: Use uint16_t instead of __u16. Hans Leidekker (11): msi: Make assembly caches global. msi: Handle .NET assemblies in MSI_GetComponentPath(). rsaenh: Use TomCrypt for hash implementations. include: Comment references to undefined static interfaces. include: Define IRandomAccessStreamStatics. include: Define ISystemMediaTransportControlsStatics. widl: Require static interfaces to be defined. widl: Require activation interfaces to be defined. widl: Require composition interfaces to be defined. widl: Require runtimeclass contracts to be defined. winscard: Handle NULL send parameter in SCardTransmit(). Haoyang Chen (1): qcap/vfwcapture: Validate the subtype in find_caps(). Henri Verbeet (4): d3d11/tests: Test that sampler states with anisotropic filtering and zero MaxAnisotropy can be created. d3d10core/tests: Test that sampler states with anisotropic filtering and zero MaxAnisotropy can be created. d3d11: Disable anisotropic filtering for sampler states with zero MaxAnisotropy. wined3d: Disable anisotropic filtering for zero max_anisotropy in sampler_desc_from_sampler_states(). Ignacy Kuchciński (1): windows.storage: Split ApplicationData. Jacob Czekalla (6): hhctrl.ocx: Check for a NULL web_browser before QueryInterface. wininet/tests: Add more http time test strings. wininet: Fix parsing order of http times. wininet: Fix year parsing to include millennium. comctl32/treeview: Return from TREEVIEW_LButtonDown when the treeview handle is invalid. comctl32/tests: Add a test for treeview deletion during NM_CLICK in LBUTTONDOWN. Jiangyi Chen (1): opengl32: Perform cAccumBits filtering if specified in wglChoosePixelFormat(). Joe Souza (1): cmd: Treat most delimiters as literals if user specified quotes. Keigo Okamoto (3): winealsa: Send All Notes Off and Reset Controllers. winecoreaudio: Send All Notes Off and Reset Controllers. wineoss: Send All Notes Off and Reset Controllers. Marc-Aurel Zent (5): ntdll: Implement ProcessPriorityBoost class in NtQueryInformationProcess. ntdll: Implement ProcessPriorityBoost class in NtSetInformationProcess. kernelbase: Implement GetProcessPriorityBoost. kernelbase: Implement SetProcessPriorityBoost. kernel32/tests: Add tests for GetProcessPriorityBoost/SetProcessPriorityBoost. Mike Kozelkov (1): winbio: Add stub DLL. Mohamad Al-Jaf (9): cryptxml: Add stub dll. include: Add cryptxml.h. cryptxml: Implement CryptXmlOpenToDecode() stub. cryptxml: Implement CryptXmlClose(). cryptxml: Implement CryptXmlGetDocContext(). cryptxml: Implement CryptXmlGetSignature(). cryptxml: Implement CryptXmlVerifySignature() stub. cryptxml: Implement CryptXmlGetStatus(). cryptxml/tests: Add some signature verification tests. Nikolay Sivov (5): d2d1: Add some helpers for geometry figure manipulation. d2d1: Implement ellipse geometry simplification. d2d1: Implement rounded rectangle geometry simplification. fonts: Fix "O" glyph in Tahoma Bold bitmap strikes. d3d10/tests: Compile more test effects from sources. Paul Gofman (35): ntdll: Factor out chksum_add() function. ntdll: Support SOCK_RAW / IPPROTO_ICMPV6 fallback over SOCK_DGRAM. ws2_32/tests: Test ICMPv6 ping. ntdll/tests: Add more tests for NtQueryVirtualMemory( MemoryRegionInformation ). ntdll: Factor out get_memory_region_size() function. ntdll: Reimplement get_memory_region_info() on top of get_memory_region_size(). ntdll: Add semi-stub for NtQueueApcThreadEx2(). ntdll: Validate reserve handle in NtQueueApcThreadEx2(). ntdll: Pass user APC flags to call_user_apc_dispatcher(). server: Do not allow queueing special APCs to wow64 threads. ntdll: Implement QUEUE_USER_APC_CALLBACK_DATA_CONTEXT in NtQueueApcThreadEx2() on x64. ntdll: Use NtContinueEx in KiUserApcDispatcher on x64. kernelbase: Implement QueueUserAPC2(). server: Check thread and call parameters in queue_apc() for APC_USER. msvcp140_atomic_wait: Semi-stub __std_tzdb_get_time_zones() / __std_tzdb_delete_time_zones(). msvcp140_atomic_wait: Semi-stub __std_tzdb_get_current_zone() / __std_tzdb_delete_current_zone(). msvcp140_atomic_wait: Stub __std_tzdb_get_leap_seconds() / __std_tzdb_delete_leap_seconds(). kernelbase: Preserve last error in OutputDebugStringA(). kernel32: Preserve last error in OutputDebugStringA(). kernel32/tests: Test last error preservation in OutputDebugString(). ntdll/tests: Test last error preservation in OutputDebugString() with debugger. winex11.drv: Only create dummy parent when needed in create_client_window(). win32u: Avoid calling server in NtUserGetKeyState() when input keystate is in sync. nsiproxy.sys: Get rid of echo request thread. nsiproxy.sys: Bind to source address in icmp_send_echo(). nsiproxy.sys: Store socket type in struct icmp_data. iphlpapi: Factor out icmp_send_echo() function. iphlpapi/tests: Refactor APC testing in testIcmpSendEcho(). iphlpapi: Only supply APC routine if no event in icmp_send_echo(). iphlpapi: Implement Icmp6ParseReplies(). iphlpapi: Implement Icmp6CreateFile(). nsiproxy.sys: Don't try to check for original packet for ping socket. iphlpapi: Implement Icmp6SendEcho2(). iphlpapi/tests: Add tests for Icmp6SendEcho2(). iphlpapi: Avoid leaking APC context in icmp_send_echo(). Rémi Bernon (69): widl: Wrap strappend parameters in a new struct strbuf. widl: Introduce a new append_basic_type helper. widl: Remove unnecessary recursion for TYPE_BITFIELD. widl: Move some type name construction out of write_type_left. joy.cpl: Read the device state when getting selected effect. winetest: Set winetest_mute_threshold to 4 when running tests. user32: Use init_class_name(_ansi) in FindWindowEx(A|W). win32u: Drop unnecessary NtUserCreateWindowEx version strings. win32u: Add a helper to add atom / strings to server requests. server: Simplify create_class atom validation check. server: Unify reading class atom / name from requests. widl: Introduce a new write_record_type_definition helper. widl: Cleanup indentation and variables in write_type_left. widl: Split write_type_left into a write_type_definition_left helper. widl: Introduce a new append_type_left helper. win32u: Move nulldrv client surface code from vulkan.c. win32u: Introduce a new framebuffer object GL surface. win32u: Create render buffers for double / stereo buffering. win32u: Create depth attachments for the FBO surface. widl: Remove now unnecessary write_callconv argument. widl: Cleanup indentation and variables in write_type_right. widl: Inline write_args into write_type_right. widl: Introduce a new append_declspec helper. opengl32: Hook glGet(Booleanv|Doublev|Floatv|Integer64v). opengl32: Share wgl_context structure definition with win32u. opengl32: Keep track of draw/read framebuffer binding. opengl32: Return the tracked FBOs when using FBO surfaces. include: Add gameinput.idl. gameinput: Introduce new DLL. dinput/tests: Add some gameinput tests. winebus: Generate unique serial numbers when adding devices. user32/tests: Add more GetClassInfo tests. win32u: Forbid setting GCW_ATOM class info. win32u: Introduce helpers to check desktop and message class. user32: Implement integral class name versioning support. win32u: Remove now unnecessary integral atom specific handling. server: Return the class base atom from create_class. opengl32: Keep track of default FBO read/draw buffers. opengl32: Return the tracked FBO buffers when using FBO surfaces. opengl32: Remap read / draw FBO buffers when using FBO surfaces. opengl32: Redirect default framebuffer when using FBO surfaces. wine.inf: Fix section name for DefaultInstall.ntx86 services. win32u: Simplify setting extra class info in set_class_long. win32u: Use set_class_long_size for NtUserSetClassWord. win32u: Use get_class_long_size for get_class_word. server: Split get_class_info request from set_class_info. server: Get rid of set_class_info request flags. widl: Keep track of statements source locations. widl: Allow explicit registration by referencing runtimeclasses. windows.storage.applicationdata: Register runtimeclasses explicitly. windows.storage: Register runtimeclasses explicitly. wintypes: Register runtimeclasses explicitly. include: Remove now unnecessary registration ifdefs. opengl32: Initialize viewport when using FBO surface. win32u: Create a separate draw FBO for multisampled formats. opengl32: Resolve multisample draw buffer when using FBO surfaces. win32u: Remove unnecessary HDC parameter from client_surface_present. win32u: Remove unnecessary HDC parameter from p_surface_create. winex11: Remove unnecessary members from struct gl_drawable. windows.ui: Register runtimeclasses explicitly. windows.ui.xaml: Register runtimeclasses explicitly. coremessaging: Register runtimeclasses explicitly. twinapi.appcore: Register runtimeclasses explicitly. windows.applicationmodel: Register runtimeclasses explicitly. windows.system.profile.systemid: Register runtimeclasses explicitly. windows.system.profile.systemmanufacturers: Register runtimeclasses explicitly. windows.globalization: Register runtimeclasses explicitly. appxdeploymentclient: Register runtimeclasses explicitly. cryptowinrt: Register runtimeclasses explicitly. Tim Clem (3): ntdll: Initialize return value in fork_and_exec. ntdll: Zero the process and thread handles when creating a Unix process. kernelbase: Zero the RTL_USER_PROCESS_PARAMETERS in CreateProcessInternalW. Tingzhong Luo (1): shell32: Support the UserProgramFiles folder. Tres Finocchiaro (1): winebuild: Add flag to disable dynamicbase/aslr. Tyson Whitehead (9): joy.cpl: Use correct interface for effect AddRef call. joy.cpl: Remove needless device caps retrieval. joy.cpl: Remove incorrect DIEP_TYPESPECIFICPARAMS flag usage. joy.cpl: Cleanup selected device Acquire / Unacquire logic. joy.cpl: Fix effect axes / direction in SetParameters call. joy.cpl: Avoid restarting effect while button is pressed. joy.cpl: Turn off autocenter for every device on creation. joy.cpl: Add specific parameters based on type and not effect GUID. winebus: SDL backend FF effect angle requires 32 bits. Vibhav Pant (9): vccorlib140: Add semi-stub for Platform::Details::Heap::{Allocate, Free}. vccorlib140: Add stub for Platform::Details::{Allocate(ptrdiff_t, size_t), ControlBlock::ReleaseTarget}. vccorlib140: Implement Platform::Details::{Allocate(ptrdiff_t, size_t), ControlBlock::ReleaseTarget}. vccorlib140: Add stub for __abi_make_type_id, Platform::Type{Equals, GetTypeCode, ToString, FullName::get}. vccorlib140: Implement __abi_make_type_id. vccorlib140: Implement Platform::Type::{Equals, GetTypeCode, ToString, FullName::get}. vccorlib140: Add stub for Platform::Details::CreateValue. vccorlib140: Implement Platform::Details::CreateValue. vccorlib140: Use the correct symbol name for InitControlBlock on i386 and arm. William Horvath (2): ntdll: Check for invalid gs_base in the 64-bit segv_handler. ntdll/tests: Re-enable a previously crashing test. Yuxuan Shui (6): include: Make sure to null terminate string in wine_dbg_vsprintf. server: Fix use-after-free of handle entry. makefiles: Don't delete Makefile if makedep is interrupted. dmime: Fix use-after-free after performance_CloseDown. msi/tests: Fix wrong character counts passed to RegSetValueExA. ole32: Don't get metafile extent if there is no metafile. Zhiyi Zhang (2): user32/tests: Add more SendMessageCallbackA/W() tests with NULL callback. win32u: Put the message in the queue when the callback pointer is NULL and the callback data is 1. Ziqing Hui (1): dwrite: Add fallback for Dingbats.