1 The Wine development release 4.16 is now available.
3 What's new in this release (see below for details):
4 - More reliable mouse grabbing in games.
5 - Better cross-compilation support in WineGCC.
6 - Improved compatibility with Windows debuggers.
9 The source is available from the following locations:
11 https://dl.winehq.org/wine/source/4.x/wine-4.16.tar.xz
12 http://mirrors.ibiblio.org/wine/source/4.x/wine-4.16.tar.xz
14 Binary packages for various distributions will be available from:
16 https://www.winehq.org/download
18 You will find documentation on https://www.winehq.org/documentation
20 You can also get the current source directly from the git
21 repository. Check https://www.winehq.org/git for details.
23 Wine is available thanks to the work of many people. See the file
24 AUTHORS in the distribution for the complete list.
26 ----------------------------------------------------------------
28 Bugs fixed in 4.16 (total 16):
30 22038 Art of Murder Cards of Destiny: some character models are plain white
31 26215 Super Meat Boy shows grey textures for some objects
32 41258 UE4 applications crash with "Assertion failed: Count >= 0" (Epic Games Launcher, Paragon)
33 44338 cmd: Brackets are no deliminiter in the condition part of the if command.
34 45560 Windows Sysinternals 'psping' v2.x tool, part of 'PsTools' crashes when trying to ping host (needs 'iphlpapi.ParseNetworkString')
35 46149 Multiple applications need ntdll.dll.RtlIpv4StringToAddress{A,W,ExA,ExW} implementation (Processhacker 2.x, Icinga 2 'check_ping')
36 46421 μTorrent has squares in it's update-dialog
37 46549 Multiple .NET 4.x applications and games using 'System.Net.HttpListener' class crash due incomplete httpapi implementation (PUBG Lite Launcher, SeeSnake HQ)
38 46983 type command in cmd.exe with two files and stdout redirect, behavior is different
39 47476 Rhinoceros 6 (.NET 4.x app) fails to verify online-license: System.EntryPointNotFoundException: Unable to find an entry point named 'HttpCloseRequestQueue' in DLL 'httpapi.dll'
40 47524 Hearthstone black screen
41 47629 PotPlayer 1.7: Crash when trying to play any file
42 47675 Wine builtin 'services.exe' uses invalid wait object for delayed autostart services
43 47693 ExHIBIT (Sample Project): Can't select menu item in the title screen
44 47709 Zoom Edit&Share 5.0.0.0: installer crashes starting with wine-3.19
45 47732 This is bad bug in wine.
47 ----------------------------------------------------------------
52 msvcrt/tests: Restore the multibyte codepage after the tests.
53 msvcrt/tests: Add more tests for _mbsspn and _mbsspnp.
54 msvcrt: Fix _mbsspn implementation.
55 msvcrt: Reimplement _mbsspnp using _mbsspn.
56 ucrtbase: Add strtoimax and _strtoimax_l.
57 ucrtbase: Add strtoumax and _strtoumax_l.
58 dwrite: Avoid a magic constant.
61 ntdll: Implement RtlIpv4StringToAddress(Ex)W.
62 ntdll: Implement RtlIpv4StringToAddress(Ex)A.
63 include: Add structures and constants needed for ParseNetworkString.
64 iphlpapi/tests: Add tests for ParseNetworkString.
65 include: Add ip2string.h.
66 iphlpapi: Implement ParseNetworkString for IPv4 addresses and services.
67 server: Fix use after free in add_committed_range (scan-build).
68 winedbg: Fix dependence on undefined left-shift behavior (scan-build).
69 gdi32: Handle HeapAlloc failure in SetEnhMetaFileBits (scan-build).
70 winex11: Factor out array access in ConvertAttribWGLtoGLX (scan-build).
72 Alexandre Julliard (40):
73 configure: Don't link to libunwind if not necessary.
74 kernel32: Move interlocked functions to kernelbase.
75 kernel32: Move file change notification functions to kernelbase.
76 kernel32: Move virtual memory functions to kernelbase.
77 kernel32: Move heap functions to kernelbase.
78 kernel32: Move memory resource functions to kernelbase.
79 kernel32: Move global/local memory functions to kernelbase.
80 kernel32: Move OS version functions to kernelbase.
81 kernel32: Move debugger functions to kernelbase.
82 kernel32: Move unhandled exception functions to kernelbase.
83 kernel32: Move QueryPerformanceCounter/Frequency functions to ntdll.
84 kernel32: Move environment functions to kernelbase.
85 kernel32: Move process startup information functions to kernelbase.
86 ntdll: Allocate environment blocks from the process heap.
87 ntdll: Add partial implementation for IOCTL_SERIAL_GET_PROPERTIES.
88 kernel32: Move ioctl functions to kernelbase.
89 kernel32: Move console functions to kernelbase.
90 winebuild: Add support for the -B option.
91 winegcc: Fix handling of the --sysroot flag when not building inside the Wine tree.
92 winegcc: Support the --target option like winebuild does.
93 winegcc: Forward the -B options to winebuild.
94 configure: Check for unw_step() instead of unw_getcontext().
95 ntdll: Use virtual_uninterrupted_read_memory() to read code inside signal handler on x86-64.
96 ntdll: Use a stack_layout structure to build exception data on x86-64.
97 ntdll: Use a stack_layout structure to build exception data on i386.
98 ntdll: Factor out setup_raise_exception() on i386.
99 ntdll: Handle single step exception in signal handler on i386.
100 ntdll: Handle alignment fault in signal handler on i386.
101 ntdll: Handle breakpoint interrupt in signal handler on i386.
102 ntdll: Handle invalid %gs fault in signal handler on i386.
103 ntdll: Handle page faults in signal handler on i386.
104 ntdll: Handle ATL thunk emulation in signal handler on i386.
105 ntdll: Remove no longer needed function argument from setup_raise_exception() on i386.
106 ntdll: Use a stack_layout structure to build exception data on ARM64.
107 ntdll: Factor out setup_raise_exception() on ARM64.
108 ntdll: Handle trap exception in signal handler on ARM64.
109 ntdll: Handle page fault in signal handler on ARM64.
110 ntdll: Remove no longer needed function argument from setup_raise_exception() on ARM64.
111 ntdll: Avoid calling init_handler() twice in signal handler on i386.
112 ntdll: Use virtual_uninterrupted_read_memory() to read code inside signal handler on i386.
114 Alistair Leslie-Hughes (11):
115 dsound: Trace all DSBCAPS values.
116 dsound/tests: Add effect parameters tests.
117 wbemprox: Return NULL on error (Coverity).
118 dsound: Trace each special effect as it's processed.
119 hhctrl.ocx: Simplify extracting the help filename (Coverity).
120 httpapi/tests: Assign to correct type (Coverity).
121 http.sys: Allocate enough memory including the NULL. (Coverity).
122 wineqtdecoder: Add missing header.
123 include: Add DSFX_I3DL2REVERB defines.
124 include: Correct DSFX_I3DL2REVERB_ROOM_MIN value.
125 wininet/tests: InternetQueryOption should return a valid value for username/password when using cached credentials.
128 ntoskrnl.exe: Add -norelay flag for _vsnprintf.
129 mmdevapi: Avoid reporting odd numbers of channels.
130 winebus.sys: Don't WARN about backends we didn't build.
133 wininet/tests: Remove LPVOID cast.
134 winhttp/tests: Remove LPVOID casts.
135 dxgi: Add IDXGIDevice3 stub.
138 wininet: Return error from HttpQueryInfo if number argument is invalid.
139 wininet: Support large downloads.
140 ntdll/tests: Adjust timing on RtlWaitOnAddress tests.
142 Dmitry Timoshkov (14):
143 rpcrt4: Return an exception code from NdrAsyncClientCall.
144 localspl: Remove useless NULL checks from AddMonitor trace.
145 localspl: AddMonitor should create registry entry for a monitor before initializing it.
146 localspl: Add support for monitors providing the MONITOR2 interface.
147 localspl: Unload monitor in DeleteMonitor.
148 localspl: Use the monitor handle returned by InitializePrintMonitor2.
149 localspl: Fix MONITOR2.cbSize calculation when converting from MONITOREX.
150 localspl: Fix MONITOR2 callback prototypes.
151 winsplp.h: Fix MONITORINIT definition.
152 localspl: Add MONITORREG stub callbacks for InitializePrintMonitor2.
153 localspl/tests: Add support for monitors providing the MONITOR2 interface.
154 ntdll/tests: Fix compilation with PSDK compiler.
155 ntdll: Implement RtlUnicodeToUTF8N.
156 ole32: Turn FIXME into a TRACE for clipboard backend of QueryGetData.
158 Evgeny Litvinenko (1):
159 aclocal.m4: Allow nesting WINE_TRY_SHLIB_FLAGS.
162 comctl32/syslink: Properly handle '\r'.
164 François Gouget (21):
165 comctl32: Typo and spelling fixes in comments.
166 advapi32/tests: Spelling fixes in a couple of comments.
167 advapi32/tests: Spelling tweaks in ok() messages.
168 widl: Fix a variable name in a comment.
169 cabinet: A spelling fix in a variable / field name.
170 libwine: Fully dereference the /proc/self/exe symbolic link.
171 libwine: Like Linux, NetBSD has /proc/self/exe.
172 tests: Add support for subtests.
173 msi/tests: Declare the custom subtest.
174 ntoskrnl/tests: Declare the driver subtest.
175 kernel32/tests: Avoid unneeded strlen*() calls.
176 comctl32/tests: Tweak an ok() message to avoid a spelling error.
177 d3d8/tests: Spelling fixes in ok() messages.
178 d3d9/tests: Spelling fixes in ok() messages and a comment.
179 d3d10/tests: Spelling fixes in ok() messages.
180 d3dx9_36/tests: Spelling fixes in ok() messages.
181 dinput8/tests: A spelling fix in a comment.
182 ddraw/tests: Spelling fixes in ok() messages.
183 ddrawex: Tweak the createDD() name to make CodeSpell happy.
184 winemac.drv: Avoid an unneeded lstrlenW() call.
185 dwrite: A couple of spelling fixes in comments.
187 Gabriel Ivăncescu (4):
188 kernel32/locale: Set whether we used the default char when using Unix codepage.
189 kernel32/locale: Don't fail with non-NULL args when the Unix codepage falls back to UTF-8.
190 vbscript/parser: Handle lack of newlines before certain End statements.
191 vbscript/tests: Test lack of newline parsing before End statements.
194 dwrite/tests: Silence a compiler warning in test_fontsetbuilder.
197 wbemprox: Strip curly brackets from path strings.
198 wbemprox: Support evaluating CIM_REFERENCE expressions.
199 wbemprox: Perform a case insensitive match on path components.
200 wbemprox: Implement Win32_LogicalDiskToPartition.
201 wbemprox: Implement Win32_DiskDriveToDiskPartition.
202 wbemprox: Fix index in fill_diskdrive and fill_diskpartition.
203 wbemprox: Add support for evaluating ASSOCIATORS OF queries.
205 Huw D. M. Davies (3):
206 wininet: Include limits.h to define UINT_MAX and ULONG_MAX.
207 configure: Fix argument type of unw_step().
208 configure: Fix libunwind warning logic.
211 ntdll: Move setup_exception implementation.
212 ntdll: Factor out setup_raise_exception.
213 ntdll: Handle single step exception in setup_raise_exception on x86_64.
214 ntdll: Handle interrupt exceptions in signal handler on x86_64.
215 ntdll: Call virtual_handle_fault from signal handler on x86_64.
216 ntdll: Remove no longer needed func argument from setup_raise_exception.
217 ntdll: Call send_debug_event from debug handler on x86_64.
218 services: Use threadpool timers for services delay loading.
221 mfmediaengine: Add IMFMediaEngine stub.
222 mfmediaengine: Merge media_engine_attributes into media_engine struct.
225 ntdll: On Mac, use the Mach API as preferred approach to get a thread's GS.base.
228 objbase.h: Fix StringFromIID declaration.
231 po: Update Norwegian translation.
234 iphlpapi: Fixed size to MultiByteToWideChar.
236 Michael Stefaniuc (3):
237 strmbase: Don't cast from COM object to interface.
238 quartz: Don't cast from COM object to interface.
239 d3d10: Avoid casts from COM object to interface.
241 Naveen Narayanan (1):
242 libwine: Only link libi386 with the libraries that need it.
245 msvcrt: Match broken multi-byte character with everything in _mbsspn.
246 wbemdisp: Handle NULL signatures in init_members.
249 winex11.drv: Do not react to keyboard grab focus events.
250 winex11.drv: Only grab or warp the cursor when keyboard isn't grabbed.
251 winex11.drv: Retry last ClipCursor when grab is released.
252 winex11.drv: Do not set clipping_cursor when clip window map state changes.
253 winex11.drv: Explicitly call XUngrabPointer when clipping is released.
254 winex11.drv: Only call XWarpPointer if we can get exclusive pointer grab.
255 dnsapi: Add DnsGetCacheDataTable stub.
256 user32/tests: Add RegisterRawInputDevices parameter validation tests.
257 user32: Add parameter validation for RegisterRawInputDevices.
260 quartz: Fix some memory leaks (Coverity).
261 quartz/tests: Fix a memory leak (Valgrind).
262 hidclass.sys: Fix some memory leaks on error path (Coverity).
263 winex11.drv: Fix a memory leak (Coverity).
265 Zebediah Figura (37):
266 amstream: Use shorter method names for the multimedia stream.
267 amstream: Move multimedia_stream_create() to avoid forward declarations.
268 amstream: Forward IMultiMediaStream::GetMediaStream() to the stream filter.
269 amstream: Don't keep track of streams in the multimedia stream object.
270 amstream/tests: Add some tests for IEnumMediaTypes.
271 amstream/tests: Add more tests for media types.
272 amstream: Move audio and ddraw streams into separate files.
273 amstream: Reimplement IPin::EnumMediaTypes() for the primary video stream.
274 amstream: Get rid of the DirectDrawMediaStreamImpl typedef.
275 amstream: Reimplement IMemInputPin locally for the DirectDraw stream.
276 amstream: Reimplement IPin locally for the DirectDraw stream.
277 amstream: Use shorter method names for DirectDraw stream methods.
278 amstream/tests: Also test pin information for the primary audio stream.
279 amstream: Reimplement IPin::EnumMediaTypes() for the primary audio stream.
280 amstream: Get rid of the AudioMediaStreamImpl typedef.
281 amstream: Reimplement IMemInputPin locally for the primary audio stream.
282 amstream: Reimplement IPin locally for the primary audio stream.
283 amstream: Use shorter names for primary audio stream methods.
284 winegstreamer: Use strmbase_source_init().
285 wineqtdecoder: Use strmbase_source_init().
286 strmbase: Get rid of the no longer used pin constructor and destructor helpers.
287 qcap/avimux: Use strmbase pin methods directly.
288 strmbase: Store the filter as a strmbase_filter pointer in the BasePin structure.
289 strmbase: Get rid of the "pCritSec" member of BasePin.
290 http.sys: Use the SOCKET type for Windows sockets.
291 winegstreamer: Get rid of the unused "gstpool" field from GSTOutPin.
292 winegstreamer: Get rid of the "isaud" and "isvid" fields of GstOutPin.
293 winegstreamer: Get rid of the GSTInPin structure.
294 winegstreamer: Get rid of the unused "discont" field from GstImpl.
295 winegstreamer: Handle GST_EVENT_RECONFIGURE.
296 winegstreamer: Don't activate our source pad immediately after connecting.
297 winegstreamer: Use the global HeapAlloc() wrappers.
298 strmbase: Get rid of the BaseOutputPin typedef.
299 strmbase: Get rid of the BaseOutputPinFuncTable typedef.
300 winegstreamer: Use BasePinImpl_QueryAccept() and BasePinImpl_EnumMediaTypes().
301 winegstreamer: Get rid of the GSTImpl typedef.
302 winegstreamer: Get rid of the GSTOutPin typedef.
305 winemac.drv: Fix build with older macOS SDKs.
306 comctl32/taskdialog: Use BCM_GETIDEALSIZE to calculate button size.
307 user32/tests: Remove an extraneous check.
308 user32/tests: Fix some msg test failures.