Wine release 9.19
The Wine development release 9.19 is now available.
What's new in this release:
- Character tables updates to Unicode 16.0.0.
- Better window positioning in the Wayland driver.
- More support for network sessions in DirectPlay.
- Support for plug&play device change notifications.
- Various bug fixes.
The source is available at ( https://dl.winehq.org/wine/source/9.x/wine-9.19.tar.xz)
Binary packages for various distributions will be available from the respective [download sites][1].
You will find documentation [here][2].
Wine is available thanks to the work of many people. See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download
[2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation
[3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.19/AUTHORS
### Bugs fixed in 9.19 (total 11):
- #41268 Songr 1 installation fails
- #52208 Malus crashes on unimplemented function WS2_32.dll.WSCGetApplicationCategory
- #56875 WordSmith 9.0 shows error message on start
- #56975 Death to Spies: black screen during video playback
- #57079 Quicken WillMaker Plus 2007 requires unimplemented msvcp70.dll.?getline@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@1@AAV21@AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z
- #57139 SET changes errorlevel in .bat files
- #57147 exit /B doesn't break for loop
- #57205 FL Studio - ALL RECENT VERSIONS - After Wine 9.17 I cannot drag and drop audio files from file manager into the app, and then file manager crashes
- #57215 cnc-ddraw OpenGL renderer is broken again in 9.18
- #57240 Wine 9.18 - Regression - FL Studio (and probably other apps) don't export correct file formats anymore
- #57242 Quicken WillMaker Plus 2007 requires unimplemented msvcp70.dll.??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z
### Changes since 9.18:
```
Aida Jonikienė (1):
server: Move last_active variable initialization (Valgrind).
Alexandre Julliard (14):
include: Use __readfsdword intrinsic on MSVC.
include: Remove some obsolete MSVC version checks.
widl: Output statements contained inside modules.
gitlab: Add 'build' tag on Linux build jobs.
tools: Upgrade the config.guess/config.sub scripts.
server: Match formatting of the English manpage.
programs: Formatting tweaks in the man pages.
tools: Formatting tweaks in the man pages.
loader: Formatting tweaks in the man pages.
kernel32/tests: Use a different invalid character since u1806 is now valid.
gitlab: Remove make -j options.
documentation: Update URLs to point to the Gitlab Wiki.
appwiz.cpl: Update URLs to point to the Gitlab Wiki.
winedbg: Update URLs to point to the Gitlab Wiki.
Andrew Nguyen (2):
wininet: Add additional tests for handling of user agent configuration in requests.
wininet: Only include non-empty session user agent string in request headers.
Anton Baskanov (36):
dplayx/tests: Test client-side of Open() separately.
dplayx: Check session desc size first in DP_SecureOpen().
dplayx: Return DPERR_NOSESSIONS from DP_SecureOpen() when there are no sessions.
dpwsockx: Store name server address in Open().
dpwsockx: Start listening for incoming TCP connections in Open().
dplayx: Unlink and clean up the reply struct on error paths in DP_MSG_ExpectReply().
dplayx: Return and check HRESULT from DP_MSG_ExpectReply().
dplayx: Allow specifying multiple reply command ids in DP_MSG_ExpectReply().
dplayx: Expect SUPERENUMPLAYERSREPLY in DP_MSG_ForwardPlayerCreation().
dpwsockx: Return DP_OK from CreatePlayer().
dpwsockx: Add a partial SendEx() implementation.
dplayx: Use SendEx() instead of Send().
dplayx: Initialize the unknown field in DP_MSG_ForwardPlayerCreation().
dpwsockx: Set player data in CreatePlayer().
dplayx: Use the documented message layout in DP_MSG_ForwardPlayerCreation().
dplayx: Merge DP_CalcSessionDescSize() into DP_CopySessionDesc().
dplayx: Add a session duplication helper function and use it in DP_SetSessionDesc() and NS_AddRemoteComputerAsNameServer().
dplayx: Return SP message header from NS_WalkSessions() and get rid of NS_GetNSAddr().
dplayx: Set session desc when joining a session.
dplayx/tests: Test Open() with two enumerated sessions.
dplayx: Find the matching session instead of using the first one.
dplayx/tests: Test that players from SUPERENUMPLAYERSREPLY are added to the session.
dplayx: Don't enumerate system players.
dplayx: Add player to the system group in DP_CreatePlayer().
dplayx: Set player data in DP_CreatePlayer().
dplayx: Return HRESULT from DP_CreatePlayer().
dplayx: Inform the SP about player creation in DP_CreatePlayer().
dplayx: Set SP data in DP_CreatePlayer().
dplayx: Return message header from DP_MSG_ExpectReply().
dplayx: Parse SUPERENUMPLAYERSREPLY and add players to the session.
dplayx/tests: Also check the names returned by GetPlayerName() in checkPlayerListCallback().
dplayx: Don't check dwSize in DP_CopyDPNAMEStruct().
dplayx: Add a name copying helper function and use it in DP_IF_GetGroupName() and DP_IF_GetPlayerName().
dplayx: Store the names contiguously.
dplayx: Store the names as both Unicode and ANSI.
dplayx: Pass ANSI name when enumerating through ANSI interface.
Bernhard Kölbl (1):
mscoree: Register mono log handler callback.
Bernhard Übelacker (2):
ntdll: Add warning if dlopen of unixlib failed.
mmdevapi: Add error if no driver could be initialized.
Billy Laws (3):
ntdll: Match the new ARM64 KiUserExceptionDispatcher stack layout.
regsvr32: Explicitly specify the target machine when relaunching.
msi: Disable WOW64 redirection for all 64-bit package archs.
Biswapriyo Nath (9):
include: Add new value in DWRITE_GLYPH_IMAGE_FORMATS in dcommon.idl.
include: Add UI Automation Text Attribute ID definitions.
include: Add UI Automation Landmark Type ID definitions.
include: Add IDWriteFontFace7 definition in dwrite_3.idl.
include: Add ISystemMediaTransportControls2 definition in windows.media.idl.
include: Add DataWriter runtimeclass in windows.storage.streams.idl.
include: Add IRandomAccessStreamReferenceStatics in windows.storage.streams.idl.
include: Add IRandomAccessStreamReference in windows.storage.streams.idl.
include: Add IOutputStream in windows.storage.streams.idl.
Charlotte Pabst (2):
comdlg32: Update current itemdlg filter in SetFileTypeIndex.
comdlg32/tests: Add test for SetFileTypeIndex updating current filter.
Connor McAdams (7):
d3dx9/tests: Add more d3d format conversion tests.
d3dx9/tests: Add format conversion tests for premultiplied alpha DXTn formats.
d3dx9: Clamp source components to unorm range.
d3dx9: Store pixel value range alongside pixel values when reading pixels.
d3dx9: Add support for D3DFMT_Q8W8V8U8.
d3dx9: Add support for D3DFMT_V8U8.
d3dx9: Use format_from_d3dx_color() instead of fill_texture().
Dmitry Timoshkov (1):
msi: Also set "MsiTrueAdminUser" property.
Elizabeth Figura (11):
d3d11: Stub ID3D11VideoDecoder.
d3d11: Stub ID3D11VideoDecoderOutputView.
d3d11: Stub ID3D11VideoContext.
wined3d: Invalidate the FFP VS when diffuse presence changes.
wined3d: Move geometry_shader_init_stream_output().
wined3d: Call geometry_shader_init_stream_output() from shader_set_function().
wined3d: Remove the redundant "device" parameter to shader_set_function().
wined3d: Merge the rest of vertex_shader_init() into shader_set_function().
wined3d: Merge the rest of pixel_shader_init() into shader_set_function().
win32u: Implement drawing transformed arcs.
win32u: Implement drawing transformed round rectangles.
Eric Pouech (17):
cmd: Rewrite part of WCMD_expand_envvar.
cmd: Fix consecutive ! in variable expansion.
cmd: Add tests for 'EXIT /B' inside FOR loops.
cmd: EXIT /B shall break FOR loops.
cmd/tests: Add tests for running .BAT files.
cmd: Don't always set errorlevel for some builtin commands.
cmd: Extend tests for FOR loop variables.
cmd: Extend the range of usable variables in FOR loops.
cmd: Better detection of %~ as modifier.
cmd: Rewrite parsing of tokens= options in FOR /F loop.
kernel32: Correctly advertize unicode environment for AeDebug startup.
cmd/tests: Add test about external commands with dots.
cmd: Fix searching external commands with dots in their basename.
cmd/tests: Add more tests for SET command.
cmd: Use CRT memory function for environment.
cmd: Free environment strings.
cmd: Fix 'SET =' invocation.
Esme Povirk (2):
comctl32: Implement MSAA events for buttons.
comctl32/tests: Test MSAA events for buttons.
Gabriel Ivăncescu (5):
mshtml: Don't make hidden props enumerable.
mshtml: Move lookup_dispid and get_dispid calls out of get_builtin_id.
mshtml: Fix builtin style translation in removeAttribute for IE9+ modes.
mshtml: Move the hook invocations inside of the builtin_prop* helpers.
mshtml: Add support for host object accessor props.
Georg Lehmann (2):
winevulkan: Avoid empty struct extension conversions.
winevulkan: Update to VK spec version 1.3.296.
Hans Leidekker (11):
winedump: Dump CLR metadata.
fc: Add support for comparing files with default options.
fc/tests: Add tests.
findstr: Support case insensitive search.
findstr: Support search with regular expressions.
crypt32/tests: Fix a test failure.
ntdll: Return success for NtSetInformationProcess(ProcessPowerThrottlingState).
findstr: Preserve line endings.
cmd: Call ReadConsoleW() with standard input handles only.
imagehlp: Add a test to show that ImageGetDigestStream() supports 64-bit images.
wine.inf: Add a couple of NTFS registry values.
Jinoh Kang (1):
win32u: Don't release surface before passing it to create_offscreen_window_surface().
Louis Lenders (1):
kernelbase: Add stub for FindFirstFileNameW.
Matteo Bruni (3):
d3dx9/tests: Handle uncommon test results in test_D3DXCheckTextureRequirements().
d3dx9/tests: Handle lack of support for D3DFMT_A1R5G5B5 in test_D3DXFillCubeTexture().
d3dx9: Clean up color key handling in convert_argb_pixels() and point_filter_argb_pixels().
Nikolay Sivov (1):
unicode: Update to Unicode 16.0.0.
Owen Rudge (2):
odbc32: Wrap dlerror in debugstr_a to avoid potential buffer overflow.
odbc32: Return SQL_NO_DATA from SQLGetDiagRec if no active connection.
Paul Gofman (18):
ntdll: Implement RtlRbInsertNodeEx().
ntdll: Implement RtlRbRemoveNode().
ntdll/tests: Add tests for RTL RB tree.
ntdll: Fill LDR_DATA_TABLE_ENTRY.BaseAddressIndexNode.
ntdll: Use base address tree in get_modref().
ntdll: Use base address tree in LdrFindEntryForAddress().
ntdll/tests: Add more tests for process instrumentation callback.
ntdll: Call instrumentation callback from wine_syscall_dispatcher on x64.
ntdll: Call instrumentation callback for KiUserExceptionDispatcher on x64.
ntdll: Call instrumentation callback for LdrInitializeThunk on x64.
ntdll: Call instrumentation callback for KiUserModeCallback on x64.
ntdll: Support old parameter layout for NtSetInformationProcess( ProcessInstrumentationCallback ).
wow64: Fix length check in wow64_NtSetInformationProcess().
uxtheme: Better detect the presence of default transparent colour in prepare_alpha().
win32u: Call set_active_window() helper directly from handle_internal_message().
win32u: Correctly fill new foreground window TID in WM_ACTIVATEAPP.
kernel32/tests: Add test for finding loaded module when the module file is renamed.
ntdll: Skip dll file search when getting module handle from short name.
Piotr Caban (2):
msvcp70: Export std::getline function.
msvcp70: Add basic_ofstream constructor implementation.
Rémi Bernon (69):
mfplat/tests: Add tests for VIDEOINFOHEADER(2) user data conversion.
mfplat: Fill user data when converting VIDEOINFOHEADER formats.
winedmo: Avoid printing errors on expected statuses.
winedmo: Set the buffer size to zero on read failure.
mfsrcsnk: Send EOS event only when there is no more samples queued.
mfsrcsnk: Fill the stream mapping for unknown stream types too.
winex11: Avoid recreating the offscreen GL window if not necessary.
win32u: Notify drivers of the child surfaces state when their ancestor moves.
winewayland: Use window DPI for the OpenGL client surface size.
winewayland: Call ensure_window_surface_contents with the toplevel window.
winewayland: Keep the toplevel hwnd on the wayland_client_surface.
winewayland: Update the client separately from the window surface updates.
winewayland: Split wayland_win_data_update_wayland_surface helper.
winewayland: Pass the client surface rect to wayland_surface_reconfigure_client.
winewayland: Attach client client surfaces to their toplevel surface.
winewayland: Let the render threads commit changes to client surfaces.
winegstreamer: Pass H264 codec data as streamheader.
mfsrcsnk: Serialize stream sample requests with the state callbacks.
winedmo: Hoist the demuxer input format.
winedmo: Simplify demuxer creation error handling.
winedmo: Allocate a dedicated demuxer structure.
winedmo: Move the last packet to the demuxer struct.
winedmo: Create bitstream filters for demuxer streams.
winedmo: Pass demuxer packets through the bitstream filters.
winedmo: Convert H264 streams to Annex B format.
winex11: Use NtUserGetDpiForWindow when only checking for empty rect.
win32u: Keep per display source monitor DPI values.
win32u: Introduce a new NtUserGetWinMonitorDpi call for drivers.
win32u: Only reuse scaling target surface if it matches the monitor rect.
win32u: Update the window state when display settings changes.
user32: Stub DisplayConfigSetDeviceInfo.
user32/tests: Add more tests for GetDpiForMonitorInternal.
user32/tests: Add more tests with display source DPI scaling.
user32/tests: Add tests with windows and monitor DPI scaling.
winewayland: Move surface title change to wayland_surface_make_toplevel.
winewayland: Call wayland_surface_clear_role in wayland_surface_destroy.
winewayland: Introduce a new wayland_surface role enumeration.
winewayland: Introduce a new wayland_surface_reconfigure_xdg helper.
winewayland: Introduce a new update_wayland_surface_state_toplevel helper.
winewayland: Use subsurfaces for unmanaged windows.
user32/tests: Load more DPI-related functions dynamically.
user32/tests: Move the monitor DPI tests below others.
user32/tests: Use more commonly available resolutions.
mfplat/tests: Test source resolver bytestream interactions.
mfplat: Seek byte stream to the start for URL hint detection.
win32u: Make sure to load drivers when updating the display cache.
win32u: Always write the source current mode to the registry.
win32u: Keep the source depth separately from the current mode.
win32u: Remove now unnecessary GetDisplayDepth driver entry.
win32u: Cache display source current display settings.
win32u: Remove unnecessary GetCurrentDisplaySettings call.
win32u: Add virtual modes when drivers report a single display mode.
win32u: Keep track of the display source physical display mode.
win32u: Use the current display mode as monitor rect.
winemac: Remove unnecessary MoveWindowBits implementation.
win32u: Pass rects in window DPI to MoveWindowBits.
win32u: Pass a MONITOR_DPI_TYPE param to monitor_get_dpi.
win32u: Pass a MONITOR_DPI_TYPE param to monitor_get_rect.
win32u: Pass a MONITOR_DPI_TYPE param to NtUserGetVirtualScreenRect.
win32u: Pass a MONITOR_DPI_TYPE param to get_monitor_from_rect.
win32u: Use the parent window monitor DPI for child windows.
win32u: Pass a MONITOR_DPI_TYPE param to NtUserGetWinMonitorDpi.
dinput/tests: Add tests for IoReportTargetDeviceChange(Asynchronous).
sechost: Pass individual parameters to I_ScRegisterDeviceNotification.
sechost: Filter the device notifications before copying them.
sechost: Keep device notification temporary copies in a list.
sechost: Get rid of the device_notification_details internal struct.
plugplay: Pass a device path to plugplay notifications.
win32u: Read AppCompatFlags DPI awareness overrides from the registry.
Sergei Chernyadyev (5):
shell32: Move icon related fields in notify_data into separate struct.
shell32: Introduce a new get_bitmap_info helper.
shell32: Cleanup some local variable names.
shell32: Introduce a new fill_icon_info helper.
shell32: Add support for balloon icon copying.
Tim Clem (6):
nsiproxy: Only set the connection count from tcp_conns_enumerate_all when appropriate.
nsiproxy: Only set the endpoint count from udp_endpoint_enumerate_all when appropriate.
advapi32: Use CreateProcessAsUser to implement CreateProcessWithToken.
user32/tests: Test that shell windows are per-desktop and should be set on the default desktop.
server: Make shell, taskman, and progman windows per-desktop.
explorer: Set the shell window when creating the Default desktop.
Vibhav Pant (17):
bluetoothapis: Add stub for BluetoothSdpGetElementData.
bluetoothapis/tests: Add tests for BluetoothSdpGetElementData.
bluetoothapis: Implement BluetoothSdpGetElementData.
bluetoothapis: Add stub for BluetoothSdpGetContainerElementData.
bluetoothapis/tests: Add tests for BluetoothSdpGetContainerElementData.
bluetoothapis: Implement BluetoothSdpGetContainerElementData.
bluetoothapis: Add stub for BluetoothSdpEnumAttributes.
bluetoothapis/tests: Add tests for BluetoothSdpEnumAttributes.
bluetoothapis: Implement BluetoothSdpEnumAttributes.
bluetoothapis: Add stub for BluetoothSdpGetAttributeValue.
bluetoothapis/tests: Add tests for BluetoothSdpGetAttributeValue.
bluetoothapis: Implement BluetoothSdpGetAttributeValue.
ntoskrnl: Add stub for IoReportTargetDeviceChange.
plugplay: Only broadcast WM_DEVICECHANGE for DBT_DEVTYP_DEVICEINTERFACE.
sechost: Add support for DBT_DEVTYP_HANDLE notifications.
user32: Add support for DBT_DEVTYP_HANDLE notifications.
ntoskrnl: Implement IoReportTargetDeviceChange.
Vijay Kiran Kamuju (3):
ws2_32: Add stub WSCGetApplicationCategory().
windows.ui: Add stubs for UIViewSettings class.
windows.ui: Add stub IInputPaneStatics implementation.
Yuxuan Shui (1):
d3d11: Stub ID3D11VideoDevice1.
Zhiyi Zhang (9):
user32/tests: Test that DragDetect() uses client coordinates instead of screen coordinates.
ntdll/tests: Add RtlConvertDeviceFamilyInfoToString() tests.
ntdll: Implement RtlConvertDeviceFamilyInfoToString().
include: Add Windows.ApplicationModel.DesignMode runtime class.
include: Add more Windows.Foundation.IReference<> interfaces.
include: Add windows.ui.xaml.interop.idl.
include: Add windows.ui.xaml.idl.
include: Add Windows.Globalization.ApplicationLanguages runtime class.
windows.ui: Register Windows.UI.Core.CoreWindow.
```
The latest development release of Wine features updates to the Unicode 16.0.0 character tables, enhanced window alignment in the Wayland driver, increased support for network sessions in DirectPlay, plug-and-play device change notifications, and a number of bug fixes. The update addresses 11 defects, including Songr 1 installation difficulties, Malus crashes, WordSmith 9.0 error messages, Death to Spies, Quicken WillMaker Plus 2007 requirements, and OpenGL renderer issues.