The Wine development release 2.7 is now available.
What's new in this release (see below for details): - TCP and UDP connection support in WebServices. - Various shader improvements for Direct3D 11. - Improved support for high DPI settings. - Partial reimplementation of the GLU library. - Support for recent versions of OSMesa. - Window management improvements on macOS. - Various bug fixes.
The source is available from the following locations:
http://dl.winehq.org/wine/source/2.x/wine-2.7.tar.xz http://mirrors.ibiblio.org/wine/source/2.x/wine-2.7.tar.xz
Binary packages for various distributions will be available from:
http://www.winehq.org/download
You will find documentation on http://www.winehq.org/documentation
You can also get the current source directly from the git repository. Check http://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 2.7 (total 31):
12311 Corman Lisp requires implementations for richedit stubs 14606 TreeView + right click doesn't work the way it does in native windows 25857 Multiple games (Stronghold 2, Need for Speed: Carbon demo, Purge) fail to draw correctly because of ID3DXEffectImpl_*Pass calls 30764 regedit: a key created from right-click context menu is in incorrect position 32319 Direct3D output in SNES9x is blank 32426 TreeView of QvodSetupPlus5 unexpectedly draw a piece of blank area when clicking on a checkbox 35563 Custom game development library expects non-zero value for ProcessVmCounters info class member 'WorkingSetSize' 37404 A right click on a registry key does not select it 40007 Dirt 3 requires d3d11_immediate_context_CSSetShaderResources 40219 Multiple applications need msvcr120.dll.?_Id@_CurrentScheduler@details@Concurrency@@SAIXZ (Kontakt 5 Player, Serato DJ 1.9.2, Cisco Jabber 11.6, Darkest Dungeon, Sonic Pi 2) 40689 Photoshop CS6: some dialogs have black background 41029 DeSmuME 0.9.8 crashes whenever "control config" is clicked 42144 Mass Lag when buying in store in rabi-ribi game 42339 Horrible speed of Quantum of solace demo starting animations 42347 The Witcher 3 starting menu is distorted [radeonsi] 42462 Memory leak in several places in FFXIV 42651 ViStart: fails to install, needs ntoskrnl.exe.IoReportResourceForDetection 42733 Unable to find an entry point named 'RegSaveKeyEx' in DLL 'advapi32.dll' (SQL Server) 42798 MsiGetPatchInfoEx returns incorrect values for UNINSTALLABLE, PATCHSTATE properties 42808 msi: parent feature level is not propagated recursively on a whole subfeatures hierarchy 42824 Nox (GOG) has constant menu flickering 42825 Propellerhead Reason 5 drawn mostly in black and white 42829 Transcendence (& many other D3D games) only show black screen (shaders) 42834 Steuer-Spar-Erklärung 2017 crashes with critical error 42840 Unbox Game black screen in-game 42841 Tree of Savior: Missing function concrt140.dll.?_GetNumberOfVirtualProcessors@_CurrentScheduler@details@Concurrency@@SAIXZ 42849 The Technomancer: Fails to create valid glsl 42850 The Technomancer: Requires MFCreateAttributes implementation 42871 Propellerhead Reason 5 garbled GUI elements 42876 iTunes needs function msvcp140.dll._Lock_shared_ptr_spin_lock 42884 Star Wars: Knights of the Old Republic 1 & 2 crash after the intro movie
----------------------------------------------------------------
Changes since 2.6:
Akihiro Sagawa (6): include: Add CALG_ECDH_EPHEM family. secur32: Return correct key exchange algorithm value. secur32: 3DES has a different ALG_ID. secur32/tests: Add tests with SECPKG_ATTR_KEY_INFO. secur32: Add support for SECPKG_ATTR_KEY_INFO. secur32: Return PRF algorithm value when using GCM.
Alexandre Julliard (14): glu32: Import projection functions from Mesa. glu32: Import quadric functions from Mesa. glu32: Import mipmap functions from Mesa. glu32: Import tessellation functions from Mesa. libwine: Set a non-null entry for the GDT selector to make sure it's properly reserved. libwine: Clear the %fs register we got from Android to force allocating a new one. glu32: Remove ARB_texture_cube_map extension ifdef since it's not defined in wgl.h. ntdll: Also store dynamic loader information in the PEB on Linux. dbghelp: Use the main module load address from the PEB. preloader: Add a debug option to dump memory maps. preloader: Use the SYS_mmap2 system call instead of the old SYS_mmap one. preloader: Fix symbol lookup for dynamic libraries. configure: Re-enable the preloader on Android. configure: Add a separate variable for wineloader-specific flags.
Alistair Leslie-Hughes (4): oleaut32: Remove redundant call to VariantClear(). include/mfreadwrite.idl: Add MF_SOURCE_READER_* enum values. mfplat: Implement MFCreateAttributes. odbccp32: Handle ODBC_CONFIG_DRIVER request in SQLConfigDriver/W.
Andrew Eikum (1): xaudio2: Try to increase OpenAL source limit.
Andrey Gusev (1): po: Update Ukrainian translation.
Aurimas Fišeras (1): po: Update Lithuanian translation.
Austin English (2): ntoskrnl.exe: Add IoReportResourceForDetection stub. user32: Add GetAutoRotationState/GetDisplayAutoRotationPreferences stubs.
Christopher Berner (1): wined3d: Add Nvidia TitanX (Pascal).
Daniel Lehman (5): msvcp90: Update exception RTTI data to reflect it's part of std namespace. msvcrt: Add __ExceptionPtrAssign. msvcrt: Handle synchronous flag for x64 C++ exceptions. msvcrt: Stop at trylevel for ControlPc on target frame for non-consolidate unwinds. server: Fix copy & paste for number of subkeys.
Gerald Pfeifer (1): wineps.drv: Add missing #include <stdarg.h>.
Hans Leidekker (24): msi: Apply feature selection to the whole feature subtree. msi: Properly handle DWORD registry values in MsiGetPatchInfoEx. msi: Set patch property Uninstallable. webservices: Reuse the message read buffer. webservices: Implement WsOpenListener and WsCloseListener. webservices: Implement WsCreateChannelForListener. webservices: Implement WsResetListener. webservices: Add support for outgoing TCP connections. webservices: Add support for outgoing UDP connections. webservices: Add support for incoming TCP connections. webservices: Add support for incoming UDP connections. webservices: Read message headers in read_envelope_start. webservices/tests: Add tests. webservices: Implement WsReadMessageStart. webservices: Implement WsReadMessageEnd. webservices: Implement WsWriteMessageStart. webservices: Implement WsWriteMessageEnd. webservices/tests: Add tests. webservices: Support appending text with multiple WsWriteText calls. webservices: Implement WsWriteQualifiedName. webservices: Implement WsReadQualifiedName. webservices: Implement WsWriteBytes. webservices: Implement WsWriteChars. webservices: Implement WsWriteCharsUtf8.
Henri Verbeet (35): usp10: Validate positioning record sequence indices in GPOS_apply_ChainContextPos(). usp10: Validate substition record sequence indices in GSUB_apply_ChainContextSubst(). usp10: Range check glyph counts in GPOS_apply_ContextPos(). usp10: Simplify the "pr_2" assignment in GPOS_apply_ContextPos(). usp10: Validate positioning record sequence indices in GPOS_apply_ContextPos(). wined3d: Use the CPU blitter for clearing textures that are current in the map binding. wined3d: Avoid unmapping the module while the CS thread is still running. wined3d: Use wined3d_texture_get_memory() in surface_cpu_blt(). wined3d: Use wined3d_texture_get_memory() in surface_cpu_blt_colour_fill(). wined3d: Introduce a context function to bind a buffer object. wined3d: Introduce context functions to map/unmap a wined3d_bo_address. wined3d: Use context_map_bo_address() in wined3d_buffer_copy(). usp10: Range check glyph counts in GSUB_apply_ContextSubst(). usp10: Simplify the "sr_2" assignments in GSUB_apply_ContextSubst(). usp10: Validate substition record sequence indices in GSUB_apply_ContextSubst(). wined3d: Use vector types in wined3d_format_convert_from_float(). wined3d: Use doubles to convert 24 and 32 bpc formats in wined3d_format_convert_from_float(). wined3d: Get rid of the "Multisampling" setting. wined3d: Avoid touching the output value on failure in get_config_key_dword();. ddraw/tests: Introduce a helper function to create windows. ddraw/tests: Add a test for the alpha and z-buffer blit flags. ddraw: Ignore unsupported blit flags. wined3d: Make blits asynchronous by default. d3dx9/tests: Cleanup expect_mat. d3dx9/tests: Cleanup expect_color. d3dx9/tests: Cleanup expect_plane. d3dx9/tests: Avoid using expect_vec4 for comparing quaternions. d3dx9/tests: Cleanup expect_vec. d3dx9/tests: Cleanup expect_vec3. d3dx9/tests: Cleanup expect_vec4. d3dx9/tests: Get rid of compare_rotation. d3dx9/tests: Get rid of compare_scale. d3dx9/tests: Get rid of compare_translation. d3dx9/tests: Cleanup compare_vectors. d3dx9/tests: Get rid of compare_planes.
Hugh McMaster (8): regedit: Call TrackPopupMenu() from WM_CONTEXTMENU. regedit: Select the targeted treeview item on right mouse click. regedit: Only show the context menu if the mouse is over a treeitem. reg/tests: Add some more import tests. regedit/tests: Add some more import tests. regedit: Simplify parseKeyName. regedit: Validate REG_SZ import data before processing it any further. regedit: Re-implement processSetValue().
Huw D. M. Davies (21): oleaut32: Use VariantInit() rather than open coding it. shell32: Avoid leaking icon handles. shell32: Use the imagelist to determine the icon size. shell32: Use a MENUEX resource for the context menu. shell32/tests: Add a test for the size of the icon returned by ExtractIcons(). shell32: Don't copy the imagelist in SHGetImageList(). shell32: Take a reference on the imagelist returned with SHGFI_SYSICONINDEX. shell32/tests: Add tests for the size of the icon returned by SHGetFileInfo(). riched20: Only write out non-default pattern colours. user32: Fix a potential buffer overflow. explorer: Don't alter the shell imagelist. shell32: Remove an extraneous '@'. comdlg32: Don't ask for icon information since it's unused. explorerframe: Release the returned imagelist. shell32: Release the returned imagelist. regedit: Use the system metrics to retrieve the treeview icon sizes. winex11: Try to read the dpi from the user key first. winemac: Try to read the dpi from the user key first. gdi32: Try to read the dpi from the user key first. winecfg: Try to read the dpi from the user key first. user32/tests: Try to read the dpi from the user key first.
Jacek Caban (31): mshtml.idl: Added HTMLLabelElement coclass declaration. mshtml.idl: Added HTMLSelectElement coclass declaration. mshtml.idl: Added HTMLInputElement coclass declaration. mshtml.idl: Added HTMLTextAreaElement coclass declaration. mshtml.idl: Added HTMLButtonElement coclass declaration. mshtml.idl: Added HTMLHtmlElement coclass declaration. mshtml.idl: Added HTMLHeadElement coclass declaration. mshtml.idl: Added HTMLTitleElement coclass declaration. mshtml.idl: Added HTMLMetaElement coclass declaration. mshtml.idl: Added HTMLWindow2 coclass declaration. mshtml.idl: Added HTMLEmbed coclass declaration. mshtml.idl: Added HTMLTableRow coclass declaration. mshtml.idl: Added HTMLTableCell coclass declaration. mshtml.idl: Added HTMLScriptElement coclass declaration. mshtml.idl: Added HTMLObjectElement coclass declaration. mshtml.idl: Added HTMLFrameElement coclass declaration. mshtml.idl: Added HTMLIFrame coclass declaration. mshtml.idl: Added HTMLStyleElement coclass declaration. mshtml: Replace get_htmldoc_classinfo with more generic helper. mshtml: Added IProvideMultipleTypeInfo stub implementation for HTMLDocument object. mshtml: Added IProvideMultipleTypeInfo implementation for HTMLWindow object. mshtml: Added IProvideMultipleTypeInfo implementation for HTMLElement object. mshtml.idl: Added HTMLAreaElement coclass declaration. mshtml/tests: Added area element tests. mshtml: Added GetClassInfo implementation for HTMLElement objects. mshtml: Added IProvideClassInfo2 implementation for HTMLXMLHttpRequest object. mshtml/tests: Added more IProvideClassInfo tests. server: Use common get_fd_type implementation for both pipe end implementations. mshtml: Added edge compatibility mode support. mshtml: Don't emulate legacy style filters in compatibility mode >= IE10. secur32: Fixed compilation with prediluvian gnutls.
Jactry Zeng (1): po: Update Simplified Chinese translation.
Józef Kucia (71): wined3d: Prefer GLSL 1.50 for all shaders. wined3d: Load all layers for render target views. wined3d: Prepare all layers for render target views. wined3d: Validate all layers locations for render target views. wined3d: Invalidate all layers locations for render target views. wined3d: Formalize requirements for layout qualifiers. wined3d: Avoid multiple layout qualifiers for uniform blocks. wined3d: Use layout binding qualifiers with legacy contexts. wined3d: Introduce wined3d_device_set_hull_shader(). d3d11: Implement d3d11_immediate_context_HSSetShader(). wined3d: Introduce wined3d_device_set_domain_shader(). d3d11: Implement d3d11_immediate_context_DSSetShader(). wined3d: Introduce wined3d_device_get_hull_shader(). d3d11: Implement d3d11_immediate_context_HSGetShader(). wined3d: Introduce wined3d_device_get_domain_shader(). d3d11: Implement d3d11_immediate_context_DSGetShader(). wined3d: Use correct layer count for 3D textures. wined3d: Recognize SM5 vGSInstanceID register. wined3d: Recognize SM5 dcl_gsinstances opcode. wined3d: Implement geometry shader instancing. wined3d: Prefer core geometry shaders. wined3d: Drop support for ARB_geometry_shader4. d3d11/tests: Add test for layered rendering. d3d10core/tests: Add test for layered rendering. d3d10core/tests: Allow passing any interface to get_refcount(). d3d11/tests: Allow passing any interface to get_refcount(). d3d10core/tests: Check device refcount after CreateInputLayout(). d3d11/tests: Check device refcount after CreateInputLayout(). d3d11: Implement d3d{10, 11}_input_layout_GetDevice(). wined3d: Always use core profile GLSL versions. wined3d: Introduce wined3d_device_get_cs_uav(). d3d11: Implement d3d11_immediate_context_CSGetUnorderedAccessViews(). wined3d: Introduce wined3d_device_get_unordered_access_view(). wined3d: Add ARB_tessellation_shader extension. wined3d: Introduce wined3d_device_set_hs_cb(). wined3d: Introduce wined3d_device_set_ds_cb(). d3d11: Implement d3d11_immediate_context_HSSetConstantBuffers(). d3d11: Implement d3d11_immediate_context_DSSetConstantBuffers(). wined3d: Introduce wined3d_device_set_hs_resource_view(). d3d11: Implement d3d11_immediate_context_HSSetShaderResources(). wined3d: Introduce wined3d_device_set_ds_resource_view(). d3d11: Implement d3d11_immediate_context_DSSetShaderResources(). d3d11/tests: Add test for ID3DDeviceContextState. wined3d: Initialize geometry shader limits when OpenGL 3.2 is supported. wined3d: Introduce wined3d_device_set_hs_sampler(). d3d11: Implement d3d11_immediate_context_HSSetSamplers(). wined3d: Introduce wined3d_device_set_ds_sampler(). d3d11: Implement d3d11_immediate_context_DSSetSamplers(). wined3d: Add parent ops for sampler objects. d3d11: Delay destroying sampler state until it is no longer referenced. d3d11/tests: Add test for state refcounting. d3d11: Fix refcounting for shaders. d3d11/tests: Introduce check_interface() helper. d3d11/tests: Extend test for ID3DDeviceContextState. wined3d: Add parent for rasterizer state objects. d3d11: Delay destroying rasterizer state until it is no longer referenced. d3d11: Get rid of "rasterizer_state" from struct d3d_device. d3d11: Delay destroying depth stencil view until it is no longer referenced. d3d11: Delay destroying render target view until it is no longer referenced. d3d11: Delay destroying shader resource view until it is no longer referenced. d3d11: Delay destroying unordered access view until it is no longer referenced. d3d11/tests: Add more tests for state refcounting. d3d11: Avoid potential double free in d3d11_device_CreateRasterizerState(). d3d11: Avoid potential double free in d3d_texture2d_create(). d3d11: Avoid potential double free in d3d11_device_CreateSamplerState(). dxgi: Fix HMODULE leak in register_d3d10core_layers(). dxgi: Return iface instead of object pointer. wined3d: Introduce wined3d_device_get_hs_cb(). d3d11: Implement d3d11_immediate_context_HSGetConstantBuffers(). wined3d: Introduce wined3d_device_get_ds_cb(). d3d11: Implement d3d11_immediate_context_DSGetConstantBuffers().
Ken Thomases (15): secur32: Return CALG_ECDH_EPHEM as the key exchange algorithm ID for the internal schan_kx_ECDHE_* values. secur32: Add support for the cipher suites using pre-shared keys (PSK) added by the 10.9 SDK. winemac: Invalidate cached hasGLDescendant value unconditionally when the view is hidden or unhidden. winemac: Sync the frame of the Cocoa view for a window's client area while handling a frame-changed event. winemac: Move the window to the front of the z-order in SetFocus if it's the foreground window and not already in the front. winemac: Add a category on NSEvent to simplify checking if the Command key (and only that modifier) is pressed for an event. winemac: Move a window to the front when its Mac title bar is clicked. winemac: When realizing latent child windows, maintain their relative z-order. winemac: Better handle z-ordering windows that are in Cocoa parent-child window relationships. winemac: Defer ordering a window out if it's in the process of entering or exiting Cocoa full-screen mode. winemac: Use the -close method rather than -orderOut: for full-screen windows. winemac: Don't let child (owned) windows be Cocoa primary full-screen windows. winemac: Opt out of macOS 10.12's automatic window tabbing feature. gdiplus: Avoid infinite recursion in flatten_bezier(). secur32: Implement schan_imp_get_key_signature_algorithm() for macOS.
Kim Malmo (2): po: Update Norwegian translation. po: Update Norwegian translation.
Lauri Kenttä (1): po: Update Finnish translation.
Louis Lenders (1): advapi32: Add stubs for RegSaveKeyEx{A,W}.
Michael Müller (5): ntdll: Mark LDR data as initialized. ntdll: Add stub for JobObjectBasicAccountingInformation and JobObjectBasicProcessIdList. kernel32: Add stub for GetPackageFullName. include: Fix an invalid UUID in dxva2api.idl. include/mfidl.idl: Add IMFMediaSession interface and dependencies.
Michael Stefaniuc (14): credui: Use SetRectEmpty() instead of memset(). amstream/tests: Use SetRectEmpty() instead of memset(). user32: Use SetRectEmpty() instead of memset(). avifil32: Use SetRectEmpty() instead of memset(). wineps.drv: Use SetRect/SetRectEmpty instead of open coding them. comctl32/tests: Check the correct last error code. dplayx/tests: Use a void* instead of void** outer IUnknown argument. dmscript/tests: Just use proper IUnknown implementations for aggregation. dsound/tests: Use a void* instead of void** outer IUnknown argument. dswave/tests: Use a void* instead of void** outer IUnknown argument. dmloader: Avoid a crash on a NULL string pointer. dmloader: Cleanup IDirectMusicLoaderImpl_SetSearchDirectory(). dmloader: Return an error for an invalid directory. dmloader/tests: Add some IDirectMusicLoader directory tests.
Nikolay Sivov (32): dwrite: Consistently use common point and rect types. dwrite/tests: Test to show that canWrapLineAfter is not fixed up by disabled wrapping. dwrite/tests: Initial tests for IDWriteInMemoryFontFileLoader. dwrite: Trace QueryInterface fontface calls on failure (Coverity). dwrite/tests: Initial tests for GetGlyphImageFormats(). dwrite: Make CreateFontFaceFromHdc() properly fail on unsupported font format. uxtheme: Create compatible bitmap using target hdc. dwrite: Handle allocation failure when duplicating reference key. dwrite: Added a helper to avoid extra traces from one method calling another. include: Added DB_MODE_* constants. oledb32: Support textual representation of Mode property values. user32: Partially protect WM_SETTEXT handlers from invalid input. scrrun: Added DateLastModified property for IFile. comctl32/tests: Fully initialize message tests data (Coverity). comctl32/pager: Prevent excessive PGN_CALCSIZE notifications during PGM_SETCHILD. comctl32/tests: Trace test name only of failure. dwrite: Partially implement GetGlyphImageFormats(). po: Update Russian translation. uxtheme: Fix buffer bitmap leak. shell32: Fix string leak. dwrite: Look for 'SVG ' table too when checking supported formats. include: Fix IShellFolderView method macros. shell32/ebrowser: Respond to IOleWindow from IExplorerBrowser. dmusic/tests: Use void* instead of void** type value for outer argument. uxtheme: Fix buffer dc origin and clipping. dwrite: Extract supported image formats from 'sbix' table. dwrite: Update overhangs rectangle on alignment changes. po: Update Russian translation. uxtheme/tests: Remove some trace messages. gdiplus/tests: Fix copy/paste error in format tests. gdiplus: Fix generic string formats behavior. gdiplus: Use better naming for line alignment format field.
Olivier F. R. Dierick (1): api-ms-win-core-processthreads-l1-1-0: Add some functions.
Owen Rudge (4): wsdapi: Implement RegisterNotificationSink and UnRegisterNotificationSink. wsdapi/tests: Add tests for Register/UnRegisterNotificationSink. include: Remove typedefs from wsdapi.h, reorder includes. include: Avoid redefining WSDXML typedefs.
Paul Gofman (17): d3dx9/tests: Add tests for cross effect handles usage. d3dx9: Use magic number instead of parameter tables for parameter handles. d3dx9: Compare parameter definition instead of parameter handle in IsParameterUsed(). d3dx9/tests: Add test for shared effect parameters. d3dx9/tests: Add more tests for IsParameterUsed() function. d3dx9: Reference top level parameter instead of dirty flag. d3dx9: Fix IsParameterUsed() for the case when state references child parameter. d3dx9: Factor out free_parameter_data() function. d3dx9: Reference effect pool implementation in d3dx9_base_effect structure. d3dx9/tests: Add test for releasing pool before effects referencing it. d3dx9: Support parameters sharing in effect. d3dx9: Fix register index for the scalar op case in parse_preshader(). d3dx9/tests: Fix test blob data corruption in test_preshader_op(). d3dx9: Return an error for out of bounds input register in parse_preshader(). d3dx9: Set reg_component_count to 4 for immediate constants. d3dx9: Remove unused parameter 'effect' from d3dx9_get_param_value_ptr(). d3dx9: Downgrade unknown DWORD FIXMEs() to WARN() messages.
Piotr Caban (9): msvcr120: Add wctype implementation. server: Update all children upon SetLayeredWindowAttributes. user32: Switch to normal window drawing on SetLayeredWindowAttributes call. user32/tests: Add layered window child painting test when WS_CLIPCHILDREN flag is specified. gdi32: Allocate smaller buffer in delete_external_font_keys helper. gdi32: Only delete unmodified font keys in delete_external_font_keys. dwrite: Don't crash on uninitialized cached and factory fields in dwritefontface_Release. dwrite: Don't fail in opentype_get_font_strings_from_id if any of font strings got decoded. dwrite: Fix EUDC font collection use after free issue.
Sebastian Lackner (5): wined3d: Release resources on error in wined3d_cs_exec_blt_sub_resource. wined3d: Fix double free in geometry_shader_init. ntoskrnl.exe: Do not use P* types in IoReportResourceUsage. vcomp: Handle begin == NULL in _vcomp_for_static_init. configure: Support for recent versions of OSMesa.
Stefan Dösinger (7): d3d9/tests: Accept another stale value in test_vshader_input. d3d9/tests: Accept WARP uninitialized texcoord alpha result on real cards. ddraw/tests: Don't use DDBLT_COLORFILL in test_flip. ddraw/tests: Prefer 16 bit depth buffers in ddraw1 and 2. d3d9/tests: Accept alpha channel differences in shadow_test. d3d8/tests: Accept alpha channel differences in shadow_test. d3d9/tests: WARP returns a random color in uninitialized color attributes.
Zebediah Figura (1): user32: Move internal message from EnableWindow to WIN_SetStyle().
-- Alexandre Julliard julliard@winehq.org