The Wine development release 2.21 is now available.

What's new in this release (see below for details):
  - Still more metafile support in GdiPlus.
  - Indirect draws support in Direct 3D.
  - Calling convention fixes on ARM.
  - Improved serial port detection on Linux.
  - Services fixes on WoW64.
  - Better DPI scaling in the Shell Explorer.
  - Various bug fixes.

The source is available from the following locations:

  http://dl.winehq.org/wine/source/2.x/wine-2.21.tar.xz
  http://mirrors.ibiblio.org/wine/source/2.x/wine-2.21.tar.xz

Binary packages for various distributions will be available from:

  http://www.winehq.org/download

You will find documentation on http://www.winehq.org/documentation

You can also get the current source directly from the git
repository. Check http://www.winehq.org/git 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 2.21 (total 16):

  34601  Hydro Thunder from Midway Arcade Treasures 3 crashes quickly after the start
  37669  Resetting a write watch can cause memory access violation in kernel
  38334  SpinTires crashes with unimplemented function d3dx9_36.dll.D3DXFrameFind
  42568  user32/tests/msg.ok intermittent failure in SendMessage from other thread
  42569  user32/tests/clipboard intermittent failure ("expected freed memory")
  42570  dinput/tests/mouse intermittently fails in Acquire() and GetDeviceData()
  42863  Multiple games require sample_c_lz for cube/array textures (Winexy, Witcher 3, Flame in the Flood)
  43273  The Witcher 3 freezes the system in a certain area of the game
  43316  Process Hacker 2.x needs ADVAPI32.dll.LsaLookupPrivilegeName
  43405  NieR:Automata - Most bullets are invisible
  43483  Medusa Demo crashes with unimplemented function d3dx10_43.dll.D3DX10PreprocessShaderFromMemory
  43750  USB "ttyACM0" serial port not being created
  43853  Keepass2 fails to launch
  43884  MSVC LINK.EXE version 14.11.25547.0 crashes due to unimplemented function _memicmp_l
  43939  comctl32 cannot load its assembly on arm
  43952  kernel32/tests/console.ok fails

----------------------------------------------------------------

Changes since 2.20:

Alex Henrie (8):
      mountmgr: Map ttyACM devices to COM ports on Linux.
      vbscript/tests: Fix test for WeekDayName(foo, bar, 0).
      kernel32/tests: Detect and handle a redirected stdin.
      libport: Move rint fallback implementations from msvcrt to libport.
      d3dx9/tests: Correct Fresnel reference term.
      d3dx9/tests: Provide 8 significant digits in matrix reference values.
      d3dx9/tests: Relax D3DXQuaternionToAxisAngle test stringency a bit.
      d3dx9/tests: Use a helper function to set matrix values in math tests.

Alexandre Julliard (23):
      configure: Require floating point support on ARM.
      setupapi: Use correct architecture for fake dlls on ARM and ARM64.
      wldap32: Use WINAPIV calling convention for variadic functions.
      ntdll: Use WINAPIV calling convention for variadic functions.
      kernel32/tests: Use WINAPIV calling convention for variadic functions.
      msvcrt: Use WINAPIV calling convention for variadic functions.
      include: Use WINAPIV calling convention for variadic functions.
      attrib: Use WINAPIV calling convention for variadic functions.
      cmd: Use WINAPIV calling convention for variadic functions.
      ipconfig: Use WINAPIV calling convention for variadic functions.
      net: Use WINAPIV calling convention for variadic functions.
      netstat: Use WINAPIV calling convention for variadic functions.
      reg: Use WINAPIV calling convention for variadic functions.
      regedit: Use WINAPIV calling convention for variadic functions.
      regsvr32: Use WINAPIV calling convention for variadic functions.
      taskkill: Use WINAPIV calling convention for variadic functions.
      uninstaller: Use WINAPIV calling convention for variadic functions.
      xcopy: Use WINAPIV calling convention for variadic functions.
      include: Use the hard-float calling convention for Windows APIs on ARM
      ntdll: Don't change packing of fd cache entries.
      user32: Pass the text length explicitly to EDIT_EM_ReplaceSel.
      user32/tests: Avoid strlen in traces.
      readme: Patches should now be sent to wine-devel.

Alistair Leslie-Hughes (4):
      oledb32: DataConvert support DBTYPE_VARIANT -> DBTYPE_R4.
      oledb32: Fix typo.
      quartz: Output This in TRACE statements.
      quartz: Output This in TRACE statements.

Andrew Eikum (4):
      explorer: Don't leak PIDL.
      explorer: Scale element sizes by DPI.
      shell32: Scale explorer browser sizes by DPI.
      shell32: Size ShellView column widths by font width.

Andrey Gusev (6):
      hidclass.sys: Remove check for negative value.
      iphlpapi: Change variable type.
      usp10: Remove worthless check.
      mf: Add MFGetSupportedMimeTypes stub.
      d3dx10: Add D3DX10PreprocessShaderFromMemory stub.
      d3dx11: Fix D3DX11CompileFromMemory spec entry.

Andrey Semakin (3):
      winemine: Add WM_RBUTTONUP to cases of TestMines().
      winemine: Save board without need to correctly finish the app.
      winemine: Add Reset Results button.

Aric Stewart (2):
      usp10/tests: Add fingerprint to help ensure proper font for testing.
      hidclass.sys: Handle opportunistic reads.

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

Austin English (2):
      readme: Clarify the wording a bit.
      preloader: Fix a typo in error message.

Dmitry Kislyuk (1):
      vbscript: Improve parsing of separators in functions and classes.

Dmitry Timoshkov (1):
      ws2_32/tests: Add some tests for sockets bound to a completion port.

Donna Whisnant (2):
      oleaut32: Add ARM support to DispCallFunc().
      oleaut32: Fix DispCallFunc() stdcall test to be ABI not x64 specific.

Fabian Maurer (2):
      comctl32/tests: Add taskdialog callback tests.
      comctl32/taskdialog: Added support for nDefaultButton.

Gerald Pfeifer (3):
      fusion: Remove unused to_multibyte function.
      advapi32/tests: Fix two clang warnings in test_LookupAccount SID_NAME_USE being out of range.
      configure: Use the -Wno-packed-not-aligned compiler option if available.

Hans Leidekker (4):
      include: Add missing BCRYPT_CHAIN_MODE definitions.
      advapi32: Fix EnumServicesStatus on Wow64.
      advapi32: Fix EnumServicesStatusEx on Wow64.
      advapi32: Fix QueryServiceConfig2 on Wow64.

Hugh McMaster (2):
      regedit: Correctly export hex values with no data.
      regedit: Correctly export REG_DWORD values with no data.

Huw D. M. Davies (2):
      rpcrt4: Don't free the argument if the freer was called, unless it's a simple ref.
      ole32: Correctly track the number of inits when auto-joining the MTA.

Jacek Caban (10):
      jscript: Added support for VT_UI2 VARIANT types.
      mshtml: Added support for VT_UI2 in IDispatchEx.
      mshtml: Added DOMContentLoaded event implementation.
      mshtml: Expose IEventTarget to scripts.
      mshtml/tests: Added script IE9+ event tests.
      mshtml: Introduce variant_bool helper.
      mshtml: Added IDOMEvent::get_defaultPrevented implementation.
      mshtml: Use variant_bool helper where appropriate.
      mshtml: Added IDocumentSelector::querySelector implementation.
      mshtml: Merge hlink.c into persist.c.

Józef Kucia (28):
      wined3d: Add ARB_draw_indirect extension.
      wined3d: Factor out acquire_graphics_pipeline_resources().
      wined3d: Implement indirect draws.
      d3d11: Implement d3d11_immediate_context_DrawInstancedIndirect().
      d3d11: Implement d3d11_immediate_context_DrawIndexedInstancedIndirect().
      include/d3d11: Add definitions for indirect draw arguments.
      wined3d: Add support for R8_UNORM vertex format.
      d3d11/tests: Add test for SV_InstanceID.
      wined3d: Add 4.4 to supported OpenGL versions.
      d3d11/tests: Add test for indirect draws with index buffer offset.
      wined3d: Add FIXME() for unimplemented index buffer offsets.
      wined3d: Factor out draw_indirect() function.
      wined3d: Bail out when ARB_draw_indirect is not supported.
      wined3d: Require ARB_draw_indirect for SM5.
      wined3d: Disable ARB_draw_indirect if ARB_base_instance is not available.
      d3d10core/tests: Add test for SV_InstanceID.
      wined3d: Create textures views for depth views.
      wined3d: Use textureGrad*() to implement sample_c_lz for array and cube textures.
      d3d11/tests: Add test for sample_c_lz instruction.
      wined3d: Use wined3d_insert_bits().
      wined3d: Use wined3d_extract_bits().
      wined3d: Get rid of compute_shader_init().
      wined3d: Get rid of domain_shader_init().
      wined3d: Get rid of hull_shader_init().
      wined3d: Disable pixel shader when rasterization is disabled.
      wined3d: Handle stream output components when rasterization is disabled.
      d3d11/tests: Add test for stream output components.
      wined3d: Invalidate pixel shader only when rasterization is toggled.

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

Marcus Meissner (4):
      user32/tests: Check GetClipboardFormatName length.
      ole32: Clipboard format in the datacache is with trailing \0.
      ieframe/tests: Avoid crash on missing IID_IWebBrowser2 interface.
      oleaut32/tests: Fixed 64-bit crash on tmarshal test.

Martin Storsjo (1):
      msvcrt: Back up and restore the FPU state in setjmp/longjmp on ARM.

Matteo Bruni (2):
      d3dx10: Remove redundant header include.
      d3dx10: Fix tracing of shader source data.

Michael Müller (2):
      wined3d: Add support for start instance in draw_primitive_arrays().
      advapi32: Added a stub for LsaLookupPrivilegeDisplayName().

Michael Stefaniuc (4):
      ddraw/tests: Use ARRAY_SIZE() in the ddraw1 tests.
      ddraw/tests: Use ARRAY_SIZE() in the ddraw2 tests.
      ddraw/tests: Use ARRAY_SIZE() in the ddraw4 tests.
      wined3d: Use ARRAY_SIZE().

Nikolay Sivov (22):
      dwrite: Set lfItalic style to get more compatible results for gdiinterop.
      gdiplus/metafile: Simplify EmfPlusARGB definition.
      gdiplus/metafile: Support hatch brushes in playback.
      gdiplus/metafile: Support texture brushes playback.
      gdiplus/metafile: Support hatch brushes for recording.
      gdiplus/metafile: Implement playback for EmfPlusRecordTypeDrawImage.
      advapi32/tests: Remove dynamic function binding from LSA tests.
      advapi32/tests: Merge some test code.
      advapi32: Partially implement LsaLookupPrivilegeName().
      gdiplus/metafile: Implement EmfPlusRecordTypeDrawPie playback.
      gdiplus/metafile: Implement playback for EmfPlusRecordTypeDrawRects.
      gdiplus/metafile: Implement playback for EmfPlusRecordTypeFillEllipse.
      gdiplus/metafile: Implement playback for EmfPlusRecordTypeFillPie.
      gdiplus/metafile: Add brush object if needed in FillRectangles().
      xmllite/tests: Fix clang warning.
      gdiplus/metafile: Implement playback for EmfPlusRecordTypeDrawArc.
      gdiplus/metafile: Implement playback for EmfPlusRecordTypeDrawEllipse.
      gdiplus/metafile: Implement playback for EmfPlusRecordTypeFillClosedCurve.
      gdiplus/metafile: Implement playback for EmfPlusRecordTypeSetCompositingMode.
      msvcrt: Implement _memicmp_l().
      gdiplus/metafile: Support linear gradient brushes in playback.
      d3dx9: Implement D3DXFrameFind().

Paul Gofman (1):
      d3dx9: Zero constantinfo_reserved on error in get_constants_desc().

Piotr Caban (13):
      wine.inf: Add Windows Messaging Subsystem MAPI registry key.
      hhctrl.ocx: Set window owner in HtmlHelp function if WS_CHILD flag is not specified.
      vbscript: Add UBound implementation.
      oleaut32: Fix automatic value getting in ITypeInfo::Invoke.
      oleaut32: Ignore underflows in VarR8FromStr.
      vbscript: Add support for "for each" on arrays.
      vbscript: Add for each tests on array.
      vbscript: Don't return error on VBScript_SetScriptState(SCRIPTSTATE_DISCONNECTED) call.
      vbscript: Don't leak IEnumVARIANT in interp_enumnext.
      fusion: Respect buffer size in IAssemblyNameImpl_GetProperty.
      fusion: Add support for ASM_NAME_ARCHITECTURE in IAssemblyNameImpl_GetProperty.
      fusion: Fix IAssemblyNameImpl_GetDisplayName behavior on too small buffer.
      fusion: Fix IAssemblyNameImpl_GetDisplayName behavior on PublicKeyToken containing 0.

Rafał Harabień (2):
      riched20: Protect read-only Richedit against pasting and cutting data.
      user32: Protect single-line edit against pasting new line character.

Stefan Dösinger (1):
      d3d9/tests: Windows 10 17.09 added an undocumented query type.

Vijay Kiran Kamuju (1):
      msvcp100: Add time_get::get function with format parameters.

Vincent Povirk (1):
      tdh: Stub TdhLoadManifest.

Zebediah Figura (10):
      regedit: Always start the GUI as 64-bit when on a 64-bit prefix.
      dinput/tests: Remove a no longer needed workaround.
      dinput/tests: Don't pump messages in test_acquire().
      quartz/tests: GetDestinationPosition() returns the actual window width.
      quartz/tests: Avoid Sleep().
      user32: Use the given string length when converting strings in WM_GETTEXT.
      user32/tests: Simplify test_SendMessage_other_thread().
      quartz/tests: Remove thread-counting tests.
      quartz/tests: Skip tests if CLSID_NullRenderer is not available.
      quartz/tests: Add test AVI and MPG files.

Zhiyi Zhang (2):
      kernel32/tests: Add more tests for LocaleNameToLCID and LCIDToLocalName.
      kernel32/nls: Add LOCALE_SPARENT entries.

Ziqing Hui (3):
      mlang/tests: Add IMultiLanguage2_GetCodePageInfo tests.
      mlang: Fix font name of Chinese code pages.
      mlang: Add more Chinese code pages support.

--
Alexandre Julliard
julliard@winehq.org
