1 The Wine development release 4.7 is now available.
3 What's new in this release (see below for details):
4 - Support for builtin libraries in PE format even on Unix.
5 - Updated version of the Mono engine.
6 - More implementation of the Debug Engine DLL.
7 - Support for the Command Link standard control.
8 - Improved Edit control sizing in CJK locales.
11 The source is available from the following locations:
13 https://dl.winehq.org/wine/source/4.x/wine-4.7.tar.xz
14 http://mirrors.ibiblio.org/wine/source/4.x/wine-4.7.tar.xz
16 Binary packages for various distributions will be available from:
18 https://www.winehq.org/download
20 You will find documentation on https://www.winehq.org/documentation
22 You can also get the current source directly from the git
23 repository. Check https://www.winehq.org/git for details.
25 Wine is available thanks to the work of many people. See the file
26 AUTHORS in the distribution for the complete list.
28 ----------------------------------------------------------------
30 Bugs fixed in 4.7 (total 34):
32 11985 Status bar of D3D9 app window disappearing
33 15934 Can't see Worms 2 intro films as they play (mciavi32 missing support to MCI_MCIAVI_PLAY_FULLSCREEN)
34 15980 Multiple applications expect security descriptors present in process object/token (Rhapsody 2, Rockstar Games Social Club v1.x)
35 29921 Microsoft Visual Studio 2005, 2008, 2010 Express installer shows highlighted items incorrectly
36 41212 Alt-Tab in full-screen on resolutions other than native causes a crash
37 42518 WinVerifyTrust fails for signatures using SHA256 digest
38 44656 Multiple applications need ntdll.NtSuspendProcess and ntdll.NtResumeProcess implementation (Crashpad/Chromium/CEF, Oracle Data Visualization Desktop, cbwin)
39 45543 Multiple games and applications crash in dwrite due to invalid index access to cluster array (Rekordbox 5.3.0, SpellForce 3)
40 45703 Microsoft Office 365 applications crash on startup (Microsoft AppV ISV virtual filesystem technology requires several native and core API to be hot-patchable)
41 45819 Symantec Eraser Control Driver 'eeCtrl64.sys' (Norton 360) fails in driver entry point due to 'ntoskrnl.exe.ExInitializeResourceLite' stub (needs STATUS_SUCCESS)
42 45963 Multiple applications need setupapi.SetupDiInstallDeviceInterfaces and setupapi.SetupDiRegisterCoDeviceInstallers stubs for HID device driver install
43 46174 Multiple apps (Halo Online Voice Chat, Discord, Miro Realtimeboard) crashes on unimplemented function qwave.dll.QOSCreateHandle
44 46378 WarGaming.net Game Center crashes when installing games or self-updates
45 46626 UPlay fails to start : "Error at hooking API LoadStringA" (UPlay's hooking engine can't handle ENDBR32 instruction inserted at non-hotpatch API entries due to distro build environments '-fcf-protection')
46 46685 AviUtl: Can't specify 4 digits number as image size in new project dialog.
47 46794 Skyrim crashes upon clicking Continue on macOS
48 46899 SIMATIC WinCC V15.1 Runtime installer: user can't accept license terms (richedit20 ITextRange::ScrollIntoView lacks handling of 'tomEnd')
49 46927 Oracle Java SE Runtime Environment 7/8, OpenJDK JVM for Windows with '-XX:+UseNUMA' setting needs kernel32.dll.VirtualAllocExNuma (Minecraft)
50 46934 Oracle Java SE Runtime Environment 7/8, OpenJDK JVM for Windows: InternalError: Should not get here at sun.nio.fs.WindowsNativeDispatcher.FindFirstStream0
51 46953 Watch_Dogs crashes after intro
52 46971 Multiple games crash at launch (Sniper Elite V2, Sniper Elite 3)
53 46974 Assetto Corsa sometimes crashes when clicking on buttons in the setup menu
54 46996 Improvements to the 7.1 and 5.1 to stereo conversion
55 46998 Yakuza Kiwami: Controllers aren't detected
56 46999 Controller with invalid HID range value causes division by zero error
57 47009 msi x64 installation file created by Visual Studio cannot be uninstalled
58 47022 Multiple performance monitor applications fail to display system physical/committed virtual memory usage (Sysinternals Process Explorer v16.x, builtin Taskmgr)
59 47031 widl generates invalid typelib when importing types from multiple typelibs
60 47034 Star Wars The Old Republic - Certificate Authentication Failed with wine-dev 4.6 (regression)
61 47039 Shantae Risky's Revenge has a blank screen in Wine 4.6
62 47051 Microsoft Excel 2016 (Office 365) crashes on startup (Microsoft AppV ISV virtual filesystem technology requires kernel32.CreateActCtxW to be hot-patchable)
63 47055 Unloaded modules traces are not accessible (RtlGetUnloadEventTraceEx)
64 47063 Command Link Support in Wine
65 47065 Vocaloid 5 (.NET 4.x app) crashes on startup (needs 'Win32_OperatingSystem' WMI class 'SystemDrive' property)
67 ----------------------------------------------------------------
72 user32/tests: Use GREEK_CHARSET in margin tests to avoid Associated Charset feature.
73 user32/tests: Remove win9x workarounds in margin tests.
74 user32/tests: Use calculated WM_SETFONT margins in the CJK case.
75 user32: Implement WM_SETFONT margins in the CJK case.
76 user32/tests: Add more margin tests in CJK font case.
77 user32: Fix edit control margins in CJK font case.
78 comctl32/tests: Use GREEK_CHARSET in margin tests to avoid Associated Charset feature.
79 comctl32/tests: Skip margin tests if a font for the target charset isn't available.
80 comctl32/tests: Use EM_SETMARGINS to test EC_USEFONTINFO margins.
81 comctl32/edit: Fix minimum control size conditions when using EC_USEFONTINFO.
82 comctl32/tests: Move the default margin size tests into a separate function.
83 comctl32/tests: Add Unicode version tests for Edit control margins.
84 comctl32/tests: Tests default margin size with various font face and charset.
85 comctl32/tests: Use calculated EC_USEFONTINFO margins in the CJK case.
86 comctl32/edit: Implement EC_USEFONTINFO margins in the CJK case.
87 comctl32/tests: Use calculated WM_SETFONT margins in the CJK case.
88 comctl32/edit: Implement WM_SETFONT margins in the CJK case.
89 user32: Make the second parameter of get_font_margins const.
91 Alexandre Julliard (41):
92 configure: Don't inherit CFLAGS for cross-compilation.
93 configure: Cache result of the cross-compiler check.
94 configure: Also cache negative results of soname checks.
95 configure: Cache result of the flex version check.
96 configure: Cache results of the compiler checks.
97 configure: Cache result of the msgfmt check.
98 shell32: Fix compiler warnings for the Windows build.
99 winegcc: Add option to put a builtin dll signature in the DOS header of PE files.
100 server: Add flag for builtin dlls in the image information.
101 ntdll: Move open_dll_file() to avoid forward declarations.
102 ntdll: Only pass the NT path name to open_dll_file().
103 ntdll: Add support for loading PE builtin dlls.
104 setupapi: Add support for installing PE builtins as fake dlls.
105 winetest: Also check for builtin dll signature.
106 winedump: Also check for builtin dll signature.
107 makefiles: Build modules that don't contain code as PE builtins.
108 include/msvcrt: Define math constants by default, for compatibility with Mingw.
109 include/msvcrt: Remove some prototypes that conflict with gcc builtins.
110 include/msvcrt: Make offsetof constant for compatibility with Mingw.
111 include/msvcrt: Use _fpclass() instead of _dclass().
112 include/msvcrt: Add noreturn attributes.
113 cryptnet/tests: Avoid using snprintf().
114 fusion/tests: Avoid using snprintf().
115 mshtml/tests: Avoid using snprintf().
116 msi/tests: Avoid using snprintf().
117 ole32/tests: Avoid using snprintf().
118 setupapi/tests: Avoid using snprintf().
119 widl: Use %define parse.error verbose instead of %error-verbose.
120 d3dcompiler: Use %define parse.error verbose instead of %error-verbose.
121 wbemprox: Use %define parse.error verbose instead of %error-verbose.
122 ntdll: Use the correct type for %llu scanf format.
123 makefiles: Allow using EXTRADLLFLAGS instead of APPMODE.
124 makefiles: Build stub programs with msvcrt.
125 makefiles: Build stub services with msvcrt.
126 makefiles: Build modules that use msvcrt as PE builtins.
127 makefiles: Don't use -fno-builtin flag with MinGW.
128 makefiles: Build all tests with msvcrt.
129 configure: Add check for recent enough bison.
130 msvcrt: Don't export the __p__* functions on 64-bit.
131 include/msvcrt: Add stdint.h header.
132 makefiles: Don't allow using system headers with msvcrt.
134 Alistair Leslie-Hughes (6):
135 include: Remove duplicate extern C from d3dx10core.idl.
136 include: Remove duplicate extern C from mimeole.idl.
137 include: Remove duplicate extern C from vsbackup.idl.
138 winex11/wintab: Set all Device Orientation values.
139 xinput: Check that we actually received a value before assignment.
140 dinput: Don't report SysMouse/Keyboard devices as supporting Force Feedback.
143 jscript: Stub Enumerator object.
144 jscript_test: Simple test for Enumerator().
147 dinput: Report controllers as gamepads, not joysticks.
150 dxgi: Add DECLSPEC_HOTPATCH to d3d11_swapchain_Present().
151 setupapi: Add DECLSPEC_HOTPATCH to SetupDiEnumDeviceInfo().
154 ntdll: Reuse signal to trap translation for FreeBSD on ARM.
157 mciavi32: Add Support for MCI_MCIAVI_PLAY_FULLSCREEN.
159 Damjan Jovanovic (4):
160 configure: Link wineserver to libinotify if necessary.
161 qcap/tests: Fix a COM reference leak in the audiorecord test.
162 avicap32: Verify v4l devices can capture before returning them.
163 devenum: Iterate over all avicap devices instead of giving up at the first failure.
166 ntoskrnl.exe: Implement PsLookupThreadByThreadId.
167 server: Allow creating process kernel objects.
168 ntoskrnl.exe: Implement process object constructor.
169 ntoskrnl.exe: Implement PsLookupProcessByProcessId.
171 Detlef Riekenberg (3):
172 taskschd/tests: Avoid a crash in a test after E_ACCESSDENIED.
173 qcap/tests: Avoid a crash in a test.
174 kernel32/pipe: Avoid a crash in a test.
176 Dmitry Timoshkov (2):
177 cryptui: Implement CryptUIDlgSelectCertificateFromStore.
178 kernel32: Add MapUserPhysicalPages stub.
181 server: Add default security descriptor ownership for processes.
182 server: Add default security descriptor DACL for processes.
183 kernel32: NeedCurrentDirectoryForExePath does not use the registry.
184 advapi32: Move the DACL combining code into a separate routine.
185 advapi32: Fix the initialization of combined DACLs when the new DACL is empty.
188 kernel32: Partially implement VirtualAllocExNuma.
189 kernel32: Stub FindFirstStreamW/FindNextStreamW.
192 d3d10core/tests: Limit the flood of failures in test_depth_bias().
193 d3d11/tests: Limit the flood of failures in test_depth_bias().
195 Gabriel Ivăncescu (7):
196 comctl32/tests: Avoid leaks by moving creation calls outside the loop.
197 comctl32/button: Preserve BST_HOT when mouse button is released.
198 comctl32/button: Move the drawing of the button's image into a separate function.
199 comctl32/button: Implement command links.
200 comctl32/button: Implement themed command links.
201 comctl32/button: Implement BCM_GETIDEALSIZE for command links.
202 comctl32/tests: Test for BCM_GETIDEALSIZE on command links with notes.
205 riched20: Handle tomEnd in ITextRange::ScrollIntoView.
206 ntoskrnl.exe: Add Ex[p]InterlockedFlushSList.
209 msi: Use KEY_WOW64_* flags in ACTION_Register/UnregisterClassInfo.
210 msi: Get rid of a redundant get_registry_view call.
211 msi: Take architecture into account when accessing the shared dll reference count.
212 msi: Remove system environment variables on uninstall.
213 msi: Fix architecture handling in the AppSearch action.
214 msi: Get rid of redundant KEY_WOW64_64KEY flags.
215 msi/tests: Check the NT key first when retrieving registered owner and organization.
216 msi: Always use the 64-bit registry view to retrieve registered owner and organization.
217 wineboot: Also process Run keys from the 32-bit registry view.
218 wbemprox: Implement Win32_OperatingSystem.SystemDrive.
219 wbemprox/tests: Introduce a helper to check properties.
222 wined3d: Pass a wined3d_adapter_gl structure to wined3d_adapter_gl_init().
223 wined3d: Assign "adapter_ops" in wined3d_adapter_init().
224 wined3d: Don't bother allocating "free_fences" in context_create().
225 wined3d: Don't bother allocating "free_occlusion_queries" in context_create().
226 wined3d: Don't bother allocating "free_timestamp_queries" in context_create().
228 Isira Seneviratne (1):
229 po: Update Sinhala translation.
232 mshtml: Support type conversion in functions with arguments using default values.
233 mshtml: Support argument type conversion for functions with IDispatch arguments.
234 mshtml: Support argument type conversion for functions with dual interface arguments.
235 mshtml: Support argument type conversion for functions with dual interface return type.
236 mshtml/tests: Properly release elem2 in test_elem_bounding_client_rect.
237 mshtml: Add ISVGElement stub implementation.
238 mshtml: Add ISVGSVGElement stub implementation.
239 mshtml: Add ISVGCircleElement stub implementation.
240 mshtml: Add ISVGTSpanElement stub implementation.
241 mshtml: Use DispHTMLDOMImplementation for IDispatchEx implementation.
242 mshtml: Pass style value as nsAString to set_nsstyle_property.
243 mshtml: Use nsAString in fix_px_value.
244 mshtml: Return nsAString from var_to_styleval.
245 mshtml: Factor out variant_to_nsstr from var_to_styleval.
246 mshtml: Use variant_to_nsstr in IHTMLDOMNode3::put_textContent.
247 mshtml: Support VT_R8 in variant_to_nsstr.
248 jscript: Fix handling empty string regexp matches in String.prototype.split implementation.
249 jscript: Don't skip empty strings in String.prototype.split in ES5 mode.
250 msvcp140: Add _Resize implementation.
251 ntoskrnl.exe/tests: Add more NtOpenThread tests.
252 ntoskrnl.exe: Return error codes compatible with recent Windows versions in PsLookupThreadByThreadId.
253 ntoskrnl.exe: Add MmUnmapLockedPages stub.
254 server: Allow creating file kernel objects.
255 server: Set file user pointer in get_next_device_request handler.
256 server: Ensure that IRP_MJ_CLOSE is queued only once.
257 server: Use generic kernel object list to store client device file pointer.
260 shell32: Do not fail in SHCreateDirectoryExW for ERROR_ALREADY_EXISTS.
263 d3d9: Fix memory leak in device_init() (Coverity).
264 wined3d: Make the adapter responsible for creating devices.
265 wined3d: Create Vulkan device for wined3d_device_vk.
266 d3d11: Fix d3d11_immediate_context_RSGetScissorRects().
267 d3d11: Fix d3d10_device_RSGetScissorRects().
268 wined3d: Use vkGetDeviceProcAddr() to load Vulkan device functions.
269 wined3d: Avoid enabling all features supported by Vulkan physical device.
272 ntdll: Add DECLSPEC_HOTPATCH to NtQueryDirectoryFile.
273 ntdll: Add DECLSPEC_HOTPATCH to NtQueryValueKey.
274 rpcrt4: Quiet two noisy fixme`s.
275 kernel32: Add DECLSPEC_HOTPATCH to CreateActCtx.
277 Marko Friedemann (1):
278 wintrust: Use enhanced crypto provider in VerifyImageHash.
281 msvcrt: Fix the fallback implementation of asinh for large negative values.
282 msvcrt: Hook up the unprefixed logb/logbf/logbl functions for msvcr120/ucrtbase.
285 include: Add cast to avoid a compiler warning on MSVC.
288 avifile.dll16: Correctly convert result of AVIStreamGetFrame to a segptr.
289 avifile.dll16: Convert between AVISTREAMINFO (16 bit) and AVISTREAMINFOA.
292 dsound: Revised 5.1 to stereo downmix.
293 dsound: Added 7.1 to stereo downmix.
296 mf/tests: Fix test crash on Vista.
297 include: Add IMFPMediaPlayer definition.
298 dwrite/layout: Fix invalid index access to cluster array.
299 ntdll/tests: Add some tests for thread suspend/resume.
300 mfreadwrite: Output warning for uninitialized stream descriptor.
301 mfplat/tests: Add a test for stream descriptor major type behavior.
302 mfreadwrite: Duplicate media type returned with GetNativeMediaType().
303 mfreadwrite: Add a helper to get associated event object value.
304 mfreadwrite: Add a helper to get stream identifier.
305 mfreadwrite: Handle MEMediaSample event.
306 mfreadwrite/tests: Add some tests for ReadSample().
307 ntdll: Add NtSuspendProcess()/NtResumeProcess() implementation.
308 dbgeng: Add support for non-invasive attach on WaitForEvent().
309 dbgeng: Implement GetNumberModules().
310 dbgeng: Implement GetModuleByIndex().
311 dbgeng: Implement GetModuleParameters().
312 dbgeng: Implement GetModuleByOffset().
313 mfreadwrite: Add partial implementation of ReadSample().
314 mfreadwrite: Handle failure path in GetNativeMediaType().
315 mfreadwrite: Wake also on new streams.
316 mfreadwrite: Handle some of stream state change events.
317 mfplay: Add a stub for MFPCreateMediaPlayer().
318 ntdll/tests: Add some tests for unloaded modules traces.
319 ntdll: Implement RtlGetUnloadEventTrace()/RtlGetUnloadEventTraceEx().
320 dbgeng: Implement ReadVirtual().
321 dbgeng: Implement IsPointer64Bit().
322 dbgeng: Implement GetExecutingProcessorType().
323 dbgeng: Partially implement GetModuleNameString().
324 dbgeng: Implement GetModuleVersionInformation().
325 comctl32/button: Improve repainting on WM_SETFOCUS.
326 dbgeng: Improve GetDebuggeeType() stub.
327 dbgeng: Set module timestamp field.
328 dbgeng: Add IDebugAdvanced stub.
329 dbgeng: Add IDebugSystemObjects stub.
330 kernel32/tests: Add a test for critical section DebugInfo initial value.
331 mfplat: Add partial implementation of ConvertToContiguousBuffer().
334 wined3d: Use intBitsToFloat() instead of uintBitsToFloat().
337 advapi32/tests: Test prefix and use of TokenPrimaryGroup Sid.
340 winemac: Add +fps support for Vulkan.
342 Vijay Kiran Kamuju (18):
343 include: Add missing includes, functions to qos2.h.
344 qwave: Add stub for QOSCreateHandle and tests.
345 kernel/nls: Fix country name in Tatar locale.
346 kernel/nls: Fix LOCALE_SNAME for Azeri (Cyrillic).
347 kernel/nls: Fix LOCALE_SNAME for Uzbek (Cyrillic).
348 kernel/nls: Fix LOCALE_SNAME for Serbian (Cyrillic).
349 kernel/nls: Fix country name and sname in English-Caribbean locale.
350 kernel/nls: Fix country name in Manx Gaelic locale.
351 kernel32: Add implementation of CAL_SSHORTESTDAYNAME*.
352 ntdll: Report system information SystemPerformanceInformation info class.
353 kernel/nls: Add LOCALE_SMONTHDAY to all supported languages.
354 kernel/nls: Fix LOCALE_SLONGDATE and LOCALE_SYEARMONTH for some chinese locales.
355 kernel32: Add implementation for CAL_SMONTHDAY.
356 kernel/nls: Fix LOCALE_SABBREVCTRYNAME for Serbian.
357 include: Add CAL_UMALQURA definition to winnls.h.
358 include: Add missing ACE and ACL related defines in winnt.h.
359 include: Add missing structures for ACE and Tokens in winnt.h.
360 advapi32/tests: Add additional tests for NtAccessCheck.
363 mscoree: Try skipping c: when searching for support msi.
364 mscoree: Update Wine Mono to 4.8.3.
366 Vladimir Bespalov (1):
367 user32: Make LoadString[AW] patchable.
369 Zebediah Figura (38):
370 qedit/tests: Add more tests for sample grabber filter interfaces.
371 qedit/samplegrabber: Don't expose IMediaPosition from the filter.
372 qedit/samplegrabber: Don't expose IMediaSeeking from the filter.
373 qedit/tests: Test that reference counts are shared between interfaces.
374 qedit/tests: Add some tests for IBaseFilter::EnumPins() on the sample grabber.
375 qedit/tests: Add some tests for IBaseFilter::FindPin() on the sample grabber.
376 qedit/tests: Add some tests for querying sample grabber pin information.
377 qedit/samplegrabber: Separate sink and source QueryInterface() implementations.
378 qedit/tests: Add some tests for sample grabber pin interfaces.
379 qedit/tests: Clean up and expand aggregation tests.
380 qedit: Fix return code for requesting aggregation with an interface other than IUnknown.
381 quartz: Vend CLSID_NullRenderer from qedit.
382 widl: Correctly set the import library offset for all imported types.
383 msi: Fix handling of architecture in MSIREG_{Open, Delete}UninstallKey().
384 winecfg: Use GetSysColorBrush().
385 winecfg: Also set the text color for the license and version controls.
386 user32: Use GetSysColorBrush().
387 wordpad: Use GetSysColorBrush().
388 regedit: Use the default implementation of WM_ERASEBKGND.
389 qedit/tests: Abort on missing qedit.dll.
390 qedit/tests: Add some tests for null renderer filter interfaces.
391 qedit/tests: Add some tests for IBaseFilter::EnumPins() on the null renderer.
392 qedit/tests: Add some tests for IBaseFilter::FindPin() on the null renderer.
393 qedit/tests: Add some tests for querying null renderer pin information.
394 qedit/tests: Add some tests for null renderer pin interfaces.
395 qedit/tests: Add a test for aggregation on the null renderer.
396 quartz/tests: Clean up and expand tests for aggregation.
397 regedit: Use an I-beam cursor in the hex edit dialog.
398 devenum: Fix device and friendly name for video capture devices.
399 qcap: Use the v4l2 device_caps field if supported.
400 amstream: Reference the returned IMediaStream pointer in IAMMultiMediaStream::AddMediaStream().
401 amstream/tests: Add some test for supported interfaces.
402 amstream/tests: Add tests for IMediaStreamFilter::EnumPins().
403 amstream/tests: Add some tests for IMediaStreamFilter::FindPin().
404 amstream/tests: Add some tests for querying pin information.
405 quartz: Get rid of register_coclasses().
406 quartz: Get rid of register_interfaces().
407 winegstreamer: Convert media type registration to IRegistrar mechanism.