1 The Wine development release 5.20 is now available.
3 What's new in this release (see below for details):
4 - More work on the DSS cryptographic provider.
5 - A number of fixes for windowless RichEdit.
6 - Support for FLS callbacks.
7 - Window resizing in the new console host.
10 The source is available from the following locations:
12 https://dl.winehq.org/wine/source/5.x/wine-5.20.tar.xz
13 http://mirrors.ibiblio.org/wine/source/5.x/wine-5.20.tar.xz
15 Binary packages for various distributions will be available from:
17 https://www.winehq.org/download
19 You will find documentation on https://www.winehq.org/documentation
21 You can also get the current source directly from the git
22 repository. Check https://www.winehq.org/git for details.
24 Wine is available thanks to the work of many people. See the file
25 AUTHORS in the distribution for the complete list.
27 ----------------------------------------------------------------
29 Bugs fixed in 5.20 (total 36):
31 14640 Multiple OpenGL applications and games fail at ChoosePixelFormat/SetPixelFormat (Lazarus, Counterclockwise, USI T3 emulator)
32 30364 X3 Reunion hangs at start
33 33392 .NET Framework 4.0 installer misreports disk space if not enough disk space available 'Drive C: Required - 64u MB, Available - 64u MB' ('FormatMessageA/W' needs to support I64)
34 34558 Multiple applications and games wrapped with ASProtect 1.x-2.x protection scheme fail to start after registration (Farm Frenzy 2, Alawar, FL Studio 11.x VSTi 'Slayer2' plugin, FORScan)
35 35694 Serena hits deadlock on exit
36 35744 LabChart Reader 8 installer ends prematurely (VBScript support for class default sub missing)
37 36873 Multiple games have non-functional mouse input, invisible mouse cursor (Chronology, Mount & Blade II: Bannerlord)
38 39297 kernel32.IsValidCodePage and friends don't support code page 708.
39 46950 UFOHD2 crashes when trying to open camera preview
40 47771 Multiple games have broken mouse movement (Alan Wake, Hard Reset, Battlefield 3, Watch Dogs, Sniper Elite V2 Remastered)
41 47906 Alice Madness Return crashes
42 48336 Applications using MS ADO require Recordset Connect to be implemented (Enterprise Architect, Brickcom CMS client)
43 48717 Saints Row 2 needs xactengine3_2.dll
44 49012 Application build with .NET CoreRT crashes due to FLS callbacks not being called
45 49044 CPU-Z 1.92 crashing on startup
46 49450 Adobe Shockwave Player 11.x plugin installer fails with jscript:cc_parser_parse '&&' expression not implemented
47 49529 5.12 regression: Wine segfaults if the +heap debug channel is enabled
48 49661 Red Evil:black screen in game.
49 49673 Backpacker 3:Americana:unhandled exception
50 49679 Visual Studio 98 and Visual Basic 6 installers hang
51 49808 Stellaris loads very slowly
52 49814 FreeBSD 12.1 undebuggable crash on startup (regression)
53 49821 Seismobuild crashes at start
54 49860 Dungeons & Dragons Online 64bit client fails to start in wine-5.16, 5.17, 5.18
55 49904 all wine processes show a definite leak in load_libwine()
56 49950 d3d10:reflection tests crash
57 49960 The Sims Complete Collection is stuck on playing intro
58 49966 powershell_ise.exe fails with Unhandled Exception: System.NotImplementedException: The method or operation is not implemented. at System.Runtime.InteropServices.Marshal.ThrowEx
59 49982 A '(call )' line does not reset %ERRORLEVEL% to 0
60 49997 Capella no yakusoku: Game doesn't start (black screen)
61 50000 Wineconsole crashes on F8
62 50004 Python script hangs when pipe IPC is used
63 50008 Metro Exodus fails to launch since commit fde5967f725624c5ee4995dcbe22f262979c5c9c
64 50016 PS Remote Play can't install: "To use PS Remote Play, update your PC's OS to the latest version, and then install the Media Feature Pack from Microsoft."
65 50020 mf:mf tests crash on Windows 7
66 50025 Cannot run Line (chat app) on Wine
68 ----------------------------------------------------------------
73 cmd: Set errorlevel to 0 when 'call' is invoked with an empty string.
76 documentation: Update Japanese translation.
78 Alexandre Julliard (20):
79 makefiles: List all possible targets in the stub makefiles.
80 winebuild: Add __imp_ label on the import data for delayed imports.
81 server: Create the NLS directory.
82 ntdll: Make NtGetNlsSectionPtr() into a proper Nt syscall.
83 gdi32: Move the font driver out of freetype.c.
84 gdi32: Move the other exported freetype functions to the font backend table.
85 gdi32: Move the realized font handle allocation out of freetype.c.
86 gdi32: Move the font cache list out of freetype.c.
87 gdi32: Move the font file information out of freetype.c.
88 gdi32: Move the font name information out of freetype.c.
89 gdi32: Move the font charset information out of freetype.c.
90 gdi32: Move the font realization information out of freetype.c.
91 gdi32: Move more font metrics information to the generic font structure.
92 gdi32: Move the glyph metrics cache out of freetype.c.
93 gdi32: Move the font critical section out of freetype.c.
94 gdi32: Move the get_glyph_outline() helper to the font function interface.
95 gdi32: Move the GetFontFileData() implementation out of freetype.c.
96 gdi32: Move the GetGlyphIndices() implementation out of freetype.c.
97 gdi32: Don't bother caching the font type.
98 makefiles: Explicitly create destination dirs when installing symlinks.
100 Alistair Leslie-Hughes (5):
101 xactengine3_7: Initial IXACT3Engine tests.
102 sapi: Return a default token in ISpVoice::GetVoice
103 msado15: Implement _Connection Open.
104 server: Fix compile error when irda.h is available.
105 msado15: Implement _Recordset get/put CursorType.
108 amstream: Implement SSUPDATE_CONTINUOUS flag in IDirectDrawStreamSample::Update.
111 user32: Implement GetMouseMovePointsEx().
114 po: Update Lithuanian translation.
117 qedit: Add a version resource.
118 qasf: Add a version resource.
119 dsdmo: Add a version resource.
120 dplaysvr: Add stub program.
121 dpvsetup: Add stub program.
124 winemac: Remove unused GetCurrentProcess() call.
125 mountmgr: Avoid unnecessary permission prompts on macOS 10.15 and newer.
127 Damjan Jovanovic (1):
128 riched20: Implement ITextRange/ITextSelection Copy and Cut.
131 tzres: Add Eastern Standard Time (Mexico) Zone.
134 mfplat: Fix asynchronous object creation from URL.
136 Dmitry Timoshkov (1):
137 advapi32/tests: Add QueryServiceStatusEx test for the EventLog service.
140 windowscodecs: Add a unix library and start to use it for PNG.
141 windowscodecs: Start loading PNG in unix lib.
142 windowscodecs: Get PNG frame information from unix lib.
143 windowscodecs: Move PNG CopyPixels to unix lib.
144 windowscodecs: Use the unix library to find PNG metadata.
145 windowscodecs: Use unix lib to get PNG color contexts.
146 windowscodecs: Do not call png_read_end.
147 windowscodecs: Add a general wrapper around the decoder interface.
148 mscoree: Implement GetTokenForVTableEntry.
151 winevulkan: Generate helpers for wrapped handles.
152 winevulkan: Store a mapping from native handles to wrappers.
153 winevulkan: Implement VK_EXT_debug_utils.
156 qcap/capturegraph: Return E_POINTER when ICaptureGraphBuilder2::FindInterface() is called with NULL filter.
159 dssenh: Don't store the algorithm handle for hashes.
160 dssenh: Implement CPDuplicateHash.
161 dssenh: Implement CPDuplicateKey.
162 dssenh: Implement CPGenRandom.
163 dssenh: Set last error in CPHashData.
164 bcrypt: Add support for duplicating asymmetric keys.
165 dssenh: Implement CPExportKey.
166 dssenh: Implement CPSignHash.
167 dssenh: Implement CPVerifySignature.
168 dssenh: Implement CPGenKey.
169 bcrypt/tests: Fix a key handle leak.
170 bcrypt: Copy all fields in key_duplicate.
171 dssenh: Implement CRYPT_DELETEKEYSET.
172 dssenh: Implement CPGetUserKey.
173 dssenh: Access the hash value directly in CPSignHash and CPVerifySignature.
174 dssenh: Implement CPSetHashParam.
175 dssenh: Add support for exporting private keys.
176 dssenh/tests: Add tests for CryptDuplicateKey.
177 dssenh: Always duplicate container keys.
178 dssenh: Add support for importing version 3 public keys.
179 dssenh: Implement CRYPT_MACHINE_KEYSET.
180 dssenh: No longer prefer native.
181 bcrypt: Use internal helpers to generate hashes.
182 msado15: Use correct string type for default provider.
183 msado15: Avoid a crash with tracing on.
184 wbemprox: Also return system properties from IWbemClassObject::GetNames.
185 wbemprox: Implement IWbemClassObject::GetMethodQualifierSet.
188 gdiplus: Fix texture brush rotation.
189 wbemprox: Implement Win32_SoundDevice.Status.
192 wined3d: Make adapter_vk_clear_uav() static.
193 wined3d: Avoid accessing NULL depth/stencil state in wined3d_context_vk_update_graphics_pipeline_key().
194 wined3d: Clear the graphics pipeline key stencil test state when the stencil test is disabled.
195 wined3d: Do not invalidate STATE_RENDER(WINED3D_RS_TWOSIDEDSTENCILMODE).
196 wined3d: Use wined3d_get_primary_adapter_luid() if we didn't get a valid LUID from Vulkan.
198 Huw D. M. Davies (50):
199 riched20: Use a structure to hold the repaint range.
200 riched20: Use ME_Paragraph ptrs for the update range.
201 riched20: Use the table_row_start/end() helpers.
202 riched20: Use ME_Paragraph and ME_Run ptrs in GetCursorCoordinates().
203 riched20: Use ME_Paragraph ptrs in InternalDeleteText().
204 riched20: Use paragraph and run ptrs in InsertTextFromCursor().
205 riched20: Use the run and para helpers in the cursor movement functions.
206 riched20: Use paragraph ptrs in FindPixelPos().
207 riched20: Pass a run ptr to the run joining function.
208 riched20: Return a run ptr from the run creation function.
209 riched20: Return a run ptr from the run splitting function.
210 riched20: Don't mark the diTextStart paragraph as requiring repainting.
211 riched20: Don't return the diTextStart paragraph from para_prev().
212 riched20: Use run ptrs in SetCharFormat().
213 riched20: Return a run ptr from the run insert function.
214 riched20: Use run ptrs in GetCharFormat().
215 riched20: Simplify the cursor from char offset function.
216 riched20: Simplify the char offset from run offset function.
217 riched20: Remove InternalInsertTextFromCursor().
218 riched20: Use a run ptr in GetXForArrow().
219 riched20: Pass a paragraph ptr to the table update flags function.
220 riched20: Return a paragraph ptr from the paragraph creation function.
221 riched20: Use paragraph and run ptrs in the paragraph splitting function.
222 riched20: Pass a run ptr to, and return a para ptr from, the para splitting function.
223 riched20: Pass and return a paragraph ptr in the paragraph joining function.
224 riched20: Pass a paragraph ptr to the paragraph destruction function.
225 riched20: Pass a paragraph ptr to a couple of the drawing helpers.
226 riched20: Pass a run ptr to the run drawing function.
227 riched20: Use helpers in the cursor to start/end functions.
228 richedit: Use the correct ptr to the cell.
229 riched20: Pass run ptrs to the font and colour table writer function.
230 riched20: Pass paragraph ptrs to the paragraph property writers.
231 riched20: Update both co-ords during layout.
232 riched20: Start re-wrap loop at the beginning of any table.
233 riched20: Don't split the paragraph at the first \intbl.
234 riched20: Use the paragraph and run helpers in the delete text function.
235 riched20: Remove a redundant condition.
236 riched20: Pass a cursor ptr to the insert style retrieval function.
237 riched20: Pass and return paragraph ptrs in the table append row function.
238 riched20: Return a paragraph ptr from the table insert helper.
239 riched20: Return a para ptr from the insert start table row functions.
240 riched20: Return paragraph ptrs from the remaining table insert functions.
241 riched20: Use cell ptrs in the rtf parsing code.
242 riched20: Use cell ptrs in the rtf writing code.
243 riched20: Simplify some of the drawing code using a few helpers.
244 riched20: Use cell and para ptrs in the table border drawing function.
245 riched20: Use cell ptrs in the wrapping functions.
246 riched20: Use cell ptrs in the table position to offset function.
247 riched20: Use run and para ptrs in the cursor move lines function.
248 riched20: Remove the caret at end hack.
251 conhost: Support window resizing.
252 conhost: Import scrolling support from wineconsole.
253 conhost: Store title as zero terminated string.
254 conhost: Set console window title.
255 kernelbase: Use conhost in AllocConsole.
256 wineconsole: Reimplement as AllocConsole wrapper.
257 kernel32: Always use conhost for WriteConsoleW.
258 kernel32: Always use conhost for ReadConsoleW.
259 kernel32: Move ReadConsole and WriteConsole to kernelbase.
260 kernelbase: Remove window position adjustment from SetConsoleCursorPosition.
261 kernelbase: Remove no longer needed free_console server call from FreeConsole.
262 server: Remove no longer used console requests.
263 server: Remove no longer needed server-side screen buffer ioctls.
264 server: Remove no longer needed server-side console input ioctls.
265 server: Remove no longer needed console_input fields.
266 server: Remove no longer needed screen_buffer fields.
267 server: Remove no longer needed console_input_events_append.
268 server: Remove no longer used console renderer object.
269 kernel32/tests: Use current console input in test_ReadConsole.
270 console: Don't allow blocking read ioctls on screen buffer object.
271 conhost: Fix check for the last history index in edit_line_find_history.
272 conhost: Remove no longer needed SET_CONSOLE_INPUT_INFO flags.
273 conhost: Remove no longer needed CHAR_INFO_MODE_TEXTSTDATTR.
274 conhost: Remove no longer needed SET_CONSOLE_OUTPUT_INFO flags.
275 conhost: Remove no longer needed condrv_input_info fields.
276 kernel32/tests: Add more FlushConsoleInputBuffer tests.
277 kernel32: Use new IOCTL_CONDRV_SCROLL ioctl for FlushConsoleInputBuffer implementation.
278 kernel32: Move FlushConsoleInputBuffer to kernelbase.
279 server: Implement console input flush in server.
280 kernel32: Import FlushFileBuffers from kernelbase.
281 conhost: Remove no longer needed non-blocking IOCTL_CONDRV_READ_INPUT.
282 kernelbase: Move console code page validation to conhost.
285 dbghelp: Avoid forwarded exports.
286 windowscodecs: Add a missing FIXME.
287 windowscodecs: Add 32bppRGBA to 32bppBGRA copy.
288 windowscodecs/tests: Add 32bppRGBA/BGRA converter tests.
291 comdlg32: Set background to transparent for font dialog sample text.
293 Joachim Priesner (1):
294 ntdll: Fix read buffer overflow in find_file_in_dir().
297 documentation: Update German translation.
300 po: Update Finnish translation.
302 Liam Middlebrook (1):
303 winevulkan: Update to VK spec version 1.2.158.
306 dwmapi: Quiet noisy fixme.
309 d3dcompiler/tests: Always expect failure in test_reflection_desc_ps_output() on d3d10.
311 Michael Stefaniuc (40):
312 qmgr: Use wide-char string literals.
313 ntdsapi: Use wide-char string literals.
314 write: Use wide-char string literals.
315 plugplay: Use wide-char string literals.
316 spoolsv: Use wide-char string literals.
317 termsv: Use wide-char string literals.
318 presentationfontcache: Use wide-char string literals.
319 winmgmt: Use wide-char string literals.
320 localui: Use wide-char string literals.
321 localui/tests: Use strings instead of arrays of chars.
322 wer: Use wide-char string literals.
323 iexplore: Use wide-char string literals.
324 opcservices: Use wide-char string literals.
325 msisip: Use wide-char string literals.
326 spoolss: Use wide-char string literals.
327 lz32/tests: Use wide-char string literals.
328 taskmgr: There's no need to GetProcAddress() IsHungAppWindow().
329 taskmgr: SwitchToThisWindow() is available, remove alternate code path.
330 wbemprox: Use 0 terminated WCHAR strings in wql.y.
331 wbemprox: Use wide-char string literals.
332 explorer: Use the WCHAR string version of LoadLibrary.
333 taskmgr: Shell32 is imported, no need to load it again.
334 rpcss: Use wide-char string literals.
335 taskmgr: Use GetGuiResources() directly.
336 dsound: Use wide-char string literals.
337 schtasks/tests: Use wide-char string literals.
338 uxtheme/tests: Use wide-char string literals.
339 find: Use wide-char string literals.
340 uxtheme: Use wide-char string literals in struct initialization.
341 uxtheme: Use wide-char string literals.
342 taskmgr: Use NtQuerySystemInformation() directly.
343 taskmgr: Use two kernel32 functions directly.
344 xcopy: Use wide-char string literals.
345 ipconfig: Use wide-char string literals.
346 xcopy: Avoid an empty if-block.
347 msi: Use 0 terminated WCHAR strings in the SQL tokenizer.
348 cryptnet/tests: Change the scope of a variable from global to local.
349 cryptnet: Use wide-char string literals.
350 inetcomm: Zero terminate the mhtml WCHAR strings.
351 inetcomm: Use wide-char string literals.
354 kernelbase: Use command_lineW for GetCommandLineW.
355 kernelbase: Remove DECLSPEC_HOTPATCH for GetCommandLine[AW].
358 kernelbase: Add a name for codepage 708.
359 dbgeng/tests: Use different flags for unsupported options.
360 mfplat/mediatype: Enable IMFVideoMediaType based on major type.
361 mfplat/mediatype: Add IMFAudioMediaType stub.
362 evr/mixer: Add SetOutputBounds().
363 evr/mixer: Use regular media type interface for input streams.
364 evr/mixer: Use regular media type interface for the output stream.
365 evr/mixer: Implement SetOutputType().
366 dxva2/tests: Add a test for GetVideoProcessorDeviceGuids().
367 d3d11/tests: Add some more tests for device context state.
368 mf/evr: Do not use IMFVideoMediaType when setting mixer types.
369 mf/evr: Trigger media type negotiation through presenter for reference stream.
370 evr/tests: Add a test for MF_SA_REQUIRED_SAMPLE_COUNT.
371 evr/mixer: Keep original media type instances for inputs.
372 evr/tests: Use wide string literals.
373 evr: Add already implemented functions from mfplat.dll.
374 evr: Partially implement MFCreateVideoSampleFromSurface().
375 evr/sample: Implement IMFDesiredSample.
376 evr/sample: Add a surface buffer on sample creation.
377 evr/sample: Implement GetService() for surface buffers.
378 mf/evr: Add attributes store for the sink.
379 mf/evr: Add default attributes on sink creation.
380 evr/tests: Add a mixer tests for clearing output in idle state.
381 mf/tests: Add a test for EVRConfig_ handling for already initialized presenter.
382 mf/evr: Add per-stream lock.
383 mf/evr: Implement NotifyPreroll().
384 mf/evr: Implement stream state change events.
385 server: Handle duplicate handles when inheriting them for the new process.
386 comsvcs: Create MTA without initialization thread.
387 include: Fix typo in IDirectXVideoProcessor argument name.
388 dxva2: Fix new handle flags initialization.
389 dxva2: Add video processor stub.
390 dxva2: Add GetCreationParameters().
391 evr/mixer: Keep one input sample per stream.
392 evr/mixer: Map render target type to video processor guid that supports it.
393 ntdll/actctx: Handle empty <dependency> element.
394 dxva2: Fix valid handle range test.
395 evr/mixer: Keep dxva device handle around.
396 evr/mixer: Create dxva processor when output type is set.
397 evr/mixer: Ignore draining command.
398 evr/mixer: Drop input samples on flush.
399 evr/mixer: Maintain streaming state flag.
400 comsvcs/tests: Close test thread handles.
401 mf/sar: Use advertised type in IsMediaTypeSupported().
402 evr/mixer: Implement GetInputStatus().
403 evr/mixer: Implement GetOutputStatus().
404 evr/mixer: Fill output surfaces when not streaming.
405 evr/mixer: Only accept single output buffer in ProcessOutput().
406 evr/presenter: Add IMFVideoPositionMapper stub.
407 evr/sample: Implement SetDirectXManager().
408 mf/evr: Create sample allocators on demand.
409 mf/evr: Set the device manager for sample allocators.
410 mfplat: Implement DXGI device manager handle management.
411 mfplat: Implement GetVideoService() for the device manager.
412 mf: Add default attributes for sample copier.
413 evr/mixer: Send sample requests when switching to streaming mode.
414 evr/mixer: Request more sample on successful ProcessOutput().
417 ntdll: Always align stack in call_user_apc_dispatcher() on x86_64.
418 ntdll: Zero all FLS slots instances in RtlFlsFree().
419 ntdll: Call FLS callbacks.
420 ntdll: Support AVX registers for other thread in Nt{Get|Set}ContextThread().
421 ntdll/tests: Test getting and setting AVX registers for the other thread.
422 ntdll/tests: Test AVX context with debugger.
423 kernelbase: Fix status check in GetExitCodeProcess().
424 server: Add SeTcbPrivilege (SE_TCB_NAME) to the list of admin privileges.
425 wined3d: Add GPU information for NVIDIA GeForce GTX 1080 Mobile.
426 ntdll: Fix xmm registers copy offset in call_consolidate_callback() on x86_64.
429 ucrtbase: Support UTF8 codepage in _wcstombs_l.
430 ucrtbase: Support UTF8 codepage in _wctomb_s_l.
431 ucrtbase: Support UTF8 codepage in wctomb.
434 jscript: Cc_parser_parse implement '&&' expression.
435 vbscript: Add is_default flag to function_decl_t.
436 vbscript: Support class default sub.
439 kernelbase: Fix comment and trace message in console.
442 evr/tests: Fix a test failure on Windows 7.
443 mmdevapi/tests: Fix some test failures on Windows <= 7.
444 d3dcompiler: Fix a leak on error path (Coverity).
446 Vijay Kiran Kamuju (1):
447 hnetcfg: Return S_OK in get_StaticPortMappingCollection.
449 Zebediah Figura (20):
450 strmbase: Print colorimetry information in strmbase_dump_media_type().
451 ws2_32/tests: Rewrite the CF_DEFER test in test_AcceptEx().
452 ws2_32/tests: Remove some workarounds for no longer supported versions of Windows.
453 ws2_32/tests: Remove workarounds from test_events().
454 ws2_32/tests: Fix a test failure on w10pro64.
455 ws2_32/tests: Add more tests for passing short buffers to AcceptEx().
456 wine.inf: IsInstalled is a DWORD value.
457 wintrust: Stub CryptCATPutMemberInfo().
458 wintrust: Stub CryptCATPersistStore().
459 wintrust: Stub CryptCATPutAttrInfo().
460 wintrust: Stub CryptCATPutCatAttrInfo().
461 mssign32: Stub SignerSign().
462 ws2_32/tests: Fix an intermittent test failure on w10pro64.
463 ws2_32: Use server-side async I/O in AcceptEx().
464 ws2_32: Use server-side async I/O in accept().
465 server: Forbid accepting into the same socket more than once.
466 quartz: Return the paused timestamp from IMediaSeeking::GetCurrentPosition() if the graph is running asynchronously.
467 winegstreamer: Respect integer promotion rules when clamping timestamp + diff.
468 winegstreamer: DirectShow and GStreamer proportions are inverted with respect to each other.
469 quartz/tests: Use compare_double() to test IBasicVideo::get_AvgTimePerFrame().
472 wined3d: Clean up swapchain state on wined3d_swapchain_init() failure paths.
473 ddraw/tests: Use the correct version of DirectDraw calls.
474 ddraw/tests: Fix possible memory leaks.
475 dxgi/tests: Fix a window leak in test_inexact_modes().
478 gdiplus/tests: Add tests for GdipMeasureString with StringFormatFlagsNoWrap.
479 gdiplus: Support StringFormatNoWrap for GdipMeasureString.