Wine Announcement

The Wine development release 2.15 is now available.

What's new in this release (see below for details):
  - Support for AES encryption.
  - Improved Bezier support in Direct2D.
  - Chunked transfer improvements in WinInet.
  - 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 2.15 (total 9):

  37981  Illustrator CS6: ruler area gets corrupted when moving mouse
  40399  emClient (.NET app) exits silently because GdipGetLineTransform is just a stub
  41422  Bricscad:  dots and small objects left "traces" while moving
  43120  Joystick enabled applications crash when a device that advertises more than 8 axes is attached
  43466  Microsoft Outlook 2010 cannot connect to MS Exchange Server
  43475  XM6 TypeG crashes on startup.
  43480  Peavey Revalver IV (Amp modeling software) crashes due to missing Win7+ Touch Input API (stubs)
  43503  FUJITSU Software ATLAS: unimplemented function msvcr80.dll._ismbcl0 called in 32-bit code
  43527  Magic Online  (Magic The Gathering: Online) Crashes due to LOCALE_SNAN returning empty string


Changes since 2.14:

Akihiro Sagawa (2):
      msvcrt/tests: Add tests for mbstowcs and wcstombs with empty strings.
      msvcrt: Fix mbstowcs with empty strings.

Alex Henrie (3):
      include: Add SetDefaultDllDirectories.
      include: Add CryptProtectMemory and CryptUnprotectMemory.
      include: Add GetNamedPipeClientProcessId.

Alistair Leslie-Hughes (1):
      ntdll/tests: Use standard wine_dbgstr_longlong.

Andrew Eikum (2):
      gdiplus: Implement transform matrix for line gradient brushes.
      gdiplus: GdipCreateMetafileFromWmfFile will also load EMFs.

Andrey Gusev (1):
      mfplat: Add MFTEnumEx stub.

André Hentschel (1):
      winebuild: Improved position independent code generation.

Aric Stewart (1):
      usp10: Fall back to 'dflt' language if shaping language tag isn't found.

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

Austin English (3):
      user32: Add UnregisterTouchWindow stub.
      user32: Add CloseTouchInputHandle/GetTouchInputInfo stubs.
      user32: Add GetGestureInfo stub.

Dmitry Timoshkov (1):
      windowscodecs/tests: Add a test for loading PNG grayscale images.

François Gouget (2):
      msi/tests: Add a trailing linefeed to a couple of ok() calls.
      msi: Add a trailing linefeed to a FIXME() trace.

Hans Leidekker (9):
      bcrypt: Add a stub AES implementation.
      bcrypt: Add a stub implementation of BCryptSetProperty.
      bcrypt: Add a stub implementation of BCryptEncrypt.
      bcrypt: Add a stub implementation of BCryptDecrypt.
      bcrypt: Implement BCryptGenerateSymmetricKey and BCryptDestroyKey.
      bcrypt: Implement BCryptEncrypt.
      bcrypt: Implement BCryptDecrypt.
      configure: Check for gnutls_cipher_init instead of gnutls_hash.
      include: Add BCRYPT_KEY_LENGTHS_STRUCT declaration.

Henri Verbeet (8):
      d2d1: Return S_OK on success in d2d_geometry_resolve_beziers().
      d2d1/tests: Add a test for bezier intersections.
      d2d1: Introduce a separate function for calculating line/line intersections.
      d2d1: Implement bezier/line intersections.
      d2d1: Implement bezier/bezier intersections.
      d2d1: Use segment indices in d2d_geometry_resolve_beziers().
      d2d1: Split overlapping bezier control triangles.
      wined3d: Explicitly check for "Radeon" and "FirePro" in wined3d_guess_card_vendor().

Hugh McMaster (20):
      reg/tests: Add tests for importing Windows 3.1 registry data.
      reg: Dynamically allocate memory for the value name buffer when deleting all registry values in a specified key.
      regedit: Allow editing of all hex data types.
      comctl32/listview: Invalidate the focus rectangle when the control gets or loses focus.
      reg: Avoid an uninitialized variable warning.
      reg: Make some variables 'static const'.
      regedit: Return a valid pointer in the QUOTED_VALUE_NAME state if REGPROC_unescape_string() returns FALSE.
      reg: Compile with msvcrt.
      reg: Rename reg.h to resource.h.
      reg: Add initial support for the import operation.
      reg: Introduce a partial state machine for importing Windows 3.1 registry data.
      reg: Parse key names and value names in the state machine.
      reg: Parse data types and import REG_SZ data via the state machine.
      reg: Import REG_DWORD data via the state machine.
      reg: Import hex data via the state machine.
      reg: Handle unknown registry data types in the state machine.
      reg: Delete registry values via the state machine.
      reg: Delete registry keys via the state machine.
      reg: Use the correct return codes during the import operation.
      reg/tests: Fix two copy/paste errors.

Huw D. M. Davies (2):
      ws2_32: Don't return synchronously if the connection is refused.
      usp10: Undefined characters above the BMP should be assigned to Script_Surrogates.

Jacek Caban (12):
      wininet: Correctly pass URL length to InternetCrackUrlW in get_redirect_url.
      wininet: Return error codes from HTTP streams.
      wininet: Try to read reamaining data in chunked_drain_content.
      wininet: Always use drain_content specific to stream type.
      wininet: Store error state separately from end of stream in chunked stream.
      wininet: Release connection in HTTPREQ_Read only if remaining control data may be drainad without blocking.
      wininet: Never do blocking reads in chunked_read if zero chunk size is aready read.
      wininet: Drain content before reusing connection in open_http_connection.
      wininet/tests: Added more persistent connection tests.
      netprofm: Added semi-stub Advise and Unadvise implementation.
      netprofm: Implement connection points as the same object as their container.
      netprofm: Release connection point sink entries in object destructor.

Jactry Zeng (3):
      shell32: Implement SHCreateItemFromRelativeName.
      shell32: Implement SHCreateItemInKnownFolder.
      shell32/tests: Add more tests for SHGetKnownFolderIDList.

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

Józef Kucia (10):
      wined3d: Factor out context_copy_bo_address() function.
      wined3d: Implement copying UAV counters.
      d3d11: Implement d3d11_immediate_context_CopyStructureCount().
      wined3d: Add support for initial UAV counters values.
      wined3d: Change wined3d_buffer_copy() return type to void.
      wined3d: Implement indirect compute dispatch.
      d3d11: Implement d3d11_immediate_context_DispatchIndirect().
      d3d11/tests: Extend test for UAV counters.
      wined3d: Add support for append/consume structured buffer views.
      d3d11/tests: Add test for indirect dispatch.

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

Michael Müller (1):
      wined3d: Recognize SM4 nop opcode.

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

Nikolay Sivov (12):
      d2d1: Fix trace message typo.
      dmloader: Use safe list iterator when clearing the cache (Coverity).
      msi: Avoid uninitialized pointer access on error path (Coverity).
      winhttp: Avoid returning while holding a lock (Coverity).
      po: Update Russian translation.
      msvcrt: Added _ismbcl0().
      bcrypt: Support BCRYPT_KEY_LENGTHS property for AES.
      kernel32/nls: Added LOCALE_SNAN entries.
      dwrite: Protect cached fontface list when accessed from multiple threads.
      dwrite: Added a helper to check for supported characters.
      dwrite: Simplify GetFontSignature().
      qcap: Use wine_dbgstr_longlong() to trace REFERENCE_TIME arguments.

Paul Gofman (5):
      d3dx9: Remove case for annotation in get_parameter_element_by_name().
      d3dx9: Return NULL for child parameter's annotation in get_parameter_by_name().
      d3dx9: Move referenced_param definition from d3dx_parameter to d3dx_state.
      d3dx9: Use distinct structure for top level parameters.
      d3dx9: Avoid an extra indirection in is_const_tab_input_dirty().

Piotr Caban (4):
      msvcrt: Fix strcpy implementation so it works on overlapping buffers.
      gdiplus: Add more accurate algorithm for inverting scaling and translation matrices in GdipInvertMatrix.
      gdiplus: Add write_region_data helper and use it in GdipGetRegionData.
      gdiplus: Support GdipSetClipRegion in metafiles.

Robert Xiao (1):
      wined3d: Reduce timeout to avoid GL_TIMEOUT_EXPIRED on macOS.

Sebastian Lackner (1):
      ntdll: Fix a TRACE in NtGetContextThread.

Vincent Povirk (1):
      windowscodecs: Fix 32bppGrayFloat to 8bppGray conversion.

Zebediah Figura (9):
      ole32: Store proxy/stub CLSIDs per process, not per apartment.
      msi: Use MsiProcessMessage() to send error messages.
      msi: Use the Error table for more messages.
      msi: Return the current date and time.
      msi: Return the correct values from dialogs.
      msi: Add support for ActionText table.
      include: Add initial ieautomation.idl.
      ieproxy: Add stub DLL.
      ieproxy: Add proxy/stub for IInternetExplorerManager.

Alexandre Julliard