Wine Announcement

The Wine development release 5.17 is now available.

What's new in this release (see below for details):
  - ADVAPI32 library converted to PE.
  - Beginnings of an NDIS network driver.
  - Still more restructuration of the console support.
  - Various bug fixes.

The source is available from the following locations:

Binary packages for various distributions will be available from:

You will find documentation on

You can also get the current source directly from the git
repository. Check 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.17 (total 17):

  22616  Multiple applications need msvcirt.dll.??0ifstream@@QAE@PBDHH@Z (Merriam-Webster Dictionary, Power Tab Editor, gmax 1.2, GradeBook for Windows, Microsoft Reader)
  24182  Multiple games need IDirectDrawMediaStream::Get/SetFormat implementation (Need for Russia, Motocross Madness 2, The Sims Complete Collection)
  30014  Multiple programs require msvcirt.dll.??0ifstream@@QAE@XZ (Wouxun KG-UV2D, Charon, Cricket 2002, Mastercook 15, GraphCalc)
  35782  Tic Tac Toe Game (vbscript) cannot be played (colon used in for loop for placing multiple statements on the same line)
  41005  Deadlight: Director's Cut (UE3, 64-bit) loads to a black screen
  43999  GetVersion incorrectly fails to lie about the OS version when masquerading as Windows 8.1 or 10
  45642  Chrome/Chromium sandbox needs x86-64 syscall thunks to match Windows
  46278  Cisco Jabber 12.5 sends only first letter due to missing richedit:ITextRange functions
  47048  Logitech webcam does not show picture, only grey
  47642  Support conversion from GST_VIDEO_FORMAT_RGB to DirectShow-supported formats (needed by Risk II + native amstream)
  48130  Launching World of Tanks from the shortcut doesn't work
  48407  OllyDbg 2.x segfaults the process after attaching to it
  49125  Logos Bible Software Indexing fails 64bit only 32bit works
  49242  provide some way to get reported windows version via command line
  49749  Visual Studio 2019 installer crashes after unpacking content
  49762  Emulated virtual desktop ignores size set in winecfg
  49805  Pyxel Edit crashes when clicking the "File" dropdown option.


Changes since 5.16:

Aaro Altonen (1):
      ws2_32: Improve WSCGetProviderPath() stub.

Akihiro Sagawa (1):
      po: Update Japanese translation.

Alex Henrie (1):
      comdlg32: Fix error precedence in IFileDialog2_SetFileTypes.

Alexandre Julliard (32):
      kernel32: Move the initial process breakpoint to LdrInitializeThunk().
      ntdll: Call the thread entry point through BaseThreadInitThunk().
      ntdll: Call the process entry point through RtlUserThreadStart().
      kernel32: Remove the no longer used __wine_start_process() function.
      ntdll: Get rid of the server_init_process_done() Unix library callback.
      ntdll: Move the NT path conversion for exec process to the Unix library.
      ntdll: Use the process parameters directly in exec_process().
      ntdll: Get rid of the exec_process() Unix library callback.
      ntdll: Make the reserved area functions static.
      ntdll: Move the reserved area functions to avoid forward declarations.
      ntdll: Add a helper function for fixed anonymous mmaps.
      ntdll: Add a helper function for memory allocations through mmap().
      ntdll: Add a helper function to try an mmap at a fixed address.
      ntdll: Load libwine dynamically.
      ntdll: Pop the Unix stack completely in call_user_apc_dispatcher().
      loader: No longer depend on libwine.
      libwine: Remove wine/library.h.
      libwine: Make the remaining configuration functions obsolete.
      makefiles: Get rid of rpath support.
      makefiles: Add dependencies for the import lib symlinks.
      makefiles: Expand makedep path at compile time.
      makefiles: Store .pot files in a separate variable.
      makefiles: Add some missing object dir references.
      makefiles: Build extra targets explicitly if they are not a dependency.
      advapi32: Build with msvcrt.
      makefiles: Explicitly import the CRT library also for test dlls.
      wineandroid.drv: Load libwine dynamically.
      wineandroid.drv: Pass the source directory on the gradle command line.
      makefiles: Also store the basename without object dir for generated files.
      makefiles: Fix a few more object directory references.
      makefiles: Remove support for generating a single makefile.
      makefiles: Add separate variable to keep track of source dir font files.

Anton Baskanov (5):
      amstream: Implement AMDirectDrawStream::GetFormat.
      amstream: Implement AMDirectDrawStream::SetFormat.
      amstream: Reject incompatible media types in AMDirectDrawStream::ReceiveConnection.
      amstream: Reconnect if the new format is incompatible with the connection media type in AMDirectDrawStream::SetFormat.
      amstream: Use current format to create surface in AMDirectDrawStream::CreateSample.

Arkadiusz Hiler (7):
      msvcirt: Implement most of ifstream.
      msvcirt: Correct the behavior of filebuf::setbuf().
      msvcirt: Implement ifstream::setbuf().
      msvcirt: Be more obvious in out-of-memory situations.
      msvcirt: Implement _mtlock() and _mtunlock().
      msvcirt: Include iostream in strstream's and stdiostream's rtti hierarchy.
      msvcirt: Implement a part of fstream.

Biswapriyo Nath (7):
      include/d3dcommon.idl: Add D3DDestructionNotifier interface.
      include/d3dcommon.idl: Add missing names in D3D_SHADER_VARIABLE_TYPE enum.
      include/d3dcommon.idl: Add missing names in D3D_NAME enum.
      include/d3dcommon.idl: Add missing names in D3D_SHADER_INPUT_TYPE enum.
      include/d3d10.idl: Add flags in D3D10_CREATE_DEVICE_FLAG enum.
      include/d3d11.idl: Add flags in D3D11_RESOURCE_MISC_FLAG enum.
      include/d3d11.idl: Add names in D3D11_FILTER enum.

Brendan Shanks (3):
      winevulkan: Change make_vulkan interpreter to '/usr/bin/env python3'.
      winemac.drv: Print error when no GPUs are detected.
      winemac.drv: Don't fail GPU detection if some IOKit properties are missing.

Carlos Rivera (3):
      kernel32/tests: Use debugstr_an to show contents of buffer.
      kernel32/tests: Remove registry entry left out during test.
      kernel32/tests: Change file name to avoid collision with other tests.

Chao Long (2):
      ntdll: Fix a memory leak (Valgrind).
      ntdll: Fix a ImagePathName memory leak (Valgrind).

Derek Lesho (5):
      mfplat: Remove fallback media source.
      winegstreamer: Add stub bytestream handler.
      winegstreamer: Add stub media source.
      winegstreamer: Implement source event methods.
      winegstreamer: Implement IMFMediaSource::Shutdown.

Eric Wheeler (1):
      comctl32/listview: Add Get/SetSelectedColumn() support.

Esme Povirk (1):
      mscoree: Use exe basename to name the default domain.

Fabian Maurer (1):
      user32/menu: Store application defined value as pointer.

Francesco Noferi (1):
      cmd.exe: Fix parsing of && between quotes.

Gabriel Ivăncescu (7):
      msscript.ocx/tests: Add tests for SitehWnd.
      msscript.ocx: Implement IScriptControl::put_SitehWnd.
      msscript.ocx: Implement IScriptControl::get_SitehWnd.
      msscript.ocx: Implement IActiveScriptSiteWindow::GetWindow.
      msscript.ocx: Return S_OK from the IActiveScriptSiteWindow::EnableModeless stub.
      msscript.ocx: Implement UseSafeSubset properly by setting the interface safety options.
      msscript.ocx: Supply a stub ServiceProvider to InvokeEx in run_procedure.

Georg Lehmann (1):
      winex11.drv: Use vkGetPhysicalDeviceProperties2KHR to get gpu properties.

Gijs Vermeulen (1):
      crypt32: Remove unused variable in test_CryptBinaryToString().

Hans Leidekker (12):
      mountmgr: Add ioctl to read host credentials on macOS.
      advapi32: Read host credentials through mountmgr.
      mountmgr: Add ioctl to write host credentials on macOS.
      advapi32: Write host credentials through mountmgr.
      mountmgr: Add ioctl to delete host credentials on macOS.
      advapi32: Delete host credentials through mountmgr.
      mountmgr: Add ioctl to enumerate host credentials on macOS.
      advapi32: Enumerate host credentials through mountmgr.
      ntdll: Return buffer filled with random values from NtQuerySystemInformation(SystemInterruptInformation).
      advapi32: Reimplement SystemFunction036 using system interrupt information.
      advapi32: Use wide character string literals.
      crypt32: Store CERT_KEY_CONTEXT in a platform independent way.

Isabella Bosia (7):
      iphlpapi: Unify conversions to interface guid.
      iphlpapi: Make the interface guids more unique.
      wine.inf: Create NDIS service.
      ndis.sys: Create network card registry keys.
      ndis.sys: Create network card devices.
      ndis.sys: Implement IOCTL_NDIS_QUERY_GLOBAL_STATS on network cards.
      ndis.sys/tests: Add tests for ndis ioctls.

Jacek Caban (28):
      conhost: Implement IOCTL_CONDRV_FILL_OUTPUT.
      conhost: Implement IOCTL_CONDRV_SCROLL.
      kernelbase: Move KERNEL32_CONSOLE_ALLOC handling to kernelbase.
      kernel32/tests: Skip more FreeConsole tests on win7.
      server: Introduce IOCTL_CONDRV_CTRL_EVENT ioctl.
      kernelbase: Use IOCTL_CONDRV_CTRL_EVENT in GenerateConsoleCtrlEvent.
      server: Support IOCTL_CONDRV_CTRL_EVENT on console server handles.
      conhost: Support CTRL_C_EVENT in write_console_input.
      conhost: Initialize tty output.
      conhost: Support setting tty title in set_console_title.
      conhost/tests: Add initial tty tests.
      conhost: Synchronize tty cursor position in set_output_info.
      conhost: Support tty output in write_output.
      conhost/tests: Add tty output tests.
      conhost: Update tty output in fill_output.
      conhost: Update tty output in scroll_output.
      conhost: Update tty output in IOCTL_CONDRV_ACTIVATE.
      dwrite.idl: Use DEFINE_ENUM_FLAG_OPERATORS for enums that need it.
      conhost: Move console input processing into a separated function.
      conhost: Add tty input implementation.
      conhost/tests: Add tty input tests.
      kernel32/tests: Skip more tests on old Windows.
      conhost: Use more standard hide cursor sequence.
      conhost: Introduce IOCTL_CONDRV_WRITE_CONSOLE ioctl.
      kernel32: Use IOCTL_CONDRV_WRITE_CONSOLE in WriteConsoleW when possible.
      conhost/tests: Add WriteConsole tests.
      kernel32/tests: Allow ENABLE_VIRTUAL_TERMINAL_PROCESSING in default mode.
      conhost/tests: Wait for child process in test_pseudoconsole.

Jeff Smith (3):
      qcap/tests: Test effect of setting stream format on media type enumeration.
      qcap: Calculate image size and pitch when setting format.
      qcap: Enumerate one media type if pin format has been set.

Jiajin Cui (1):
      gdiplus: Make gdi_alpha_blend fallback to StretchBlt if current Compositing Mode is SourceCopy.

Ken Thomases (2):
      dbghelp: Avoid asserting on egregiously long stabs symbol names.
      mountmgr: Avoid operating on a null CFStringRef, which would crash.

Liam Middlebrook (1):
      winevulkan: Fail on explicit layer usage.

Louis Lenders (1):
      ntdll: RtlConvertToAutoInheritSecurityObject is NTSTATUS, not BOOL.

Martin Storsjo (4):
      ntdll: Fix arm64 regression from "Clear the syscall frame on return".
      ntdll: Don't truncate SP in arm64 handle_syscall_fault.
      ntdll: Add ARM64 SEH unwind directives for assembly functions in PE builds.
      ntdll: Fix more corner cases for arm64 packed info unwinding.

Matteo Bruni (5):
      d3d11: Report D3D11_FORMAT_SUPPORT_TEXTURECUBE in CheckFormatSupport().
      d3d11: Report D3D11_FORMAT_SUPPORT_MIP in CheckFormatSupport().
      d3d11: Report D3D11_FORMAT_SUPPORT_MIP_AUTOGEN in CheckFormatSupport().
      d3d11: Report D3D11_FORMAT_SUPPORT_BLENDABLE in CheckFormatSupport().
      d3d11: Report multisample flags in CheckFormatSupport().

Myah Caron (2):
      cmd.exe: Fix /Y flag for move builtin.
      cmd.exe: Don't prompt for move when non-interactive.

Nikolay Sivov (28):
      combase: Move stub manager.
      combase: Move CoReleaseMarshalData().
      combase: Move CoUnmarshalInterface().
      combase: Move remaining marshalling code.
      combase: Move ORPC functionality.
      combase: Move currently unimplemented COM API functions.
      combase: Move default memory stream implementation.
      api-ms: Redirect com-private to combase.
      combase: Implement local server registration via SCM.
      kernelbase: Forward ConvertToAutoInheritPrivateObjectSecurity() to ntdll.
      combase: Use typed list iteration macros.
      evr: Create and initialize mixer transform attributes.
      evr/mixer: Use same max input count symbol for GetStreamLimits().
      mf/evr: Actually use custom mixer when available.
      mf/evr: Implement stream sinks management functionality.
      mf/evr: Add events support for video stream sinks.
      mf/session: Add support for MR_VIDEO_RENDER_SERVICE service.
      mf/tests: Fix tests crashes.
      mf/evr: Create stream sinks for default mixer inputs.
      mf/evr: Add a IMFMediaTypeHandler stub for input video streams.
      mf/evr: Add GetMajorType() for the stream sink.
      evr/mixer: Return initial mixing preferences.
      maintainers: Get rid of removed paths.
      evr/mixer: Add another set of attributes.
      combase: Implement CoCreateInstanceFromApp().
      ole32/tests: Use treat-as-class functions directly.
      ole32/tests: Link to storage API directly.
      ole32/tests: Fix test crash on recent Windows 10.

Owen Rudge (2):
      winecfg: Ensure registry key is initialised before updating Windows version.
      winecfg: Add /v parameter to display current Windows version.

Paul Gofman (22):
      ntdll: Implement RtlGetExtendedContextLength().
      kernel32: Implement InitializeContext[2]().
      kernel32: Implement LocateXStateFeature().
      ntdll: Implement RtlLocateLegacyContext().
      ntdll: Clear CONTEXT_XSTATE flag in RtlUnwindEx().
      wbemprox: Provide semi-stub implementation for client_security_QueryBlanket().
      kernel32: Implement SetXStateFeaturesMask().
      kernel32: Implement GetXStateFeaturesMask().
      kernel32: Implement CopyContext().
      ntdll: Implement saving AVX registers in NtGetContextThread().
      ntdll/tests: Add tests for capturing context with xstate.
      ntdll/tests: Fix exception test failures on win10pro.
      ntdll/tests: Fix virtual test failures on win10pro.
      d3dcompiler: Support ID3D12ShaderReflection interface in D3DReflect().
      d3dcompiler/tests: Add test for reflection interfaces.
      d3dcompiler/tests: Test d3d12 interface in test_reflection_desc_vs().
      d3dcompiler: Set range id to bind point for sm < 5.1.
      d3dcompiler/tests: Test d3d12 interface in test_reflection_constant_buffer().
      d3dcompiler: Fill texture fields in D3D11_SHADER_VARIABLE_DESC with default values.
      vcruntime140_1: Handle rethrowing from nested try blocks on x64.
      msvcrt: Handle rethrowing from nested try blocks on x64.
      d3dcompiler/tests: Test d3d12 interface in test_reflection_bound_resources().

Pengpeng Dong (1):
      quartz: Return E_POINTER from IVideoWindow::get_Visible() if "visible" is NULL.

Robert Wilhelm (1):
      vbscript: Colon used in for loop.

Roberto Pungartnik (1):
      po: Update Brazilian Portuguese translation.

Rémi Bernon (16):
      bcrypt: Return STATUS_INVALID_PARAMETER on ECC magic mismatch.
      bcrypt: Export ECDSA/ECDH blobs with the correct header magic.
      gdi32: Only trace new faces when they are added.
      winex11.drv: Don't wait for the desktop thread to store clipping window.
      widl: Search for known types in current namespace.
      widl: Output interface C names in method argument list.
      widl: Support fully qualified names in WinRT mode.
      gdi32/tests: Test extended TTF font names and collisions.
      gdi32: Introduce ft_face_get_family/style_name helpers.
      gdi32: Rewrite prepend_at helper as get_vertical_name.
      gdi32: Build full name from family + style when missing.
      gdi32: Rename StyleName to style_name for consistency.
      gdi32: Use fixed size array for family and english name.
      gdi32: Compare full name before discarding faces.
      kernelbase: Also pass CreateFile2 file flags to CreateFileW.
      user32: Return TRUE from ShowWindow(SW_SHOW) if already visible.

Zebediah Figura (36):
      quartz/vmr9: Avoid leaking the presenter's reference to the d3d9 device.
      winegstreamer: Fix a leak in gstdecoder_source_get_media_type().
      amstream/tests: Avoid leaking "stream" in test_find_pin().
      amstream/tests: Get rid of test_renderfile().
      kernel32/tests: Pass the correct size for PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE.
      d3dcompiler/tests: Add more tests for SM4 constant packing.
      d3dcompiler/tests: Add tests for constant buffer binding descriptors.
      d3dcompiler/tests: Add tests for semantics.
      d3dcompiler/tests: Add tests for samplers.
      d3dcompiler: Unconditionally report special (pixel shader output) sysvals based on the semantic name.
      server: Avoid a potential NULL dereference in startup_info_dump().
      d3d11/tests: Test specifying the multisample mask via OMSetBlendState().
      d3d10core/tests: Test specifying the multisample mask via OMSetBlendState().
      d3d9/tests: Add a test for sample masks.
      wined3d: Store the sample mask in wined3d_state.
      wined3d: Implement OpenGL sample masks.
      wined3d: Read the SM5 resource type instruction modifier.
      wined3d: Read the SM5 resource data type instruction modifier.
      dxgi: Add DXGI_FORMAT_NV12 and DXGI_FORMAT_YUY2.
      d3d11: Add DXGI_FORMAT_NV12 and DXGI_FORMAT_YUY2.
      qcap/avimux: Pass the correct field to CONTAINING_RECORD in impl_sink_from_strmbase_pin().
      wintrust/tests: Add more tests for CryptCATOpen() file modes.
      wintrust: Assign the file open mode directly instead of treating it as a bitmask.
      wintrust: Translate a lack of open mode flags to OPEN_ALWAYS.
      include: Add more setupapi error codes.
      include: Add a couple more SIP indirect data flags.
      mssign32: Use public SPC_* flag definitions.
      include: Add catalog file version constants.
      server: Use GENERIC_READ | GENERIC_WRITE in inherit_console().
      include: Use ioctl access bits for console driver ioctls.
      winegstreamer: Dereference messages dropped from watch_bus().
      ws2_32: Keep a list of open sockets.
      ws2_32: Close all open sockets in WSACleanup().
      server: Remove no longer used enumerate_handles().
      server: Remove no longer used is_fd_signaled().

Zhiyi Zhang (6):
      user32: Always wait for the desktop process to be ready in load_desktop_driver().
      ddraw/tests: Add display mode frequency tests.
      ddraw: Report correct frequency in GetDisplayMode().
      dxgi/tests: Relax closest matching mode comparison.
      dxgi/tests: Fix swapchain parameter test failures on Win10 1909.
      dxgi/tests: Fix output ownership test failures on Win10 1909.

Ziqing Hui (8):
      d3dx10: Introduce get_d3dx10_dds_format().
      d3dx10: Add D3DX10GetImageInfoFromFile{A, W}() stub implementation.
      d3dx10: Add D3DX10GetImageInfoFromResource{A, W}() stub implementation.
      d3dx10/tests: Introduce create_file() and delete_file().
      d3dx10/tests: Introduce check_image_info().
      d3dx10/tests: Add tests for D3DX10GetImageInfoFromFileW().
      windowscodecs/tests: Add tests for calling WriteSource() without calling SetSize() prior to it.
      windowscodecs: Correctly set output frame size for WriteSource().

Alexandre Julliard