Wine Announcement

The Wine development release 1.5.23 is now available.

What's new in this release (see below for details):
  - HTTPS support no longer dependent on OpenSSL.
  - Support for event handling in the Mac driver.
  - A functional Netstat built-in application.
  - A bunch of C++ runtime math functions.
  - 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.23 (total 57):

   7710  QueryPerformanceCounter should be independent of system time
   9952  Sketch Studio shows corrupt cursor
  13417  FlashFXP - No mouse support systemwide if window is open
  16476  Turok crashes when starting a game
  16689  winefile: array size is smaller than minimum required
  17226  SimTower crashes on dereferencing 0xffffffff on attempting to save in SimTower
  17990  Battleships forever video is offset
  19773  Largo Winch: mostly black screen
  19796  Galactic Civilizations II: Crash after menu screen
  19799  Native cscript crashes if you call WScript.Arguments(0).  Breaks Chromium build setup.
  20889  In Quake 3 Arena Main Menu one mouse click is taken as two
  21119  realMYST v1.1.1 [ENGLISH] No-CD/Vista Fixed EXE: Page fault and debug err
  21943  GetCharABCWidthsI does not return correct widths when handling a DC with dc->gdiFont == null
  22812  mt creates corrupted executables
  23121  Iometer 2006.07.27 displays error messages on start (dogfood)
  23215  4x4 Evo 2: Pagefault on second launch of game
  23414  Text is italicized in Mozilla Firefox 3.6.6
  23501  ATEN KVM WinClient did not start
  25010  radmin fast search halfworking.
  25082  radmin: right mouse key drag'n'drop not working
  25222  Football Manager 2011 fails to load with 3d enabled
  25599  Editing Word 2000 drawing object does not work
  26530  Frogger: 3D models not rendering correctly/Only shadows
  27991  LsaLookupNames2 separate allocations break .NET 4.0 System.Security subsystem and leak returned buffer data
  28343  UFO: Extraterrestrials Gold - crash at start unless native d3dx9_26 (or d3dx_36) is used
  28530  Asami Sushi Shop hangs when switching to windowed mode
  28666  Spa Mania: Read from NULL when toggling fullscreen mode
  29822  winebuild should use Clang to assemble if Clang is used to compile
  29936  Java Quick Starter service chews CPU
  30119  ThunderMini crash after a while.
  30514  RonyaSoft Poster Designer (Poster Forge) 2.x installer crashes during installation of fonts due to unimplemented function gdi32.dll.GetFontResourceInfoW
  31280  Right-clicking a listview in a dotnet application doesn't open the context menu
  31343  Steam: Steam is significantly slower in 1.5.x
  32123  Outlook 2010 crashes in versions newer than 1.5.14
  32404  Ocean Dive demo launcher shows garbage when window loses focus
  32504  QQPCDetector.exe from installer of QQMusic 2012 beta2 crashes
  32564  Visual Studio 2010 (10.0) Express Edition needs atl100.dll.AtlAxDialogBoxW
  32706  No sound with foobar2000: Unknown error code (0x80070057)
  32718  Crash on call to SHELL32.dll.709 (SHGetSetFolderCustomSettings)
  32739  TDXW crashes when the window is resized
  32744  Batman: Arkham Asylum Demo "err:wbemprox:wql_error syntax error, unexpected $end, expecting TK_ID"
  32746  TurboTax 2012 installer fails
  32750  Batman: Arkham Asylum Demo wants wbemprox:class_object_GetPropertyQualifierSet
  32763  Regression in wbemprox - rFactor 2 launcher - Unhandled page fault
  32764  STEP7_Lite_V30_incl_SP4 installation crashed
  32776  Crashes in Legacy 5 resulting in its database being corrupted
  32779  RegOpenKeyExA fails on 64bit wine when build with lazarus (fpc 2.6 - 64bit)
  32788  Batman: Arkham Asylum Demo - GetObject gets an empty string
  32799  err:d3d:check_fbo_compat
  32806  Freight Tycoon crashes while loading to the menu (with built-in msvcr71)
  32807  installer of PPTV: needs unimplemented atl100.dll.AtlGetPerUserRegistration
  32812  Hard Truck Apocalypse crashes on start with built-in msvcp71
  32819  Max Payne 1 crashes when loading certain level
  32824  Dota 2 graphics missing without texture copy in check_fbo_compat()
  32840  Mouse input regression caused by changes in GetTickCount64
  32847  Microsoft Expression Design 4 (Free Version) installer needs windowscodecs IcoFrameDecode_GetThumbnail impl
  32853  Microsoft Expression Design 4 (Free Version) installer fails while trying to check for msi.dll file version (MsiGetFileVersion)


Changes since 1.5.22:

Alex Henrie (1):
      advapi32: Destination length -1 means no limit.

Alexandre Julliard (20):
      winapi: Add arm64 architecture.
      loader: Hardcode Linux syscall numbers.
      libwine: Hardcode Linux syscall numbers.
      ntdll: Use the __NR_ names for Linux system calls.
      server: Use the __NR_ names for Linux system calls.
      gdi32: Fix copy/paste typo in get_char_positions_indices.
      winex11: Store the client window in the window data again, now that it can be accessed from all threads.
      winex11: Handle Expose events on top-level client windows.
      rpcrt4: Fix wrap-around bug in tick count comparison.
      ole32: Fix wrap-around bug in tick count comparison.
      netapi32: Fix wrap-around bug in tick count comparison.
      wbemprox: Don't rely on GetTicksCount to determine boot time.
      advapi32/tests: Fix another test failure.
      ntdll: Use a monotonic time counter to implement NtQueryPerformanceCounter.
      ntdll: Add support for the monotonic time counter on Mac OS X.
      ntdll: Use the monotonic counter for NtGetTickCount.
      kernel32: Use the monotonic counter in GetTickCount64.
      kernel32: We no longer need the server start time in kernel32.
      urlmon/tests: Avoid infinite timeouts in tests.
      server: Use the monotonic time counter also on the server side.

Andrew Eikum (2):
      ieframe/tests: Don't convert to long path name until the file exists.
      wineoss.drv: Set reasonable defaults if driver reports invalid values.

Andrew Talbot (4):
      gdi32: Avoid signed-unsigned integer comparisons.
      gdiplus: Avoid signed-unsigned integer comparisons.
      hhctrl.ocx: Avoid signed-unsigned integer comparisons.
      gphoto2.ds: Avoid signed-unsigned integer comparisons.

André Hentschel (9):
      include: Fix __int64 definition for ARM64.
      include: Make sure interlocked_cmpxchg128 is defined on ARM64.
      ntdll: Implement IMAGE_REL_BASED_THUMB_MOV32 relocation on ARM.
      netstat: Implement the TCP stats output.
      netstat: Implement the UDP stats output.
      configure: Add ARM64 define.
      dbghelp: Implement rudimentary stack walk for ARM64.
      dbghelp: Remove useless code in ARM stack walk.
      include: Add remaining checks for ARM64.

Aric Stewart (7):
      usp10: Group the GDEF table loading with the other opentype tables.
      usp10: GPOS Mark to Base seeks back in the string to the first glyph that is not a mark for its base.
      usp10: Add locl and ccmp to Latin features.
      usp10: Only fall back to latin features if the base script tag is not found at all.
      usp10: Add ShapeCharGlyphProp_Latin to properly handle zero width character properties for Latin.
      usp10: Add ShapeCharGlyphProp and ContextualShape for Control characters.
      usp10: Do not apply SSA_LINK to right to left text.

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

Austin English (1):
      include: Flesh out d3d11.idl.

Charles Davis (1):
      winebuild: Use Clang to assemble if found.

Christian Costa (4):
      d3dx9_36: Fill children info into ID3DXFileData object.
      dmusic: Add support for loading articulations.
      d3dx9_36: Implement ID3DXFileData_GetChildren and ID3DXFileData_GetChild.
      d3dx9_36: Implement ID3DXFileDataImpl_IsReference.

Detlef Riekenberg (3):
      wininet: Fix a test failure on w2k.
      wininet: Remove most GetLastError tests for IsDomainLegalCookieDomainW.
      wininet: Don't depend on user settings.

Dmitry Timoshkov (4):
      gdiplus: Make GdipCreateFromHDC2 not fail in case of hDevice != NULL.
      dwrite: Avoid triggering an exception on DLL_PROCESS_DETACH.
      gdiplus: Avoid not necessary memory allocation for BITMAPINFO.
      windowscodecs: Implement GetThumbnail in the ICO frame decoder.

Erich Hoover (5):
      advapi32: Fix intermittent 64-bit test failure.
      advapi32: Support service objects in SetSecurityInfo.
      advapi32: Make an internal routine for [Get|Set]SecurityInfo file objects.
      advapi32: Support service objects in GetNamedSecurityInfo.
      advapi32: Support service objects in SetNamedSecurityInfo.

Francois Gouget (4):
      winmm/tests: Allow more margin in the test_asyncWAVE() playback check.
      wined3d: Make device_stream_info_from_declaration() static.
      wined3d: debug_{d3dbasis, d3ddegree}() are not used anymore so remove them.
      Assorted spelling fixes.

Frédéric Delanoy (1):
      po: Update French translation.

Gerald Pfeifer (1):
      winex11: Push down variable attrib down in create_gl_drawable.

Hans Leidekker (16):
      msi: Set the OriginalDatabase property after applying transforms, not before.
      msi: Execute concurrent installers in a separate process.
      msi: Remove const from integer parameters.
      wbemprox: Implement Win32_DiskDrive.DeviceId.
      wbemprox: Add a stub implementation of IWbemQualifierSet.
      wbemprox: Check the result count instead of the result pointer in get_propval.
      wbemprox: Implement IWbemQualifierSet::Get.
      wbemprox: Return an empty object if the path is NULL or empty.
      wbemprox: Don't fail if there are less objects than asked for in IEnumWbemClassObject::Next.
      wbemprox: Implement Win32_VideoController.PNPDeviceID.
      wbemprox: Build a PNP device ID that better matches the graphics card.
      msi: Avoid a crash in msi_dialog_handle_event.
      msi: Set _BrowseProperty to INSTALLDIR.
      msi: Don't fail if the directory already exists in MsiCreateAndVerifyInstallerDirectory.
      msi: Fix the return value of MsiGetFileVersion for some corner cases.
      msi: Improve parsing of the supported platforms string.

Henri Verbeet (30):
      wined3d: Get rid of the select_shader_mode() call in wined3d_get_device_caps().
      wined3d: Move "ffp_proj_control" to the fragment caps.
      wined3d: Move "vs_clipping" to the shader caps.
      d3drm: Avoid LPD3DRECT.
      d3drm: Avoid LPDDPIXELFORMAT.
      wined3d: Add sRGB writes to the shader backend and fragment pipe caps.
      wined3d: Properly set WINED3DFMT_FLAG_SRGB_WRITE in init_format_texture_info().
      wined3d: Get rid of CheckSrgbReadCapability().
      d3drm: Avoid LPD3DVALUE.
      d3drm: Avoid LPD3DVECTOR.
      wined3d: Get rid of select_shader_mode().
      wined3d: Properly set WINED3DFMT_FLAG_FILTERING in init_format_texture_info().
      wined3d: Get rid of CheckFilterCapability().
      d3drm: Avoid LPD3DRMQUATERNION.
      d3drm: Avoid LPD3DRMRAY.
      wined3d: Properly set WINED3DFMT_FLAG_VTF in init_format_texture_info().
      wined3d: Get rid of CheckPostPixelShaderBlendingCapability().
      wined3d: Get rid of CheckWrapAndMipCapability().
      d3drm: Avoid LPD3DRMBOX.
      d3drm: Avoid LPD3DRMRENDERQUALITY.
      wined3d: Support all fixups in shader_none_color_fixup_supported().
      wined3d: Replace "VertexShaderMode" and "PixelShaderMode" with shader model limits.
      wined3d: Get rid of a superfluous texture copy in check_fbo_compat().
      d3drm: Avoid LPD3DRMIMAGE.
      wined3d: Introduce a format flag for texturing.
      wined3d: Get rid of CheckTextureCapability().
      wined3d: Get rid of CheckBumpMapCapability().

Huw Davies (12):
      riched20: Avoid an unnecessary string duplication.
      wineps: Use a file mapping to read the ppd file.
      wineps: Cope with '\r'-only end-of-line markers.
      riched20: Simplify adding the undo items when joining paragraphs.
      riched20: Move undo handling to a different set of structs as the display item structs are not a good fit.
      riched20: Add a paragraph ptr to each run.
      riched20: Add a helper to debug the run text.
      riched20: Add a helper to retrieve the run text.
      riched20: Rewrite the run splittable test to take a run parameter.
      riched20: Rewrite the run whitespace test to take a run parameter.
      riched20: Use the get_text helper in a few more places.
      riched20: Add an explicit run length member and use it rather than accessing the string length.

Jacek Caban (41):
      secur32: Return a cert context with context store in SECPKG_ATTR_REMOTE_CERT_CONTEXT GnuTLS implementation.
      secur32: Return a cert context with context store in SECPKG_ATTR_REMOTE_CERT_CONTEXT MacOSX implementation.
      secur32: Added SECPKG_ATTR_REMOTE_CERT_CONTEXT tests.
      mshtml: Get rid of PTInt64 type.
      mshtml: Get rid of PRUint8 type.
      mshtml: Get rid of PRUint16 type.
      mshtml: Get rid of PRUint32 outside XPCOM C API.
      mshtml: Get rid of PRUint64 type.
      winhttp: Test that the data is really read in test_secure_connection.
      winhttp: Enable more OpenSSL-independent code when OpenSSL is not available.
      winhttp: Use schannel in netconn_secure_connect if OpenSSL is not available.
      winhttp: Added schannel-based netconn_recv implementation.
      winhttp: Added schannel-based netconn_send implementation.
      winhttp: Added schannel-based netconn_get_certificate implementation.
      winhttp: Added schannel-based netconn_get_cipher_strength implementation.
      winhttp: Use schannel for HTTPS connection by defaul and get rid of OpenSSL dependency.
      vbscript: Added GetObject implementation.
      vbscript: Added GetObject tests.
      ieframe/tests: Fixed a race in tests.
      d3dcompiler.h: Added D3DCOMPILER_DLL macro.
      atl100: Added AtlGetPerUserRegistration stub implementation.
      wininet: Moved WORKREQUEST allocation to INTERNET_AsyncCall callers.
      textstor.idl: Added TS_ATTR_FIND_* constants.
      wininet: Moved WORKREQ_FTPPUTFILEW out of WORKREQUEST.
      wininet: Moved WORKREQ_FTPGETFILEW out of WORKREQUEST.
      wininet: Get rid of WORKREQ* types.
      ieframe: Use int resource ID for toolbar image.

Jörg Höhle (1):
      winealsa: Have the MIDI recorder wait in poll(), not snd_seq_event_input().

Ken Thomases (14):
      winemac: Add a simple ERR() logging macro that can be used from Cocoa code.
      winemac: Add WineEventQueue class for conveying events from Cocoa to Wine threads.
      winemac: Associate an event queue with each thread that creates windows and with each window.
      winemac: Make each Mac driver window track the HWND it's associated with.
      winemac: Implement MsgWaitForMultipleObjectsEx and infrastructure for processing events.
      winemac: Implement a WINDOW_CLOSE_REQUESTED event to allow closing windows.
      winemac: Implement WINDOW_FRAME_CHANGED event to tell Wine when window is moved or resized.
      winemac: Add infrastructure to convert from Cocoa event time to Wine tick count.
      winemac: Implement a MOUSE_BUTTON event for mouse clicks.
      winemac: Take control over when a window can become focused away from Cocoa.
      winemac: Maintain a list of which windows have been "key" (focused) recently.
      winemac: Implement a WINDOW_GOT_FOCUS event for when Cocoa tries to focus a window.
      winemac: Implement a WINDOW_LOST_FOCUS event.
      winemac: Implement an APP_DEACTIVATED event.

Ludger Sprenker (6):
      windowscodecs: Add tests for IPropertyBag2.
      windowscodecs: Implement ComponentFactory::CreateEncoderPropertyBag.
      windowscodecs: Implement IPropertyBag2::CountProperties.
      windowscodecs: Implement IPropertyBag2::GetPropertyInfo.
      windowscodecs: Implement IPropertyBag2::Write.
      windowscodecs: Implement IPropertyBag2::Read.

Maarten Lankhorst (1):
      dbghelp: Add support for zlib compressed debug sections.

Marcus Meissner (3):
      dmusic: Actually return the allocated interface (Coverity).
      msvcrt: read_utf8: free readbuf on return (Coverity).
      kernel32: Conditional variable tests.

Matteo Bruni (1):
      wined3d: Rebind texture before checking for its content in check_fbo_compat().

Michael Stefaniuc (10):
      ws2_32: Use assignment instead of memcpy to copy structs.
      d3dx9_36/tests: Use assignment instead of memcpy to copy a struct.
      dinput: Use assignment instead of memcpy to copy a struct.
      msvcrt/tests: Use assignment instead of memcpy to copy structs.
      mscms: Use assignment instead of memcpy to copy structs.
      crypt32: Use assignment instead of memcpy to copy a struct.
      itss: Use assignment instead of memcpy to copy a struct.
      mscoree: Use assignment instead of memcpy to copy a struct.
      d3dcompiler_43: Use assignment instead of memcpy to copy structs.
      wined3d: Use assignment instead of memcpy to copy structs.

Nikolay Sivov (14):
      advapi32: Make it possible to free data buffer returned from LsaLookupSids().
      advapi32: Fix LsaLookupNames2() regarding referenced domain list allocation.
      xmllite: Add a name stack for elements.
      xmllite: Handle empty elements and transition to content/misc part, update depth on push.
      xmllite: Implement end tag parsing.
      xmllite: Complete content parsing with implemented parts and stubs.
      user32: Accept BI_BITFIELDS format for icons when creating icons.
      xmllite: Handle E_PENDING from stream for comment nodes.
      xmllite: Fail to set input for external IXmlReaderInput.
      comctl32/listview: Implement dragging with right button with a message loop.
      comctl32: Use NM_RCLICK return value to allow default processing.
      comctl32: Test WM_GETDLGCODE return value for TreeView.
      comctl32/listview: Fix item search with keyboard input.
      po: Use a shorter string for button.

Piotr Caban (26):
      vbscript: Fixed typo in vbsregexp55.idl.
      msvcp90: Added complex::real and complex::imag implementation.
      msvcp90: Added std::abs(complex) implementation.
      msvcp90: std::_Fabs(complex) tests.
      msvcp90: Added std::conj(complex) implementation.
      msvcp90: Added complex trigonometric functions implementation.
      msvcp90: Added std::tan(complex) tests.
      msvcp90: Added complex hyperbolic functions implementation.
      msvcp90: Added std::tanh(complex) tests.
      msvcp90: Added std::log(complex) and std::exp(complex) implementation.
      msvcp90: Added std::log10(complex) tests.
      msvcp90: Added std::norm(complex) and std::polar(complex) implementation.
      msvcp90: Added std::pow(complex) and std::sqrt(complex) implementation.
      msvcp90: Added std::sqrt(complex) tests.
      msvcp: Sync implementations.
      msvcrt: Ignore S and R flags in fopen.
      msvcrt: Added N flag support to fopen.
      msvcrt: Fixed setlocale tests on Win8.
      msvcrt: Fixed _Gettnames test on Win8.
      jscript: Fixed a leak in do_regexp_match_next function.
      jscript: Fixed a leak in regexp_match function.
      msvcp71: Fixed basic_filebuf class layout.
      jscript: Update buffer size in do_regexp_match_next.
      msvcrt: Don't call invalid parameter handler in str{n,i}cmp functions.
      msvcrt: Don't make stdout and stderr bufferred when writing to console.
      msvcrt: Use temporary buffers to speed up operations on stdout and stderr.

Putin Evgeny (1):
      cscript: Correct forming cmd for forwarding to wscript.

Rico Schüller (1):
      advapi32: Use the lower 32bit of the special HKEYs on 64bit.

Ričardas Barkauskas (3):
      advapi32: Add AddMandatoryAce stub.
      kernel32: Add SetFileInformationByHandle stub.
      advapi32: Partially implement CreateProcessWithTokenW.

Sergey Guralnik (3):
      user32/tests: Test standard scrollbar initialization.
      user32: Init standard scrollbars during WM_NCCREATE.
      winemenubuilder: Try to wait for creating icon files.

Stefan Dösinger (15):
      wined3d: Ignore clears if count = 0 and rects != NULL.
      ddraw: Implement DrawPrimitiveStrided with regular draws.
      ddraw: Implement DrawIndexedPrimitiveStrided with regular draws.
      d3d: Remove high level patch support.
      wined3d: Remove draw_primitive_strided.
      d3d8/tests: Add simple DrawRectPatch tests.
      d3d9/tests: Add simple DrawRectPatch tests.
      ddraw: device::GetCurrentViewport returns an error if no viewport is set.
      ddraw: Delete viewports when destroying the device.
      ddraw: Check for NULL pointers in DeleteViewport.
      ddraw: Check for NULL pointers in SetCurrentViewport.
      ddraw: AddViewport holds a reference to the viewport.
      ddraw: Unset the viewport if the current vp is deleted.
      ddraw: Don't check for NULL in GetCurrentViewport.
      ddraw/tests: Add viewport handling tests.

Stefan Leichter (1):
      gdi32: Add stub for GetFontResourceInfoW.

Alexandre Julliard
[email protected]