1 The Wine development release 6.9 is now available.
3 What's new in this release (see below for details):
4 - WPCAP library converted to PE.
5 - Support for paper forms in the print spooler.
6 - More math functions from Musl in the C runtime.
9 The source is available from the following locations:
11 https://dl.winehq.org/wine/source/6.x/wine-6.9.tar.xz
12 http://mirrors.ibiblio.org/wine/source/6.x/wine-6.9.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 6.9 (total 25):
30 20439 TroopMaster hangs on startup
31 24631 comctl32:listview NM_HOVER tests sometimes fail
32 28083 Agenda Circling Forth GPU particle demo:bunch of fixme and errors
33 32749 Implement atl100.dll.AtlAxDialogBoxW to show error dialogs (Visual Studio 2010 (10.0) Express Edition)
34 33846 crash on unimplemented function OpenCL.dll.clRetainDevice (clinfo)
35 34314 Touhou Danmakufu 0.12m crashes on start (DMUSIC_CreateMidiOutPortImpl is a stub)
36 34756 32-bit Visual C++ 2010 Express full installer throws an exception with wine-mono
37 43377 msxml3:domdoc Crashes in wow64 due to double free of properties
38 44813 Some applications fail when calling ntdll.NtReadFile on a directory (expect STATUS_INVALID_DEVICE_REQUEST)
39 47150 Overwatch freezes when new menu music starts playing
40 47866 comctl32:datetime: Fails in the Arabic locale
41 47872 gdiplus:font fails in Japanese locale on Windows 10
42 48054 gdi32:bitmap fails on Windows XP and 2003
43 48061 WineTest: get_subtests() fails randomly
44 50086 user32:monitor tests timeout
45 50830 Process Hacker 2.38 crashes on unimplemented function advapi32.dll.LsaEnumerateAccounts
46 50843 infosoft:infosoft has 2 failures on all Windows version up to Win10 1507
47 50844 infosoft:infosoft crashes on Windows 10 1607+
48 50853 Elgato Stream Deck 4.9.3 (.NET 4.5 app) installer: 'WINE_MONO_TRACE=all' crashes Wine-Mono
49 51047 Significant performance regression in The Sims 2
50 51080 DCS World updater - not detecting selected windows version
51 51101 Regression in PGVDemo: C:\\windows\\Microsoft.NET\\Framework64\\v2.0.50727\\mscorwks.dll could not be loaded
52 51117 Silverlight_x64.exe (part of LEGO MINDSTORMS EV3 Home Edition installer) crashes
53 51131 The 64-bit msxml3:domdoc crashes on Windows
54 51151 The 64-bit psapi:psapi_main fails in Wine
56 ----------------------------------------------------------------
60 Alexandre Julliard (19):
61 include: Remove context definitions for obsolete platforms.
62 include: Define all the context structures on all platforms.
63 ntdll: Implement RtlWow64GetCpuAreaInfo().
64 ntdll/tests: Don't skip all tests if a function is missing.
65 ntdll/tests: Add tests for Wow64 TEB and PEB information.
66 server: Send TEB and PEB in the process_init_done request.
67 ntdll: Always send the native TEB pointer to the server.
68 ntdll: Always send the native PEB pointer to the server.
69 ntdll: Add a helper function to set the thread id.
70 ntdll: Allocate a separate 64-bit stack for Wow64 threads.
71 ntdll: Only check the is_wow64 flag on 32-bit platforms.
72 ntdll: Store the Wow64 context at the top of the 64-bit stack.
73 ntdll: Make the server context conversion functions generic.
74 ntdll: Pass a server context to server_select().
75 ntdll: Export RtlWow64Get/SetThreadContext() on all 64-bit platforms.
76 ntdll: Add platform-specific helpers for getting/setting the Wow64 context.
77 kernelbase: Fix PEB address for Wow64.
78 ntdll/tests: Only load RtlWow64GetCpuAreaInfo() on 64-bit.
79 kernelbase: Fix process access rights in DebugActiveProcess().
81 Alistair Leslie-Hughes (1):
82 include: Add IXMLHTTPRequest2/3 interfaces.
85 shell32: Avoid gcc 11 misleading-indentation warning.
86 windowscodecs: Avoid types deprecated in libtiff 4.3.
89 po: Update Lithuanian translation.
90 po: Update Lithuanian translation.
91 po: Update Lithuanian translation.
94 include: Add more PROPERTYKEY declarations in propkey.h.
97 wined3d: Add GPU information for Intel UHD Graphics 630.
100 winegstreamer: Ensure that the source reports both PCM and floating point audio formats.
101 winevulkan: Add support for unwrapping handles in thunks.
102 winevulkan: Use automatically-generated thunk for vkCmdExecuteCommands.
103 winevulkan: Use automatically-generated thunk for vkQueueSubmit.
104 winevulkan: Specify which structures to ignore in STRUCT_CHAIN_CONVERSIONS.
106 Dmitry Timoshkov (3):
107 msxml3/tests: Execute ProcessingInstruction tests before other tests to avoid crashes under 64-bit Windows.
108 msxml3/tests: Add some tests for IVBSAXContentHandler::startElement() and IVBSAXContentHandler::endElement().
109 msxml3: IVBSAXContentHandler::startElement() should also check *namespaceURI for NULL.
112 gdiplus: Implement GdipEnumerateMetafileSrcRectDestRectI.
115 slc: Return a non-zero handle from SLOpen.
118 po: Update Dutch Translation.
120 François Gouget (16):
121 infosoft/tests: Fix the infinite loop and crash on Windows 10 1607+.
122 infosoft/tests: Improve the failure messages.
123 infosoft/tests: Fix the pfnFillTextBuffer() return value.
124 infosoft/tests: Fix refilling the text buffer.
125 kernel32/tests: Fix the spelling of a comment.
126 urlmon/tests: Fix the spelling of a comment.
127 winevulkan: Fix the spelling of a make_vulkan comment.
128 advapi32/tests: Trace GetLastError() when an event log API fails.
129 advapi32/tests: Trace failures to open the event log.
130 mshtml/tests: Fix the spelling of an ok() message.
131 advapi32/tests: Time zones should have both MUI and regular strings.
132 user32/tests: Avoid copying the clipboard buffer sizes everywhere.
133 user32/tests: Fix the clipboard CF_LOCALE test.
134 schedsvc: Fix the spelling of a comment.
135 user32/tests: Fix the clipboard format id vs. atom table checks.
136 mstask/tests: Work around race conditions with the task scheduler process.
138 Giovanni Mascellani (1):
139 winegstreamer: Advertise support for thinned or reverse playback.
142 wpcap: Move pcap support to a new Unix library.
143 wpcap: Implement some more functions.
144 wpcap: Build with msvcrt.
145 wpcap: Use CRT memory allocators.
146 wpcap: Get rid of the wine_ prefix.
147 ws2_32: Add support for hints in GetAddrInfoExW.
148 webservices: Implement WsGetChannelProperty(WS_CHANNEL_PROPERTY_STATE).
149 webservices/tests: Wait for the listener to be ready.
150 webservices: Create the connection in WsOpenChannel.
151 webservices/tests: Add an async client test.
152 webservices: Implement WsAbortChannel.
153 webservices: Always queue an async in WsReceiveMessage and WsRequestReply.
154 webservices: Add async support in WsShutdownSessionChannel.
155 webservices: Add async support in WsCloseChannel.
156 webservices: Add async support in WsOpenChannel.
157 webservices: Add async support in WsSendMessage.
158 webservices: Add async support in WsSendReplyMessage.
159 webservices: Add async support in WsReadMessageStart.
160 webservices: Add async support in WsReadMessageEnd.
161 webservices: Add async support in WsWriteMessageStart.
162 webservices: Add async support in WsWriteMessageEnd.
163 webservices: Return WS_S_END when we receive an end frame.
166 gdi32: Fix a memory leak.
167 gdiplus: Avoid filtering of special characters.
170 winedump: Make print_longlong() work on 64-bit.
173 reg: Fail if access is denied when deleting registry data.
174 reg: Update the STRING_VALUEALL_FAILED resource string.
175 reg: Update an error message.
176 reg/tests: Add further syntax tests for the 'copy' command.
177 reg/tests: Add data tests for the 'copy' command.
178 reg/tests: Add missing return code checks.
179 reg/tests: Add complex data and hex type tests for the 'copy' command.
180 reg/tests: Add more data tests for the 'copy' command.
181 reg/tests: Add key and value order tests for the 'copy' command.
182 reg: Fix a typo in a function definition.
183 reg: Add initial support for the 'copy' command.
184 reg: Fail if one or more arguments follow a help switch.
186 Huw D. M. Davies (7):
187 include: Add winspool form string type defines.
188 winspool: Forward the unicode forms functions to localspl.
189 localspl: Implement EnumForms().
190 localspl: Implement GetForm().
191 winspool: Forward GetFormA() to GetFormW().
192 winspool: Forward EnumFormsA() to EnumFormsW().
193 winspool/tests: Add tests for GetFormA().
196 winebuild: Use clang -print-prog-name to find LLVM tools.
197 winepulse: Move synchronization functions to unix lib.
198 winepulse: Move pulse_test_connect to unix lib.
199 winepulse: Move pulse main loop to unix lib.
200 winepulse: Store channel count directly in ACImpl.
201 winepulse: Introduce pulse_stream struct.
202 winepulse: Move pulse stream destruction to unix lib.
203 winepulse: Move pulse stream initialization to unix lib.
204 winegcc: Use msvcrt by default for PE targets.
205 configure: Try using pure clang as a cross compiler when mingw is not available.
206 winepulse: Move pulse_read to unix lib.
207 winepulse: Move pulse_stop to unix lib.
208 winepulse: Store volume levels in pulse_stream.
209 winepulse: Adjust pulse stream volumes for master volume.
210 winepulse: Adjust pulse stream volumes for session volumes.
211 winepulse: Set pulse master volume to 0 when session is muted.
212 winepulse: Move mult_* functions to separated file.
213 winepulse: Move pulse_write to unix lib.
214 winepulse: Move timer loop to unix lib.
215 msvcrt: Add sincos to importlib.
216 winepulse: Move pulse_start to unix lib.
217 winepulse: Move pulse_reset to unix lib.
218 winepulse: Move pulse_get_render_buffer to unix lib.
219 winepulse: Move release_render_buffer to unix lib.
220 winepulse: Move pulse_set_event_handle to unix lib.
221 winepulse: Move pulse_get_buffer_size to unix lib.
222 winepulse: Move pulse_get_latency to unix lib.
223 winepulse: Move pulse_get_current_padding to unix lib.
224 winepulse: Move pulse_get_capture_buffer to unix lib.
225 winepulse: Move pulse_release_capture_buffer to unix lib.
226 winepulse: Move pulse_get_next_packet_size to unix lib.
227 winepulse: Move pulse_get_frequency to unix lib.
228 vulkan-1/tests: Don't destroy device if it wasn't created.
230 Liam Middlebrook (2):
231 winevulkan: Allow some experimental VK extensions to be translated.
232 winevulkan: Update to VK spec version 1.2.178.
235 kernel32: Remove entry for BasepDebugDump.
236 advapi32: Add stub for LsaEnumerateAccounts.
239 widl: Allow switching between 32 and 64 bit ARM with the -m32/64 option.
240 widl: Pick up the target arch from a prefix on argv[0].
243 dwrite: Check for allocation failures of glyph buffers.
244 mfplat: Use CRT allocation functions.
245 include: Add missing prototypes to mfapi.h.
246 mfmediaengine: Keep latest video frame buffer.
247 mfmediaengine: Keep device manager reference.
248 mfmediaengine: Explicitly store output video format.
249 mfmediaengine: Initial implementation of TransferVideoFrame() for ID3D11Texture2D destination.
250 dwrite/tests: Add some tests for HitTestTextRange().
251 dwrite/layout: Remove duplicated helper.
254 kernel32/tests: Use sizeof(STARTUPINFOEX) for STARTUPINFOEX.STARTUPINFO.cb in process tests.
255 wbemprox: Check for method existence in class_object_GetMethod().
256 wbemprox: Partially implement Win32_Process.Create method.
257 server: Support nested jobs.
258 server: Send completions for existing job processes when adding completion port.
259 kernelbase: Support PROC_THREAD_ATTRIBUTE_JOB_LIST in UpdateProcThreadAttribute().
260 kernelbase: Pass PROC_THREAD_ATTRIBUTE_JOB_LIST to NtCreateUserProcess().
261 ntdll: Validate job handles at process creation.
262 server: Support process job lists.
265 msvcrt: Don't compile msvcr120 math functions in older versions.
266 msvcrt: Import rint implementation from musl.
267 msvcrt: Import rintf implementation from musl.
268 msvcrt: Implement lrint using rint function.
269 msvcrt: Implement lrintf using rintf function.
270 msvcrt: Implement llrint using rint function.
271 msvcrt: Implement llrintf using rintf function.
272 msvcr120: Fix setting status word in fesetenv.
273 msvcr120: Add feupdateenv implementation.
274 msvcr120: Add feupdateenv tests.
275 msvcr120: Add feraiseexcept implementation.
276 msvcr120: Don't modify fenv_t members in math functions.
277 msvcr120: Don't modify fenv_t members in _except1.
278 ucrtbase: Store sse and x87 status in fegetenv function family.
279 ucrtbase: Store sse and x87 exception in fexcept_t.
280 include: Fix denormals handling in _fpclassf inline implementation.
281 msvcrt: Import neabyintf implementation from musl.
282 msvcrt: Import neabyint implementation from musl.
283 msvcrt: Import nextafter implementation from musl.
284 msvcrt: Import nextafterf implementation from musl.
285 msvcrt: Call nextafter in nexttoward implementation.
286 msvcrt: Import nexttowardf implementation from musl.
287 msvcrt: Import cbrtf implementation from musl.
288 msvcrt: Import cbrt implementation from musl.
289 msvcrt: Import ceil implementation from musl.
290 msvcrt: Import ceilf implementation from musl.
291 msvcrt: Import floorf implementation from musl.
292 msvcrt: Import floor implementation from musl.
293 msvcrt: Import truncf implementation from musl.
294 msvcrt: Import trunc implementation from musl.
295 msvcrt: Import fmod implementation from musl.
296 msvcrt: Import fmodf implementation from musl.
297 msvcrt: Import modf implementation from musl.
298 msvcrt: Import modff implementation from musl.
299 msvcrt: Import remquo implementation from musl.
300 msvcrt: Import remquof implementation from musl.
301 ucrtbase: Copy fenv tests from msvcr120.
302 msvcrt: Import remainder implementation from musl.
303 msvcrt: Import remainderf implementation from musl.
304 msvcrt: Import erfcf implementation from musl.
305 msvcrt: Import erff implementation from musl.
306 msvcrt: Import erfc implementation from musl.
307 msvcrt: Import erf implementation from musl.
308 msvcp90: Depend on compiler in _Getcvt implementation if possible.
309 msvcp90: Depend on compiler in _Getcoll implementation if possible.
310 msvcp90: Depend on compiler to handle returning struct in _Getctype.
311 msvcrt: Import _logb implementation from musl.
312 msvcrt: Import _logbf implementation from musl.
313 msvcrt: Import sin implementation from musl.
314 msvcrt: Import cos implementation from musl.
317 hidclass.sys: Use __wine_send_input to send device notifications.
318 server: Add rawinput union to hw_input_t / INPUT_HARDWARE.
319 server: Add RIM_TYPEHID type / hid member to rawinput union.
320 user32: Send WM_INPUT_DEVICE_CHANGE / RAWINPUT to the server.
321 server: Add process argument to find_rawinput_device.
322 server: Add an explicit message field in rawinput_message.
323 server: Add support for RIDEV_DEVNOTIFY rawinput flag.
324 server: Broadcast rawinput messages when desktop is NULL.
325 server: Implement WM_INPUT_DEVICE_CHANGE message dispatch.
326 user32: Update keyboard / mouse rawinput device paths.
327 hidclass.sys: Send rawinput messages with HID report.
328 user32/tests: Skip inconsistent OemKeyScan tests on non-us keyboard.
329 user32/tests: Initialize the cursor position in test_GetRawInputBuffer.
330 user32/tests: Recreate the window to make it more likely to have focus.
331 user32: Factor IsRectEmpty driver check in ShowWindow.
332 user32: Add a default ShowWindow implementation.
333 user32: Return WAIT_TIMEOUT in nulldrv_MsgWaitForMultipleObjectsEx.
334 user32: Duplicate klid to HKL high word in LoadKeyboardLayoutW.
335 explorer: Create systray for the null graphics driver.
336 user32: Add a default WindowPosChanging implementation.
337 user32/tests: Use int for wait_move_event delay type.
340 wine.inf: Don't use DDE for winebrowser by default.
343 winemac.drv: Set view.WantsBestResolutionOpenGLSurface.
345 Zebediah Figura (71):
346 d3dcompiler/tests: Use winetest_push_context().
347 server: Avoid calling get_unix_fd() in IOCTL_AFD_CREATE.
348 server: Do not call sock_reselect() on an uninitialized socket.
349 ws2_32/tests: Clean up and expand tests for WSAPoll().
350 ws2_32/tests: Add a couple of tests for passing empty buffers to recv().
351 ws2_32/tests: Test calling ConnectEx() on a socket which is being accepted into.
352 wined3d: Use the correct device context ops in wined3d_device_context_issue_query().
353 d3d11: Rename d3d11_immediate_context to d3d11_device_context.
354 d3d11: Store a d3d_device pointer in struct d3d11_device_context.
355 ws2_32/tests: Do not close the port passed to CreateIoCompletionPort separately from the port returned.
356 ws2_32/tests: Add more tests for connect() and ConnectEx() with completion ports.
357 ws2_32/tests: Add some tests for shutdown().
358 sechost: Allow hexadecimal and string rights flags to be interleaved.
359 ws2_32/tests: Clean up and expand tests for DisconnectEx().
360 ws2_32/tests: Add some tests for shutdown with completion ports.
361 server: Add a helper to post socket events.
362 server: Rename "pmask" to "pending_events".
363 server: Rename "hmask" to "reported_events".
364 d3d11/tests: Add more tests for state clear and restore via FinishCommandList and ExecuteCommandList.
365 wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_feature_level().
366 wined3d: Pass a wined3d_device_context to wined3d_cs_push_constants().
367 wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_texture().
368 wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_texture_state().
369 wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_sampler_state().
370 quartz/dsoundrender: Remove the no longer used "play_time" field.
371 ntdll: Use %I64x instead of %lx to trace 64-bit values.
372 server: Reset the reported event mask in set_socket_event only when using window messages.
373 ws2_32/tests: Verify that recv() does not reset a pending FD_CLOSE.
374 server: Do not send messages for events that are not currently being selected for.
375 ws2_32: Clear FD_OOB instead of FD_READ when receiving OOB data.
376 server: Post socket events only if selecting for them.
377 server: Poll for FD_CLOSE even if we cannot receive more data.
378 server: Always clear pending messages in sock_wake_up().
379 include: Rename Wine-specific socket ioctls.
380 include: Use FILE_ANY_ACCESS for wine-specific socket ioctls.
381 server: Implement IOCTL_AFD_LISTEN.
382 ws2_32: Use IOCTL_AFD_LISTEN.
383 wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_transform().
384 wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_clip_plane().
385 wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_material().
386 wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_light_enable().
387 wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_light().
388 quartz/tests: Remove the no longer used TestFilterImpl structure.
389 quartz/tests: Use CRT memory allocators.
390 server: Also clear pending events in set_socket_event.
391 winegstreamer: Use a static buffer to enumerate stream types in media_stream_init_desc().
392 include: Print context information after the message type.
393 wined3d: Make wined3d_texture_set_map_binding() static.
394 wined3d: Pass a wined3d_device_context to wined3d_device_set_light().
395 wined3d: Pass a wined3d_device_context to wined3d_device_set_render_state().
396 wined3d: Pass a wined3d_device_context to wined3d_device_set_state().
397 quartz/tests: Avoid testing the result of GetQueueStatus().
398 quartz/tests: Fix some test failures related to thread timing.
399 ws2_32: Cache the synchronous I/O event in the per-thread data.
400 ws2_32: Remove a leftover cast.
401 server: Allow polling on an fd after it was removed.
402 server: Introduce IOCTL_AFD_WINE_CONNECT.
403 ws2_32: Use IOCTL_AFD_WINE_CONNECT in ConnectEx().
404 ws2_32: Use IOCTL_AFD_WINE_CONNECT in connect().
405 winegstreamer: Shut down the read thread before releasing the IMFByteStream.
406 winegstreamer: Make the file_size field of struct parser into a local variable.
407 advapi32: Quiet a couple of noisy FIXMEs.
408 ntdll/tests: Fix a copy-paste error in an ok message.
409 ws2_32: Do not use SHUT_RD.
410 server: Introduce IOCTL_AFD_WINE_SHUTDOWN.
411 ws2_32: Use IOCTL_AFD_WINE_SHUTDOWN in WS2_DisconnectEx().
412 ws2_32: Use IOCTL_AFD_WINE_SHUTDOWN in WS_shutdown().
413 wined3d: Use wined3d_device_context functions internally where possible.
414 wined3d: Remove no longer used wined3d_device functions.
415 ws2_32/tests: Extend WSARecvMsg() tests a bit.
416 ws2_32/tests: Add some tests for SO_RCVTIMEO.
419 include: Add fUseStandardBidi field in SCRIPT_CONTROL.
420 user32: Use wait_graphics_driver_ready() in load_desktop_driver().
421 winedump: Dump the distance array for EMR_EXTTEXTOUTW records.
422 user32/tests: Do not change adapters to every available modes.
423 winex11.drv: Support reporting emulated display depth.
424 user32/tests: Add display DC color depth tests.
425 user32: Optimize getting monitor count with GetSystemMetrics().
426 user32: Optimize getting primary monitor rectangle with GetSystemMetrics().
427 user32: Optimize getting virtual screen rectangle with GetSystemMetrics().
428 user32: Use get_primary_monitor_rect() helper.
429 user32: Add a cache for EnumDisplayDevicesW().
430 winex11.drv: Add a cache for querying XRandR 1.4 current modes.
433 windowscodecs: Add stub for IWICDdsEncoder.
434 windowscodecs/tests: Test DDS parameters for encoder.
435 windowscodecs: Implement IWICDdsEncoder_GetParameters.
436 windowscodecs: Implement IWICDdsEncoder_SetParameters.