Wine Announcement

The Wine development release 5.18 is now available.

What's new in this release (see below for details):
  - Vulkan shader compilation using the new vkd3d-shader library.
  - USER32 library converted to PE.
  - Console no longer requires the curses library.
  - Support for display modes with various orientations.
  - A number of syntax fixes in the WIDL compiler.
  - Non-recursive makefiles.
  - 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.18 (total 42):

  10603  IDirectSoundBufferImpl_SetFX needed for sound effects in several games
  18670  QIP Infium 2.0 build 9030 crashes on exit (needs a proper implementation of WSACleanup)
  21232  Multiple games and applications (Chromium-based browser engines, Blizzard games, League of Legends) crash due to hooking/anticheat validation (needs syscall thunks in ntdll.dll)
  22749  Hard link creation from a Finddupe-generated batch file fails ('fsutil.exe' needs to support 'hardlink create' command)
  35467  Multiple games crash on unimplemented function msvcirt.dll.??0fstream@@QAE@PBDHH@Z (Lock On: Modern Air Combat, TRON 2.0)
  36960  Avencast: Rise of the Mage fails to start (D3DXCreateTextureFromFileA failed)
  37254  wineconsole/curses.c fails to build on NetBSD 6.1.4
  37491  wineconsole requires/uses TERM environment variable
  37644  .NET console applications using System.Console.Clear() crash when directly started in terminal
  38964  widl: inconsistent null pointer checks in typelib writer
  39469  PreSonus Studio One 3 says it requires Windows 7 SP1 (d3d11 '{bb2c6faa-b5fb-4082-8e6b-388b8cfa90e1}', 'ID3D11DeviceContext1' not implemented)
  43107  The Witcher 3 fails to detect dx11 - registry dx11>opengl applied
  44422  Vectric Aspire 9 : it does not load 3d images
  45433  dark souls 3: cannot change resolution in fullscreen mode
  45573  League of Legends 8.12+ fails to start a game (anticheat engine, hooking of syscall return instructions)
  45797  NVIDIA GeForce Experience 3.x installer fails due to 'mshtml.OleObject_{Get,Set}Extent' stubs
  47251  add support for ConPTY API (pseudo console)
  47491  dinput event queue is overflowing and stalling the whole game/wineserver
  48396  'cmd.exe /c move file1 file2' doesn't respect non-interactive mode, causing prompt for overwrite if destination file exists
  48397  'cmd.exe /c move file1 file2' doesn't overwrite existing destination file in non-interactive mode
  48952  NVDA hangs on start
  49038  O.E.D.  v 4.0 (Oxford English Dictionary) No longer starts.
  49206  ITHVNR: hooked processes segfault
  49309  vbscript:run test fails in Japanese locale
  49335  Dolphin EasyReader for Windows 6.04 (TTS app) crashes after completing startup wizard (needs IMarkupServices::CreateMarkupPointer method implementation)
  49343  Neverwinter Online: Launcher crash on Startup
  49532  .NET 4.0 and higher fail to install via winetricks
  49591  Multiple GOG installers display the error message "Out of Global Vars range"
  49624  Protocol error: process 0020: recvmsg: Message too long on mac OS
  49643  Calling ClipCursor too frequently can cause stack overflow in foreground window thread.
  49647  wine 5.14 build fails in winegstreamer on Ubuntu 16.04 and Debian 9
  49738  "warning: implicit declaration of function ‘strtoumax’" when compiling PuTTY with Winelib
  49765  SlingPlayer Desktop crashes on unimplemented function msvcrt._snprintf_c
  49770  Firestorm viewer crashes
  49774  macDriver no longer functions within macOS VM
  49806  WIDL doesn't tolerate attribute [hidden] within enums.
  49811  cmd /c "cd "directory"&&"somecommand.exe"" tries to cd to "directory"&&"somecommand.exe"
  49820  VBScript fails to parse decimal literals between -1 and 1 without 0 in front
  49834  45a63e5b3ce0e5d7fcc55ce57f315086b87f8ad7 breaks binary compatibility with 5.0 on passing main() argc
  49847  Logos Bible 8: wineserver always using 100% CPU core
  49850  No One Lives Forever crashes due to GetMotif stub in dmstyle
  49889  wineserver shows failed assertion on shutdown


Changes since 5.17:

Akihiro Sagawa (1):
      vbscript: Support non-Latin 1 characters in Asc.

Alexandre Abgrall (1):
      msxml3: Fix value of 'fetched' in IEnumVARIANT::Next() for IXMLDOMSelection.

Alexandre Julliard (34):
      vbscript: Add support for translating messages.
      kernel32/tests: Avoid assumptions about the current working directory.
      makefiles: Generate a single non-recursive makefile at the top level.
      makefiles: Regenerate po files with full path information.
      makefiles: Remove .. components from generated paths.
      makefiles: Remove directory variables that are redundant with non-recursive make.
      ntdll: Update argc when changing process name.
      makefiles: Only add default libraries for Unix builds.
      makefiles: Don't use default imports for Unix libraries.
      makefiles: Define WINE_UNIX_LIB when building Unix libraries.
      include: Don't use IsBadStringPtr in debug functions for Unix libraries.
      crypt32: Move GnuTLS-specific helpers into the #ifdef.
      ntdll: Add support for loading a Unix helper library from builtin dlls.
      user32: Move PNG support to a new Unix library.
      user32: Build with msvcrt.
      user32: Use wide character string literals.
      user32: Use wide character string literals for system parameter entries.
      ntdll: Add inline wrappers for pthread mutex locking.
      ntdll: Don't lock mutexes during process exit.
      server: Add an object operation to retrieve an object name.
      server: Return the device name for device files.
      server: Return the device name for mailslot files.
      server: Return the device name for named pipe files.
      server: Implement object name information for registry keys.
      server: Pass all creation arguments to the device creation functions.
      server: Use OBJ_PERMANENT for permanent objects.
      server: Rename make_object_static() to make_object_permanent().
      server: Keep permanent objects on the standard object list.
      server: Restart search from the start when releasing permanent objects at exit.
      server: Initialize the object permanent flag.
      makefiles: Don't build Unix object files on Windows.
      include: Also define gethostname for msvcrt builds.
      kernel32: Get rid of obsolete 16-bit relay functions.
      kernel32: Make export directory writable to set FT_Thunk to 0.

Alistair Leslie-Hughes (6):
      ws2_32: Map AI ALL_option in getaddrinfo().
      include: Add inclusion guards for schema API enums.
      include: Remove coclasses that don't belong to msxml6.idl.
      xactengine3_7: Return S_OK from IXACT3Cue Destroy.
      dmband: Semi-stub IDirectMusicBand CreateSegment.
      dmstyle: Implement IDirectMusicStyle8 GetBand.

Anton Baskanov (4):
      amstream: Implement AMDirectDrawStream::SetState.
      amstream: Implement AMDirectDrawStream::EndOfStream.
      amstream: Call ::SetFormat in AMDirectDrawStream::CreateSample.
      amstream: Implement AMDirectDrawStream::Receive and IDirectDrawStreamSample::Update.

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

Biswapriyo Nath (5):
      include/ddraw.h: Add missing members in DDPIXELFORMAT struct.
      include/ddraw.h: Add missing UpdateOverlay flags.
      include/ddraw.h: Add missing DDSCAPS2.dwCaps2 flags.
      include/ddraw.h: Add DDSCAPS2.dwCaps3 flags.
      include/ddraw.h: Add missing dwFlags of DD_BLTDATA struct.

Daniel Lehman (1):
      wininet: Implement INTERNET_OPTION_SECURITY_CERTIFICATE flag for InternetQueryOption.

Dmitry Timoshkov (4):
      setupapi/tests: Add explicit field for inf contents size.
      setupapi: Treat trailing \0 in field values same way as trailing spaces.
      sxs: Return correct path from IAssemblyCache::QueryAssemblyInfo().
      crypt32: Fix conversion of CRYPT_KEY_PROV_INFO between store and certificate property.

Esme Povirk (1):
      gdiplus/tests: Don't test point type array padding.

François Gouget (5):
      vbscript: Fix the spelling of the delimiter* variables.
      ntdll: Fix the spelling of the arch_context_parameters variable.
      ntdll/tests: Fix the spelling of a couple of ok_() messages.
      conhost/tests: Fix the spelling of a comment message.
      msvcirt/tests: Fix the spelling of a couple of ok() messages.

Georg Lehmann (2):
      winevulkan: Add is_alias for VkFunctionPointer.
      winevulkan: Forward declare required structs for function pointer.

Gijs Vermeulen (11):
      msvcr120: Add [_]strtoimax[_l] and [_]strtoumax[_l].
      msxml3/tests: Add more iteration tests for IXMLDOMNamedNodeMap, IXMLDOMSchemaCollection and IXMLDOMNodeList.
      msxml3: Support Reset() for IEnumVARIANTs created by create_enumvariant.
      msxml3: Support retrieving more than one element in IEnumVARIANT::Next() for IXMLElementCollection.
      msvcrt: Add _s[w|n]printf_c[_l].
      msvcrt: Fix _snprintf_l function signature.
      msvcrt: Add _snprintf_s_l.
      msvcirt: Set error when file can't be opened in fstream_open_ctor.
      msvcirt: Implement ofstream class.
      mshtml: Implement IOleObject::[Get|Set]Extent.
      dwmapi: Implement DwmIsCompositionEnabled.

Haidong Yu (3):
      conhost: Add missing LeaveCriticalSection.
      ws2_32: Add missing LeaveCriticalSection.
      conhost: Input should be restored and input_thread handle should be closed before return.

Hans Leidekker (2):
      crypt32: Set key context if PKCS12_NO_PERSIST_KEY is passed, otherwise set key provider info.
      crypt32: Add support for CRYPT_MACHINE_KEYSET in PFXImportCertStore.

Haoyang Chen (1):
      gdiplus: Implement GdipEnumerateMetafileSrcRectDestRect.

Henri Verbeet (3):
      wined3d: Do not accumulate ended queries in wined3d_query_vk_poll().
      wined3d: Implement shader_spirv_compile_vk().
      wined3d: Implement sample masks for the Vulkan adapter.

Jacek Caban (42):
      conhost: Introduce IOCTL_CONDRV_READ_CONSOLE ioctl.
      conhost: Add support for ENABLE_ECHO_INPUT.
      conhost: Add support for ENABLE_LINE_INPUT.
      kernel32: Use IOCTL_CONDRV_READ_CONSOLE in ReadConsoleW when possible.
      kernel32: Use NtDeviceIoControlFile directly for IOCTL_CONDRV_READ_CONSOLE and IOCTL_CONDRV_WRITE_CONSOLE.
      conhost/tests: Improve handling slow conhost replies.
      conhost/tests: Allow clear screen on console exit.
      conhost/tests: Add ReadConsole tests.
      conhost: Free screen buffer data in destroy_screen_buffer.
      server: Introduce console_connection object.
      kernelbase: Create console connection in init_console.
      server: Allow creating unbound console connection objects.
      server: Introduce IOCTL_CONDRV_BIND_PID ioctl.
      server: Support creating console reference from console connection object.
      kernelbase: Use console connection object in AttachConsole.
      server: Remove no longer used attach_console request.
      conhost: Explicitly set tty cursor position after updating output in write_console.
      conhost: Signal console in tty_input if needed.
      conhost: Terminate current read request when input when reading tty input fails.
      conhost: Introduce Unix mode.
      conhost: Use CP_UNIXCP in Unix mode.
      conhost: Force using relative cursor positioning in update_read_output.
      conhost: Delay creating input thread in Unix mode.
      server: Introduce IOCTL_CONDRV_SETUP_INPUT ioctl.
      conhost: Use IOCTL_CONDRV_SETUP_INPUT to initialize input in Unix mode.
      kernelbase: Move force override logic to init_console_std_handles callers.
      ntdll: Pass RTL_USER_PROCESS_PARAMETERS to get_initial_console.
      ntdll: Fill console size in get_initial_console.
      kernelbase: Use conhost to handle Unix consoles.
      kernel32: Remove no longer used bare console support.
      conhost: Fix a leak in create_screen_buffer.
      wineconsole: Remove curses backend.
      configure: Remove curses checks.
      server: Remove support for creating bare consoles.
      kernelbase: Move ReadConsoleInput.
      kernel32: Move Beep implementation to conhost.
      kernel32: Move Beep() to kernelbase.
      conhost: Improve bound checking in fill_output.
      kernelbase: Duplicate input and output handles to ensure that they are inheritable.
      conhost/tests: Don't use inheritable handle for console pipe end.
      conhost: Terminate pseudo console on input error.
      user32: Support control characters in null driver VkKeyScanEx implementation.

Jactry Zeng (1):
      comctl32: Implement WM_GETTEXTLENGTH for datetime picker.

Jiangyi Chen (1):
      iphlpapi: Rename local variables shadowing the flags parameters.

Kevin Puetz (6):
      rpcrt4: Fix ARM64 stack corruption in call_server_func.
      oleaut32/tests: Reformat test_dump_typelib.
      oleaut32/tests: Fix expect_wstr_acpval(...,NULL).
      widl: All VARDESC fields of TKIND_UNION should have oInst=0.
      oleaut32/tests: Cover GetVarDesc in test_dump_typelib.
      widl: Remove duplicate '\n\n' in midl_info_guid.

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

Martin Storsjo (1):
      ntdll: Implement __C_specific_handler and _local_unwind for arm64.

Michael Müller (2):
      ntdll: Implement NtFilterToken.
      server: Implement support for creating a process with a specified token.

Michael Stefaniuc (13):
      directmanipulation: Print the debug string and not the pointer to it.
      winegstreamer: Drop redundant NULL check before heap_free().
      xactengine3_7: Remove superfluous cast to self.
      advapi32: Remove superfluous cast to self.
      gdiplus/tests: Use the ARRAY_SIZE() macro.
      windowscodecs/tests: Use the ARRAY_SIZE() macro.
      qedit: Drop redundant NULL check before free().
      dmime: Reimplement IPersistStream_Load() for SegTrigger track.
      dmime: Simplify the parse_segments_list() helper.
      dmime: Reimplement the segment item parser.
      dmime: dmutils.h is no longer needed.
      dmime: Get rid of the DMUS_PRIVATE_SEGMENT_ITEM typedef.
      dmcompos: Remove the unused DMUS_PRIVATE_CHUNK struct.

Myah Caron (10):
      msvcr120: Add imaxabs.
      shell32: Add ShellLinkObject stubs.
      shell32: Implement ShellLinkObject::get_Path.
      sapi: Add AudioOutput registry keys.
      sapi: Improve GetDefaultTokenId stub.
      sapi: Fix MMAudioOut registry key location.
      sapi: Add stubs for SpObjectToken.
      sapi: Improve stub for ISpObjectToken::SetId.
      dmstyle: Return S_FALSE for IDirectMusicStyle8::GetMotif.
      dmband: Avoid cloning stream in parse_bands_list.

Nikolay Sivov (27):
      include: Add some missing types to msxml6 typelib.
      include: Handle same typelib name in msxml2.idl and msxml6.idl.
      widl: Emit a guard around library contents.
      combase: Use public symbol for special PS context flag.
      ole32: Remove some leftovers from private header.
      combase: Manage per-thread call cancellation counter.
      oleacc: Use wide string constants.
      oleacc/tests: Use wide string constants.
      evr/mixer: Handle uninitialized input case in GetOutputAvailableType().
      evr/tests: Add a test for returned input type instance.
      dxva2: Implement CreateSurface().
      dxva2: Return single software device for GetVideoProcessorDeviceGuids().
      ole32/clipboard: Use wide string constants.
      ole32/comcat: Use wide string constants.
      dxva2: Return some static render target formats.
      evr/mixer: Fix error handling in output types collection helper.
      winedbg: Double dll name buffer size for unimplemented function exception.
      include: Add an entry for ProcessIoPriority.
      kernel32/tests: Link to more functions directly.
      kernel32/tests: Add a test for PROC_THREAD_ATTRIBUTE_HANDLE_LIST.
      server: Implement inherited handles list.
      widl: Enable [hidden] attribute for enums.
      widl: Allow [hidden] attribute on enum members.
      widl: Add null source pointer check for typelib writer.
      widl: Allow [restricted] for coclass-es.
      comctl32/datetime: Do not call default procedure for WM_NCCREATE.
      comctl32/tests: Use wide strings literals.

Paul Gofman (13):
      d3d11: Avoid crash in _CopySubresourceRegion[1]() on NULL resources.
      d3d10core/tests: Add test for NULL resource parameters for _CopySubresourceRegion().
      msvcrt/tests: Test .{O|A}CP locale string.
      wmc: Add Dxgi facility.
      kernel32: Add string for DXGI_INVALID_CALL error.
      kernel32: Add string for DXGI_ERROR_NOT_CURRENTLY_AVAILABLE error.
      ntdll/tests: Test named pipe with empty name.
      wined3d: Track resource binding as render target.
      wined3d: Don't check for readonly depth / stencil in context_preload_texture().
      wined3d: Track SRV to RTV aliasing on sub resource level.
      msvcrt: Implement _mbsnextc_l().
      msvcrt: Implement _mbscmp_l().
      msvcrt: Implement _mbbtype_l().

Pengpeng Dong (2):
      gdiplus: Initialize the dead point coordinates in "GpPointF, *ptf" to 0.
      conhost: Validate width param in write_output.

Piotr Caban (13):
      d3d9: Lock wined3d mutex in d3d9_device_CreateTexture().
      msvcrt: Fix buffer overflow in _write function.
      msvcrt: Fix _vs{w,n}printf_c function when terminating character doesn't fit into buffer.
      msvcrt: Fix count parameter type in printf functions family.
      msvcirt: Set error when file can't be opened in ifstream_open_ctor.
      msasn1: Fix buffer allocations.
      msvcrt: Use default user locale when only codepage is passed to setlocale.
      msvcrt: Fix console detection in _write.
      server: Don't create wait object if infinite timeout is passed to NtSetTimer.
      server: Don't overflow if timeout doesn't fit into int range in get_next_timeout.
      setupapi: Remove unused end parameter from next_xml_attr internal function.
      setupapi: Copy all files specified in manifest on wine dll install.
      gdi32: Share font_gamma_ramp structure between all DCs.

Robert Wilhelm (3):
      vbscript: Parse decimal literals between -1 and 1 without 0 in front.
      vbscript: Fix vanishing statements.
      vbscript: Fix handling zero and negative number arguments in err.raise.

Roberto Pungartnik (1):
      po: Brazilian Portuguese update.

Rémi Bernon (6):
      gdi32/tests: Add test fonts with names in several languages.
      gdi32: Look for another secondary font family name.
      gdi32: Use explicit CDECL in gdi_image_bits.
      gdi32: Use explicit CDECL in window_surface_funcs.
      windowscodecs/tests: Add a simple JXR/WMP test case.
      windowscodecs: Support JXR/WMP detection and formats.

Stefan Dösinger (1):
      ntdll: Use the MacOS file handle limit workaround from libs/wine/loader.c.

Sven Baars (1):
      ntdll: Fix some memory leaks (Valgrind).

Vijay Kiran Kamuju (1):
      include: Remove duplicated defines in winnt.h.

Yongjie Yao (1):
      msxml3: Fix a memory leak (Valgrind).

Zebediah Figura (23):
      server: Create the Afd device.
      server: Return a new, uninitialized socket when opening the Afd device.
      server: Introduce IOCTL_AFD_CREATE.
      ws2_32: Reimplement WSASocketW() on top of NtOpenFile() and IOCTL_AFD_CREATE.
      server: Remove the no longer used create_socket request.
      advapi32/tests: Test which tokens DuplicateHandle() validates access against.
      advapi32/tests: Add more tests for CreateRestrictedToken().
      kernelbase: Implement CreateRestrictedToken().
      advapi32/tests: Add basic tests for CreateProcessAsUser().
      ntdll: Pass the token to NtCreateUserProcess().
      kernelbase: Pass the token to NtCreateUserProcess().
      server: Check duplicated handle access against the calling thread token and target process token.
      wined3d: Factor out wined3d_state_uses_depth_buffer().
      winegstreamer: Don't set the buffer offset in request_buffer_src().
      winegstreamer: Avoid leaking a newly allocated buffer on failure in request_buffer_src().
      ws2_32: Translate WSA_FLAG_OVERLAPPED to NT overlapped flags.
      ws2_32: Translate SIO_ADDRESS_LIST_CHANGE into a proper NT ioctl.
      server: Move sock_ioctl() down to avoid forward declarations.
      ws2_32/tests: Add more tests for WSASocket() parameters.
      ws2_32: Always return WSAEINVAL if AF_UNSPEC is used with a zero protocol.
      wined3d: Introduce a depth/stencil state object.
      d3d11: Use wined3d depth/stencil state objects.
      wined3d: Fully move the depth buffer enable state to wined3d_depth_stencil_state.

Zhipeng Zhao (1):
      winex11.drv: If the end of the sequence is '\r\n', there is no need to add extra '\r'.

Zhiyi Zhang (5):
      user32/tests: Fix a test failure.
      user32/tests: Add display orientation tests.
      winex11.drv: Sort display modes with orientation considered.
      winex11.drv: Support finding a full display mode with specified orientation.
      winex11.drv: Support display orientations for XRandR 1.4 display settings handler.

Ziqing Hui (2):
      kernel32/tests: Add more tests for UpdateResource.
      kernel32: Use uppercase name in UpdateResourceW().

Alexandre Julliard
[email protected]