Wine Announcement

The Wine development release 4.19 is now available.

What's new in this release (see below for details):
  - A number of additional VBScript features.
  - More stateblock support in WineD3D.
  - Some fixes for ARM64 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 4.19 (total 41):

  14026  Installshield Wizard does not exit after it finishes
  17289  Slingplayer 2.0 installer fails
  23934  Multiple games and applications depend on kernel32.CreateProcess to prioritize the working directory over the system search path (Stronghold Kingdoms loops after update, installers fail to find tools)
  26552  Wine sets the resolution incorrectly on widescreen monitors
  30911  Trivial Pursuit Unhinged fails to load
  32147  Notepad .Net toolbar does not draw
  32148  Notepad .Net does not exit cleanly
  32151  Notepad .Net continually runs at ~70% CPU
  34460  Tabbing between editboxes does not work in Tweet Attacks Pro
  34666  In The Adventures Of Lomax some graphic elements flicker, disappear or are garbled
  35380  Trivial Pursuit Unhinged: reports an audio error and exits
  35479  Metatrader 5 hangs when scanning for Tester agents
  35506  Space Hack: The mouse pointer is hard to control
  35798  TeamViewer 9.0.26297 NI crashes on startup when using 'run only' option (one time use)
  35801  Tweet Attacks hang when entering invalid login details
  35901  ImpotRapide 2013 (.NET 4.0 app) installer crashes with Mono
  36388  Problems with Russian localization in page setup dialog
  37861  BOINC detects incomplete GPU details
  37878  boincmgr: No text in cancel dialog in NT 6.0-6.2 modes
  38795  Netgear Powerline 3.1 update check fails on second run
  38821  MetaEditor 5: MQL5 Reference window doesn't load in a WOW64 wineprefix
  38930  Betfair Poker log-in window is blank
  40140  4K YouTube to MP3 crashes while downloading videos for some time
  40360  Jack Keane 2 shadow corruption
  40364  Broken geometry in Indiana Jones and the Emperor's Tomb
  40777  The Moment of Silence launcher unusable (displays only black)
  41369  UIAnimation (Windows Animation Manager / UIAnimation.dll) is missing in Wine
  41741  The Adventures of Lomax demo crash on startup.
  44221  Netgear Powerline: *** stack smashing detected ***: explorer.exe terminated
  44231  External links in Slingplayer's help file open iexplore multiple times
  45310  Closing Ableton Live 9 Lite wil crash into unimplemented function KERNEL32.dll.MoveFileTransactedW
  46914  CompressonatorGUI 3.1 installer crashes in Win10 mode (Advanced Installer Module bug, incorrect usage of kernel32.Wow64RevertWow64FsRedirection)
  46995  Rekordbox 5.3.0 installer (32-bit process under WoW64) fails to load 32-bit code dlls with WoW64 filesystem redirection disabled
  47075  32-bit LAVFilters 0.74.x installer fails to register 64-bit AX codec/filters in Wow64 environment (32-bit regsvr32.exe needs to support 64-bit dll registration and vice versa by re-exec with proper bitness)
  47509  Touhou 15.5:Antinomy of Common Flowers stopped running after upgrading the Wine version from 4.10 to 4.12.2
  47912  Rockstar Games Launcher installer crashes after disabling WoW64 redirection
  47956  IGMP source specific multicast does not create join requests for source
  47967  Wine fails to find application DLLs when the working directory is not the application directory
  47979  NtCreateFile incorrectly returns STATUS_OBJECT_NAME_NOT_FOUND when RootDirectory is populated
  47986  R-Studio (file recovery tool) wants ntoskrnl.exe.IoCreateUnprotectedSymbolicLink
  48009  Broken rendering in Sniper Elite V2


Changes since 4.18:

Akihiro Sagawa (4):
      d2d1/tests: Add some DPI tests.
      d2d1: Don't update device context DPI values when changing targets.
      d2d1: Improve bitmap creation DPI handling.
      po: Update Japanese translation.

Alex Henrie (4):
      ntoskrnl: Implement IoCreateUnprotectedSymbolicLink.
      ntdll: Implement NtPowerInformation(SystemBatteryState) on Linux.
      kernel32/tests: Add tests for GetSystemPowerStatus.
      kernel32: Implement GetSystemPowerStatus on top of NtPowerInformation.

Alexandre Julliard (34):
      ntdll: Initialize Unix codepage early during startup.
      kernel32: Retrieve the Unix codepage from ntdll.
      kernelbase: Fix variable name aliasing issue.
      kernel32: Add the new image path to the dll path for a new process.
      notepad: Fix parsing of quoted command line.
      ntdll: Always add path separator when looking for a relative path name.
      kernel32: Move current directory initialization to ntdll.
      kernel32: Move process name initialization to ntdll.
      kernel32: Move Unix environment initialization to ntdll.
      kernel32: Move registry environment initialization to ntdll.
      kernel32: Move additional environment initialization to ntdll.
      kernel32: Move image path name initialization to ntdll.
      kernel32: Move Unicode argv initialization to ntdll.
      kernel32: Move command line initialization to ntdll.
      kernel32: Move dll load path initialization to ntdll.
      kernelbase: Fix fault address printing for the PE build.
      ntdll: Fix unwinding of leaf functions on ARM64.
      ntdll: Hardcode address space limits for ARM platforms.
      winex11: Also catch X errors from XF86VidModeSetGammaRamp().
      atlthunk: Add support for ARM64.
      oleaut32: Fix handling of VARIANT parameters in DispCallFunc() on ARM64.
      msvcrt/tests: Fix signed char issues.
      kernel32/tests: Enable the ExitProcess() test on ARM64.
      setupapi: Define .inf section names for ARM platforms.
      wine.inf: Add ARM64 sections.
      ole32/tests: Increase a timeout.
      psapi/tests: Increase some timeouts.
      rpcrt4/tests: Increase some timeouts.
      msvcrt/tests: Fix more signed char issues.
      msvcrt: Reimplement strcmp/strncmp to get consistent return values.
      msvcirt/tests: Fix some signed char issues.
      oleaut32: Fix scope of a local array variable.
      webservices: Use _control87() instead of directly manipulating the FPU register.
      msvcrt: Implement _control87() and _statusfp() for ARM64.

Alistair Leslie-Hughes (13):
      dplayx: Copy the correct Short name variable.
      dpnet: Initialize size before call to RegGetValueW (Coverity).
      wmvcore: IWMReader GetOutputCount return zero outputs.
      wmvcore: IWMProfile3 GetStreamCount return zero streams.
      oledb32: Support milliseconds when converting BSTR -> DBTIMESTAMP.
      dinput/tests: Remove unrequired pointer checks (Coverity).
      dinput: Detect more buttons as non-joysticks.
      uianimation: Add typelib resource.
      uianimation/tests: Add initial tests.
      dmband: Simplify DllGetClassObject.
      uianimation/tests: Add IUIAnimationTimer test.
      uianimation/tests: Add more tests.
      ntdll: Fix compile error on macos.

Ambrož Bizjak (1):
      ucrtbase: Implement t and j printf length modifiers.

Andrew Eikum (11):
      xinput: Make device hotplugging thread-safe.
      xinput: Consolidate new device setup.
      xinput: Clear instance data when a controller is hotplugged.
      xinput: Get rid of redundant connected boolean.
      mmdevapi/tests: Avoid race condition in capture test.
      mmdevapi/tests: Use discontinuity flag to detect broken win7 behavior.
      mmdevapi: Set data pointer to NULL on IAudioCaptureClient::GetBuffer failure.
      mmdevapi: Return E_INVALIDARG for invalid share mode argument.
      dxgi: Sort reported output modes.
      advapi32: Add EventRegister and EventUnregister tests.
      ntdll: Add missing spec file entry for EtwEventWriteString.

Austin English (1):
      ntoskrnl.exe: Quiet a verbose FIXME.

Brendan Shanks (2):
      kernel32/tests: Test loading system DLLs with WoW64 redirection disabled.
      ntdll: Enable WoW64 filesystem redirection when loading libraries.

Byeong-Sik Jeon (1):
      po: Update Korean tranlation.

Connor McAdams (3):
      d3d10: Move private effect functions to effect.c.
      d3d10: Move debug_d3d10_driver_type() to d3d10_main.c.
      d3d10: Move debug_d3d10_device_state_types() to stateblock.c.

Conor McCarthy (3):
      dxgi/tests: Mark as todo the containing output test if a secondary monitor will cause failure.
      dxgi: Do not warn about ignoring a null refresh rate.
      dxgi: Add support for DXGI_SCALING_NONE.

Daniel Lehman (3):
      msvcrt/tests: Fix _lseek arguments.
      msvcrt: Set errno in _lseeki64.
      wine.inf: Add Dynamic DST for US time zones.

Dmitry Timoshkov (1):
      vbscript/tests: Add some tests for IRegExp2::Replace().

Erich Hoover (1):
      msvcrt: Fix fscanf return when EOF is immediately after an end of line.

Fabian Maurer (3):
      ws2_32: Handle more IGMP socket options.
      find: First implementation.
      find: Prevent hang by properly checking for EOF.

François Gouget (6):
      comctl32/tests: Avoid an unneeded lstrlenW() call.
      mshtml: Fix the spelling of some variable and field names.
      mshtml/tests: Fix the spelling of an ok() message.
      mshtml/tests: Fix the name of an unused function parameter.
      msi/tests: Fix the case of an ok() message.
      msi: Fix the spelling of a comment.

Gijs Vermeulen (1):
      faultrep/tests: Fix some memory leaks (Valgrind).

Hans Leidekker (5):
      msi/tests: Add missing UnpublishFeatures actions.
      msi/tests: Fix test failures.
      msi/tests: Run the package tests from a temporary directory.
      msi/tests: Remove workarounds for Windows 2000.
      shell32: Improve the stub for SHGetPropertyStoreForWindow.

Henri Verbeet (1):
      ntdll: Properly handle 0 returns from unw_step().

Jacek Caban (31):
      include: Avoid macro redefinition when wchar.h is included after stdint.h.
      vbscript: Implement String function.
      vbscript: Implement RegExp.Replace.
      vbscript: Improve exec_script debug traces.
      vbscript: Fix array reference handling in do_icall.
      vbscript: Add LBound function implementation.
      vbscript: Move sign expression to a separated rule.
      vbscript: Introduce separated struct for call expressions.
      vbscript: Allow any unary expression after call keyword.
      vbcript: Allow any call expression in call and assign statements.
      vbscript: Support non-member calls in compiler.
      vbscript: Factor out variant_call.
      vbscript: Support calling VARIANT in interpreter.
      vbscript/tests: Add more call tests.
      vbscript: Ignore parentheses in call expression.
      vbscript: Always pass arguments inside parentheses by value.
      vbscript: Use wide char literals for lexer keywords.
      vbscript: Add support for parsing with statement.
      vbscript: Add support for interpreting statements.
      vbscript/tests: Add with statement tests.
      jscript: Use _ltow_s instead of int_to_string.
      vbscript: Support VT_EMPTY in stack_pop_bool.
      vbscript: Silence BuiltinDisp::QueryInterface(IID_IDispatchEx) warning.
      vbscript/tests: Introduce get_dispid helper.
      vbscript: Support DISP_E_EXCEPTION Invoke[Ex] return value.
      vbscript: Add support for parameterized set statements.
      vbscript: Allow 'with' as an identifier.
      vbscript: Add parser support for redim statement.
      vbscript: Add interpreter support for redim statement.
      vbscript/tests: Add redim statement tests.
      vbscript: Support using function return value in expressions.

Jeff Smith (1):
      kernel32: Quote first command line arg in process paramenters.

Louis Lenders (10):
      include: Set threading model on UIAnimation* interfaces.
      include: Add restrictederrorinfo.idl.
      uianimation: Register interfaces.
      uianimation: Add IUIAnimationManager stubbed interface.
      uianimation: Add IUIAnimationTimer stubbed interface.
      uianimation: Add IUIAnimationTransitionFactory stubbed interface.
      uianimation: Add IUIAnimationTransitionLibrary stubbed interface.
      uianimation: Implement IUIAnimationManager::CreateStoryboard.
      uianimation: Implement IUIAnimationManager::CreateAnimationVariable.
      httpapi: Add stub for HttpReceiveRequestEntityBody.

Matteo Bruni (4):
      d3dx9: Return an error if no fallback format is found.
      d3dx9: Turn unimplemented interface ERR into a WARN.
      wined3d: Introduce a separate use_legacy_fragment_output() helper.
      wined3d: Limit GLSL version to 1.30 when OpenGL 3 is not supported.

Michael Müller (1):
      crypt32: Add MS root CA 2010.

Michael Stefaniuc (7):
      comctl32/tests: Constify some string holding variables / fields.
      comctl32/tests: Simplify comparison with empty string.
      comctl32/tests: Get rid of variables holding empty strings.
      comctl32/tests: Don't read past the end of the buffer.
      dmsynth: Use a wchar string literal instead of a temp variable.
      mfreadwrite: Use wchar string literals instead of temp variables.
      t2embed: Use a wchar string literal instead of a temp variable.

Nikolay Sivov (12):
      dwrite/tests: Relax tests that fail on some Win10 versions.
      t2embed/tests: Fix some test failures on Win10.
      comdlg32/tests: Use win_skip() instead when appropriate.
      gdiplus: Trace GpRectF arguments.
      kernel32/tests: Fix some test failures on Win10.
      wscript/tests: Fix test failures on Win10.
      vbscript/tests: Fix tests failures on Win10.
      shell32/tests: Relax some tests to fix failures on Win10.
      ole32/tests: Add some more tests for interface redirection handling.
      ole32: Do not pass around untyped context section pointers.
      ole32: Use interface redirection section too when looking for modules in CoGetClassObject().
      po: Fix Russian strings for page setup dialog.

Paul Gofman (15):
      user32: Fix coords in WINDOWPOS for WM_NCCALCSIZE sent from SetWindowPos().
      d3d9/tests: Factor out wait_query() function.
      wined3d: Issue texture barrier before using a texture attached to FBO.
      wined3d: Do not allow resource to be bound as SRV and RTV at the same time.
      d3d8: Fix stream data skip count in convert_to_wined3d_declaration().
      d3dx9: Don't pass usage flags for staging texture in D3DXCreateCubeTextureFromFileInMemoryEx().
      d3dx9: Factor our check_texture_requirements() function.
      d3dx9: Use check_texture_requirements() in D3DXCheckCubeTextureRequirements() with correct resource type.
      d3dx9: Use check_texture_requirements() in D3DXCheckVolumeTextureRequirements() with correct resource type.
      d3dx9: Don't pass usage flags for staging texture in D3DXCreateVolumeTextureFromFileInMemoryEx().
      ddraw: Fix vertex buffer offset in d3d_execute_buffer_execute().
      d3d11: Mind DSV flags when checking for conflicting SRV.
      d3d11/tests: Add tests for binding resource as both SRV and DSV.
      d3d11/tests: Require D3D_FEATURE_LEVEL_11_0 for using DSV flags.
      wined3d: Return TRUE for NULL SRV format from wined3d_dsv_srv_conflict().

Piotr Caban (13):
      ucrtbase: Implement %G format for strftime.
      msvcrt: Don't use strcspn from C-library.
      msvcrt: Add _mbsspn_l implementation.
      msvcrt: Add _mbscspn_l implementation.
      msvcrt: Don't use strstr from C-library.
      ntdll: Use SIZE_T to store passed buffer size in sprintf.
      msvcrt: Cleanup sprintf tests.
      regedit: Fix double free error in GetValueName.
      msvcrt: Simplify printf tests table.
      msvcrt: Fix test failures on Windows 10.
      msvcrt: Move more printf tests to table.
      msvcrt: Add printf rounding tests.
      msvcrt: Add printf meaningless digits tests.

Roman Pišl (3):
      rstrtmgr: Add RM_FILTER_ACTION definition.
      rstrtmgr: Fake API implementation by returning success.
      rstrtmgr: Add stubs RmAddFilter and RmRemoveFilter.

Rémi Bernon (4):
      user32/tests: Update input test result for w1064v1809.
      user32/tests: Do not expect char vkey to return the same char everywhere.
      user32/tests: Do not expect ToAscii with 'A' vkey to return 'a' on non-us keyboards.
      user32/tests: Skip some tests with inconsistent results with non-us kbd.

Serge Gautherie (1):
      atl: Fix a MSVC x64 printf warning.

Sven Baars (13):
      mf: Leave instead of enter a critical section.
      scrobj: Fix some leaks on error paths (Coverity).
      scrobj/tests: Don't set site to NULL before it has been freed (Valgrind).
      scrobj: Add a missing return value check (Coverity).
      webservices: Fix some leaks on error paths (Coverity).
      msvcp120: Add a helper for tr2_sys__Equivalent.
      msvcp140: Add an _Equivalent implementation that allows for directories.
      winmm: Pass the device to WINMM_Pause directly.
      wininet/tests: Fix some test failures on Windows.
      mstask/tests: Wait a bit longer for tasks to start and terminate.
      wininet/tests: Skip some FTP tests when no connection can be made.
      ntdll/tests: Fix some test failures on Windows 10.
      ole32/tests: Fix some test failures on Windows XP.

Vijay Kiran Kamuju (4):
      ntdll: Fix the SYSTEM_MODULE struct field names.
      setupapi/tests: Remove win_9x checks.
      ucrtbase: Implement %g format for strftime.
      ucrtbase/tests: Add tests for strftime formats %r and %V.

Vincent Povirk (4):
      regsvr32: Re-exec as 32-bit or 64-bit if necessary.
      windowscodecs/tests: Expect success from IWICStream_Commit.
      windowscodecs: Implement IWICStream_Commit.
      mscoree: Call mono_thread_manage in GC Unsafe mode.

Zebediah Figura (70):
      psapi/tests: Increase the GetPerformanceInfo() margins again.
      psapi/tests: Remove an unreliable test.
      qwave: Don't test the last error in the successful case.
      advapi32/tests: Use unique names for each created service.
      quartz/tests: Add more tests for stream start time.
      quartz/tests: Add more tests for seeking.
      quartz/filtergraph: Correctly implement IMediaSeeking::GetStopPosition().
      quartz/filtergraph: Remove the no longer used "stop_position" field from IFilterGraphImpl.
      quartz/filtergraph: Correctly handle AM_SEEKING_ReturnTime in IMediaSeeking::SetPositions().
      wined3d: Introduce wined3d_stateblock_set_sampler_state().
      d3d9: Handle stateblocks in d3d9_device_SetSamplerState().
      wined3d: Introduce wined3d_stateblock_set_texture_stage_state().
      d3d9: Handle stateblocks in d3d9_device_SetTextureStageState().
      d3d8: Handle stateblocks in d3d8_device_SetTextureStageState().
      quartz/filtergraph: Iterate filters directly in IMediaSeeking::SetPositions().
      quartz/filtergraph: Store the current position and return it in IMediaSeeking::GetCurrentPosition().
      quartz/filtergraph: Set the current position in IMediaFilter::Stop().
      quartz/filtergraph: Pause the graph even if AM_SEEKING_NoFlush is used.
      quartz/filtergraph: Clarify stream time tracking.
      strmbase: Return S_FALSE from IBaseFilter::Pause() when performing asynchronous state change.
      quartz/videorenderer: Get rid of hEvent.
      strmbase: Introduce renderer_init_stream().
      quartz/videorenderer: Use the renderer_init_stream() callback.
      strmbase: Get rid of the "vtbl" parameter to strmbase_renderer_init().
      ddraw: Track the primary stateblock state locally.
      ddraw: Handle stateblocks in d3d_device7_SetRenderState().
      ddraw: Handle stateblocks in d3d_device7_SetTextureStageState().
      strmbase: Move strmbase_renderer_init() to avoid forward declarations.
      strmbase: Get rid of the BaseRenderer typedef.
      strmbase: Get rid of the BaseRendererFuncTable typedef.
      strmbase: Rename the "pFuncsTable" field of struct strmbase_filter to "ops".
      strmbase: Introduce filter state callbacks.
      strmbase/transform: Use base filter state change methods.
      advapi32/tests: Clean up tests for duplicate service names.
      advapi32/tests: Accept another value for the default service pre-shutdown timeout.
      advapi32/tests: Clean up double NotifyServiceStatusChange() tests.
      comsvcs/tests: Increase the timeout in the implicit MTA test.
      msctf/tests: Simplify ITfThreadMgrEventSink refcounting tests.
      msctf/tests: Don't test calls to ITextStoreACP::GetStatus().
      msctf/tests: Trace method calls more completely and only when WINETEST_DEBUG is set.
      ole32/tests: Adjust timing in test_CoWaitForMultipleHandles().
      gameux/tests: Get rid of registry value tests.
      crypt32/tests: Clean up test_format_object().
      strmbase/renderer: Use base filter state change methods.
      strmbase: Pass a strmbase_pin pointer to QualityControlImpl_Create().
      strmbase: Retrieve the filter clock from the pin pointer.
      qcap/audiorecord: Use strmbase state change methods.
      qedit/samplegrabber: Use strmbase state change methods.
      d3d9: Release the recording stateblock before calling wined3d_device_reset().
      d3d8: Reset the stateblock state before calling wined3d_device_reset().
      ddraw: Reset the stateblock state before calling wined3d_device_reset().
      wined3d: Introduce wined3d_stateblock_set_texture().
      d3d9: Handle stateblocks in d3d9_device_SetTexture().
      d3d8: Handle stateblocks in d3d8_device_SetTexture().
      ddraw: Handle stateblocks in d3d_device7_SetTexture().
      kernel32/tests: Fix some codepage tests under Windows 10.
      wined3d: Introduce wined3d_stateblock_set_transform().
      d3d9: Handle stateblocks in d3d9_device_SetTransform().
      d3d8: Handle stateblocks in d3d8_device_SetTransform().
      ddraw: Handle stateblocks in d3d_device7_SetTransform().
      wined3d: Introduce wined3d_stateblock_set_clip_plane().
      d3d9: Handle stateblocks in d3d9_device_SetClipPlane().
      d3d8: Handle stateblocks in d3d8_device_SetClipPlane().
      ddraw: Handle stateblocks in d3d_device7_SetClipPlane().
      wined3d: Introduce wined3d_stateblock_set_material().
      d3d9: Handle stateblocks in d3d9_device_SetMaterial().
      d3d8: Handle stateblocks in d3d8_device_SetMaterial().
      ddraw: Handle stateblocks in d3d_device7_SetMaterial().
      quartz/tests: Relax some more timeouts.
      qedit/mediadet: Check for failure from IEnumPins::Next().

Zhiyi Zhang (10):
      gdi32: Support multiple monitors in D3DKMTOpenAdapterFromGdiDisplayName.
      gdi32: Add D3DKMTSetVidPnSourceOwner and D3DKMTCheckVidPnExclusiveOwnership stubs.
      winex11.drv: Implement X11DRV_D3DKMTSetVidPnSourceOwner.
      winex11.drv: Implement X11DRV_D3DKMTCheckVidPnExclusiveOwnership.
      dxgi: Implement dxgi_output_ReleaseOwnership().
      dxgi: Implement dxgi_output_TakeOwnership().
      winex11.drv: Call XFlush() right after XUngrabServer().
      winex11.drv: Use underscore style for struct x11drv_display_device_handler.
      winex11.drv: Retrieve virtual and primary monitor rectangles from SetupAPI.
      winex11.drv: Handle display device events in the desktop thread.

Alexandre Julliard
[email protected]