The Wine development release 2.18 is now available.

What's new in this release (see below for details):
  - Radial gradients in Direct2D.
  - Asynchronous message support in WebServices.
  - Virtual memory write watches improvements.
  - FreeType 2.8.1 compatibility fixes.
  - Various bug fixes.

The source is available from the following locations:

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

  24281  Mafia 2 to slow to play
  36359  valgrind shows a couple possible leaks in dsound/tests/dsound.c
  37160  If D3D_DISABLE_9EX is defined, d3d9.h can't be compiled
  37321  foobar2000 'Scheduler' plugin crashes on unimplemented function shell32.dll.ShellExec_RunDLLW
  37418  Unable to paste images from linux clipboard to Wine apps workspace (affects Photoshop, Powerpoint etc.)
  41380  Xenia emulator don't run (needs _register_thread_local_exe_atexit_callback implementation)
  42154  Multiple games crash with built-in xinput (Deus Ex: Human Revolution, Thief (2014), Tomb Raider (2013), Bejeweled 3)
  42715  Cxbx (Xbox emulator) doesn`t start (wine: Invalid address)
  42983  Abwrite crashes with exception 0x40000015
  43324  Beamng.drive requires msvcr120.dll.vsscanf
  43326  Uplay (July 2017) needs dwmapi.DwmSetIconicLivePreviewBitmap
  43453  Magic Online  (Magic The Gathering: Online) Crashes due to race condition in secur32
  43487  Magic Online  (Magic The Gathering: Online) Crashes in dwrite
  43549  Wickr 4.0.5: Crashes upon run
  43699  Blackscreen in visual novel Hanahira
  43701  Half-Life 2 (Counter-Strike:Source, Day of Defeat:Source) crash on start
  43707  [GdiPlus] HatchStyle is incorrectly named in Wine. Should be GpHatchStyle
  43714  ImageMagick crashes with msvcr120.dll._vfprintf_l
  43715  Many applications (winecfg, ...) crash on startup with freetype 2.8.1
  43716  freetype 2.8.1 breaks Wine build during font conversion with sfnt2fon
  43774  Chromium-based browser engine (CEFv3) used by several games randomly crashes on shutdown (World of Warships 0.6.x)
  43779  In ole32/storage32.c , miss check for the result of HeapAlloc

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

Changes since 2.17:

Alex Henrie (5):
      msvcrt: Set the correct error number in pow(f).
      advapi32: Add stub for LsaLookupPrivilegeName.
      include: Add D3D_DISABLE_9EX checks to d3d9.h.
      shell32: Implement ShellExec_RunDLL.
      ntdll: Add stub for RtlIpv4StringToAddressW.

Alexandre Julliard (32):
      winebuild: Put the thunk hint/name in FirstThunk too instead of zero.
      libwine: Also apply the load delta to the FirstThunk table.
      server: Don't return debug registers unless explicitly requested.
      kernel32/tests: Add tests for the register values at process start.
      ntdll: Store the kernel32 process entry point in a global variable.
      ntdll: Don't clear the last page of the initial stack.
      ntdll: Add support for setting a platform-specific initial context.
      ntdll: Set the initial process context on i386.
      ntdll: Set the initial process context on x86_64.
      ntdll: Suspend the process before attaching dlls, using the process initial context.
      kernel32/tests: Add some more tests for write watches.
      ws2_32/tests: Add some tests for write watches.
      ntdll: Remove some unnecessary parameters in helper functions.
      ntdll: Handle stack faults without fetching the view pointer.
      ntdll: Handle pages faults without fetching the view pointer when possible.
      ntdll: Add helper functions for verifying write access to a memory range.
      ntdll: Add a helper to lock the user output buffer during a server call.
      ntdll: Add helpers to lock the user output buffer during file reads.
      server: Always make pipes non-blocking.
      kernel32/tests: Fix some confusing WRITECOPY tests.
      kernel32/tests: Add more WRITECOPY tests.
      server: Keep track of mapped memory views.
      server: Make the memory ranges structure into a proper object.
      server: Access the list of committed ranges directly from the mapped view.
      server: Store the mapped file descriptor in the memory view.
      server: Implement NtAreMappedFilesTheSame functionality on the server side.
      server: Remove no longer used is_same_file() function.
      server: No longer store the mapping object in the dll structure.
      ntdll: No longer store the mapping handle with the view.
      dwmapi: Update the spec file.
      ntdll: Support loading binaries that start inside the DOS area.
      README: Remove references to removed Wiki pages.

Alistair Leslie-Hughes (6):
      qedit/tests: Add test for the IAMTimelineGroup interface.
      include: Add uianimation.idl.
      msvcrt: Implement clearerr_s.
      hnetcfg: Implement INetFwPolicy2 get_Rules.
      ole32: Add pointer check.
      advapi32/tests: Added GetTokenInformation TokenLogonSid test.

Andrew Eikum (2):
      wineandroid: Create OpenSL outputmix object globally.
      wineandroid: Don't use deprecated SLDataFormat_PCM struct.

Andrey Gusev (2):
      api-ms-win-mm-joystick-l1-1-0: Add dll.
      dwmapi: Add DwmSetIconicLivePreviewBitmap and DwmSetIconicThumbnail stubs.

Anton Romanov (2):
      secur32: Fix race between schan_(Encrypt|Decrypt)Message.
      secur32: Protect SSLRead/Write with cs on OSX.

Dmitry Timoshkov (4):
      windowscodecs: Add support for palette image formats to PNG encoder.
      windowscodecs/tests: Add some tests for encoding 1bpp/8bpp images with a palette.
      ole32: Add a trace to IDataObject::GetData.
      ole32: Trace clsid in IStorage::SetClass.

Fabian Maurer (16):
      strmiids: Add evr interface GUIDS.
      mfuuid: Add library.
      comctl32/taskdialog: Initial support for callback procedure.
      api-ms-win-core-processtopology-obsolete-l1-1-0: Add dll.
      api-ms-win-core-wow64-l1-1-1: Add dll.
      api-ms-win-core-errorhandling-l1-1-3: Add dll.
      api-ms-win-core-file-l2-1-2: Add dll.
      api-ms-win-core-version-l1-1-1: Add dll.
      api-ms-win-ntuser-rectangle-l1-1-0: Add dll.
      evr/tests: Add tests.
      propsys: Added PropVariantToBoolean with some tests.
      evr: Add COM classfactory.
      evr: Add EnhancedVideoRenderer coclass.
      evr/tests: Run the tests with todo_wine instead of skipping them.
      shell32/tests: Fix typo.
      dx8vb: Add stub dll.

Gijs Vermeulen (1):
      msvcrt: Add _vfprintf_l.

Hans Leidekker (8):
      msi: Pass correct length to GetDateFormatW.
      webservices: Add traces.
      webservices: Use separate dictionaries for sending and receiving messages.
      webservices: Read the string table in all sized envelopes.
      webservices: Add asynchronous support for WsReceiveMessage.
      webservices/tests: Add tests for asynchronous WsReceiveMessage.
      webservices: Support more text types in is_empty_text_node.
      webservices: Implement WS_REPEATING_ELEMENT_CHOICE_FIELD_MAPPING in the reader.

Henri Verbeet (23):
      include: Convert dxgitype.h to IDL.
      include: Convert dcommon.h to IDL.
      include: Convert dxgiformat.h to IDL.
      d2d1/tests: Introduce get_surface_readback().
      d2d1/tests: Add some bitmap brush tests for skew transformations and transformed geometry.
      d2d1: Unify the various brush pixel shaders.
      d2d1: Unify the outline and fill pixel shaders.
      d2d1: Use the "world" position instead of the render target position in the pixel shader.
      d2d1: Implement d2d_linear_gradient_brush_SetOpacity().
      d2d1: Implement d2d_linear_gradient_brush_GetOpacity().
      d2d1: Create shader resource views for gradient stop collections.
      d2d1: Implement linear gradient brushes.
      d2d1: Implement d2d_d3d_render_target_CreateRadialGradientBrush().
      d2d1: Implement d2d_radial_gradient_brush_GetCenter().
      d2d1: Implement d2d_radial_gradient_brush_SetCenter().
      d2d1: Implement d2d_radial_gradient_brush_GetGradientOriginOffset().
      d2d1: Implement d2d_radial_gradient_brush_SetGradientOriginOffset().
      d2d1: Implement d2d_radial_gradient_brush_GetGradientStopCollection().
      d2d1: Implement d2d_radial_gradient_brush_GetRadiusX().
      d2d1: Implement d2d_radial_gradient_brush_GetRadiusY().
      d2d1: Implement d2d_radial_gradient_brush_SetRadiusX().
      d2d1: Implement d2d_radial_gradient_brush_SetRadiusY().
      d2d1: Implement radial gradient brushes.

Hugh Bellamy (3):
      gdiplus: Fix validation of HatchStyle in GdipCreateHatchBrush.
      gdiplus: Define GpHatchStyle.
      gdiplus: Add GdipCreateLineBrushFromRectWithAngle tests.

Hugh McMaster (21):
      reg/tests: Use a helper function to create registry keys.
      reg/tests: Use a helper function to add registry values.
      reg/tests: Use a helper function to write registry files.
      reg/tests: Combine and rename the test_import_*str functions.
      reg/tests: Test the placement of the overwrite file flag [/y].
      reg/tests: Compare registry export data with expected data.
      regedit/tests: Use a helper function to write registry files.
      regedit/tests: Combine and rename the r_exec_import_*str functions.
      regedit: Export Unicode registry files by default.
      reg/tests: Test registry export with a simple data structure.
      reg/tests: Test registry export with a complex data structure.
      reg/tests: Test registry export against order of data creation.
      reg/tests: Use a helper function to delete registry values.
      reg/tests: Use a helper function to delete registry keys.
      regedit/tests: Use a helper function to delete registry keys.
      regedit/tests: Test registry export with an empty key.
      regedit/tests: Test registry export with a simple data structure.
      regedit/tests: Test registry export with a complex data structure.
      regedit/tests: Test registry export against order of data creation.
      regedit/tests: Use a helper function to delete registry values.
      reg/tests: Use todo_wine_if in the registry export tests.

Huw D. M. Davies (16):
      include: Add sapi.idl.
      include: Add sapiddk.idl.
      include: Add sperror.h.
      sapi: Add a stub dll.
      sapi: Register the typelib.
      sapi: Register the classes from sapiddk.idl that would otherwise not get registered.
      sapi: Create the Voices registry key.
      sapi: Add a stub SpDataKey object implementation.
      sapi: Implement SpDataKey::SetKey().
      sapi: Add a stub SpObjectTokenEnum object implementation.
      sapi: Implement SpObjectTokenEnum::SetAttribs().
      sapi: Implement SpObjectTokenEnum::GetCount().
      sapi: Add a partial implementation of SpObjectTokenEnum::Next().
      sapi: Add a stub SpObjectTokenCategory object implementation.
      sapi: Implement SpObjectTokenCategory::SetId().
      sapi: Add a partial implementation of SpObjectTokenCategory::EnumTokens().

Ihsan Akmal (15):
      d3d11.idl: Add missing D3D11_DEVICE_CONTEXT_TYPE enums and D3D11_FEATURE_DATA_* declaration.
      dxgi1_2.idl: Add missing structs and interfaces.
      include: Add dxgi1_3.idl.
      include: Add d3d11_2.idl.
      include: Add d3d11_3.idl.
      dxgiformat.h: Add missing DXGI_FORMAT enums.
      include: Add dxgicommon.idl.
      include: Add dxgi1_4.idl.
      include: Add dxgi1_5.idl.
      include: Add dxgi1_6.idl.
      include: Add missing dxgi.idl constants.
      include: Add missing dxgi1_2.idl constants and interfaces.
      include: Add missing d3d11.idl structs and enums.
      include: Add missing d3d11_1.idl enums and interfaces.
      include: Add d3d11_4.idl.

Jacek Caban (13):
      fusion: Return S_OK in InitializeFusion.
      ucrtbase: Added _register_thread_local_exe_atexit_callback implementation.
      mshtml: Initialize DispatchEx in HTMLDOMNode_Init.
      mshtml: Introduce EventTarget_Init.
      mshtml: Introduce EventTarget_QI.
      mshtml: Added IEventTarget stub implementation.
      ntdll/tests: Test NtQueryVolumeInformationFile calls on named pipe object.
      mscoree: Added CreateConfigStream implementation.
      mscoree: Use CreateConfigStream in parse_config_file.
      rpcrt4: Wait for available pipe when connecting to busy server.
      mshtml: Inherit document mode from parent document.
      mshtml: Correctly handle VT_EMPTY in set_event_handler_disp in standard compliant mode.
      mshtml/tests: Run events tests in IE9 mode.

Józef Kucia (3):
      xinput1_1: Avoid DLL forwarding.
      xinput1_2: Avoid DLL forwarding.
      xinput1_4: Avoid DLL forwarding.

Martin Payne (1):
      user.exe16: Support Windows 2 menus.

Matteo Bruni (8):
      wined3d: Don't claim SYSMEM location to be current if memory was evicted.
      wined3d: Consider all the system memory locations when choosing the surface upload path.
      wined3d: Always initialize fx field in struct wined3d_cs_blt_sub_resource (Valgrind).
      wined3d: Add ARB_texture_filter_anisotropic extension.
      wined3d: Accept creation flags for 3D textures.
      d3d9/tests: Properly check for mipmap autogeneration support.
      d3d9/tests: Add a test for nonrenderable format D3DUSAGE_AUTOGENMIPMAP support.
      wined3d: Advertise AUTOGENMIPMAP only for renderable and filterable formats.

Michael Müller (2):
      xinput9_1_0: Avoid DLL forwarding.
      ntdll: Fix parameters of RtlIpv4StringToAddressExW.

Michael Stefaniuc (6):
      kernel32: Remove redundant attributes check.
      msi: Remove redundant NULL checks before msi_free().
      gdiplus: Remove a wrapper around GdipFree().
      fonts: Fix the character count in some fonts.
      tools/sfnt2fon: Just skip all glyphs below 0x20.
      fonts: Increase the Em size to fix a build failure with freetype 2.8.1.

Nikolay Sivov (38):
      d3d9/tests: Test for GetDC()-capable backbuffer created with D3DFMT_UNKNOWN format.
      shell32: Implement Parent() property for ShellDispatch objects.
      shell32: Added remaining Application() properties.
      d2d1: Improve figure bounds updating for quadratic beziers.
      gdiplus: Implement playback for EmfPlusRecordTypeSetPixelOffsetMode.
      gdiplus: Implement playback for EmfPlusRecordTypeSetCompositingQuality.
      gdiplus: Implement playback for EmfPlusRecordTypeSetInterpolationMode.
      d3d9/tests: Some tests for D3DPRESENTFLAG_LOCKABLE_BACKBUFFER mode.
      shell32: Implement Title property using shellfolder API.
      dwrite: Added IDWriteFontFallbackBuilder stub.
      dwrite: Added custom IDWriteFontFallback stub.
      dwrite/tests: Fix fallback builder test skip.
      dwrite: Add warning message for unsupported interfaces.
      dwrite: Implement AddMapping().
      propsys: Fix negative numeric source handling in PropVariantToBoolean().
      dwrite: Use single per-process local file loader.
      include: Added stgprop.h.
      shell32: Partially implement MapColumnToSCID().
      msvcr120: Added vsscanf() and vswscanf().
      shell32: Use regular helper to trace IID, downgrade QI failures to warnings.
      gdi32: Remove runtime check for FT_Set_Charmap().
      gdi32: Pick first charmap if none was selected using preferred encoding.
      shell32: Use shellfolder API to construct FolderItems.
      shell32: Store simple full path for FolderItem.
      shell32: Implement FolderItem attributes properties.
      shell32: Silence fixme for tested case.
      shell32: System shellfolders don't implement GetDefaultColumn().
      shell32: System shellfolders don't support GetDefaultSearchGUID() in recent versions.
      shell32: Implement ParseName() using shellfolder API.
      shell32: Fix IEnumIDList::Next() called for multiple items.
      shell32: Simplify Verbs() method.
      shell32: Implement FolderItem::Name() property getter.
      shell32: Get rid of original variant used to create a Folder.
      shell32: Stop using fixed size buffers for display names.
      shell32: Added missing arguments to trace messages.
      shell32: PickIconDlg() is documented now.
      include: Added IWinInetHttpTimeouts definition.
      msxml3/httpreq: Added ISupportErrorInfo stub.

Stefan Dösinger (2):
      include: CHOOSECOLOR.lCustData is an LPARAM.
      ntdll: Do not queue a completion status if pipe ops fail synchronously.

Vincent Povirk (5):
      shell32: Support SFGAO_LINK in unix shell namespace.
      shell32: IShellLink::GetPath returns S_FALSE if there's no path.
      shell32: Set shelllink path when setting pidl.
      shell32/tests: Setting a PIDL with no path resets the path.
      shell32: Add support for find data in IShellLink:GetPath.

Zebediah Figura (11):
      msi: Don't execute a deferred custom action when not running the install script.
      ieframe: Add stub implementation of InternetExplorerManager.
      msi/tests: Factor out success checks into table building functions.
      msi/tests: Move a test from format.c to package.c.
      msi: Remove a superfluous substructure.
      msi: Store the current script in the package.
      msi: Add a missing UI message in the ExecuteAction action.
      msi/tests: Add a helper to delete an installed package.
      include: Update BrowserNavConstants enum for Win10.
      shlwapi: URL schemes may contain hyphen, plus, or period.
      mshtml: Don't query for an INewWindowManager if the client site is NULL.

--
Alexandre Julliard
julliard@winehq.org
