msvcrt: Import _hypotf implementation from musl.
[wine.git] / ANNOUNCE
blobcd93a19c5eca4b1bd9df72df06ec2abac5b61bce
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.
7   - Various bug fixes.
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 ----------------------------------------------------------------
58 Changes since 6.8:
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.
84 Andrew Eikum (2):
85       shell32: Avoid gcc 11 misleading-indentation warning.
86       windowscodecs: Avoid types deprecated in libtiff 4.3.
88 Aurimas Fišeras (3):
89       po: Update Lithuanian translation.
90       po: Update Lithuanian translation.
91       po: Update Lithuanian translation.
93 Biswapriyo Nath (1):
94       include: Add more PROPERTYKEY declarations in propkey.h.
96 Brendan Shanks (1):
97       wined3d: Add GPU information for Intel UHD Graphics 630.
99 Derek Lesho (5):
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.
111 Dongwan Kim (1):
112       gdiplus: Implement GdipEnumerateMetafileSrcRectDestRectI.
114 Esme Povirk (1):
115       slc: Return a non-zero handle from SLOpen.
117 Floris Renaud (1):
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.
141 Hans Leidekker (22):
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.
165 Haoyang Chen (2):
166       gdi32: Fix a memory leak.
167       gdiplus: Avoid filtering of special characters.
169 Henri Verbeet (1):
170       winedump: Make print_longlong() work on 64-bit.
172 Hugh McMaster (12):
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().
195 Jacek Caban (33):
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.
234 Louis Lenders (2):
235       kernel32: Remove entry for BasepDebugDump.
236       advapi32: Add stub for LsaEnumerateAccounts.
238 Martin Storsjo (2):
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].
242 Nikolay Sivov (9):
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.
253 Paul Gofman (9):
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.
264 Piotr Caban (50):
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.
316 Rémi Bernon (21):
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.
339 Shawn M. Chapla (1):
340       wine.inf: Don't use DDE for winebrowser by default.
342 Stefan Dösinger (1):
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.
418 Zhiyi Zhang (12):
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.
432 Ziqing Hui (4):
433       windowscodecs: Add stub for IWICDdsEncoder.
434       windowscodecs/tests: Test DDS parameters for encoder.
435       windowscodecs: Implement IWICDdsEncoder_GetParameters.
436       windowscodecs: Implement IWICDdsEncoder_SetParameters.
439 Alexandre Julliard
440 julliard@winehq.org