Wine release 5.21
The Wine development release 5.21 is now available.
What's new in this release (see below for details):
- GDI32 library converted to PE.
- More fixes for windowless RichEdit.
- A number of timezone updates.
- Various bug fixes.
The source is available from the following locations:
https://dl.winehq.org/wine/source/5.x/wine-5.21.tar.xz
http://mirrors.ibiblio.org/wine/source/5.x/wine-5.21.tar.xz
Binary packages for various distributions will be available from:
https://www.winehq.org/download
You will find documentation on https://www.winehq.org/documentation
You can also get the current source directly from the git
repository. Check https://www.winehq.org/git for details.
Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.
----------------------------------------------------------------
Bugs fixed in 5.21 (total 24):
22797 'Sample1_DLLEmbedding' example from BoxedApp SDK v3.3.x (native API application virtualization scheme) crashes (needs hookable NtXXXSection API entries / NT syscalls)
25834 Adobe Reader X and XI cannot open in Protected Mode due to advapi32.dll CreateRestrictedToken being a stub
33072 dxdiag: can't retrieve network info
33162 Acrobat Reader 11 crashes on start (native API application virtualization, NtProtectVirtualMemory removes execute page protection on its own code)
45349 Multiple applications and games crash due to missing support for 64-bit syscall thunks (StreetFighter V, World of Warcraft)
45550 League of Legends 8.15+ anticheat fails due to incorrect implementation of NtQuerySystemInformation(SystemModuleInformation)
45666 Multiple Riot Games' anti-cheat / protection schemes need implementation of NtQuerySystemInformation 'SystemModuleInformationEx' info class (League of Legends 8.15+, Valorant/Vanguard)
46373 Unknown game crashes in unimplemented function msvcr80.dll._strnset_s in 1.6.2
46870 League of Legends 8.12+ fails to start a game in Vista+ mode (anticheat engine, SystemExtendedProcessInformation)
46967 GOG Galaxy doesn't run in virtual desktop
48203 Far Manager 3 broken appearance
48204 Wineconsole running Far File Manager 3 crashes as soon as you try to resize its window
48715 A Wolf RPG game freezes on map transition
49298 Path of Exile crashes when switching to Vulkan Renderer on RADV. Switching works in proton.
49449 Terraria Mobile Server (.NET 4.x) crashes with System.NotImplementedException NATUPNPLib.IUPnPNAT.get_StaticPortMappingCollection()
49610 mu online crashes after login
49739 Microsoft Flight Simulator needs netutils.dll and srvcli.dll
49785 Linking of some objects sometimes fails with undefined reference to windowscodecs GUIDs
49813 Implement debugging feedback extensions (VK_EXT_debug_utils/VK_EXT_debug_report) to forward data to Linux impl
50038 IWbemClassObject::Get method with wszName = NULL crashes inside wbemprox
50039 Wine 5.18+ fails build on Ubuntu 18.04 with libwine.so Makefile symbolic link
50049 Fallout 76 opens black screen then crashes on start
50050 Wine 5.20 build fails on Ubuntu 16.04
50077 .NET 3.5SP1 installer depends on PEB->Reserved[1] / AtlThunkSListPtr32 being 0 or 1
----------------------------------------------------------------
Changes since 5.20:
Aaron Hill (2):
qmgr/tests: Fix issues with handling of transient errors.
qmgr/tests: Test registering an IBackgroundCopyCallback2.
Akihiro Sagawa (1):
gdi32: Fix font rendering issue when child font is used.
Alexandre Julliard (54):
gdi32: Set the font file name directly at creation time.
gdi32: Move the text metrics cache into the generic font structure.
gdi32: Move the kerning pairs data into the generic font structure.
gdi32: Move the fonts directory helper functions out of freetype.c.
gdi32: Move the Add/RemoveFontResource() implementation out of freetype.c.
gdi32: Move the AddFontMemResourceEx() implementation out of freetype.c.
gdi32: Move the loading of system fonts out of freetype.c.
gdi32: Move the loading of registry fonts out of freetype.c.
gdi32: Move the loading of filesystem fonts out of freetype.c.
gdi32: Add a helper to load a font without using a face.
gdi32: Allocate the backend font data in the load_font() helper.
gdi32: Move the CreateScalableFontResource() implementation out of freetype.c.
gdi32: Move part of the GetFontUnicodeRanges() implementation out of freetype.c.
gdi32: Move part of the GetCharWidthInfo() implementation out of freetype.c.
gdi32: Move the GSUB table support out of freetype.c.
gdi32: Store child font objects directly on the child font list.
gdi32: Move the glyph index mapping for GetGlyphOutline() out of freetype.c.
gdi32: Add a helper to get the FreeType face and cleanup private data.
winebuild: Set PE timestamps to a hash of the file name.
gdi32: Move the font substitution list out of freetype.c.
gdi32: Move the font family list out of freetype.c.
gdi32: Move the face data structure out of freetype.c.
gdi32: Move the loading of font replacements out of freetype.c.
gdi32: Make the family replacement point to the family object.
gdi32: Move the font link support out of freetype.c.
gdi32: Move the creation of the child font list out of freetype.c.
gdi32: Move the dumping of the font list out of freetype.c.
gdi32: Add a helper function to create a font from a face.
gdi32: Move the font enumeration out of freetype.c.
gdi32: Move the default AA flags handling out of freetype.c.
gdi32: Move the font list reordering out of freetype.c.
gdi32: Add a separate backend function to load the font list.
gdi32: Move the font cache out of freetype.c.
gdi32: Add a helper function to create a face.
gdi32: Update the Windows font registry keys only when they have changed.
gdi32: Move the remove_font() function out of freetype.c.
gdi32: Add some helper functions for font matching.
gdi32: Move the handling of font family fallbacks out of freetype.c.
gdi32: Move the rest of the font matching code out of freetype.c.
gdi32: Move the SelectFont() implementation out of freetype.c.
gdi32: Make a few definitions private to font.c.
gdi32: Don't abort enumeration if a font fails to load.
gdi32: Store scale as an integer.
gdi32: Use FT_MulDiv() instead of the kernel32 function.
gdi32: Use ntdll functions for codepage conversions.
gdi32: Use ntdll functions for DOS<->Unix path conversions.
gdi32: Use ntdll functions for locale support.
gdi32: Use ntdll functions for heap allocations.
gdi32: Move FreeType support to a new Unix library.
gdi32: Move OSMesa support to the Unix library.
gdi32: Build with msvcrt.
include: Fix setjmp() support with 32-bit ucrtbase.
gdi32: Use wide-character string literals.
gdi32: Initialize the font gamma ramp with the other font options.
Alistair Leslie-Hughes (5):
include: Add missing DBPARAM* types and enums.
include: Add more DBGUID_* defines.
srvcli: Add stub dll.
netutils: Add stub dll.
include: Add DBPROPSTATUSENUM enum values.
Anton Baskanov (5):
amstream: Wait for the state transition to complete in AMMultiMediaStream::SetState.
amstream: Handle AMMSF_NOCLOCK flag in AMMultiMediaStream::OpenFile.
amstream: Release filter critical section before calling upstream seeking methods.
amstream: Implement MediaStreamFilter::WaitUntil.
amstream: Implement MediaStreamFilter::Flush.
Aurimas Fišeras (3):
po: Update Lithuanian translation.
po: Update Lithuanian translation.
po: Update Lithuanian translation.
Austin English (10):
d3d8thk: Add stub dll.
d3dim700: Add stub dll.
ddrawex: Add version resource.
dpwsockx: Add version resource.
dx8vb: Add version resource.
ksproxy.ax: Add version resource.
ksuser: Add version resource.
qdvd: Add version resource.
strmdll: Add version resource.
dpnsvr: Add version resource.
Biswapriyo Nath (1):
mf/evr: Initialize variables which are checked conditionally.
Brendan Shanks (4):
ntdll: Update the PEB structures for newer Windows versions.
dbghelp: Use PEB->CloudFileFlags instead of PEB->Reserved for debug base address.
ntdll: Rename PEB->Reserved[1] to AtlThunkSListPtr32.
include: Force stack alignment on x86_64 with Clang.
Damjan Jovanovic (1):
oleaut32: IFont never had an IPersistStreamInit interface.
Daniel Lehman (11):
wine.inf: Fix SA Eastern Standard Time Zone info.
tzres: Add Tocantins Standard Time Zone.
tzres: Add Magallanes Standard Time Zone.
tzres: Add Saint Pierre Standard Time Zone.
msvcr110/tests: Use macro to get function address.
msvcr110: Add _Context::_CurrentContext.
msvcr120/tests: Add _Context::_CurrentContext tests.
concrt140/tests: Add _Context::_CurrentContext tests.
wine.inf: Update Azerbaijan Time Zone.
wine.inf: Update Caucasus Time Zone.
wine.inf: Update Pacific SA Time Zone.
Derek Lesho (12):
winegstreamer: Insert videoconvert into decoded-video streams.
winegstreamer: Insert audioconvert into decoded audio streams.
winegstreamer: Replace gst_pad_get_current_caps with gst_pad_query_caps.
winegstreamer: Implement IMFMediaSource::CreatePresentationDescriptor.
mfreadwrite: Abort ReadSample when unable to request any samples.
winegstreamer: Implement IMFMediaSource::Start.
winegstreamer: Implement IMFMediaStream::RequestSample.
mfmediaengine: Provide the partial topology to the media session.
mfmediaengine: Issue MF_MEDIA_ENGINE_EVENT_CANPLAY upon MF_TOPOSTATUS_READY.
mfmediaengine: Issue MF_MEDIA_ENGINE_EVENT_PLAYING upon MESessionStarted.
mfmediaengine: Issue MF_MEDIA_ENGINE_EVENT_ENDED upon MESessionEnded.
winegstreamer: Implement IMFMediaStream::GetMediaSource.
Eric Kohl (1):
widl: Add the [allocate] acf attribute.
Esme Povirk (2):
windowscodecs: Move TIFF decoding to unix lib.
avifil32: Only add the first stream reference to the parent.
François Gouget (1):
oleacc/tests: Fix the window name and keyboard shortcut tests.
Georg Lehmann (5):
winevulkan: Implement VK_EXT_debug_report.
winevulkan: Don't use comments for object types.
winevulkan: Remove comment from VkEnumValue.
winevulkan: Implement VK_EXT_debug_marker.
winevulkan: Enable VK_EXT_validation_features and VK_EXT_validation_flags.
Gijs Vermeulen (8):
quartz/vmr9: Don't expose IVMRFilterConfig9 from the VMR7.
quartz/vmr9: Don't expose IVMRMonitorConfig9 from the VMR7.
quartz/vmr9: Don't expose IVMRMonitorConfig9 in renderless mode.
quartz/vmr9: Don't expose IVMRFilterConfig from the VMR9.
quartz/vmr9: Don't expose IVMRMonitorConfig from the VMR9.
include: Add INetworkEvents and some enums to netlistmgr.idl.
quartz: Implement IVMRAspectRatioControl9.
netprofm: Create a connection point object for INetworkEvents.
Giovanni Mascellani (3):
d2d1: Implement D2D1SinCos().
d2d1: Implement D2D1Tan().
d2d1: Implement D2D1Vec3Length().
Hans Leidekker (10):
msi: Use wide character string literals in action.c.
msi: Use wide character string literals in dialog.c.
msi: Use wide character string literals in msi.c.
msi: Use wide character string literals in package.c.
msi: Use wide character string literals in registry.c.
msi: Use wide character string literals in classes.c.
msi: Use wide character string literals in the remaining files.
msi/tests: Use wide character string literals.
wbemprox/tests: Test more sound device properties.
jscript: Fix allocation size in BindFunction_call.
Huw D. M. Davies (45):
riched20: Pass a row ptr to the cursor from row function.
riched20: Use row ptrs in the cursor from virtual co-ords function.
riched20: Use row and para helpers for the selection function.
riched20: Use row helpers for Home/End key handling.
riched20: Use row ptrs in the cursor to co-ordinates function.
riched20: Use row and para helpers in the extend selection function.
riched20: Use a run helper in the delete text function.
riched20: Use a row ptr in the run drawing function.
riched20: Use row and para ptrs in the ensure visible function.
riched20: Fix the struct size check in the para fmt retrieval function.
riched20: Pass para ptrs to the various para selection functions.
riched20: Use a helper function to find the first row.
riched20: Use a helper to find the next run.
riched20: Use the paragraph from the cursor.
riched20: Use a helper to retrieve the first run.
riched20: Use para and run ptrs in the table deletion function.
riched20: Use cell ptrs in the append table row function.
riched20: Use cell ptrs in the table tab handler.
riched20: Use paragraph ptrs in the table move from row start function.
riched20: Remove the table corruption check function.
riched20: Use a paragraph ptr in the stream in function.
riched20: Use paragraph ptrs in the selection link check function.
riched20: Use paragraph ptrs in the enter handler.
riched20: Use a run ptr in the rtf row handler.
riched20: Use paragraph and run ptrs in the find text function.
riched20: Use paragraph ptrs in the WM_CHAR handler.
riched20: Use a run ptr in the link notify function.
riched20: Use para and row ptrs in the EM_GETFIRSTVISIBLELINE handler.
riched20: Return a row ptr from the row from row number function.
riched20: Use run ptrs in the EM_GETLINECOUNT handler.
riched20: Use row ptrs in the EM_GETLINELENGTH handler.
riched20: Use run ptrs in the text retrieval function.
riched20: Remove unused ME_RowStart().
riched20: Use para and row ptrs in the row number from offset function.
riched20: Use a paragraph ptr in the clipboard get text function.
riched20: Use a paragraph ptr in the rtf writer function.
riched20: Use a cell helper in the split paragraph undo function.
riched20: Return a row ptr from the row creation function.
riched20: Use para_in_table() instead of IsInTable().
riched20: Pass paragraph ptrs to the para marking function.
riched20: Use more cell helpers in some of the table functions.
riched20: Use cell ptrs in the paragraph splitting and joining functions.
riched20: Use cell ptrs to link the cells.
riched20: Add next / prev run from cursor helpers.
riched20: Use paragraph and run ptrs in the cursor structure.
Jacek Caban (1):
mshtml: Ignore attempts to set read only builtin properties in IE9+ mode.
Jan Sikorski (1):
wininet: Prevent use after free in logging.
Matteo Bruni (1):
winemac: Update the stored display settings immediately.
Michael Stefaniuc (21):
wmic: Use wide-char string literals.
wmiutils: Use wide-char string literals.
wmp: Use wide-char string literals.
sapi: Zero terminate some WCHAR strings.
powrprof: Use wide-char string literals.
sapi/tests: Use wide-char string literals.
msxml3/tests: Use wide-char string literals.
appwiz.cpl: Use wide-char string literals.
appwiz.cpl: Use zero terminated wide-char strings.
serialui: Use wide-char string literals.
mshtml: Use wide-char string literals in struct initialization.
wscript: Use wide-char string literals.
wscript: Zero terminate the host version string to avoid random garbage.
wscript: Use a zero terminated wchar string.
winedevice: Don't make a variable const just to cast the const away.
winedevice: Use wide-char string literals.
svchost: Use wide-char string literals.
svchost: Inline a simple string.
pdh: Use wide-char string literals.
mpr: Use wide-char string literals.
jscript: Use wide-char string literals in struct initialization.
Myah Caron (3):
include: Introduce MEM_EXTENDED_PARAMETER.
ntdll: Stub NtAllocateVirtualMemoryEx.
kernelbase: Implement VirtualAlloc2.
Nikolay Sivov (29):
evr/mixer: Add IMFClockStateSink stub.
mf/evr: Notify mixer and presenter on clock state changes.
mf/evr: Implement OnClockSetRate().
mfplat: Add IMFGetService stub for 2D memory buffer.
evr: Implement sample allocator.
include: Remove confusing comment.
include: Add IMFVideoSampleAllocatorEx.
evr/tests: Add sample allocator test with surface-backed buffers.
mfplat: Implement MFCreateDXSurfaceBuffer().
evr/allocator: Use different buffer implementation for surface buffers.
evr: Add MFCreateDXSurfaceBuffer() forward.
evr/presenter: Set mixer output type on type negotiation.
mf/copier: Move sample copier to its own file.
mf/evr: Pass incoming samples to the mixer.
mf/evr: Notify presenter on new input.
mfplat: Consider first type entry when returning major type for stream descriptors.
mfreadwrite/tests: And some more tests for ReadSample() and failing requests.
mfplat: Implement MFFrameRateToAverageTimePerFrame().
mfmediaengine: Keep "preload" property.
mfplat: Implement MFMapDXGIFormatToDX9Format().
mfmediaengine: Add video output topology branch.
mfmediaengine: Issue MF_MEDIA_ENGINE_EVENT_FIRSTFRAMEREADY on first video sample.
mfmediaengine: Implement OnVideoStreamTick().
mfmediaengine: Implement GetNativeVideoSize().
evr/presenter: Create dedicated thread to handle presentation time.
evr/presenter: Implement GetCurrentMediaType().
mfmediaengine: Implement GetVideoAspectRatio().
mfmediaengine: Handle shutdown state in GetNativeVideoSize().
evr/sample: Use separate thread for tracking notifications.
Olivier F. R. Dierick (1):
windowscodecs: Include system header png.h before Windows headers.
Paul Gofman (3):
kernel32: Align stack in get_proc_address_wrapper().
kernelbase: Align stack in GetProcAddress() on x64.
kernel32: Add string for E_FAIL error.
Pengpeng Dong (1):
wbemprox: Implement Win32_SoundDevice.{DeviceID, PNPDeviceID}.
Robert Wilhelm (1):
vbscript: Allow keywords to be used as function name.
Rémi Bernon (4):
mscoree/tests: Test invalid assembly paths in registry.
mscoree/tests: Test querying interfaces with generated GUID.
mscoree: Fallback to assembly name if codebase path is invalid.
gdi32: Implement GdiDllInitialize stub.
Sergei Trofimovich (1):
aclocal.m4: Fix compatibility with upcoming autoconf-2.70.
Vitaly Lipatov (1):
ncrypt: Add NCryptIsKeyHandle stub.
Will Mainio (2):
msvcrt: Fix scanf with dashes in scanset.
msvcrt/tests: Add scanf tests for dashes in scanset.
Zebediah Figura (6):
ntdll: Stub NtQuerySystemInformation(SystemExtendedProcessInformation).
ntdll: Don't check "info" for NULL in NtQuerySystemInformation(SystemModuleInformation).
ntdll/tests: Add more tests for SystemModuleInformation[Ex].
ntdll: Semi-stub SystemModuleInformationEx.
quartz/tests: Add some more tests for seeking formats.
quartz: Treat a filter as supporting IMediaSeeking only if it supports TIME_FORMAT_MEDIA_TIME.
Zhiyi Zhang (12):
user32/tests: Test changing to a valid depth but zero width and height display mode.
user32: Use current width or height if a mode specifies zero width or height for ChangeDisplaySettingsExW().
wined3d: Store a struct wined3d pointer in struct wined3d_swapchain_state.
winemac.drv: Send HTMENU instead of HTCAPTION to query window activation.
winex11.drv: Update a comment.
d3d8/tests: Restore display modes at the end of test_wndproc().
d3d9/tests: Restore display modes at the end of test_wndproc().
ddraw/tests: Test display mode restoration.
d3d8/tests: Test display mode restoration.
d3d9/tests: Test display mode restoration.
dxgi/tests: Test display mode restoration.
wined3d: Restore display modes for all outputs when doing mode restoration.
Alexandre Julliard has announced a new development release of Wine with GDI32 library converted to PE, more fixes for windowless RichEdit, a number of timezone updates, and various bug fixes.