The Wine development release 10.15 is now available.
What's new in this release: - Unicode character tables updated to Unicode 17.0.0. - Zip64 support in Packaging services. - Various bug fixes.
The source is available at https://dl.winehq.org/wine/source/10.x/wine-10.15.tar.xz
Binary packages for various distributions will be available from the respective [download sites][1].
You will find documentation [here][2].
Wine is available thanks to the work of many people. See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download [2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation [3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-10.15/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.15 (total 16):
- #51345 Regression: Visual Studio 2005 "package load failure" - #56278 wayland: dropdowns is rendered as toplevel - #57192 X11DRV_SetCursorPos breaks when xinput "Coordinate Transformation Matrix" is customized - #57444 Multiple games crashes with new wow64 ("pop gs" behaves differently in 64bit compatibility mode) (Exertus darkness, Claw, Bloodrayne Demo) - #57478 Sims 2 black-screen when running with Nvidia 470.256.02 and dxvk 1.10.3 - #57912 cmd: not every ( is a command grouping - #57913 cmd: echo(abc is misparsed - #58027 trivial use of Win32 GNU make fails - #58335 Wine can fail if avx is not available - #58503 Resource leak in wayland_pointer_set_cursor_shape can cause mouse cursor to dissappear after exhausting gdi handles - #58513 Wine 10.9 completely broke (LGA775 Core2Quad) - #58585 unnamed keymap layout leads to null pointer dereference in find_xkb_layout_variant - #58614 wine cmd prints "::" style comments - #58619 Steam fails to launch - #58635 CapCut crashes upon launch, needs unimplemented function IPHLPAPI.DLL.SetPerTcp6ConnectionEStats - #58636 CapCut installer fails: CreateFileW with FILE_ATTRIBUTE_DIRECTORY | FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_POSIX_SEMANTICS should create a directory instesd of a file.
### Changes since 10.14: ``` Alex Henrie (1): wineboot: Fix a memory leak in create_computer_name_keys.
Alexandre Julliard (15): faudio: Import upstream release 25.09. png: Import upstream release 1.6.50. tools: Upgrade the config.guess/config.sub scripts. makedep: Build tool names once at startup. ntdll: Swap the mxcsr register value between PE and Unix. gitlab: Merge the platform docker files back into a single file. gitlab: Install the conflicting i386 gstreamer packages manually. ntdll: Save mxcsr explicitly in the xsavec code path. maintainers: List gitlab usernames. gitlab: Add CI job to trigger winehq-bot processing. ntdll: Move some LDT definitions to the private header. ntdll: Add a helper to update the LDT copy. ntdll: Add helpers to build some specific LDT entries. ntdll: Always use 32-bit LDT base addresses. nls: Update character tables to Unicode 17.0.0.
Alexandros Frantzis (1): winewayland: Fix GDI object leak.
Alfred Agrell (1): preloader: Make thread_ldt reference position independent.
Alistair Leslie-Hughes (2): winmm: Always call MCI_UnmapMsgAtoW in mciSendCommandA. winmm: MCI_MapMsgAtoW return error code directly instead of a tri-value.
Bartosz Kosiorek (1): gdi32: From Windows 2000 FixBrushOrgEx() is a NOP.
Bernhard Übelacker (1): winedbg: Reserve more memory for symbol value (ASan).
Billy Laws (2): ntdll/tests: Add THREAD_CREATE_FLAGS_SKIP_THREAD_ATTACH test. ntdll: Support THREAD_CREATE_FLAGS_SKIP_THREAD_ATTACH flag.
Brendan Shanks (4): crypt32: Avoid syscall fault in process_detach() if GnuTLS failed to load. secur32: Avoid syscall fault in process_detach() if GnuTLS failed to load. ntdll: Fix crash in check_invalid_gsbase() on macOS. dbghelp: Don't try to load 64-bit ELF/Mach-O debug info in a Wow64 process.
Carlo Bramini (1): winmm: WaveOutGetID: Return correct id for WAVE_MAPPER.
Christian Tinauer (1): crypt32: Accept PKCS12_ALWAYS_CNG_KSP flag and fall back to standard import.
Connor McAdams (12): d3dx10/tests: Add more DDS file DXGI format mapping tests. d3dx10/tests: Add more DDS file header handling tests. d3dx10: Add support for parsing DXT10 DDS headers to shared code. d3dx10: Only validate header size for DDS files in d3dx10. d3dx10: Add support for DXGI formats in d3dx_helpers. d3dx10: Exclusively use shared code for parsing DDS files in get_image_info(). d3dx10: Add support for d3dx10+ image file formats in shared code. d3dx10: Exclusively use shared code for parsing all files in get_image_info(). d3dx11_42: Don't share source with d3dx11_43. d3dx11/tests: Add a helper function for checking image info structure values. d3dx11/tests: Import more image info tests from d3dx10. d3dx11: Implement D3DX11GetImageInfoFromMemory() using shared code.
Dmitry Timoshkov (1): gdiplus: Manually blend to white background if the device doesn't support alpha blending.
Elizabeth Figura (7): ntdll: Add some traces to synchronization methods. ntdll: Add stub functions for in-process synchronization. ntdll: Retrieve and cache an ntsync device on process init. server: Create inproc sync events for message queues. server: Add a request to retrieve the inproc sync fds. ntdll: Check inproc sync handle access rights on wait. quartz/tests: Fix a failing test in test_video_window_owner().
Eric Pouech (14): cmd/tests: Add tests about opening/closing parenthesis. cmd: Don't create binary node with NULL RHS. cmd: Simplify builtin ECHO implementation. cmd: Fix handling of '(' in echo commands. cmd: Fix unmatched closing parenthesis handling. cmd/tests: Add more tests about ERASE builtin command. cmd: Fix return code for ERASE builtin command. cmd/tests: Add tests about (not) echoing labels. cmd: Don't display labels when echo mode is ON. cmd: Simplify setting console colors. cmd: Reuse exiting execution related helpers in wmain(). cmd: Finish moving command line handling in dedicated helpers. cmd: cmd /c or /k shall handle ctrl-c events properly. cmd: No longer reformat output according to console width.
Gabriel Ivăncescu (13): mshtml: Implement DOMParser constructor and instance object. mshtml: Move document dispex info initialization to create_document_node. mshtml: Use Gecko's responseXML to create the XML document in IE10 and up. mshtml: Fallback to text/xml for unknown content types ending with +xml in get_mimeType. mshtml: Implement anchors prop for XML documents. mshtml: Implement DOMParser's parseFromString. mshtml: Use actual prop name after looking it up case insensitively on window. mshtml: Set non-HTML elements' prototype to ElementPrototype. mshtml: Expose toJSON only in IE9+ modes. mshtml: Don't expose toString from Performance* objects' prototypes in IE9+ modes. mshtml: Implement toJSON() for PerformanceTiming. mshtml: Implement toJSON() for PerformanceNavigation. mshtml: Implement toJSON() for Performance.
Gerald Pfeifer (1): ntdll: Fix the build of check_invalid_gsbase() on FreeBSD.
Hans Leidekker (15): include: Comment references to undefined member interfaces. include: Define IContentTypeProvider, IInputStream and IInputStreamReference. include: Define IUser. include: Define IAcceleratorKeyEventArgs and ICoreAcceleratorKeys. include: Define IKeyCredential and related types. include: Define IRfcommServiceId. msi: Allow pre-2.0 assemblies to be installed using 2.0 fusion. include: Define more USB interfaces. include: Define IImageDisplayProperties and IVideoDisplayProperties. include: Define IMediaEncodingProperties and IAudioEncodingPropertiesWithFormatUserData. include: Define IHolographicCamera and related types. include: Define IOnlineIdServiceTicket and IOnlineIdSystemIdentity. include: Add missing parameterized interface declarations. widl: Require member interfaces to be defined. widl: Support additional deprecated declarations.
Haoyang Chen (1): ntdll: Fix a buffer overflow in wcsncpy.
Jacek Caban (8): opengl32/tests: Add memory mapping tests. opengl32: Simplify wow64 memory mapping error handling. opengl32: Implement wrap_wglCreateContext on top of wrap_wglCreateContextAttribsARB. opengl32: Factor out free_context. opengl32: Introduce a wow64 buffer wrapper. opengl32: Move copy buffer allocation to Unix lib. opengl32: Use generated PE thunks for memory mapping functions. opengl32: Use generated PE thunks for memory unmapping functions.
Joe Souza (1): cmd: Treat COPY from CON or CON: as ASCII operation.
Kevin Puetz (1): oleaut32: Fix UDT record block leak in VariantClear().
Louis Lenders (2): iphlpapi: Add stub for SetPerTcp6ConnectionEStats. iphlpapi: Add stub for GetPerTcp6ConnectionEStats.
Matteo Bruni (7): hidclass: Set Status for pending IRPs of removed devices to STATUS_DEVICE_NOT_CONNECTED. hidclass: Fix check for early IRP cancellation. nsiproxy: Fix check for early IRP cancellation. dinput/tests: Fix check for early IRP cancellation. http.sys: Fix check for early IRP cancellation. winetest: Print Windows revision (UBR). d3dx10_33/tests: Enable tests.
Mohamad Al-Jaf (12): include: Add windows.media.playback.idl. windows.media.playback.backgroundmediaplayer: Add stub dll. windows.media.playback.backgroundmediaplayer: Add IBackgroundMediaPlayerStatics stub. windows.media.playback.mediaplayer: Implement IActivationFactory::ActivateInstance(). windows.media.mediacontrol: Stub ISystemMediaTransportControls::add/remove_ButtonPressed(). windows.media.mediacontrol: Stub ISystemMediaTransportControlsDisplayUpdater::ClearAll(). windows.media.mediacontrol: Implement ISystemMediaTransportControls::put/get_IsStopEnabled(). windows.media.mediacontrol: Stub ISystemMediaTransportControlsDisplayUpdater::put/get_Thumbnail(). windows.media.playback.backgroundmediaplayer: Implement IBackgroundMediaPlayerStatics::get_Current(). include: Add IMediaPlayer2 definition. windows.media.playback.mediaplayer: Add IMediaPlayer2 stub. windows.media.playback.mediaplayer: Implement IMediaPlayer2::get_SystemMediaTransportControls().
Nikolay Sivov (17): opcservices/tests: Use wide-char strings. opcservices/tests: Remove Vista workarounds. opcservices/tests: Use stricter return values checks. opcservices: Fix MoveNext() at the collection end. opcservices/tests: Add more tests for MovePrevious(). opcservice: Fix iteration with MovePrevious(). opcservices/tests: Use message context in some tests. opcservices: Make it clear which structures are specific to zip32. opcservices: Use 64-bit file sizes. opcservices: Add support for writing Zip64 packages. opcservices: Improve error handling when writing archives. opcservices: Use stdint types for the file header. opcservices: Set compression method according to part's compression options. opcservices: Use explicit field for the part name. combase/tests: Suppress trace messages from the test dll. opcservices: Remove separate part name allocation. vccorlib: Fix out of bounds access in debug helper (Coverity).
Patrick Hibbs (2): mmdevapi: Set DEVPKEY_Device_Driver during MMDevice_Create(). winecfg: Fix audio tab by fetching the default device's audio driver.
Paul Gofman (15): ntdll: Zero aligned size in initialize_block(). winevulkan: Handle NULL buffer pointer in vkFreeCommandBuffers(). nsiproxy.sys: Use a separate critical section to sync icmp echo IRP cancel. iphlpapi: Use IOCP callback for echo async completion. win32u: Bump AMD internal driver version. kernel32/tests: Add tests for UnhandledExceptionFilter(). kernelbase: Avoid recursive top exception filter invocation for nested exceptions. kernelbase: Return EXCEPTION_CONTINUE_SEARCH from UnhandledExceptionFilter() for nested exceptions. dbghelp: Use GetCurrentProcess() special handle in EnumerateLoadedModulesW64() if possible. wbemprox: Fix CIM_UINT16 handling in to_safearray(). wbemprox: Add MSFT_PhysicalDisk table. wbemprox: Return an error from class_object_Next() for non-zero flags. wbemprox: Enumerate system properties in class_object_Next(). iphlpapi: Fix ipforward_row_cmp(). iphlpapi: Fix udp_row_cmp().
Rémi Bernon (90): dataexchange: Register runtimeclasses explicitly. geolocation: Register runtimeclasses explicitly. graphicscapture: Register runtimeclasses explicitly. hvsimanagementapi: Register runtimeclasses explicitly. iertutil: Register runtimeclasses explicitly. threadpoolwinrt: Register runtimeclasses explicitly. windows.devices.bluetooth: Register runtimeclasses explicitly. windows.devices.enumeration: Register runtimeclasses explicitly. windows.devices.usb: Register runtimeclasses explicitly. windows.gaming.input: Register runtimeclasses explicitly. win32u: Pass struct vulkan_physical_device pointer to drivers. winevulkan: Simplify VkDefine and typedefs generation. winevulkan: Generate structs and pointers for wayland platform. winevulkan: Generate structs and pointers for macos platform. winevulkan: Generate structs and pointers for xlib platform. winevulkan: Simplify function pointer generation. winevulkan: Simplify struct generation ordering. windows.gaming.ui.gamebar: Register runtimeclasses explicitly. windows.media.devices: Register runtimeclasses explicitly. windows.media.mediacontrol: Register runtimeclasses explicitly. windows.media.speech: Register runtimeclasses explicitly. windows.media: Register runtimeclasses explicitly. windows.networking.connectivity: Register runtimeclasses explicitly. windows.networking.hostname: Register runtimeclasses explicitly. windows.perception.stub: Register runtimeclasses explicitly. windows.security.authentication.onlineid: Register runtimeclasses explicitly. windows.security.credentials.ui.userconsentverifier: Register runtimeclasses explicitly. windows.web: Register runtimeclasses explicitly. include: Remove now unnecessary DO_NO_IMPORTS ifdefs. winevulkan: Move physical_device memory properties to vulkan_driver.h. winevulkan: Move extensions to struct vulkan_physical_device. winevulkan: Get rid of struct wine_vk_phys_dev. winevulkan: Move physical device pointers to struct vulkan_instance. win32u: Move device memory object wrapper from winevulkan. win32u: Move external host memory allocation to a separate helper. include: Add declarations for some d3dkmt functions. win32u: Stub NtGdiDdDDICheckOcclusion syscall. win32u/tests: Move d3dkmt tests from gdi32. win32u/tests: Check D3DKMT local handle allocation. win32u: Implement d3dkmt local handle allocation. winevulkan: Order the win32 structs as other structs. winevulkan: Simplify struct conversion enumeration. winevulkan: Build the struct extension list lazily. winevulkan: Enumerate struct extensions with the registry structs. winevulkan: Avoid converting unexposed extensions structs. winevulkan: Generate structs for external memory fds. winevulkan: Force copy some memory, buffer and image struct chains. win32u: Strip unsupported structs from vkAllocateMemory chain. win32u: Strip unsupported structs from vkCreateBuffer chain. win32u: Strip unsupported structs from vkCreateImage chain. win32u: Hook VK_KHR_external_memory_win32 functions. winevulkan: Remove leftover external image functions moved to win32u. win32u: Pass memory type flags to allocate_external_host_memory. win32u: Fix missing NULL initialization of NtAllocateVirtualMemory parameter. wintypes/tests: Check IAgileObject interface on map objects. wintypes: Introduce a generic IMap stub implementation. wintypes: Implement a generic IMap<HSTRING, IInspectable>. wintypes: Introduce a locked IMap<HSTRING, IInspectable> implementation. winevulkan: Force copying wrapped handle arrays. winevulkan: Force copying the VkSubmitInfo(2) struct chains. winevulkan: Move command buffer wrapper to vulkan_driver.h. win32u: Hook vkQueueSubmit and vkQueueSubmit2 functions. win32u: Hook VK_KHR_win32_keyed_mutex related functions. win32u: Hook VK_KHR_external_semaphore_win32 related functions. win32u: Hook VK_KHR_external_fence_win32 related functions. winebus: Match match gamepad dpad buttons with XUSB / GIP. win32u: Stub NtGdiDdDDIOpenNtHandleFromName. wow64win: Initialize output NtGdiDdDDI* parameters too. wow64win: Fix NtGdiDdDDICreateAllocation* output conversion. win32u/tests: Test D3DKMT synchronization object creation. win32u/tests: Test D3DKMT keyed mutex object creation. win32u/tests: Test D3DKMT allocation object creation. win32u/tests: Test D3DKMT objects NT handle sharing. winevulkan: Simplify device enabled extension conversion. winevulkan: Check surface_maintenance1 before using swapchain_maintenance1. win32u: Assume the VkPresentInfoKHR struct is copied in the thunks. winevulkan: Force copy of the VkSemaphoreSubmitInfo struct chain. win32u: Wrap vulkan semaphore objects. win32u: Wrap vulkan fence objects. d3d8/tests: Flag some tests as todo_wine. d3d9/tests: Flag some tests as todo_wine. opengl32/tests: Test that window back buffers are shared. include: Use the client pointer in debugstr_opengl_drawable. win32u: Move memory DC pbuffer handling out of context_sync_drawables. win32u: Use context->draw directly when flushing context. win32u: Swap the last window drawable if there's no context. win32u: Introduce an context_exchange_drawables helper. win32u: Rename window opengl drawable to current_drawable. win32u: Keep a separate pointer for unused opengl drawable. win32u: Don't store the window OpenGL drawables on the DCs.
Santino Mazza (2): dinput: Set per monitor aware DPI awareness in the worker thread. win32u: Map raw coordinates to virtual screen in low-level hooks.
Spencer Wallace (1): msxml3: Correct looping of Document Element properties.
Tim Clem (1): dxcore: Use a static structure for the adapter factory.
Tyson Whitehead (2): winebus: Unspecified condition blocks are full strength. joy.cpl: Play condition effects on indicated axis too.
Vibhav Pant (15): opcservices/tests: Add tests for ReadPackageFromStream. opcservices/tests: Add some more tests for MoveNext(). windows.applicationmodel/tests: Add tests for exposing inproc WinRT classes through the manifest. opcservices: Mark entries according to compression mode. wintypes: Make a copy of the passed string in IPropertyValueStatics::CreateString. combase: Add stubs for HSTRING_User{Size, Marshal, Unmarshal, Free}. combase/tests: Add tests for HSTRING marshaling methods. combase: Implement HSTRING_UserSize. combase: Implement HSTRING_UserMarshal. combase: Implement HSTRING_User{Unmarshal, Free}. combase/tests: Add RoGetAgileReference tests with agile objects. combase: Don't marshal objects that implement IAgileObject in RoGetAgileReference. wintypes/tests: Add tests for PropertySet::{Insert, Lookup, HasKey}. wintypes/tests: Add tests for IMapView. wintypes: Introduce a serial to track IMap state changes.
Yuxuan Shui (2): opcservices: IOpcPart::GetContentType takes LPWSTR, not BSTR. winegstreamer: Free stream buffers before wg_parser_disconnect.
Zhiyi Zhang (4): gdi32: Use the maximum number of colours when biClrUsed is zero. gdi32/tests: Test recording StretchDIBits() for bitmaps with zero biClrUsed field in EMFs. gdi32/tests: Test recording SetDIBitsToDevice() for bitmaps with zero biClrUsed field in EMFs. Revert "wineps: Use the correct colours when a monochrome bitmap without a colour table is the source.".
Ziqing Hui (2): mf/tests: Test GetOutputStatus for video processor. winegstreamer: Add semi-stub implementation for video_processor_GetOutputStatus.
Zowie van Dillen (2): opengl32/tests: Add 16-bit bitmap rendering tests. winex11: Check pbuffer bit instead of pixmap bit for bitmap rendering. ```