The Wine development release 1.5.17 is now available.

What's new in this release (see below for details):
  - Sub-pixel font anti-aliasing in the DIB engine.
  - Support for automatic installation of ActiveX controls.
  - Automatic fallback to TLS 1.0 for secure connections.
  - Beginnings of the DirectWrite text analyzer.
  - Better handling of font outlines in OpenGL.
  - Various bug fixes.

The source is available from the following locations:

  http://prdownloads.sourceforge.net/wine/wine-1.5.17.tar.bz2
  http://mirrors.ibiblio.org/wine/source/1.5/wine-1.5.17.tar.bz2

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 1.5.17 (total 53):

  12651  Bad sound quality in Starcraft when running with hardware acceleration
  13465  Overlord: adding native d3dx9_36.dll results in a crash
  15256  Disabling OpenGL output in WinUAE causes crash, possibly in x11drv_main
  15973  Encoding/escaping issues in some foreign chm files
  18083  Metatrader: doesn't respect charts sorting/sequency when restarted
  19100  Age of Wonders Shadow Magic: Game doesn't launch!
  20755  Minor display problems in Mafia
  21226  MetaEditor has black rows in the text editor.
  21694  MotorM4X fails to run
  22034  EXIT_ON_ERROR should use ERR instead of WARN in winealsa.drv
  22065  HeadOverHeels crashes
  22308  Downloadable content is unauthorized and disabled when logged in to Dragon Age: Origins server
  22350  package Mono so it can be included in a default Wine install
  22696  RCT2 crashes when changing screen resolution
  23837  The Spirit Engine 2 crashes on startup when using ALSA hardware driver backend (ALSA hw emu and OSS hw/sw emu work)
  24453  Snes9x 1.52 runs very slowly with DirectDraw.
  24557  winmm/msacm: Improper shutdown sequence
  24639  James Cameron's Avatar: The Game demo - no sound without hardware acceleration = emulation
  24873  LTSPICE crashes some seconds after running a simulation
  25060  Microsoft .NET Framework 3.5 installer does not complete
  25385  The UnderGarden Demo won't run without winetricks d3dx9_36
  26877  Cannot save games in Sim City 3000 Unlimited
  27056  WebcamMax: Crash at installation
  27741  Imbricated for loops parameters not expanded correctly
  27813  Windows 7 msacm32 needs CompareStringOrdinal
  28422  scanf family of functions provides only 7 digits of precision for converting doubles and long doubles
  28477  Pollux Ride : Unhandled exception: unimplemented function msvcp80.dll.??0?$basic_fstream@DU?$char_traits@D@std@@@std@@Q
  28871  MT5 installs  but window doesn't respond
  29147  Metatrader freezes when an expert advisor is loaded
  29250  Blurry fonts antialiasing in Word 2007/2010
  29452  msi installer doesn't show open dialog
  29513  win2flash crashes on start with segfault
  30100  LT Spice freezes
  30206  Doom Builder 2: fails to initialize graphics when opening a map
  30241  Heroes IV Crash in 16:9 resolution
  30598  Evernote can't connect to server
  30762  msxml3/domdoc tests flaky
  30806  Console2: fails to start
  30908  SlingPlayer 2 crashes when connecting through a proxy
  30947  Tropico 4: crashes on startup
  31473  AirMech installer does not start up
  31982  Black shadow flash in a moment after right clicking on the main window of Thunder
  31995  Artweaver Free v3.1 fails to start without native crypt32.dll
  32039  Ankh hangs on start with built-in msvcp71
  32052  Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) Release A installer creates incorrect registry entry
  32066  Right click menu of QQ2012 system tray flushes and disappears
  32080  Installation of CorelDRAW 12 fails
  32081  Civilization V fails to start a game without native d3dx9_36 (crashes in d3dx9_36/math.c)
  32117  Genesis Rising crashes on start
  32118  Invoke() is broken for IFileSystem
  32122  msi: crash running tests for MSI products patching
  32156  .Net 3.0 (dotnet30) installer fails
  32165  .NET installer does not set file dates

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

Changes since 1.5.16:

Alexandre Julliard (36):
      user32: Don't flush window surfaces while waiting for a sent message reply.
      winex11: Delay mapping a layered window until its attributes are set.
      ntdll: Avoid using Low/HighPart of a large integer when not necessary.
      ntdll: Add a helper function to set file times.
      ntdll: Remove futimes implementation from libport, it's only needed in ntdll.
      gdi32: Avoid some redundant registry calls while loading the font cache.
      gdi32: Store the font file name in Unicode in the font cache.
      gdi32: Store the fontconfig anti-aliasing flags for each font.
      gdi32: Add a parameter to return anti-aliasing flags in the SelectFont driver entry point.
      gdi32: Store the anti-aliasing flags in the DC when selecting a font.
      gdi32: Disable anti-aliasing when necessary in the various drivers.
      gdi32: Move checking of the subpixel support and gasp flags to freetype.c.
      gdi32: Set the font anti-aliasing flags from the fontconfig information if available.
      urlmon: Add po file support for resource translation.
      gdi32: Determine the default anti-aliasing parameters in the null driver SelectFont entry point.
      winex11: Use the default anti-aliasing parameters from gdi32.
      winex11: Store the anti-aliasing flags in the device instead of the font cache.
      include: Add format definitions for wglUseFontOutlines.
      gdi32: Get rid of the non-standard flags in GetRasterizerCaps.
      gdi32: Use the fontconfig anti-aliasing setup even for non-fontconfig fonts.
      gdi32: Avoid opening the desktop registry key multiple times.
      gdi32: Take into account the FontSmoothing key for anti-aliasing.
      user32: Force refreshing the non-client area when the window surface is changed.
      opengl32: Update to the current OpenGL spec.
      opengl32: Generate our own wgl.h header from the OpenGL registry data.
      opengl32: Avoid using the system GL headers.
      gdi32: Avoid using the system GL headers.
      winex11: Avoid using the system GL headers.
      wined3d: Make use of the generated wgl.h header.
      opengl32: Don't substitute OpenGL types that are already defined in wgl.h.
      ntdll: Fix access/write file time mixup.
      configure: Check for getopt_long_only instead of getopt_long.
      configure: Remove checks for OpenGL headers that are no longer used.
      wined3d: Link directly to opengl32.
      opengl32: Get rid of the extension removal hack in wglGetProcAddress and clean up the tracing.
      opengl32: Get rid of wine_ prefix on generated functions.

Alistair Leslie-Hughes (1):
      iads.idl: Add missing interfaces.

Andrew Eikum (1):
      oleaut32: helpcontext is not an offset.

André Hentschel (33):
      dplayx/tests: Add missing GetPlayerName test.
      fusion: Reorder some code to avoid memory leak (coverity).
      gdi32: Avoid memory leaks (coverity).
      ieframe: Avoid memory leak (coverity).
      oleaut32: Don't leak SafeArray (coverity).
      ole32: Don't leak memory allocated by enumx_allocate (coverity).
      rpcrt4: Reorder code to make sure RpcBindingFromStringBinding[AW] cleans up (coverity).
      shell32: Reorder code to avoid memory leaks (coverity).
      urlmon: Avoid memory leaks (coverity).
      msxml3: Avoid memory leak (coverity).
      ole32: Don't leak memory allocated by FileMonikerImpl_DecomposePath (coverity).
      oleaut32: Don't leak memory allocated by heap_alloc_zero (coverity).
      setupapi: Avoid memory leaks (coverity).
      ole32: Don't leak memory allocated by ProgIDFromCLSID (coverity).
      dplayx: Reorder some code to avoid memory leak (coverity).
      comdlg32: Fix usage of constants.
      user32: Avoid memory leaks (coverity).
      usp10: Avoid memory leak in ScriptTextOut (coverity).
      wineps: Avoid memory leaks (coverity).
      winex11: Avoid memory leaks (coverity).
      wininet: Fix WININET_SetAuthorization on error path (coverity).
      vbscript: Avoid memory leak in compile_select_statement (coverity).
      winspool: Avoid memory leaks (coverity).
      winex11: Avoid memory leaks (coverity).
      riched20: Remove duplicate operand in expression (coverity).
      urlmon: Fix copy and paste error (coverity).
      d3dx9_36: Return on error (coverity).
      dmloader: Fix sizeof statement (coverity).
      d3dx9_36: D3DXCreateFontIndirectW seems no longer to be a stub.
      start: Fix mask for creation flags (coverity).
      winmm: Mark up fallthrough switch case (coverity).
      winhlp32: Mark up fallthrough switch case (coverity).
      xcopy: Fix indentation of a break (coverity).

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

Christian Costa (8):
      d3drm: Init vertices before creating group.
      d3drm: Move mesh builder data cleaning code into a separate function.
      kernel32: Implement CompareStringOrdinal.
      dmusic: Dump port params only once.
      dmusic: Display new ref in AddRef and Release.
      dmusic: Remove unused variables.
      dmusic: Init port caps dwSize member before calling GetPortCaps.
      d3dxof/tests: Pass level by value in process_data rather than a pointer.

Daniel Lehman (11):
      msvcp90: Set eof state in istream<>::peek if got eof.
      msvcp: Sync istream<>::peek implementations.
      msvcp90: Update fpos<>::off instead of pos in stringbuf<>::seekoff.
      msvcp90: Fix usage of fpos<>::off vs fpos<>::pos.
      msvcp90: In istream<>::tellg don't use sentry.
      msvcp: Sync fpos usage and istream<>::tellg.
      msvcrt: Return value from MSVCRT____mb_cur_max_func instead of pointer.
      msvcp90: Use streambuf sgetc/snextc in std::getline(istream<> &).
      msvcp: Sync std::getline(istream<> &) implementations.
      shell32: Initialize fAnyOperationsAborted in SHFileOperation.
      msvcp90/tests: Add fstream<>::tellg tests.

Detlef Riekenberg (6):
      winhttp: Accept WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH as session option.
      schtasks: Add a stub schtasks.exe.
      mstask: Implement GetTargetComputer.
      mstask/tests: Add tests for GetTargetComputer.
      mstask: Implement SetTargetComputer.
      mstask/tests: Add tests for SetTargetComputer.

Dmitry Timoshkov (4):
      gdiplus: Add support for extra transformation in GdipMeasureDriverString and GdipDrawDriverString.
      gdiplus: Allocate a copy of the graphics transformation matrix on the stack instead of cloning it.
      gdiplus: Avoid GdipCloneMatrix calls for the graphics transformation matrix.
      gdiplus: Store transformation matrix directly in the objects.

Erich Hoover (1):
      ntdll: Implement nanosecond precision file time storage.

Francois Gouget (7):
      services: Fix compilation on systems that don't support nameless unions.
      cmd: Make WCMD_forf_getinputhandle() static.
      winemenubuilder: Use the same icon name on Mac OS X as on Unix.
      winemenubuilder: Return the icon identifier instead of the full path on Mac OS X too.
      kernel32/tests: Make test_CompareStringOrdinal() static.
      msvcp71: Remove an unused VTBL wrapper.
      Assorted spelling fixes.

Frédéric Delanoy (14):
      ws2_32/tests: Remove dead code (coverity).
      crypt32: Avoid double free in CRYPT_LoadSIP on error path (coverity).
      gdiplus/tests: Cleanup resources on error path in test_font_height_scaling (coverity).
      po: Update French translation.
      cmd: Avoid handle leaks (coverity).
      rpcrt4: Fix resources leaks.
      cmd: Fix some leaks (coverity).
      msvfw32: Fix a leak (coverity).
      msi: Fix a leak (coverity).
      cmd/tests: Simplify 'if' comparison tests.
      iphlapi: Fix some leaks (coverity).
      msi: Fix some leaks (coverity).
      d3drm: Fix a leak (coverity).
      ole32: Fix some leaks (coverity).

Hans Leidekker (28):
      comctl32: Use the dialog template caption as default propsheet title.
      msi: Add a test for embedded nulls in string property values.
      msi: Add more tests for embedded nulls in string property values.
      msi: Add support for storing strings with embedded nulls in the string table.
      msi: Store string length in the record structure.
      msi: Get rid of MSI_RecordSetStringA.
      msi: Preserve strings with embedded nulls in the record implementation.
      msi: Preserve strings with embedded nulls when copying from the string table to a record.
      msi: Preserve strings with embedded nulls when copying from a record to the string table.
      msi: Add a length parameter to msi_set_property and use it where appropriate.
      msi: Return length instead of size from deformat_string.
      msi: Don't create a copy of deferred custom action data.
      msi: Add a length parameter to msi_strcpy_to_awstring and use it where appropriate.
      msi: Pass string length to msi_set_property in ACTION_CustomAction.
      winhttp: Fix the error returned from WinHttpGetProxyForUrl when autodetection fails.
      wbemprox: Avoid a crash when serializing object text.
      msi: Return length for the empty string in msi_string_lookup.
      msi: Fix handling of strings with embedded nulls in msi_addstring.
      msi: Preserve strings with embedded nulls in the record formatting implementation.
      msi: Fix handling of REG_MULTI_SZ values in the WriteRegistryValues action.
      msi: Avoid a crash when target paths have not yet been resolved.
      msi: Return correct length for the empty string from deformat_string.
      msi: Remove a component regardless of its install state, unless it's a permanent component.
      msi: Make sure either the REINSTALL or the REMOVE property is set when the product is already installed.
      msi: Register dlls in a separate process.
      xpssvcs: Add stub dll.
      msi: Fix use of uninitialized variables.
      msi: Avoid a string copy when comparing SQL keywords.

Henri Verbeet (33):
      d3dx9: Avoid LPDIRECT3DSURFACE9.
      d3dx9: Avoid LPDIRECT3DVOLUME9.
      d3dx9: Avoid LPDIRECT3DDEVICE9.
      dxdiagn: Avoid depending on ddraw.h.
      wined3d: Don't depend on device internals in fragment_pipeline.alloc_private().
      d3d9/tests: Avoid LPDIRECT3DTEXTURE9.
      d3d9/tests: Avoid LPDIRECT3DVERTEXBUFFER9.
      d3d9/tests: Avoid LPDIRECT3DSURFACE9.
      mmdevapi: Avoid a couple of dependencies on ddraw.h.
      ddraw: Avoid LPDIRECTDRAWSURFACE7.
      ddraw: Avoid LPDIRECTDRAWSURFACE4.
      wined3d: Simplify shader selection.
      wined3d: Enable or disable the fragment pipe in shader_select().
      ddraw: Avoid LPDIRECTDRAWSURFACE3.
      ddraw: Avoid LPDIRECTDRAWSURFACE2.
      ddraw: Avoid LPDIRECTDRAWSURFACE.
      wined3d: Use the shader object ids as program key.
      wined3d: Introduce a separate structure for the vs specific fields in struct glsl_shader_prog_link.
      ddraw: Avoid LPDIRECTDRAWPALETTE.
      ddraw: Avoid LPDIRECTDRAWCLIPPER.
      ddraw/tests: Avoid LPDIRECTDRAW7.
      wined3d: Introduce a separate structure for the ps specific fields in struct glsl_shader_prog_link.
      wined3d: Use more consistent names for the various bumpenv uniforms.
      ddraw: Avoid LPDIRECTDRAW.
      ddraw: Avoid LPDIRECT3DVERTEXBUFFER7.
      wined3d: Use the correct RGTC constant in format_texture_info.
      wined3d: Introduce a separate function for initializing vs uniform locations.
      wined3d: Introduce a separate function for initializing ps uniform locations.
      ddraw: Avoid LPDIRECT3DVERTEXBUFFER.
      ddraw: Avoid LPDIRECT3DEXECUTEBUFFER.
      ddraw: Avoid LPDIRECT3DTEXTURE2.
      wined3d: Introduce a separate function for generating the fixed function fog GLSL code.
      wined3d: Introduce a separate function for generating the sRGB write GLSL code.

Hiroshi Miura (1):
      wininet: Add a TLS fallback mechanism.

Huw Davies (2):
      gdi32: Implement sub-pixel glyph smoothing.
      vbscript: The first day of the week should default to Sunday, not the system default.

Hwang YunSong (2):
      po: Update Korean translation.
      po: Update Korean translation.

Jacek Caban (34):
      urlmon.idl: Moved CopyBindInfo declaration to public header.
      urlmon.idl: Added ICodeInstall declaration.
      vbscript: Added support for negative constants.
      vbscript: Print more informative FIXME when parser fails.
      d3dx9mesh.h: Fixed D3DXConvertMeshSubsetToStrips declaration.
      vbscript: Added support for more builtin constants.
      jscript: Fixed some leaks (coverity).
      advpack: Added ExtractFilesW implementation.
      urlmon.idl: Added AsyncInstallDistributionUnit declaration.
      widl: Define PROXY_DELEGATION in dlldata.c when needed.
      explorerframe: Moved TaskbarList implementation to explorerframe.
      cabinet: Improved debug traces.
      wininet: Write received data to cache before notifying progress.
      wininet: Commit cache file as soon as all data is written.
      urlmon: Moved extracting callback from IBindCtx to separated function.
      urlmon: Added AsyncInstallDistributionUnit implementation.
      mshtml: Try to install ActiveX if it's not registered.
      jscript: Use prop_put in jsdisp_propput_dontenum.
      jscript: Create non-enumerable properties in jsdisp_propput_const.
      jscript: Use jsdisp_propput_dontenum where appropriate.
      jscript: Added propertyIsEnumerable implementation.
      jscript: Added more enumerable attribute tests.
      mshtml: Don't call CP event sinks on detached documents.
      mshtml: Keep reference to document node in fire_event_obj.
      mshtml: Ignore one more property change notification to fix some IE installations.
      widl: Ignore -app_config option.
      mshtml: Added IHTMLObjectElement::name property implementation.
      mshtml: Don't pass hash part of URI to EvaluateNewWindow.
      mshtml: Call set_current_uri in navigate_proc.
      mshtml: Use fregment-less URI in super_navigate.
      mshtml: Added IPersistHistory::SaveHistory implementation.
      mshtml: Use flags in navigation functions.
      mshtml: Added IPersistStream::LoadHistory implementation.
      jscript: Fixed leak in disp_propget.

Jason Edmeades (7):
      cmd: Don't overflow parameter length when copying substring.
      attrib: Support relative paths as args.
      attrib: Add support for attrib /s.
      attrib: Add attrib /d support.
      cmd: Fix for loops within for loops.
      xcopy: Fix resource leak (coverity).
      attrib: Remove redundant code.

Juan Lang (2):
      rsaenh: Ensure a PKCS1 data block has at least minimum length.
      Revert "crypt32: Correct CryptVerifyMessageSignature's use of pcbDecoded.".

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

Józef Kucia (8):
      d3dx9: Rename copy_simple_data to convert_argb_pixels.
      d3dx9: Rename point_filter_simple_data to point_filter_argb_pixels.
      d3dx9: Introduce a function for copying pixels.
      d3dx9: A simple copy isn't enough when a color key is provided.
      d3dx9: Correct the FIXME message in ID3DXFont::GetGlyphData.
      d3dx9: Handle NULL viewport in D3DXVec3Unproject.
      d3dx9: Handle NULL arguments in D3DXVec3Project.
      d3dx9: Handle NULL arguments in D3DXVec3Unproject.

Jörg Höhle (6):
      winmm: Turn some MCI parser ERR into FIXME.
      winealsa: Fix capture overrun logging.
      ntdll: Do not execute callbacks past DeleteTimer(INVALID_HANDLE_VALUE).
      winmm: Prefer using MMSYSERR_* over AUDCLNT_E_* from mmdevapi.
      winmm: Avoid generic MMSYSERR_ERROR during initialisation.
      winmm: Call IsFormatSupported for WAVE_FORMAT_QUERY only.

Ken Thomases (1):
      opengl32: Don't lose __wine_set_pixel_format() declaration during make_opengl.

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

Maarten Lankhorst (1):
      ws2_32: Define IP_UNICAST_IF if not found on linux.

Marcus Meissner (1):
      dsound: HeapFree secondaries (Coverity).

Matteo Bruni (6):
      wined3d: Ensure GL_FRAGMENT_PROGRAM_ARB is enabled when using ARB shaders.
      wined3d: Pop control frames in disabled if branches (ARB shader backend).
      d3dcompiler: Don't take the sign as part of the numeric token.
      d3dcompiler: Allow a comma at the end of an initializer.
      d3dcompiler: Skip stray semicolons outside of functions.
      d3dcompiler: Put data type name of constants on the heap.

Michael Stefaniuc (8):
      user32/test: Don't over-allocate memory for DDEDATA.
      ole32/tests: Fix a memleak on an error path (Smatch).
      usp10: Use FIELD_OFFSET to calculate the size of a struct with variable length array.
      user32: Avoid sizeof on structs with variable length array.
      localspl: Avoid using sizeof on structs with variable length array.
      gdi.exe16: Use FIELD_OFFSET to calculate the size of structs with variable length array.
      itss: Use FIELD_OFFSET to calculate the size of a struct with variable length array.
      msi: Use FIELD_OFFSET to calculate the size of structs with variable length array.

Nikolay Sivov (12):
      dwrite: Added initial test code for text analyzer tests.
      dwrite: Added a stub for IDWriteTextAnalyzer.
      dwrite: Implement initial script itemization for AnalyzeScript().
      dwrite: Support itemization up to codepoint 0x2ff (Latin range).
      dwrite: Support for Greek and Cyrillic ranges.
      dwrite: Support for Armenian, Hebrew and complete Arabic ranges.
      dwrite: Support nine more script ranges up to code point 0x0bff.
      msxml3: Fix indexed access to schema collection namespace uris.
      dwrite: Support more script ranges, up to Mongolian.
      scrrun: Invoke() takes interface pointer, not a pointer to pointer.
      scrrun: Added a stub for IFolder interface.
      dwrite: Support eight more script ranges.

Nozomi Kodama (1):
      d3dx9_36: Add tests for D3DXSHRotateZ.

Piotr Caban (18):
      msvcrt: Fixed %Lf format handling in scanf.
      msvcrt: Improved parsing precision of doubles in scanf.
      comctl32: Don't update rebar layout if it doesn't change in REBAR_HandleUDDrag.
      comctl32: Fixed RBBS_BREAK flag unsetting in REBAR_HandleUDDrag.
      msvcp71: Ignore prot argument in Fiopen_wchar function.
      msvcp71: Fixed basic_streambuf<wchar> vtable.
      msvcrt: Allocate buffer in fwrite function.
      msvcp90: Fixed incorrect sentry object usage.
      msvcp90: Use critical sections in mutex object.
      msvcrt: Improved scanf precision.
      msvcrt: Improved _atoflt_l precision.
      msvcrt: Improved _wcstod_l precision.
      msvcrt: Improved strtod_l precision.
      msvcrt: Fixed __p___mb_cur_max tests.
      msvcp90: Fixed long long printing in tests.
      msvcp90: Destroy string returned by basic_stringbuf_char_str_get.
      msvcp: Fixed uninitialized variable access in num_get::_Getffld and _Getifld functions.
      msvcp60: Fixed basic_streambuf class structure.

Rafał Mużyło (2):
      gdiplus: Fix logic of treating the region of a string as unclipped.
      gdiplus: Mark regions as unclipped correctly.

Sam Edwards (6):
      opengl32: Fix outline-font glyphs rendering with incorrect front faces.
      opengl32: Implement wglUseFontOutlines curve smoothing.
      d3d9/tests: Add test for IDirect3DDevice9_Reset with BackBufferWidth/Height = 0.
      opengl32: Implement the wglUseFontOutlines WGL_FONT_LINES format.
      d3d8/tests: Add test for IDirect3DDevice8_Reset with BackBufferWidth/Height = 0.
      opengl32: Apply correct normals to text rendered with wglUseFontOutlines.

Tatyana Fokina (1):
      ole32: Removed unused parametrs keyname and valuename in COM_RegReadPath.

Vincent Povirk (4):
      gdiplus: Add tests for drawing recorded metafiles.
      gdiplus: Implement drawing metafiles with an emf handle.
      gdiplus: Implement GdipCloneImage for metafiles with a handle.
      gdiplus: Reimplement GdipCreateMetafileFromEmf without using IPicture.

--
Alexandre Julliard
julliard@winehq.org
