Software 42305 Published by

Alexandre Julliard has announced a new development release of Wine with C runtime libraries converted to PE, use fontconfig cache for faster startup, video playback improvements, 3DES cipher support, and various bug fixes.



Wine release 5.22

The Wine development release 5.22 is now available.

What's new in this release (see below for details):
- C runtime libraries converted to PE.
- Use fontconfig cache for faster startup.
- Video playback improvements.
- 3DES cipher support.
- Various bug fixes.

The source is available from the following locations:

https://dl.winehq.org/wine/source/5.x/wine-5.22.tar.xz
http://mirrors.ibiblio.org/wine/source/5.x/wine-5.22.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.22 (total 36):

16991 Cobra 11 Nitro: No video and music at game startup
28210 Rome Total War crash at start
30668 Motocross Madness 2 needs IAMMultiMediaStream::GetState() implementation
32613 Tom Clancy's Rainbow Six: Lockdown crashes after the intro videos (needs DxDiag_SoundDevices device child nodes present)
37396 Multiple applications need "sRGB Color Space Profile.icm" (Asperite, Word 2007, Word 2010)
38014 CCCP Insurgent v2007-01-01 crashes when querying system information via DxDiag
41081 Foldit puzzle 1266 crashes at start up
42731 stack overflow when .bat script variable has more than 256 characters
43513 Ys VI: The Ark of Napishtim - videos are not playing
44884 Call of Duty Modern Warfare Remastered: Crash after splash with error about Memory/Disk space
45421 Need for Russia does not play msvideo movies
45650 chromium 32-bit sandbox expects different syscall thunks depending on Windows version
46429 Multiple games need IV50 codec to play videos (Thief Gold, Thief II: The Metal Age, Commandos 2: Men of Courage)
46478 Wordpad is slow to start with large enough number of fonts in the system
47320 Black Ops 4 Unhandled Exception When Loading gdi32.dll
47374 Thronebreaker: The Witcher Tales rendering is messed up
47846 Age Of Empires III Crash after Intro
48171 Call of Duty: Modern Warfare (2019) exception
48212 Ys: The Oath in Felghana - movies don't play
48505 WinRAR x64 4.x/5.x installer crashes on unimplemented function GDI32.dll.ScriptGetCMap
49238 Oblivion: No sound/music
49376 Light of Altair demo has no text in options menu
49490 Overwatch installer fails with new wine prefix
49526 Anno 1800: Crashes on startup
49546 Titan Quest Anniversary Edition has no text with builtin d3dx9_42
49665 Wine 5.14 won't start, but 5.12 - do!
49844 Cannot create a new file on a mounted fat volume
49907 Fallout New Vegas crashes when leaving Doc Mitchell's house
50046 wineserver persistence after setup of a WINEPREFIX
50084 Wargaming.net Game Center can't install updates since wine 5.19
50101 Ghostrunner has no sound after intro movies when prefix is set to Win10
50110 Elite Dangerous Launcher (wine-5.21): AccessViolationException Protected Memory
50116 ODBC applications fail to create/configure system DSNs with builtin 'odbccp32' (SQLConfigDataSource must remap ODBC_xxx_SYS_DSN values for ConfigDSN)
50135 explorer.exe crashes when UseXRandR and UseXVidMode are specified to be disabled in registry
50140 "Guild Wars 2 Launcher" over time consumes all available memory
50149 Chromium/MS WebView2 depends on TEB->ReservedForOle 'apt_mask' value

----------------------------------------------------------------

Changes since 5.21:

Alex Henrie (2):
urlmon: Remove unused variable has_ipv6.
urlmon: Reimplement canonicalize_ipv6address on top of ntdll functions.

Alexandre Julliard (49):
crypt32: Move the GnuTLS code to a new Unix library.
crypt32: Move the root store initialization to the Unix library.
crypt32: Build with msvcrt.
crypt32: Use wide-character string literals.
crypt32: List allowed characters instead of relying on wctype properties.
wineboot: Fall back to initial hostname if the name lookup fails.
mscms: Implement profile tag functions without relying on liblcms2.
mscms: Move liblcms support to a new Unix library.
mscms: Build with msvcrt.
setupapi: Add a few more dirids.
setupapi: Add an extension to support file copies from module resources.
winebus.sys: Move winebus.inf into the module resources.
winehid.sys: Move winehid.inf into the module resources.
wineusb.sys: Move wineusb.inf into the module resources.
mscms/tests: Avoid depending on the exact Microsoft color profile.
mscms: Install the sRGB color profile.
glu32: No longer load the Unix libGLU.
glu32: Build with msvcrt.
kernelbase: Copy MulDiv() implementation instead of forwarding.
msvcrt: Reimplement _dclass() using musl code.
msvcrt: Reimplement _fpclass().
msvcrt: Reimplement _finite().
msvcrt: Reimplement _isnan().
msvcrt: Reimplement _dsign().
msvcrt: Reimplement _chgsign().
msvcrt: Import _copysign() from musl.
msvcrt: Import fabs() from musl.
msvcrt: Import ilogb() from musl.
msvcrt: Use the global musl copyright notice.
msvcrt: Add floating point classification macros.
msvcrt: Avoid long double type in $I10_OUTPUT().
jscript: Use the standard isfinite() function.
msvcrt: Use the msvcrt math functions internally.
msvcrt: Use the msvcrt allocation functions internally.
msvcrt: Use the msvcrt ctype functions internally.
msvcrt: Use the msvcrt atoi() function internally.
msvcrt: Use the msvcrt string functions internally.
msvcrt: Move math functions to a new Unix library.
msvcrt: Remove obsolete USE_MSVCRT_PREFIX defines.
msvcrt: Enable multi-thread locking by default.
include: Use gcc builtin for HUGE_VAL.
makefiles: Don't add a default crt lib for msvcrt dlls.
makefiles: Allow modules to link to their own import library.
msvcrt: Build with msvcrt headers.
msvcrt/tests: Remove the headers test.
msvcrt: Avoid msvcrt-specific types in the Unix library interface.
msvcrt: Remove some duplicate definitions from msvcrt.h.
msvcrt: Move the fenv_t definition to the public header.
msvcrt: Use the public standard type definitions where possible in msvcrt.h.

Alistair Leslie-Hughes (12):
include: Add interface IGetDataSource.
include: Add ICommandStream interface.
include: Add ICommandProperties interface.
include: Add IConvertType interface.
include: Add ICommandPrepare interface.
include: Add IRowsetChange interface.
include: Add IRowsetUpdate interface.
xaudio2_9: Add version resource.
msi: Correct Query for loading an image.
msado15/tests: Add ADORecordsetConstruction tests.
msado15: Support ADORecordsetConstruction in _Recordset.
msado15: Implement ADORecordsetConstruction get/put Rowset.

Andrew Eikum (1):
mmdevapi: Support older version of the AudioClientProperties structure.

Anton Baskanov (7):
amstream/tests: Add comments to AMDirectDrawStream::CompletionStatus tests.
amstream: Wait for presentation time in AMDirectDrawStream::Receive.
amstream: Implement AMDirectDrawStream::GetTimePerFrame.
amstream: Factor out the common code of MediaStreamFilter seeking tests.
amstream: Implement MediaStreamFilter::IsFormatSupported.
amstream: Implement AMMultiMediaStream::GetState.
amstream: Implement AMMultiMediaStream::GetTime.

Aurimas Fišeras (1):
po: Update Lithuanian translation.

Biswapriyo Nath (6):
include: Add D2D1_PROPERTY enumeration in d2d1_1.idl.
include: Add D2D1_SUBPROPERTY enumeration in d2d1_1.idl.
include: Add D2D1_POINT_DESCRIPTION structure in d2d1_1.idl.
include: Add ID2D1GdiMetafileSink interface in d2d1_1.idl.
include: Add ID2D1GdiMetafile interface in d2d1_1.idl.
include: Add ID2D1PrintControl interface in d2d1_1.idl.

Brendan Shanks (1):
winecoreaudio.drv: Only read 'length' bytes from received MIDIPackets.

Charles Davis (10):
msvcr90/tests: Test _get_current_locale()/setlocale() interaction.
msvcrt: Make locale name string refcounted for C locale.
msvcrt: Share locale names between threadlocinfo instances.
msvcrt: Copy LC_COLLATE codepage between threadlocinfo instances.
msvcrt: Share ctype tables between threadlocinfo instances.
msvcrt: Share lconv data between threadlocinfo instances.
msvcrt: Share __lc_time_data between threadlocinfo instances.
ucrtbase: Sync __lc_time_data definitions.
msvcrt: Swap the threadlocinfo pointers in setlocale().
msvcrt: Increment refcounts for all locale data in _get_current_locale().

Damjan Jovanovic (8):
ntdll: Implement get_thread_times() on FreeBSD.
ntdll: Improve character device type detection on FreeBSD and macOS.
ntdll: Fix wrong return values in get_dir_case_sensitivity_stat().
ntdll: FAT filesystems are called "msdosfs" on FreeBSD >= 5.
ntdll: Msdosfs was case-insensitive since FreeBSD 8 or even earlier.
ntdll: Treat smbfs as case-insensitive on FreeBSD.
ntdll: Document a few other filesystem case-sensitivity cases.
cmd.exe: Increase size of WCMD_HandleTildeModifiers() buffers to MAXSTRING.

Daniel Lehman (3):
tzres: Add Lord Howe Standard Time Zone.
tzres: Add Aus Central W. Standard Time Zone.
wine.inf: Add Dynamic DST for Australian time zones.

David Torok (1):
ntdll: Add NtDebugActiveProcess stub.

Derek Lesho (4):
winegstreamer: Require media source's IMFByteStream to be seekable.
winegstreamer: Implement IMFMediaSource::GetCharacteristics.
winegstreamer: Set MF_PD_DURATION on source's presentation descriptor.
mf/session: Call session_command_complete after NotifyTopology command.

Dmitry Timoshkov (6):
crypt32/tests: Fix test failures under newer Windows versions.
advapi32/tests: Fix compilation with PSDK compiler.
advapi32: Implement LsaGetUserName.
crypt32: Make helper for copying CMSG_CMS_SIGNER_INFO attributes more generic.
crypt32: Add support for CMSG_SIGNER_AUTH_ATTR_PARAM for a being decoded signed message.
crypt32: Add support for CMSG_ENCODED_MESSAGE for a being decoded signed message.

Esme Povirk (5):
windowscodecs: Move jpeg decoding to the unix lib.
windowscodecs: Start interface for unix encoders.
windowscodecs: Move PNG encoding to the unix lib.
windowscodecs: Fix memory leak in common decoder.
windowscodecs: Fix allocation in tiff_decoder_get_metadata_blocks.

François Gouget (5):
cryptnet: Fix the spelling of the x-pkcs7-certificates MIME type.
mshtml: Fix the spelling of the filter attribute.
gdi32/tests: Avoid a D3DKMTOpenAdapterFromHdc() crash on Windows 10 >= 2004.
mmdevapi/tests: Only warn about the console when it is used.
mmdevapi/tests: Work around Initialize() render breakage on Win 10.

Georg Lehmann (1):
winevulkan: Initialize Vulkan in native_vkGetInstanceProcAddrWINE.

Gerald Pfeifer (1):
msvcrt: #include stdarg.h from unixlib.c.

Gijs Vermeulen (2):
sapi: Add stub SpStream object.
sapi: Add stub SpResourceManager object.

Hans Leidekker (1):
odbccp32: Map system DSN requests to user DSN requests in SQLConfigDataSource.

Haoyang Chen (1):
gdi32: Avoid exceeding the actual bitmap height.

Huw D. M. Davies (5):
riched20: Pass a para or run ptr to the char ofs propagation function.
riched20: Use row ptrs in the page up/down handlers.
riched20: Use row and para ptrs in the cursor up/down handler.
riched20: Simplify search for the cell to delete.
riched20: Move the code to clear the cell bottom out of the loop.

Jacek Caban (25):
kernel32/tests: Add more console waiting tests.
server: Support waiting on console input handles.
server: Support waiting on screen buffer handles.
kernelbase: Wait directly on console handles.
server: Remove no longer needed get_console_wait_event request.
kernel32: Allow non-console handles in DuplicateConsoleHandle.
kernel32: Allow non-console handles in CloseConsoleHandle.
conhost/tests: Initialize whole OVERLAPPED struct in fetch_console_output.
conhost: Use console debug channel.
conhost/tests: Silence debug output in child process if std output is a console.
server: Support unbound console input device.
server: Support unbound console output device.
kernel32/tests: Add more unbound console handles tests.
kernelbase: Remove no longer needed console handle handling from create_process_params.
attrib: Use CP_ACP for non-console output encoding.
fsutil: Use CP_ACP for non-console output encoding.
hostname: Use CP_ACP for non-console output encoding.
kernelbase: Move Unicode conversion from WriteConsoleA to conhost.
server: Support writing directly on console handle.
kernel32: Import WriteFile from kernelbase.
makedep: Use short debug file names.
conhost/tests: Add more ReadConsoleA tests.
kernelbase: Move Unicode conversion from ReadConsoleA to conhost.
server: Allow reading directly from console handle.
kernel32: Import ReadFile from kernelbase.

Jeff Smith (4):
user32/tests: Change misleading variable name and type.
user32/tests: Simplification of some message broadcast tests.
user32/tests: Test message broadcast to parented windows.
user32: Only child windows should not receive broadcast messages.

Kevin Puetz (7):
ole32/tests: Fix flaky test in cowait_unmarshal_thread.
widl: Parse attribute custom(guid,expr).
widl: Write ATTR_CUSTOM into typelib.
widl: Allow adding the same custdata GUID multiple times in a typelib.
oleaut32/tests: Cover Get*CustData in test_dump_typelib.
oleaut32: Fix error handling/reporting in TLB_copy_all_custdata.
oleaut32: Load GetVarCustData from MSFT-format typelib.

Liam Middlebrook (1):
winevulkan: Update to VK spec version 1.2.160.

Michael Müller (2):
dxdiagn: Enumerate DirectSound devices and add some basic properties.
dxdiagn: Calling GetChildContainer with an empty string on a leaf container returns the object itself.

Michael Stefaniuc (31):
msidb: Use wide-char string literals.
icinfo: Use wide-char string literals.
start: Use wide-char string literals.
wintab32: Use wide-char string literals.
wineps.drv: Use wide-char string literals.
gdiplus: Use wide-char string literals.
gdi32/uniscribe: Use wide-char string literals.
mscms: Use wide-char string literals.
mscms/tests: Inline a simple string.
hidclass.sys: Use wide-char string literals.
inetcpl.cpl: Trace the actual AutoConfigURL and not the value name.
inetcpl.cpl: Use wide-char string literals.
mstask: Use wide-char string literals.
vbscript: Use wide-char string literals.
kernel32: Use wide-char string literals.
taskschd: Use wide-char string literals.
userenv: Use wide-char string literals.
oleview: Inline WCHAR strings of length 1.
winmm: Use wide-char string literals.
winmm/tests: Use a string literal instead of a char array.
dpnet: Use wide-char string literals.
dxdiagn: Use wide-char string literals.
comctl32: Use wide-char string literals.
riched20: Use wide-char string literals.
riched20: Use wide-char string literals in a struct initialization.
riched20: Use zero terminated wchar strings.
riched20: Use a wchar string literal for the array of neutral chars.
itss: Use wide-char string literals.
itss: Use zero terminated WCHAR strings.
imm32: Use wide-char string literals.
mshtml: Fix spelling of fuchsia.

Nikolay Sivov (61):
gdi32: Merge in Uniscribe functionality.
mf/tests: Add a test for copier buffer handling.
mf/evr: Accept samples when prerolling.
evr/mixer: Reuse full set of type attributes for output types.
evr/mixer: Add partial implementation of sample processing.
evr/presenter: Fix error handling on object creation.
user32: Remove usp10 from delayed imports.
evr/presenter: Create sample allocator on object creation.
evr/presenter: Add a helpe for input processing.
evr/presenter: Notify renderer host about mixer latency.
evr/presenter: Add sample allocator notification callback.
evr/allocator: Call user callback when sample is returned to the pool.
mf/evr: Handle sample requests from the mixer.
mf/evr: Handle user events from the presenter.
mf/session: Provide quality manager with presentation clock.
mf/session: Notify quality manager when setting new topology.
mf/session: Notify quality manager on input/output processing.
mf/session: Forward MEQualityNotify event to the quality manager.
oledb32: Use wide-char string literals.
evr/allocator: Fix released sample pointer check.
evr/allocator: Fix reference counting for returned samples.
mf/session: Query and initialize sample allocators for capable output nodes.
mf/session: Implement support for sinks that provide sample allocators.
mf/evr: Set display window to the presenter if it was specified on sink creation.
mfplat/tests: Remove a couple of failing tests.
wordpad: Fill font selection combobox with fully processed font list.
ole32/propstorage: Handle VT_I8/VT_UI8 when serializing properties.
dxva2: Add a semi-stub for VideoProcessBlt().
evr/presenter: Add IQualProp stub.
evr/presenter: Create a swapchain for given output window.
evr/presenter: Add IMFQualityAdvise stub.
evr/mixer: Fix method function name for consistency.
mf/tests: Use a helper for supported intefaces checks.
mf/evr: Add IMFQualityAdvise stub.
mfplat/buffer: Fix byte width set for d3d9 surface buffers.
comctl32: Use wide-char string literals.
mfplat/tests: Add a helper to check for supported interfaces.
include: Guard MFVideoNormalizedRect definition in mfmediaengine.idl.
mfplat: Add EVRConfig_* attributes to tracing.
evr/sample: Reset attributes, timestamps, and flags on ::Clear().
evr/mixer: Fix output filling behaviour regarding sample properties.
evr/tests: Add more tests for supported service interfaces.
evr/presenter: Expose all interfaces for MR_VIDEO_RENDER_SERVICE.
evr/mixer: Set timestamp and duration for output samples.
evr/mixer: Improve GetService() handling of unsupported interfaces/services.
evr/presenter: Fix error code for unsupported services.
evr/presenter: Add IDirect3DDeviceManager9 as a supported interface.
evr/tests: Presenter should support IMFQualityAdviseLimits.
evr/presenter: Implement sample presenting functionality.
xmllite/reader: Use wide-char string literals.
xmllite/writer: Use wide-char string literals.
mfplat: Use wide-char string literals.
mf/evr: Add support for per-stream attributes.
evr/tests: Relax allocator initialization test.
mf/evr: Derive stream attributes from mixer input attributes.
mf/samplegrabber: Implement IMFRateSupport.
combase: Set a flag on thread id initialization.
combase: Update thread flags when entering/leaving apartments.
mf/session: Shutdown and release presentation clock on session shutdown.
mf/session: Keep a reference to the original activation object when binding sink nodes.
mf/session: Shutdown current topology when clearing presentation.

Paul Gofman (12):
crypt32: Fix adding trusted roots to store.
wininet: Correctly return error status from InternetSetFilePointer() stub.
mshtml: Check for EVENTID_LAST in ensure_doc_nsevent_handler().
bcrypt: Prevent gnutls from using system priority file.
crypt32: Prevent gnutls from using system priority file.
secur32: Prevent gnutls from using system priority file.
ws2_32: Force adding completion for error status in WS2_ConnectEx().
user32: Avoid holding display_dc_section when creating display DC.
directmanipulation: Return S_OK form viewport_SetViewportOptions stub.
ntdll: Avoid overwriting parameters with context in call_user_apc_dispatcher() on x86.
msvcrt: Save and restore rounding mode in fegetenv() / fesetenv().
ntdll: Fix SMT CPU flag reporting.

Piotr Caban (7):
ucrtbase: Add support for utf8 codepage in setlocale.
msvcrt: Mark old_locinfo as const in create_locinfo.
msvcrt: Call set_lc_locale_name in update_threadlocinfo_category.
msvcrt: locinfo->lc_name should be guarded by lc_category->wrefcount.
msvcrt: Simplify category checks in create_locinfo.
msvcrt: Lock global locale in _get_current_locale.
msvcrt: Don't overwrite threadmbcinfostruct structure in _setmbcp.

Robert Wilhelm (2):
vbscript: Allow keywords to be used as property name.
vbscript: Support properties with parameters.

Rémi Bernon (21):
bcrypt: Implement 3DES cipher support.
msvcrt: Make locale and thread helper functions CDECL.
msvcrt: Introduce noalloc current locale lookup helpers.
msvcrt: Pass temporary locale to MSVCRT__towlower_l.
msvcrt: Pass temporary locale to MSVCRT__towupper_l.
gdi32: Index font families by name in an rbtree.
gdi32: Rewrite find_face_from_filename using the rbtree.
gdi32: Rewrite find_any_face using the rbtree.
winemenubuilder: Only extract icons when association changed.
widl: Support repetition for some attributes.
widl: Restrict some keywords to WinRT mode only.
widl: Prefer mangled name over typedef in WinRT mode.
gdi32: Ignore Type 1 fonts in fontconfig enumeration.
gdi32: Move FreeType face creation to AddFaceToList.
gdi32: Load font list directly from fontconfig cache.
gdi32: Lazily create and cache fontconfig patterns.
ntdll: Stub ThreadEnableAlignmentFaultFixup info class.
include: Fix DPFLTR_MASK value to 0x80000000.
ntdll/tests: Add tests for DbgPrint* functions.
ntdll: Reimplement DbgPrint* using DBG_PRINTEXCEPTION_C.
ntdll: Raise debug exceptions when invalid heap is destroyed.

Sven Baars (5):
gdi32/tests: Fix a compiler warning.
d3dx9: Don't release textures when D3DXSPRITE_DO_NOT_ADDREF_TEXTURE is specified.
d3dx9: Fully initialize the glyph position.
d3dx9: Implement clipping of glyphs in ID3DXFont_DrawText.
d3dx9: Remove unreachable DT_SINGLELINE handling from ID3DXFont_DrawText.

Zebediah Figura (29):
quartz: Don't hold an extra reference in async_run_cb().
quartz/tests: Test releasing the graph while waiting for an asynchronous paused -> running transition.
msi: Use the global is_wow64 variable in custom_start_server().
msi/tests: Test the "VersionNT" property.
quartz/tests: Test adding and removing filters while the graph is running.
quartz: Don't stop the filter in IFilterGraph::RemoveFilter().
quartz/tests: Store a testfilter pointer inside the testpin structure.
quartz/tests: Add more tests for interaction between pin connection and graph state.
quartz: Immediately return failure from IFilterGraph::RemoveFilter() if IPin::Disconnect() fails.
makefiles: Disable implicit rules.
quartz/tests: Pass an IMediaControl to some functions.
winegstreamer: Don't fail state change methods if the sink pin is not connected.
winegstreamer: Don't fail parser_init_stream() if a source pin is not connected.
wineqtdecoder: Do not fail state change methods if source pins are not connected.
quartz: Commit the allocator directly.
amstream/tests: Commit the allocator directly.
strmbase: Remove no longer used allocator commit helpers.
strmbase: Get rid of strmbase_pin_get_media_type().
quartz/tests: Enable no longer failing tests for IBasicVideo::GetCurrentImage().
strmbase: Forbid disconnecting the sink if the filter is not stopped.
quartz/tests: Test (dis)connecting while not stopped.
qasf/tests: Test (dis)connecting while not stopped.
qcap/tests: Test (dis)connecting while not stopped.
qedit/tests: Test (dis)connecting while not stopped.
quartz/avidec: Don't send ICM_DECOMPRESS_BEGIN or ICM_DECOMPRESS_END messages if the source is disconnected.
quartz/tests: Add some tests for AVI decoder sample processing.
quartz/avidec: Don't copy the media time to the output sample.
quartz/tests: Add some tests for streaming events on the AVI decoder.
quartz/tests: Add some tests for flushing on the DirectSound renderer.

Zhiyi Zhang (3):
user32/tests: Pass a struct DEVMODEA pointer to expect_dm() for monitor tests.
winex11.drv: Adjust the priority of NoRes display settings handler to 1.
winex11.drv: Clarify parent in struct x11drv_win_data comments.

Ziqing Hui (3):
windowscodecs: Correctly set pixel format of uncompressed DDS with extended header.
d3dx10/tests: Add tests for D3DX10GetImageInfoFromResource{A, W}().
d3dx10: Implement D3DX10GetImageInfoFromResource{A, W}().

Wine