The Wine development release 2.12 is now available.

What's new in this release (see below for details):
  - Audio driver for Android.
  - Some performance improvements with async I/O.
  - More RegEdit file parser improvements.
  - Beginnings for MSI user interface support.
  - Various bug fixes.

The source is available from the following locations:

  http://dl.winehq.org/wine/source/2.x/wine-2.12.tar.xz
  http://mirrors.ibiblio.org/wine/source/2.x/wine-2.12.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.12 (total 9):

  24723  Lost Horizon crash/page fault during Chapter 2
  27656  Deus Ex: Human Revolution - Severe graphical glitches
  35142  Lara Croft and the Guardian of Light: screen filled with artefacts when StrictDrawOrdering disabled
  42014  Multiple apps crash on start due to missing support for LABEL_SECURITY_INFORMATION(affects BOSE SoundTouch, Spotify, Paltalk)
  42597  Mouse wheel doesn't scroll in MyLifeOrganized
  43123  compilation fails in dlls/d3dx9_36/tests with gcc 4.2.2
  43231  Dai-Senryaku Perfect 3.0:Not draw background with GDI.
  43257  winetricks -q art2kmin fails
  43295  unimplemented function IPHLPAPI.DLL.if_nametoindex

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

Changes since 2.11:

Akihiro Sagawa (3):
      tools: Also ignore STATUS_WAIT_0.
      tools: Support multiple error name tokens in a line.
      ntdll/tests: Add more tests if we have real VM counters.

Alex Henrie (1):
      ole32: Avoid null pointer dereferences in CoGetTreatAsClass.

Alexandre Julliard (15):
      libwine: Add a helper function to set the bin directory.
      libwine: Add a helper function to set the dll directory.
      libwine: Fall back to the WINELOADER path for the bin directory.
      wineandroid: Fix handling of Caps Lock with non-alphabetic keys.
      wineandroid: Work around the Android N restriction on loading libhardware.
      wineandroid: Allow putting libraries in the native library directory.
      secur32/tests: Add some braces to silence a clang warning.
      ws2_32/tests: Print IP addresses as unsigned.
      winetest: Don't require a tag or email address when only running a few tests.
      server: Call the satisfied methods after removing the thread wait.
      wineandroid: Forward the destroy window ioctl to Java even if the window was freed already.
      wineandroid: Add networking permissions.
      wineandroid: Support running binaries from the application directory.
      user32: Scale cursor sizes with the screen DPI.
      user32: Get rid of the Wine-specific OCR_DRAGOBJECT.

Alistair Leslie-Hughes (33):
      oledb32: Support DB/DATE/TIME/TIMESTAMP in GetConversionSize for W/STR.
      dsound: Free MMDevice on Release.
      oledb32: Support DBTYPE_DBTIMESTAMP to DBTYPE_WSTR in DataConvert.
      dmime: Add TRACE to IDirectMusicSegment8 QueryInterface.
      dmime: Support more interfaces in IDirectMusicAudioPath.GetObjectInPath.
      mfplat: Implement MFCreateMediaType.
      mfplat/tests: Added MFCreateMediaType test.
      include: Add mftransform.idl.
      include: Support wine_dbgstr_longlong in tests.
      propsys/tests: Use standard wine_dbgstr_longlong.
      ntdll/tests: Use standard wine_dbgstr_longlong.
      vcomp/tests: Use standard wine_dbgstr_longlong.
      dmusic/tests: Use standard wine_dbgstr_longlong.
      iphlpapi/tests: Use standard wine_dbgstr_longlong.
      quartz/tests: Use standard wine_dbgstr_longlong.
      apphelp/tests: Use standard wine_dbgstr_longlong.
      shlwapi/tests: Use standard wine_dbgstr_longlong.
      wmiutils/tests: Use standard wine_dbgstr_longlong.
      msvcp110/tests: Use standard wine_dbgstr_longlong.
      msvcp90/tests: Use standard wine_dbgstr_longlong.
      msvcp60/tests: Use standard wine_dbgstr_longlong.
      msvcp120/tests: Use standard wine_dbgstr_longlong.
      webservices/tests: Use standard wine_dbgstr_longlong.
      pdh/tests: Use standard wine_dbgstr_longlong.
      shell32/tests: Use standard wine_dbgstr_longlong.
      dmime: Rename IPersistStreamImpl_Load functions.
      d2d1/tests: Use standard wine_dbgstr_longlong.
      dwrite/tests: Use standard wine_dbgstr_longlong.
      qmgr/tests: Use standard wine_dbgstr_longlong.
      include: Define IDirectSoundFXI3DL2Reverb interface.
      wmvcore: Support IWMReaderNetworkConfig1/2 interfaces in IWMReader.
      mfreadwrite: Implement MFCreateSourceReaderFromByteStream.
      mmdevapi/tests: Use standard wine_dbgstr_longlong.

Andrew Eikum (1):
      wineandroid: Add an audio driver.

Andrey Gusev (6):
      po: Update Ukrainian translation.
      ext-ms-win-kernel32-package-l1-1-1: Add dll.
      ext-ms-win-ntuser-windowclass-l1-1-1: Add dll.
      ext-ms-win-ras-rasapi32-l1-1-0: Add dll.
      ext-ms-win-security-credui-l1-1-0: Add dll.
      ext-ms-win-security-cryptui-l1-1-0: Add dll.

André Hentschel (2):
      include: Add some more prototypes to winuser.h.
      vcomp/tests: Test more arguments with a callback.

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

Clemens Tamme (3):
      gdiplus: Write API for GdipAddPathLine and GdipAddPathLineI.
      gdiplus: Write API for GdipClonePath.
      gdiplus: Write API documentation for GdipAddPathArc and GdipAddPathArcI.

Dmitry Timoshkov (7):
      windowscodecs: Use PropVariantCompareEx to compare metadata items.
      windowscodecs: Implement IWICMetadataQueryReader::GetLocation.
      windowscodecs: Implement IWICBitmapDecoder::GetMetadataQueryReader in the GIF decoder.
      windowscodecs: Add initial implementation of IWICMetadataQueryReader::GetMetadataByName.
      windowscodecs: Add some tests for IWICMetadataQueryReader.
      windowscodecs/tests: Add more tests for IWICMetadataQueryReader::GetMetadataByName.
      windowscodecs: Fix a memory leak.

François Gouget (9):
      wsdapi: Remove WINAPI on static functions where not needed.
      advapi32/tests: A couple of spelling fixes in ok() messages.
      mapi32: A spelling fix in a comment.
      ntdll/tests: A spelling fix in a comment.
      rpcrt4: Spelling fixes in comments.
      msvcrt/tests: A couple of spelling fixes in ok() messages.
      msvcp90: Spelling fixes in comments.
      ws2_32/tests: A spelling fix in a comment.
      msi/tests: Add a trailing linefeed to an ok() call.

Hans Leidekker (7):
      webservices: Fix write option mapping in write_type_struct_field.
      webservices: Add an index to the static dictionary.
      webservices: Make sure to use the right dictionary to look up text values.
      webservices: Fix reading byte records with 2 and 4 byte length.
      webservices/tests: Add more dictionary tests.
      webservices: Fix the empty text case for a couple of data types.
      webservices: Handle text records with implicit end element.

Hugh McMaster (52):
      regedit: Free the buffer and reset data information on error and after setting the value.
      reg/tests: Separate Unicode import tests from the combined import tests.
      reg/tests: Use verify_key() for consistency with the verify_reg*() functions.
      reg/tests: Use the verify_key*() functions where possible.
      regedit/tests: Use verify_key() for consistency with the verify_reg*() functions.
      regedit/tests: Use the verify_key*() functions where possible.
      reg/tests: Test backslashes with whitespace variations and comma placement.
      reg/tests: Test line concatenation with a new registry key on the next line.
      reg/tests: Test line concatenation with comments, new lines and comma variations before a new registry value.
      reg/tests: Test line concatenation with comments, new lines and comma variations before a new default registry value.
      reg/tests: Test whether a line beginning with a backslash can follow a line ending in a backslash.
      reg/tests: Test the effects of comments and new lines that appear between valid hex data lines.
      reg/tests: Test whether a forward slash can be used as a concatenation marker.
      reg/tests: Test whether EOF invalidates a hex data line ending in a backslash.
      regedit/tests: Test backslashes with whitespace variations and comma placement.
      regedit/tests: Test line concatenation with a new registry key on the next line.
      regedit/tests: Test line concatenation with comments, new lines and comma variations before a new registry value.
      regedit/tests: Test line concatenation with comments, new lines and comma variations before a new default registry value.
      regedit/tests: Test whether a line beginning with a backslash can follow a line ending in a backslash.
      regedit/tests: Test the effects of comments and new lines that appear between valid hex data lines.
      regedit/tests: Test whether a forward slash can be used as a concatenation marker.
      regedit/tests: Test whether EOF invalidates a hex data line ending in a backslash.
      regedit: Free the binary data buffer after saving the new value (Coverity).
      reg/tests: Test comma placement when parsing hex data.
      regedit/tests: Test comma placement when parsing hex data.
      regedit/tests: Correct out of sequence test numbering.
      reg/tests: Test the effect of whitespace-only lines during hex data concatenation.
      regedit/tests: Fix another incorrectly named registry key.
      regedit/tests: Test the effect of whitespace-only lines during hex data concatenation.
      regedit: Remove un-necessary parser state assignment if we are returning to the same state.
      regedit: Improve the parsing of multiline hex data during the registry import operation.
      reg/tests: Test whether registry keys ending with trailing backslashes are imported and created.
      reg/tests: Test whether the "0x" prefix is valid when importing hex data.
      regedit/tests: Test whether registry keys ending with trailing backslashes are imported and created.
      regedit/tests: Test whether the "0x" prefix is valid when importing hex data.
      regedit: Simplify a while loop for skipping whitespace.
      regedit: Skip lines that do not begin with a hexadecimal character during hex data concatenation.
      regedit: Skip blank and whitespace-only lines during hex data concatenation.
      regedit: Do not remove lines beginning with '#' from the read buffer.
      regedit: Do not remove lines beginning with a semicolon from the read buffer.
      regedit: Check if any hex data exists before attempting to parse it.
      regedit: Do not import the line if a hex data type has a "0x" prefix.
      regedit/tests: Check if regedit.exe has elevated privileges before starting some tests.
      regedit/tests: Add another test for "0x" prefixes in the hex data type.
      regedit/tests: Add some more tests for importing hex data.
      regedit: Hex data lines may be terminated by a semicolon.
      regedit: Null-terminate REG_EXPAND_SZ and REG_MULTI_SZ data if the parsed hex data does not end in a null-terminating character.
      reg/tests: Add another test for "0x" prefixes in the hex data type.
      reg/tests: Add some more tests for importing hex data.
      reg/tests: Test the effects of EOF on hex data during concatenation.
      regedit/tests: Test the effects of EOF on hex data during concatenation.
      regedit: Use a function to free the parser data.

Huw D. M. Davies (4):
      winex11: Use logical co-ords to call GdiAlphaBlend().
      wineandroid: Use logical co-ords to call GdiAlphaBlend().
      msvcrt: _difftime64() takes 64-bit args.
      winemac: Use logical co-ords to call GdiAlphaBlend().

Jacek Caban (28):
      wininet: Moved INTERNET_STATUS_REDIRECT notification to HTTP_HandleRedirect.
      wininet: Return an error on redirect with no host name specified.
      server: Preallocate wait handle in create_request_async and return it in read request.
      server: Close async wait handle when wait is satisfied.
      server: Return async result directly instead of via APCs if it's available.
      server: Use create_request_async for write requests.
      server: Store fd reference in async object for unqueued asyncs.
      server: Allow async_handoff users to set result themselves.
      ntdll: Set iosb status in server_ioctl_file.
      server: Use create_request_async in ioctl request handler.
      server: Use create_request_async in flush request handler.
      server: Remove no longer needed need_handle from queue_irp.
      rsaenh: Use bcrypt for SHA512 hashes.
      rsaenh: Use bcrypt for SHA384 hashes.
      rsaenh: Use bcrypt for SHA265 hashes.
      winhttp/tests: Get rid of unneeded Sleep() call.
      server: Use default poll only for default read and write queue asyncs.
      server: Associate named pipe device waiters queue with its fd.
      server: Keep ifchange queue through sock object life time.
      server: Keep weak fd reference in async object when async is queued.
      server: Store completion in async object instead of async_queue.
      server: Make async_queue object a simple list instead of a server object.
      server: Remove no longer needed NULL checks.
      server: Make fd_queue_async infallible.
      server: Call create_irp from queue_irp.
      rsaenh: Implement duplicate_hash_impl for bcrypt-based hashes.
      d3d11.idl: Added CD3D11_DEPTH_STENCIL_DESC declaration.
      wininet: Fixed connection_pool_cs declaration.

Jactry Zeng (1):
      ucrtbase: Implement wcstoull and _wcstoull_l.

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

Marcin Mikołajczak (1):
      po: Updated Polish translation.

Martin Storsjo (1):
      ntdll: Handle IMAGE_REL_BASED_DIR64 for arm64 in the same way as for x86_64.

Michael Stefaniuc (3):
      wineandroid: Use EqualRect() instead of memcmp().
      regedit: Remove a redundant NULL check before HeapFree().
      urlmon: Remove a redundant NULL check before SysFreeString().

Nikolay Sivov (16):
      d3drm: Added IDirect3DRMWrap stub.
      d3drm/tests: Some tests for animation object QI behavior.
      d3drm: Store animated frame pointer in animation object.
      d3drm: Store animation options.
      regedit: Use notification message to clean up item data.
      regedit: Remove explicit iIndent field initialization.
      po: Update Russian translation.
      d3drm/tests: Additional test for SetOptions().
      d3drm/tests: Some tests for animation keys handling.
      d3drm: Use AddKey() method internally to add all types of keys.
      iphlpapi: Fix GetIfTable() trace message.
      d3drm: Store frame traversal options.
      d3drm: Store face color.
      regedit: Remove commented out block.
      d3drm: Initial support for storing animation keys.
      d3drm: Implement DeleteKey().

Owen Rudge (16):
      wsdapi: Add stub implementation of IWSDUdpMessageParameters and WSDCreateUdpMessageParameters.
      wsdapi/tests: Add tests for CreateUdpMessageParameters.
      wsdapi/tests: Add tests for Get/SetLocalAddress.
      wsdapi/tests: Add tests for Get/SetRemoteAddress.
      wsdapi/tests: Add tests for Get/SetRetransmitParams.
      wsdapi: Implement Get/SetLocalAddress.
      wsdapi: Implement Get/SetRemoteAddress.
      wsdapi: Implement Get/SetRetransmitParams.
      wsdapi: Implement IWSDUdpAddress_SetTransportAddress.
      wsdapi/tests: Add additional SetTransportAddress tests with port numbers.
      wsdapi: Implement IWSDUdpAddress_GetTransportAddress[Ex].
      wsdapi: Implement IWSDUdpAddress_Get/SetPort.
      wsdapi: Implement IWSDUdpAddress_Get/SetMessageType.
      wsdapi: Implement IWSDUdpAddress_Get/SetSockAddr.
      wsdapi: Implement WSDXMLGetValueFromAny.
      wsdapi/tests: Add tests for WSDXMLGetValueFromAny.

Paul Gofman (6):
      d3dx9: Remove redundant parameter size check in set_constants().
      d3dx9: Get rid of constant's length checking for matrix in set_constants().
      d3dx9: Move transpose 'if' outside of the inner loop in set_constants().
      d3dx9: Check type and register count for sampler constants.
      d3dx9: Support arrays of samplers.
      d3dx9/tests: Add tests for array of samplers.

Pierre Schweitzer (1):
      mpr: Implement WNetConnectionDialog().

Piotr Caban (3):
      gdiplus: Add GdipDrawLine test on EmfTypeEmfOnly metafile.
      gdiplus: Add GdipDrawImagePointsRect test on EmfTypeEmfPlusOnly file.
      winedump: Add initial support for handling EMF+ records.

Vincent Povirk (1):
      gdiplus: Set flatness more appropriately in GdipDrawPath.

Zebediah Figura (14):
      msi/tests: Add another test for MsiProcessMessage.
      comctl32: Don't FIXME on handled cases.
      winedbg: Add support for printing floating point registers.
      winedbg: Add support for printing SSE (XMM) registers.
      msi/tests: Add tests for external UI callback.
      msi: Send the correct UI messages upon calling MsiDoAction().
      msi: Implement INSTALLMESSAGE_INITIALIZE and INSTALLMESSAGE_TERMINATE.
      msi: Implement UI messages in MsiOpenPackage().
      gdiplus: Scale widened dashes to the pen width.
      msi: Fix a buffer overrun.
      msi/tests: Work around test failures on Windows.
      msi: Add a basic internal UI implementation.
      msi: Don't increment the refcount when creating dialogs.
      msi: Implement UI messages for dialogs.

--
Alexandre Julliard
julliard@winehq.org
