Wine Announcement

The Wine development release 3.9 is now available.

What's new in this release (see below for details):
  - OpenGL core contexts enabled by default in Direct 3D.
  - Beginnings of Direct 3D 12 implementation using vkd3d.
  - More support for the Task Scheduler.
  - Some more Task Dialog support.
  - Better arrow support in GdiPlus.
  - 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 3.9 (total 33):

  32907  AMMYY Admin v3.0 crashes at startup in Win7 mode ('NtSetInformationToken' needs to support 'TokenSessionId')
  34910  WinLaunch 0.4.x (OSX Style free Launcher) complains about missing "%USERPROFILE%\\Application Data\\Microsoft\\Windows\\Themes\\" directory
  37736  Photoshop Elements 11/12 installers hang when installing common shared technologies ('GetWindowTextLength' must not call 'SendMessage' for window handles belonging to other processes)
  37776  iTunes 12.0.1 crashes on startup
  38648  Multiple games and applications need support for Mesa OpenGL >= 3.2 core profiles, Shader Model 4, GLSL 1.50 (Microsoft Office 2013 installer, .NET/XNA games)
  38886  AArch64 platforms: ABI Problems wrt varargs (needs arm64 specific __builtin_ms_va_list)
  38944  RebelBetting: Arb browser uses incorrect stakes
  38945  RebelBetting: Collapsing the top arb row reports an error
  38946  RebelBetting: Upgrade button opens Explorer
  39078  Visual Pinball 8.x, 9.x, 10.x crash on exit after creating a new table, needs support for VBScript IActiveScriptDebug
  39294  iTunes 12 does not start anymore
  39299  Arkanoid++ 0.2 crashes on startup
  39458  The Club demo crashes at launch
  40271  Can't start UPlay: "Connection Lost" error
  40426  Wine's explorer.exe shell doesn't display properties dialog
  40451  Visual C++ Build Tools 2015 silently fails on startup, needs 'feclient' stub dll (Windows NT File Encryption Client Interfaces)
  40743  64-bit Tunes 12.x installer mixes up 32-bit and 64-bit packages, creating broken installation
  41063  Batman - The Telltale Series requires ID3D11DeviceContext1::UpdateSubresource1()
  42878  64-bit iTunes 12.1.3 crashes on startup
  42941  Moorhuhn Kart 3: Mouse pointer accelerating too fast
  43491  Ri-li 2.0.1: No sound
  44465  Micrografx Designer 7.1 crashes at exit
  44563  Chessbase 11 has annoying multiple popups GetClassInfo: 14007
  44845  Bankperfect plugin installater Echéancier hangs during install
  44964  Anno 2205 needs oMask shader register implementation
  44974  Cresteaju ("standard" version): Hang before title screen
  45080  Frostpunk crashes (requires IDXGIDevice2)
  45088  Native Instruments Traktor 2.11 crashes on unimplemented function msvcp140.dll.?GetCurrentThreadId@platform@details@Concurrency@@YAJXZ
  45170  Cygwin/MSYS2 needs EXDEV error code mapped to STATUS_NOT_SAME_DEVICE (rename of cross-device links)
  45172  FrameMaker 7.2  and Framemaker 8 (trial) needs implementation of atmlib.dll.ATMFinish
  45174  Icinga 2 'check_ping' tool with IPv6 address/host crashes on unimplemented function ntdll.dll.RtlIpv6StringToAddressExW
  45179  iTunes 12.x installer freezes at the final step
  45220  Regression: Hearthstone-Deck-Tracker stoped working after wine-2.21


Changes since 3.8:

Akihiro Sagawa (5):
      winmm: Fix superfluous MOM_DONE callback messages.
      po: Update Japanese translation.
      winmm/tests: Add tests regarding MIDI stream player clocks and positions.
      winmm: Protect MIDI stream info with critical section.
      winmm: Add playing status to MIDI stream structure and use it.

Alex Henrie (3):
      ntdll: Add LdrRegisterDllNotification stub.
      comctl32/listview: Don't invalidate when new style is same as old.
      ntoskrnl: Add SeSinglePrivilegeCheck stub.

Alexandre Julliard (6):
      winecfg: Constrain DPI values to the commonly supported ones.
      user32: Store the window DPI awareness in the server.
      user32: Update the window DPI awareness in SetParent().
      user32: Store the window DPI in the server.
      user32: Don't send cross-process message for GetWindowTextLength().
      server: Removed unused visible rect from get_window_rectangles request.

Alistair Leslie-Hughes (6):
      shell32: Choose return value for SHFileOperationA depending on windows version.
      dsound: Use IDirectSoundBuffer8 to avoid unnecessary casts.
      include: Add more WM interfaces.
      include: Add IMFReadWriteClassFactory interface.
      include: Add MmGetSystemRoutineAddress definition.
      gdiplus: Display the GUID of the image type in GdipSaveImageToStream.

Andrew Wesie (1):
      ntdll: Return success for TokenIntegrityLevel in NtSetInformationToken.

Andrey Gusev (1):
      shell32: Check array index limit first.

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

Christian Inci (1):
      wined3d: Recognize Titan V.

Daniel Rusek (1):
      po: Update Czech translation.

Dmitry Timoshkov (22):
      mstask/tests: Make task tests independent.
      mstask: Implement ITask::SetFlags().
      mstask/tests: Make task trigger tests independent.
      mstask: ITaskTrigger::SetTrigger() should fail on NULL input.
      mstask: ITaskTrigger::GetTrigger() should fail on NULL input.
      mstask/tests: Add another set of tests for trigger management.
      mstask: Move trigger management to the ITask implementation.
      mstask: Prefer built-in implementation.
      mstask: When writing triggers access the trigger data directly to avoid noise in the traces.
      mstask: Implement ITask::GetExitCode().
      kerberos: Silence a FIXME for the GSS_S_FAILURE case.
      mstask: Implement ITask::GetNextRunTime() for ONCE trigger type.
      mstask: Implement ITask::GetNextRunTime() for DAILY trigger type.
      mstask: Handle disabled tasks in ITask::GetNextRunTime().
      mstask: Add support for event triggers to ITask::GetNextRunTime().
      mstask: Implement ITask::GetNextRunTime() for WEEKLY trigger type.
      mstask: Avoid an infinite loop in ITask::GetNextRunTime() if weekly trigger runs every week.
      kerberos: Add support for ISC_REQ_IDENTIFY flag.
      kerberos: Translate GSS_C_DCE_STYLE to appropriate ISC_RET and ASC_RET flags.
      kerberos: Add ISC_REQ_CONNECTION to the list of supported flags.
      mstask: Keep the job file uuid across load/save operations.
      gdiplus: Pass the correct GUID to encode_image_wic for GIF images.

François Gouget (1):
      makedep: Avoid building test resources if winetest is disabled.

Gijs Vermeulen (3):
      msvcp: Add a trailing '\n' to a FIXME().
      include: Add DOF_* definitions.
      include: Add IO_REPARSE* definitions.

Hans Leidekker (2):
      msi/tests: Break out of the loop if both components are found in test_MsiEnumComponentsEx.
      winhttp: Ignore empty proxy strings read from the environment.

Henri Verbeet (3):
      wined3d: Only create the ARBfp blitter if creating the GLSL blitter failed.
      d3d11/tests: Rebind the pixel shader between runs with different sample counts in test_sampleinfo_instruction().
      wined3d: Default to OpenGL 4.4 contexts.

Hugh McMaster (11):
      regedit: Replace the COUNT_OF macro with ARRAY_SIZE.
      regedit: Move regproc.c functions from regproc.h to main.h.
      regedit: Move regedit.c functions from regproc.h to main.h.
      regedit: Remove regproc.h.
      regedit: Use the ARRAY_SIZE macro.
      regedit: Simplify the detection of existing registry values.
      regedit: Simplify boolean comparisons in edit.c.
      regedit: Do not directly include stdio.h any longer.
      regedit: Remove implicit extern keywords from function declarations.
      regedit: Sort function declarations alphabetically by source file.
      regedit: Do not directly include resource.h anymore.

Huw D. M. Davies (1):
      user32: Simplify CheckMenuRadioItem().

Jacek Caban (31):
      jscript: Get rid of no longer used jsdisp_propput_const.
      jscript: Use jsdisp_define_property for Error object properties.
      jscript: Use jsdisp_define_data_property for arguments object properties.
      jscript: Use jsdisp_define_property to set function prototypes.
      jscript: Use jsdisp_define_property to set prototype constructors.
      jscript: Added Object.defineProperties stub.
      jscript: Added support for accessor properties in defineProperty.
      jscript: Support accessor properties in getOwnPropertyDescriptor.
      jscript: Support getting value of accessor property.
      jscript: Move handling PROPF_WRITABLE to property type specific code.
      jscript: Support setting accessor property value.
      mshtml: Share the same structure for about and res protocols.
      mshtml: Share more code between res and about protocol handlers.
      mshtml: Properly support COM aggregation in about and res protocol handlers.
      mshtml/tests: Added more COM aggregation tests.
      mshtml.idl: Added IHTMLCSSStyleDeclaration declaration.
      mshtml.idl: Added IHTMLWindow7 declaration.
      mshtml: Added IHTMLWindow7 stub implementation.
      mshtml: Implement supported IHTMLWindow7 event properties.
      mshtml: Added IHTMLWindow7::innerWidth and innerHeight implementation.
      mshtml: Expose IHTMLWindow7 interface to scripts.
      urlmon/tests: Handle ERROR_INTERNET_INVALID_CA security problem in https tests.
      urlmon/tests: Use the same thread for both connections in redirect tests.
      urlmon: Ensure that inner protocol handler reference is released after other references.
      urlmon/tests: Added more ref counting and aggregation tests.
      itss: Support COM aggregation in its protocol handler.
      ole32/tests: Pass host_object_data struct as an argument to start_host_object2.
      ole32/tests: Add IRpcChannelBuffer and IRpcStubBuffer tests.
      ole32: Introduce new ipid_to_ifstub helper and use it in ipid_get_dispatch_params.
      ole32: Use queried interface destination context for marshaling RemQueryInterface result.
      jscript: Added String.trim implementation.

Jactry Zeng (1):
      riched20/tests: Free retext after use.

Julian Rüger (1):
      po: Update German translation.

Józef Kucia (26):
      wined3d: Fix memory leak in shader_glsl_init_transform_feedback().
      wined3d: Implement sampleinfo instruction.
      wined3d: Reject uploads for multisample textures.
      wined3d: Add ARB_sample_shading extension.
      wined3d: Implement sampleinfo for render targets.
      d2d1/tests: Adjust expected value for linear brush test.
      d3d11/tests: Add test for sampleinfo instruction.
      d3d10core/tests: Add test for unbound multisample textures.
      wined3d: Implement SV_SampleIndex.
      d3d11: Add ID3D11Device2 stub.
      d3d11/tests: Add test for sampleinfo with rasterizer register.
      d3d11/tests: Correctly check for multisample support.
      d3d10core/tests: Correctly check for multisample support.
      wined3d: Implement oMask register.
      wined3d: Get rid of MAX_MULTISAMPLE_TYPES.
      d3d11/tests: Add test for sample shading.
      wined3d: Allow creating swapchains for windows with empty client rect.
      dxgi/tests: Add test for creating swapchains for windows with empty client rect.
      winevulkan: Trace unsupported instance extensions.
      wined3d: Remove redundant entries from "formats" table.
      configure: Check for libvkd3d.
      d3d12: Implement D3D12CreateRootSignatureDeserializer().
      d3d12: Implement D3D12SerializeRootSignature().
      d3d12: Implement D3D12CreateDevice().
      d3d12: Print message about Vulkan configuration problem to winediag channel.
      d3d12/tests: Add basic visual test.

Ken Thomases (2):
      winemac: Transform the process to a GUI app on an attempt to change the display mode.
      winemac: Fix z-ordering between two child (owned) windows of the same parent (owner).

Kim Malmo (1):
      po: Update Norwegian translation.

Lauri Kenttä (1):
      po: Update Finnish translation.

Louis Lenders (2):
      include: Add IWMCodecInfo interfaces.
      wmvcore: Add a fixme in WMProfileManager_QueryInterface if interface not found.

Lucian Poston (2):
      d3d11: Return 0 for the class instance count from the shader getters.
      d2d1: Add ID2D1Device stub.

Marcos Gutierrez (1):
      include: Fixed casts in some HANDLE_MSG_WM_* macros.

Matej Špindler (1):
      kernel32: Check for LOCALE_NOUSEROVERRIDE for neutral locales.

Matteo Bruni (8):
      wined3d: Don't add pixel center offset twice.
      wined3d: Skip match_broken_arb_fog() quirk check on core profile.
      wined3d: Use core functions to set the stencil mask on GL 2.0+.
      wined3d: Skip match_allows_spec_alpha() on core profile.
      wined3d: Default to using a non-forward-compatible core profile context.
      d3d11/tests: Add a test for output sampler mask.
      wined3d: Map glMinSampleShadingARB() to glMinSampleShading().
      wined3d: Implement YUV blits in the GLSL blitter.

Michael Müller (5):
      ntdll: Add stub for RtlIpv6StringToAddressExW.
      secur32: Set output buffer size to zero during handshake when no data needs to be sent.
      version: Return ERROR_FILE_NOT_FOUND for Win 9x when a file was not found in GetFileVersionInfoSize.
      ntdll: Return success for TokenSessionId in NtSetInformationToken.
      dxdiagn: Add several more fields for DisplayDevices.

Michael Stefaniuc (4):
      winecfg: Remove an ARRAY_SIZE()-like macro.
      winecfg: Use the available ARRAY_SIZE() macro.
      notepad: Use the available ARRAY_SIZE() macro.
      include: Make ARRAY_SIZE() available in wine/test.h.

Mingcong Bai (1):
      po: Update Simplified Chinese translation.

Nikolay Sivov (17):
      dxgi: Add IDXGIDevice2 stub.
      d3d9: Implement setting the maximum frame latency.
      d3d11: Partially implement d3d11_immediate_context_UpdateSubresource1().
      gdiplus: Use ARRAY_SIZE() macro.
      gdiplus: Partially implement arrow caps.
      gdiplus: Implement unfilled mode for arrow caps.
      gdiplus: Only draw filled arrows with positive height.
      dxgi: Allow setting maximum frame latency parameter.
      d2d1/tests: Add a simple test for creating d2d devices.
      dwrite: Support IDWriteFontList1 for font families.
      dwrite: Support IDWriteTextFormat2 for layout.
      dwrite/tests: Use ARRAY_SIZE() macro in tests.
      dwrite: Properly truncate face name to LOGFONT size.
      dwrite/tests: Remove a test failing after recent update.
      dwrite/tests: Skip some tests on variable fonts.
      d2d1: Add ID2D1Bitmap1 stub.
      include: Update with latest DirectWrite API additions.

Pablo Martin (6):
      d3d11: Partially implement d3d11_immediate_context_CopySubresourceRegion1().
      d3d11/tests: Add test for CopySubresourceRegion1.
      wined3d: Add unimplemented flags parameter to wined3d_device_copy_sub_resource_region.
      d3d11: Make CopySubresourceRegion1 call wined3d_device_copy_sub_resource_region directly.
      wined3d: Add unimplemented flags parameter to wined3d_device_update_sub_resource.
      d3d11: Make UpdateSubresource1 call wined3d_device_update_sub_resource directly.

Sebastian Lackner (1):
      shell32: Create Microsoft\Windows\Themes directory during prefix creation.

Thomas Crider (1):
      kernel32: Add SetProcessAffinityUpdateMode stub.

Zebediah Figura (41):
      advapi32: Correctly translate SERVICE_REQUIRED_PRIVILEGES_INFO to RPC.
      mp3dmod/tests: Add some tests for decoding.
      mp3dmod: Return timestamp and length from ProcessOutput().
      msi/tests: Add a header for some common functions.
      msi/tests: Add the custom action DLL in create_database_wordcount().
      d3d10core/tests: Add test for depth clip.
      msi/tests: More accurately calculate estimated size.
      kernel32: Check only the low word of CS when printing exceptions.
      msi: Handle the remote case directly in MsiFormatRecordA().
      msi: Avoid using awstring in MsiFormatRecordW().
      msi: Handle the remote case directly in MsiGetPropertyA().
      msi: Avoid using awstring in MsiGetPropertyA/W().
      d3d11/tests: Add test for depth clip.
      mp3dmod: Register DMO.
      msi: Avoid leaking memory on failure paths in MsiGetPropertyA().
      msi: Handle the remote case directly in MsiGetTargetPathA().
      msi: Avoid using awstring in MsiGetTargetPathW().
      msi: Handle the remote case directly in MsiGetSourcePathA().
      msi: Avoid using awstring in MsiGetSourcePathW().
      msi/tests: Test deferral of CreateFolders and RemoveFolders.
      msi/tests: Test deferral of CreateShorcuts and RemoveShortcuts.
      msi/tests: Test deferral of DeleteServices.
      msi/tests: Test deferral of InstallServices.
      msi/tests: Test deferral of StartServices and StopServices.
      winedbg: Use gdb's default handling of breakpoints.
      d3d11: Implement depth clip control.
      vbscript: Add stub IActiveScriptDebug interface.
      msi/tests: Avoid calling MsiSetTargetPath("TARGETDIR").
      msi/tests: Test deferral of DuplicateFiles and RemoveDuplicateFiles.
      msi/tests: Test deferral of InstallFiles and RemoveFiles.
      odbccp32: Clean up SQLGetInstalledDrivers().
      odbccp32/tests: Add tests for SQLGetInstalledDrivers().
      msi/tests: Test installation of ODBC driver.
      msi/tests: Test deferral of InstallODBC and RemoveODBC.
      odbccp32: Avoid using RegQueryInfoKey() in SQLGetInstalledDrivers().
      msi/tests: Test deferral of MoveFiles.
      msi/tests: Test deferral of MsiPublishAssemblies and MsiUnpublishAssemblies.
      msi/tests: Test deferral of ProcessComponents.
      msi/tests: Test deferral of PublishComponents and UnpublishComponents.
      msi/tests: Test deferral of PublishFeatures and UnpublishFeatures.
      msi/tests: Test deferral of PublishProduct.

Zhiyi Zhang (10):
      comctl32/taskdialog: Return TRUE when message is handled.
      comctl32/taskdialog: Add support for TDN_HELP.
      comctl32/taskdialog: Add support for TDF_CAN_BE_MINIMIZED.
      comctl32/taskdialog: Move TASKDIALOGCONFIG pointer in struct taskdialog_info.
      comctl32/taskdialog: Add support for TDF_NO_SET_FOREGROUND.
      comctl32/taskdialog: Add support for TDF_RTL_LAYOUT.
      comctl32/taskdialog: Add a helper to initialize dialog data.
      comctl32/taskdialog: Add support for TDN_TIMER notification.
      comctl32/taskdialog: Send TDN_CREATED before window gets visible.
      comctl32/taskdialog: Use bold font for main instruction.

Alexandre Julliard