1 The Wine development release 5.21 is now available.
3 What's new in this release (see below for details):
4 - GDI32 library converted to PE.
5 - More fixes for windowless RichEdit.
6 - A number of timezone updates.
9 The source is available from the following locations:
11 https://dl.winehq.org/wine/source/5.x/wine-5.21.tar.xz
12 http://mirrors.ibiblio.org/wine/source/5.x/wine-5.21.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 5.21 (total 24):
30 22797 'Sample1_DLLEmbedding' example from BoxedApp SDK v3.3.x (native API application virtualization scheme) crashes (needs hookable NtXXXSection API entries / NT syscalls)
31 25834 Adobe Reader X and XI cannot open in Protected Mode due to advapi32.dll CreateRestrictedToken being a stub
32 33072 dxdiag: can't retrieve network info
33 33162 Acrobat Reader 11 crashes on start (native API application virtualization, NtProtectVirtualMemory removes execute page protection on its own code)
34 45349 Multiple applications and games crash due to missing support for 64-bit syscall thunks (StreetFighter V, World of Warcraft)
35 45550 League of Legends 8.15+ anticheat fails due to incorrect implementation of NtQuerySystemInformation(SystemModuleInformation)
36 45666 Multiple Riot Games' anti-cheat / protection schemes need implementation of NtQuerySystemInformation 'SystemModuleInformationEx' info class (League of Legends 8.15+, Valorant/Vanguard)
37 46373 Unknown game crashes in unimplemented function msvcr80.dll._strnset_s in 1.6.2
38 46870 League of Legends 8.12+ fails to start a game in Vista+ mode (anticheat engine, SystemExtendedProcessInformation)
39 46967 GOG Galaxy doesn't run in virtual desktop
40 48203 Far Manager 3 broken appearance
41 48204 Wineconsole running Far File Manager 3 crashes as soon as you try to resize its window
42 48715 A Wolf RPG game freezes on map transition
43 49298 Path of Exile crashes when switching to Vulkan Renderer on RADV. Switching works in proton.
44 49449 Terraria Mobile Server (.NET 4.x) crashes with System.NotImplementedException NATUPNPLib.IUPnPNAT.get_StaticPortMappingCollection()
45 49610 mu online crashes after login
46 49739 Microsoft Flight Simulator needs netutils.dll and srvcli.dll
47 49785 Linking of some objects sometimes fails with undefined reference to windowscodecs GUIDs
48 49813 Implement debugging feedback extensions (VK_EXT_debug_utils/VK_EXT_debug_report) to forward data to Linux impl
49 50038 IWbemClassObject::Get method with wszName = NULL crashes inside wbemprox
50 50039 Wine 5.18+ fails build on Ubuntu 18.04 with libwine.so Makefile symbolic link
51 50049 Fallout 76 opens black screen then crashes on start
52 50050 Wine 5.20 build fails on Ubuntu 16.04
53 50077 .NET 3.5SP1 installer depends on PEB->Reserved[1] / AtlThunkSListPtr32 being 0 or 1
55 ----------------------------------------------------------------
60 qmgr/tests: Fix issues with handling of transient errors.
61 qmgr/tests: Test registering an IBackgroundCopyCallback2.
64 gdi32: Fix font rendering issue when child font is used.
66 Alexandre Julliard (54):
67 gdi32: Set the font file name directly at creation time.
68 gdi32: Move the text metrics cache into the generic font structure.
69 gdi32: Move the kerning pairs data into the generic font structure.
70 gdi32: Move the fonts directory helper functions out of freetype.c.
71 gdi32: Move the Add/RemoveFontResource() implementation out of freetype.c.
72 gdi32: Move the AddFontMemResourceEx() implementation out of freetype.c.
73 gdi32: Move the loading of system fonts out of freetype.c.
74 gdi32: Move the loading of registry fonts out of freetype.c.
75 gdi32: Move the loading of filesystem fonts out of freetype.c.
76 gdi32: Add a helper to load a font without using a face.
77 gdi32: Allocate the backend font data in the load_font() helper.
78 gdi32: Move the CreateScalableFontResource() implementation out of freetype.c.
79 gdi32: Move part of the GetFontUnicodeRanges() implementation out of freetype.c.
80 gdi32: Move part of the GetCharWidthInfo() implementation out of freetype.c.
81 gdi32: Move the GSUB table support out of freetype.c.
82 gdi32: Store child font objects directly on the child font list.
83 gdi32: Move the glyph index mapping for GetGlyphOutline() out of freetype.c.
84 gdi32: Add a helper to get the FreeType face and cleanup private data.
85 winebuild: Set PE timestamps to a hash of the file name.
86 gdi32: Move the font substitution list out of freetype.c.
87 gdi32: Move the font family list out of freetype.c.
88 gdi32: Move the face data structure out of freetype.c.
89 gdi32: Move the loading of font replacements out of freetype.c.
90 gdi32: Make the family replacement point to the family object.
91 gdi32: Move the font link support out of freetype.c.
92 gdi32: Move the creation of the child font list out of freetype.c.
93 gdi32: Move the dumping of the font list out of freetype.c.
94 gdi32: Add a helper function to create a font from a face.
95 gdi32: Move the font enumeration out of freetype.c.
96 gdi32: Move the default AA flags handling out of freetype.c.
97 gdi32: Move the font list reordering out of freetype.c.
98 gdi32: Add a separate backend function to load the font list.
99 gdi32: Move the font cache out of freetype.c.
100 gdi32: Add a helper function to create a face.
101 gdi32: Update the Windows font registry keys only when they have changed.
102 gdi32: Move the remove_font() function out of freetype.c.
103 gdi32: Add some helper functions for font matching.
104 gdi32: Move the handling of font family fallbacks out of freetype.c.
105 gdi32: Move the rest of the font matching code out of freetype.c.
106 gdi32: Move the SelectFont() implementation out of freetype.c.
107 gdi32: Make a few definitions private to font.c.
108 gdi32: Don't abort enumeration if a font fails to load.
109 gdi32: Store scale as an integer.
110 gdi32: Use FT_MulDiv() instead of the kernel32 function.
111 gdi32: Use ntdll functions for codepage conversions.
112 gdi32: Use ntdll functions for DOS<->Unix path conversions.
113 gdi32: Use ntdll functions for locale support.
114 gdi32: Use ntdll functions for heap allocations.
115 gdi32: Move FreeType support to a new Unix library.
116 gdi32: Move OSMesa support to the Unix library.
117 gdi32: Build with msvcrt.
118 include: Fix setjmp() support with 32-bit ucrtbase.
119 gdi32: Use wide-character string literals.
120 gdi32: Initialize the font gamma ramp with the other font options.
122 Alistair Leslie-Hughes (5):
123 include: Add missing DBPARAM* types and enums.
124 include: Add more DBGUID_* defines.
125 srvcli: Add stub dll.
126 netutils: Add stub dll.
127 include: Add DBPROPSTATUSENUM enum values.
130 amstream: Wait for the state transition to complete in AMMultiMediaStream::SetState.
131 amstream: Handle AMMSF_NOCLOCK flag in AMMultiMediaStream::OpenFile.
132 amstream: Release filter critical section before calling upstream seeking methods.
133 amstream: Implement MediaStreamFilter::WaitUntil.
134 amstream: Implement MediaStreamFilter::Flush.
137 po: Update Lithuanian translation.
138 po: Update Lithuanian translation.
139 po: Update Lithuanian translation.
142 d3d8thk: Add stub dll.
143 d3dim700: Add stub dll.
144 ddrawex: Add version resource.
145 dpwsockx: Add version resource.
146 dx8vb: Add version resource.
147 ksproxy.ax: Add version resource.
148 ksuser: Add version resource.
149 qdvd: Add version resource.
150 strmdll: Add version resource.
151 dpnsvr: Add version resource.
154 mf/evr: Initialize variables which are checked conditionally.
157 ntdll: Update the PEB structures for newer Windows versions.
158 dbghelp: Use PEB->CloudFileFlags instead of PEB->Reserved for debug base address.
159 ntdll: Rename PEB->Reserved[1] to AtlThunkSListPtr32.
160 include: Force stack alignment on x86_64 with Clang.
162 Damjan Jovanovic (1):
163 oleaut32: IFont never had an IPersistStreamInit interface.
166 wine.inf: Fix SA Eastern Standard Time Zone info.
167 tzres: Add Tocantins Standard Time Zone.
168 tzres: Add Magallanes Standard Time Zone.
169 tzres: Add Saint Pierre Standard Time Zone.
170 msvcr110/tests: Use macro to get function address.
171 msvcr110: Add _Context::_CurrentContext.
172 msvcr120/tests: Add _Context::_CurrentContext tests.
173 concrt140/tests: Add _Context::_CurrentContext tests.
174 wine.inf: Update Azerbaijan Time Zone.
175 wine.inf: Update Caucasus Time Zone.
176 wine.inf: Update Pacific SA Time Zone.
179 winegstreamer: Insert videoconvert into decoded-video streams.
180 winegstreamer: Insert audioconvert into decoded audio streams.
181 winegstreamer: Replace gst_pad_get_current_caps with gst_pad_query_caps.
182 winegstreamer: Implement IMFMediaSource::CreatePresentationDescriptor.
183 mfreadwrite: Abort ReadSample when unable to request any samples.
184 winegstreamer: Implement IMFMediaSource::Start.
185 winegstreamer: Implement IMFMediaStream::RequestSample.
186 mfmediaengine: Provide the partial topology to the media session.
187 mfmediaengine: Issue MF_MEDIA_ENGINE_EVENT_CANPLAY upon MF_TOPOSTATUS_READY.
188 mfmediaengine: Issue MF_MEDIA_ENGINE_EVENT_PLAYING upon MESessionStarted.
189 mfmediaengine: Issue MF_MEDIA_ENGINE_EVENT_ENDED upon MESessionEnded.
190 winegstreamer: Implement IMFMediaStream::GetMediaSource.
193 widl: Add the [allocate] acf attribute.
196 windowscodecs: Move TIFF decoding to unix lib.
197 avifil32: Only add the first stream reference to the parent.
200 oleacc/tests: Fix the window name and keyboard shortcut tests.
203 winevulkan: Implement VK_EXT_debug_report.
204 winevulkan: Don't use comments for object types.
205 winevulkan: Remove comment from VkEnumValue.
206 winevulkan: Implement VK_EXT_debug_marker.
207 winevulkan: Enable VK_EXT_validation_features and VK_EXT_validation_flags.
210 quartz/vmr9: Don't expose IVMRFilterConfig9 from the VMR7.
211 quartz/vmr9: Don't expose IVMRMonitorConfig9 from the VMR7.
212 quartz/vmr9: Don't expose IVMRMonitorConfig9 in renderless mode.
213 quartz/vmr9: Don't expose IVMRFilterConfig from the VMR9.
214 quartz/vmr9: Don't expose IVMRMonitorConfig from the VMR9.
215 include: Add INetworkEvents and some enums to netlistmgr.idl.
216 quartz: Implement IVMRAspectRatioControl9.
217 netprofm: Create a connection point object for INetworkEvents.
219 Giovanni Mascellani (3):
220 d2d1: Implement D2D1SinCos().
221 d2d1: Implement D2D1Tan().
222 d2d1: Implement D2D1Vec3Length().
225 msi: Use wide character string literals in action.c.
226 msi: Use wide character string literals in dialog.c.
227 msi: Use wide character string literals in msi.c.
228 msi: Use wide character string literals in package.c.
229 msi: Use wide character string literals in registry.c.
230 msi: Use wide character string literals in classes.c.
231 msi: Use wide character string literals in the remaining files.
232 msi/tests: Use wide character string literals.
233 wbemprox/tests: Test more sound device properties.
234 jscript: Fix allocation size in BindFunction_call.
236 Huw D. M. Davies (45):
237 riched20: Pass a row ptr to the cursor from row function.
238 riched20: Use row ptrs in the cursor from virtual co-ords function.
239 riched20: Use row and para helpers for the selection function.
240 riched20: Use row helpers for Home/End key handling.
241 riched20: Use row ptrs in the cursor to co-ordinates function.
242 riched20: Use row and para helpers in the extend selection function.
243 riched20: Use a run helper in the delete text function.
244 riched20: Use a row ptr in the run drawing function.
245 riched20: Use row and para ptrs in the ensure visible function.
246 riched20: Fix the struct size check in the para fmt retrieval function.
247 riched20: Pass para ptrs to the various para selection functions.
248 riched20: Use a helper function to find the first row.
249 riched20: Use a helper to find the next run.
250 riched20: Use the paragraph from the cursor.
251 riched20: Use a helper to retrieve the first run.
252 riched20: Use para and run ptrs in the table deletion function.
253 riched20: Use cell ptrs in the append table row function.
254 riched20: Use cell ptrs in the table tab handler.
255 riched20: Use paragraph ptrs in the table move from row start function.
256 riched20: Remove the table corruption check function.
257 riched20: Use a paragraph ptr in the stream in function.
258 riched20: Use paragraph ptrs in the selection link check function.
259 riched20: Use paragraph ptrs in the enter handler.
260 riched20: Use a run ptr in the rtf row handler.
261 riched20: Use paragraph and run ptrs in the find text function.
262 riched20: Use paragraph ptrs in the WM_CHAR handler.
263 riched20: Use a run ptr in the link notify function.
264 riched20: Use para and row ptrs in the EM_GETFIRSTVISIBLELINE handler.
265 riched20: Return a row ptr from the row from row number function.
266 riched20: Use run ptrs in the EM_GETLINECOUNT handler.
267 riched20: Use row ptrs in the EM_GETLINELENGTH handler.
268 riched20: Use run ptrs in the text retrieval function.
269 riched20: Remove unused ME_RowStart().
270 riched20: Use para and row ptrs in the row number from offset function.
271 riched20: Use a paragraph ptr in the clipboard get text function.
272 riched20: Use a paragraph ptr in the rtf writer function.
273 riched20: Use a cell helper in the split paragraph undo function.
274 riched20: Return a row ptr from the row creation function.
275 riched20: Use para_in_table() instead of IsInTable().
276 riched20: Pass paragraph ptrs to the para marking function.
277 riched20: Use more cell helpers in some of the table functions.
278 riched20: Use cell ptrs in the paragraph splitting and joining functions.
279 riched20: Use cell ptrs to link the cells.
280 riched20: Add next / prev run from cursor helpers.
281 riched20: Use paragraph and run ptrs in the cursor structure.
284 mshtml: Ignore attempts to set read only builtin properties in IE9+ mode.
287 wininet: Prevent use after free in logging.
290 winemac: Update the stored display settings immediately.
292 Michael Stefaniuc (21):
293 wmic: Use wide-char string literals.
294 wmiutils: Use wide-char string literals.
295 wmp: Use wide-char string literals.
296 sapi: Zero terminate some WCHAR strings.
297 powrprof: Use wide-char string literals.
298 sapi/tests: Use wide-char string literals.
299 msxml3/tests: Use wide-char string literals.
300 appwiz.cpl: Use wide-char string literals.
301 appwiz.cpl: Use zero terminated wide-char strings.
302 serialui: Use wide-char string literals.
303 mshtml: Use wide-char string literals in struct initialization.
304 wscript: Use wide-char string literals.
305 wscript: Zero terminate the host version string to avoid random garbage.
306 wscript: Use a zero terminated wchar string.
307 winedevice: Don't make a variable const just to cast the const away.
308 winedevice: Use wide-char string literals.
309 svchost: Use wide-char string literals.
310 svchost: Inline a simple string.
311 pdh: Use wide-char string literals.
312 mpr: Use wide-char string literals.
313 jscript: Use wide-char string literals in struct initialization.
316 include: Introduce MEM_EXTENDED_PARAMETER.
317 ntdll: Stub NtAllocateVirtualMemoryEx.
318 kernelbase: Implement VirtualAlloc2.
321 evr/mixer: Add IMFClockStateSink stub.
322 mf/evr: Notify mixer and presenter on clock state changes.
323 mf/evr: Implement OnClockSetRate().
324 mfplat: Add IMFGetService stub for 2D memory buffer.
325 evr: Implement sample allocator.
326 include: Remove confusing comment.
327 include: Add IMFVideoSampleAllocatorEx.
328 evr/tests: Add sample allocator test with surface-backed buffers.
329 mfplat: Implement MFCreateDXSurfaceBuffer().
330 evr/allocator: Use different buffer implementation for surface buffers.
331 evr: Add MFCreateDXSurfaceBuffer() forward.
332 evr/presenter: Set mixer output type on type negotiation.
333 mf/copier: Move sample copier to its own file.
334 mf/evr: Pass incoming samples to the mixer.
335 mf/evr: Notify presenter on new input.
336 mfplat: Consider first type entry when returning major type for stream descriptors.
337 mfreadwrite/tests: And some more tests for ReadSample() and failing requests.
338 mfplat: Implement MFFrameRateToAverageTimePerFrame().
339 mfmediaengine: Keep "preload" property.
340 mfplat: Implement MFMapDXGIFormatToDX9Format().
341 mfmediaengine: Add video output topology branch.
342 mfmediaengine: Issue MF_MEDIA_ENGINE_EVENT_FIRSTFRAMEREADY on first video sample.
343 mfmediaengine: Implement OnVideoStreamTick().
344 mfmediaengine: Implement GetNativeVideoSize().
345 evr/presenter: Create dedicated thread to handle presentation time.
346 evr/presenter: Implement GetCurrentMediaType().
347 mfmediaengine: Implement GetVideoAspectRatio().
348 mfmediaengine: Handle shutdown state in GetNativeVideoSize().
349 evr/sample: Use separate thread for tracking notifications.
351 Olivier F. R. Dierick (1):
352 windowscodecs: Include system header png.h before Windows headers.
355 kernel32: Align stack in get_proc_address_wrapper().
356 kernelbase: Align stack in GetProcAddress() on x64.
357 kernel32: Add string for E_FAIL error.
360 wbemprox: Implement Win32_SoundDevice.{DeviceID, PNPDeviceID}.
363 vbscript: Allow keywords to be used as function name.
366 mscoree/tests: Test invalid assembly paths in registry.
367 mscoree/tests: Test querying interfaces with generated GUID.
368 mscoree: Fallback to assembly name if codebase path is invalid.
369 gdi32: Implement GdiDllInitialize stub.
371 Sergei Trofimovich (1):
372 aclocal.m4: Fix compatibility with upcoming autoconf-2.70.
375 ncrypt: Add NCryptIsKeyHandle stub.
378 msvcrt: Fix scanf with dashes in scanset.
379 msvcrt/tests: Add scanf tests for dashes in scanset.
382 ntdll: Stub NtQuerySystemInformation(SystemExtendedProcessInformation).
383 ntdll: Don't check "info" for NULL in NtQuerySystemInformation(SystemModuleInformation).
384 ntdll/tests: Add more tests for SystemModuleInformation[Ex].
385 ntdll: Semi-stub SystemModuleInformationEx.
386 quartz/tests: Add some more tests for seeking formats.
387 quartz: Treat a filter as supporting IMediaSeeking only if it supports TIME_FORMAT_MEDIA_TIME.
390 user32/tests: Test changing to a valid depth but zero width and height display mode.
391 user32: Use current width or height if a mode specifies zero width or height for ChangeDisplaySettingsExW().
392 wined3d: Store a struct wined3d pointer in struct wined3d_swapchain_state.
393 winemac.drv: Send HTMENU instead of HTCAPTION to query window activation.
394 winex11.drv: Update a comment.
395 d3d8/tests: Restore display modes at the end of test_wndproc().
396 d3d9/tests: Restore display modes at the end of test_wndproc().
397 ddraw/tests: Test display mode restoration.
398 d3d8/tests: Test display mode restoration.
399 d3d9/tests: Test display mode restoration.
400 dxgi/tests: Test display mode restoration.
401 wined3d: Restore display modes for all outputs when doing mode restoration.