Wine Announcement
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.