Software 42309 Published by

Alexandre Julliard has announced the release of a new Wine development release with Character tables updated to Unicode 15.0.0, Wow64 support in the macOS driver, Async reader fixes in GStreamer support, and various bug fixes.



Wine release 7.18

The Wine development release 7.18 is now available.

What's new in this release:
- Character tables updated to Unicode 15.0.0.
- Wow64 support in the macOS driver.
- Async reader fixes in GStreamer support.
- Various bug fixes.

The source is available at:

https://dl.winehq.org/wine/source/7.x/wine-7.18.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 7.18 (total 20):

- #31157 Multiple applications (FileMaker Pro 12-19, MyDiff) crash when trying to create/open sample solution ('ImmAssociateContext' should only generate 'WM_IME_SETCONTEXT' if window has focus)
- #35478 Multiple applications and games need dsdmo.dll (DirectSound Effects)
- #36312 valgrind shows a couple possible leaks in oledb32/tests/marshal.c
- #36944 Hotel Giant 2 crashes frequently
- #42751 Multiple applications crash on unimplemented function msvcr{100,110}.dll.?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@@Z (Gas Guzzlers Combat Carnage, Clip Studio Paint, Cube World, Intel ACAT)
- #44314 Adobe FrameMaker 8: Installer aborts with the error "The wizard was interrupted..."
- #48487 MSYS based Git 2.25 installer reports 'could not decode hex hexstring' (needs support for CryptStringToBinaryW CRYPT_STRING_HEX)
- #48600 Bloomberg Terminal needs unimplemented function dbghelp.dll.SymSrvGetFileIndexInfo
- #51404 Resident Evil 7 objects rendered with glitches (Vulkan renderer)
- #52677 REVELPROG_IS crashes on unimplemented function winusb.dll.WinUsb_Free
- #53430 urlmon:url fails due to unexpected redirection
- #53458 windows.media.speech:speech - The 64-bit test_Recognition() gets unexpected ref count on Windows after ISpeechContinuousRecognitionSession_Release()
- #53570 Visual C++ 2015-2019 crashes on launch
- #53577 d3d9:device - test_scissor_size() fails on Windows 8+
- #53578 msvfw32:mciwnd - test_MCIWndCreate() fails in Wine
- #53609 Segmentation fault when starting Dosbox.exe in virtual desktop mode
- #53614 KeePassXC crashes on unimplemented function msvcp140.dll.?ReportUnhandledError@_ExceptionHolder@details@Concurrency@@AEAAXXZ
- #53626 Wine crash due to long filename when saving file in Framemaker
- #53703 Wine crashes when setting a long window title.
- #53706 NtDeviceIoControlFile() is quite slow when called with and invalid handle

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

Changes since 7.17:

Akihiro Sagawa (1):
user32: Fix a memory allocation strategy.

Alexandre Julliard (22):
configure: Use --disable-stdcall-fixup for all PE builds.
kernel32/tests: Fix affinity test when there are too many CPUs.
ntdll/tests: Fix affinity test when there are too many CPUs.
ntoskrnl/tests: Fix affinity test when there are too many CPUs.
oleaut32: Avoid spurious debug traces when FIXMEs are disabled.
oleaut32: Check that the 32/64 syskind matches when getting a typelib from the cache.
webservices/tests: Mark tests that fail on 64-bit as todo.
d2d1/tests: Adjust geometry to make tests pass on all devices.
winetest: Don't require an email if we have a URL.
gdi32/tests: Mark some tests that fail without Vulkan as todo.
vcomp/tests: Limit the number of nested threads.
unicode: Update to Unicode 15.0.0.
win32u: Fix Get/SetWindowWord behavior on 32-bit.
winex11: Don't send WM_CANCELMODE to iconified windows.
user32/tests: Fix a few more assumptions about window positions.
ntdll/tests: Re-add workaround for check that is still broken on win7.
winetest: Report failure for tests that print too much output.
ntdll/tests: Don't run the stack growth tests too many times.
d2d1/tests: Skip subsequent todo tests for unsupported properties.
user32/tests: Only report the first todo of a failed message sequence.
user32/tests: Don't print debug traces by default.
advapi32/tests: Mark some failing tests as todo.

Alistair Leslie-Hughes (7):
ws2_32: Return a valid value for WSAIoctl SIO_IDEAL_SEND_BACKLOG_QUERY.
wininet: Clear cached credentials after the first failed attempt.
oledb32/tests: Free returned property set memory.
wininet: Use standard HTTP_ADD Flags.
msdasql: Implement ICommandProperties GetProperties.
msdasql: Implement ICommandProperties SetProperties.
msdasql: Implement IColumnsRowset GetAvailableColumns.

André Zwing (1):
ntdll: Fix ARM vs AMD64 typo.

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

Brendan Shanks (4):
server: Remove 32-bit-specific macOS #ifdefs.
server: Report errors on macOS when getting/setting debug registers.
server: Write to correct context struct when getting debug registers on macOS.
server: Use correct context struct and thread flavor when setting debug registers on macOS.

Connor McAdams (6):
uiautomationcore: Implement UiaReturnRawElementProvider.
uiautomationcore: Increment module reference count when starting provider thread.
uiautomationcore: Shutdown provider thread when all returned nodes are released.
uiautomationcore: Implement UiaNodeFromHandle.
uiautomationcore: Create UI Automation client thread.
uiautomationcore: Add tests for UiaNodeFromHandle.

David Kahurani (1):
win32u: Use allocator mechanism to allocate DC attributes.

Davide Beatrici (9):
winecoreaudio: Fix RegEnumKeyExW() call passing wrong unit for the buffer size.
winecoreaudio: Switch to string as device identifier, to match other drivers.
mmdevapi: Integrate winecoreaudio's additions in unixlib.h.
winecoreaudio: Drop "unix_" prefix in unixlib enum, apply it to the functions instead.
winecoreaudio: Adapt "create_stream_params" struct to mmdevapi's.
winecoreaudio: Adapt "release_stream_params" struct to mmdevapi's.
winecoreaudio: Adapt "release_render_buffer_params" struct to mmdevapi's.
winecoreaudio: Adapt "get_capture_buffer_params" struct to mmdevapi's.
winecoreaudio: Switch to mmdevapi's unixlib.h.

Eric Pouech (14):
winedump: Harden reading PDB string table stream.
dbghelp: Harden reading strings from string table.
dbghelp: Correctly handle the absence of IPI stream.
dbghelp: Support SymGetTypeInfo/TI_GET_LENGTH for variables.
dbghelp: Displacements are optional.
winedump: Print signed integers with %d.
dbghelp: Support depth relating to top function for inline sites.
dbghelp: Store all address ranges for inline sites.
d3d10core/tests: Fix erroneous color parameter.
d3d10core/tests: Introduce a clear_backbuffer_rtv() helper.
d3d11/tests: Introduce a clear_rtv() helper.
glu32: Fix GCC 12.2 warnings.
jscript: Fix GCC 12.2 warning.
avifil32: Fix GCC 12.2 warning (-Warray-bounds).

Etaash Mathamsetty (2):
ntoskrnl: KeSetTargetProcessorDpcEx stub.
ntoskrnl: Implement KeGetCurrentProcessorNumberEx.

Floris Renaud (1):
po: Update Dutch translation.

Gabriel Ivăncescu (8):
include: Add IDOMStorageEvent and DispDOMStorageEvent interfaces.
mshtml: Move the MessageEvent construction to a helper.
mshtml: Implement StorageEvent and send it when clearing the storage.
mshtml: Send StorageEvents when setting an item.
mshtml: Send StorageEvents when removing an existing item.
mshtml/tests: Add tests for StorageEvents with parallel documents.
mshtml: Don't expose document.onstorage for IE9+ modes.
mshtml: Send StorageEvents to iframe windows properly.

Georg Lehmann (1):
winevulkan: Update to VK spec version 1.3.228.

Gijs Vermeulen (2):
dbghelp: Add SymSrvGetFileIndexInfo stub.
ntdll: Add RtlDosPathNameToRelativeNtPathName_U.

Hans Leidekker (15):
bcrypt: Support setting BCRYPT_CHAIN_MODE_CFB on keys.
bcrypt: Add full support for algorithm pseudo-handles.
bcrypt: Rename mode_id to chain_mode.
appwiz.cpl: Use BCrypt algorithm pseudo-handles.
appwiz.cpl: Use BCryptHash().
crypt32: Use BCrypt algorithm pseudo-handles.
dssenh: Use BCrypt algorithm pseudo-handles.
fusion: Use BCrypt algorithm pseudo-handles.
ncrypt: Use BCrypt algorithm pseudo-handles.
rsaenh: Use BCrypt algorithm pseudo-handles.
adsldp: Implement ADS_SEARCHPREF_SIZE_LIMIT.
adsldp/tests: Limit the number of search results.
adsldp/tests: Get rid of workarounds for Windows XP.
winhttp/tests: Fix test failure caused by expired client certificate.
secur32/tests: Fix test failure caused by expired client certificate.

Henri Verbeet (6):
wined3d: Fix the sub-resource index validation in wined3d_texture_update_overlay().
wined3d: Destroy the Vulkan command pool after cleaning up resources.
d3d9/tests: The expected scissor rect after a reset is equal to the back-buffer dimensions.
d3d11: Implement d3d11_input_layout_to_wined3d_declaration() on top of vkd3d_shader_parse_input_signature().
d3d11/tests: Move the is_warp_device() call out of the loop in check_format_support().
wined3d: Return bools from all return paths in wined3d_cs_map_upload_bo().

Jacek Caban (8):
urlmon/tests: Make BINDSTATUS_DOWNLOADINGDATA optional in test_URLDownloadToFile_abort.
wininet/tests: Collect persistent connection before running tests in test_async_HttpSendRequestEx.
wininet/tests: Don't send two HTTP responses for a single request in server_thread.
win32u: Introduce NtUserSendDriverMessage.
winemac: Use platform-independent types for user callback params.
winemac: Implement wow64 thunks.
winevulkan: Introduce VkVariable.
winevulkan: Use DECLSPEC_ALIGN instead of pshpack4.h.

Jacob Czekalla (3):
notepad: Show status bar.
notepad: Track and display line number and column.
notepad: Show goto dialog box.

Jinoh Kang (3):
include: Define atomic read/write helpers for 32-bit integers.
concrt140: Use atomic write for releasing threadsafe_queue spin lock.
msvcp90: Use atomic write for releasing threadsafe_queue spin lock.

Julian Klemann (9):
widl: Use "cinterface(IInspectable)" for IInspectable signature.
include/windows.devices.enumeration: Update file to newer formatting.
include/windows.devices.enumeration: Define IDeviceInformationStatics2.
windows.devices.enumeration: Replace STDMETHODCALLTYPE with WINAPI.
windows.devices.enumeration: Create private header file.
windows.devices.enumeration: Add IDeviceInformationStatics2 stub.
windows.devices.enumeration: Add DeviceWatcher stub.
windows.devices.enumeration: Implement Stopped handler for DeviceWatcher.
windows.devices.enumeration/tests: Add test for Stopped DeviceWatcher event.

Mohamad Al-Jaf (2):
include: Add winusb.h file.
winusb: Add WinUsb_Free stub.

Nikolay Sivov (26):
dwrite/layout: Use same logic for mapping both non-visual and visual runs.
dwrite/layout: Keep system font collection for each layout.
dwrite/layout: Use already resolved or last resort fonts when setting dummy line metrics.
dwrite/layout: Constify some internal helpers arguments.
dwrite/layout: Limit text window passed to MapCharacters() to the range of characters to map.
xmllite/reader: Improve xml declaration node parsing.
xmllite/writer: Implement WriteWhitespace().
xmllite/writer: Handle empty prefix and uri correctly in WriteStartElement().
xmllite/writer: Close open tag on WriteRaw().
xmllite/writer: Close open tag on WriteProcessingInstruction().
xmllite/writer: Implement WriteAttributes().
xmllite/writer: Add initial implementation of WriteNode().
xmllite/tests: Add some more tests for WriteStartElement().
xmllite/tests: Add a test for IsEmptyElement() on attributes.
xmllite/writer: Handle empty local name in WriteAttributeString().
xmllite/writer: Implement WriteNodeShallow().
xmllite/writer: Enable some more tests for WriteNode().
kernelbase: Add OpenFileMappingFromApp().
kernelbase: Add CreateFileMappingFromApp().
kernelbase: Add MapViewOfFileFromApp().
include: Add windows.system.threading.idl.
threadpoolwinrt: Add a stub module.
threadpoolwinrt: Add initial implementation of RunAsync.
include: Add windows.security.cryptography.idl.
cryptowinrt: Add a stub module.
cryptowinrt: Implement GenerateRandomNumber().

Owen Rudge (2):
secur32/tests: Add tests for LsaGetLogonSessionData.
secur32: Implement basic functionality for LsaGetLogonSessionData.

Paul Gofman (6):
advapi32: Add stub for PerfCloseQueryHandle().
advapi32: Add stub for PerfOpenQueryHandle().
advapi32: Add stub for PerfAddCounters().
advapi32: Add stub for PerfQueryCounterData().
crypt32: Support CRYPT_STRING_HEXRAW in CryptBinaryToStringA().
crypt32: Support CRYPT_STRING_HEX in CryptStringToBinary().

Piotr Caban (2):
msvcp90: Fix indentation in concurrent_vector_alloc_segment function.
msvcr100: Fix crash when setting scheduler in schedule_task_proc.

Rémi Bernon (66):
wmvcore/tests: Add some tests starting WM reader with NULL context.
winegstreamer: Wrap async reader op new_context in a union.
winegstreamer: Unconditionally assign new context for ASYNC_OP_START.
winegstreamer: Implement async reader asynchronous seeking.
winegstreamer: Keep start time in the async_reader struct.
winegstreamer: Check whether the reader is still running before user time.
winegstreamer: Factor async_reader waits using async_reader_get_wait_timeout.
winegstreamer: Introduce a new async_reader_wait_pts helper.
winegstreamer: Request the wm_reader stream only when necessary.
widl: Allow parameterized types in runtimeclass interfaces.
wineandroid.drv: Add missing DM_DISPLAYORIENTATION flag on display mode.
win32u: Rename get_full_mode variables and avoid using devmode directly.
win32u: Fill the local full_mode variable instead of using the modes array.
win32u: Introduce reference counting to struct adapter.
win32u: Avoid copying the modes array in NtUserChangeDisplaySettings.
win32u: Avoid unnecessary copy of adapter path and device name.
win32u: Pass adapter parameter to (read|write)_registry_settings.
win32u: Introduce a new internal WINE_DM_UNSUPPORTED display flag.
mf/tests: Split IMFTransform tests to transform.c.
mf/tests: Add some winetest context to MFT tests.
mf/tests: Split create_transform into check_(mft|dmo)_(enum|get_info).
mf/tests: Test AAC encoder MFT presence and media types.
mf/tests: Test AAC decoder MFT presence and media types.
mf/tests: Factor IMFTransform required attributes checks together.
maintainers: Assume maintainership of MF transforms.
winegstreamer: Support MFT_SET_TYPE_TEST_ONLY flag in the MF transforms.
winegstreamer: Avoid leaking attributes on video processor creation failure.
winegstreamer: Better implement H264 MFT GetAttributes and GetOutputStreamAttributes.
winegstreamer: Set MFT_OUTPUT_DATA_BUFFER_INCOMPLETE in wg_transform_read_mf.
winegstreamer: Stop setting flags on unexpected MF_E_TRANSFORM_STREAM_CHANGE.
winegstreamer: Check for unexpected format change in wg_transform_read helpers.
winegstreamer: Check WMA sample size before wrapping the sample.
winegstreamer: Remove unnecessary IMFTransform_GetInputStreamInfo calls.
winegstreamer: Create wg_sample from IMFSample within wg_transform_push_mf.
winegstreamer: Wake thread when async reader user clock is modified.
winegstreamer: Introduce a new async_reader_deliver_sample helper.
winegstreamer: Use a dedicated CS to serialize async reader commands.
winegstreamer: Check for already opened stream in wm_reader_open*.
winegstreamer: Get rid of the wm_reader_ops callbacks.
winegstreamer: Aggregate a IWMSyncReader in the async reader.
winegstreamer: Merge wm_syncreader.c into wm_reader.c.
mf/tests: Use separate variables for input / output samples.
mf/tests: Factor IMFTransform_ProcessOutput checks together.
mf/tests: Introduce a new load_resource helper.
mf/tests: Introduce a new dump_mf_sample helper.
mf/tests: Factor IMFSample checks in a check_mf_sample helper.
mf/tests: Factor IMFSample attributes checks in check_mf_sample.
mf/tests: Check all produced output IMFSample at the same time.
mf/tests: Rename transform frame dumps to BMP.
mf/tests: Dump image samples with a BMP header and RGB data.
winegstreamer: Query the IWMSyncReader2 interface in the async reader.
winegstreamer: Implement IWMSyncReader2_GetReadStreamSamples.
winegstreamer: Use IWMSyncReader2_GetReadStreamSamples in the async reader.
winegstreamer: Use IWMSyncReader2_SetReadStreamSamples in the async reader.
winegstreamer: Use IWMSyncReader2_Close in the async reader.
winegstreamer: Use IWMSyncReader2_Open in the async reader.
winegstreamer: Use IWMSyncReader2_OpenStream in the async reader.
winegstreamer: Use IWMSyncReader2_SetRange in the async reader.
winegstreamer: Avoid accessing NULL pointer if transform didn't provide a sample.
user32/tests: Cleanup sysparams WM_DISPLAYCHANGE tests.
win32u: Move enumeration of available modes out of graphics drivers.
winemac.drv: Stop using the cached_modes_mutex for get_default_bpp.
win32u: Factor out display_device lookup in separate helpers.
win32u: Use find_adapter_device_by_(name|id) helpers in find_adapter.
win32u: Lock display devices mutex in find_adapter.
win32u: Broadcast WM_DISPLAYCHANGE message on display settings change.

Santino Mazza (2):
include: Define REG_APP_HIVE and REG_PROCESS_PRIVATE.
ntdll/tests: Test for NtRegLoadKey roothandle parameter.

Shaun Ren (1):
msvcrt: Fix strncmp return value.

Witold Baryluk (4):
ntdll: Speed up NtQueryVirtualMemory(MemoryWorkingSetExInformation) by conditional page check.
ntdll: Do not use hardcoded page shift in NtQueryVirtualMemory(MemoryWorkingSetExInformation).
ntdll: Use pread in NtQueryVirtualMemory(MemoryWorkingSetExInformation).
ntdll: Keep pagemap file open after first use of NtQueryVirtualMemory(MemoryWorkingSetExInformation).

Zebediah Figura (16):
wined3d: Do not create larger staging buffers than necessary in adapter_vk_copy_bo_address().
wined3d: Remove a redundant variable.
wined3d: Factor out wined3d_texture_validate_sub_resource_idx().
wined3d: Mark managed textures as dirty if applicable in wined3d_device_evict_managed_resources().
d3d8: Remove an incorrect comment.
wined3d: Add a dirty region to the destination texture in wined3d_device_context_blt() if applicable.
wined3d: Pass a draw count of 1 to Vulkan indirect draw commands.
ntdll: Avoid comparing the result of pointer arithmetic to zero.
libwine: Avoid comparing the result of pointer arithmetic to zero.
ntdll: Calculate the necessary length after calling snprintf() in SystemWineVersionInformation.
win32u: Copy directly into the union pointer in unpack_message().
ntdll: Do not check for malloc() failure in get_initial_environment.
ntdll: Add a fast path for NtDeviceIoControlFile(INVALID_HANDLE_VALUE).
d3d10core/tests: Use a pixel shader that consumes SV_Position in test_pipeline_statistics_query().
d3d11/tests: Use a pixel shader that consumes SV_Position in test_pipeline_statistics_query().
d3d10core/tests: Ignore random WARP failures in test_pipeline_statistics_query.

Zhiyi Zhang (1):
kernelbase: Return system error codes in the ReadDirectoryChangesW() completion callback.

Wine