Wine Announcement

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:

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 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.
      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/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.
      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 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