The Wine development release 1.5.12 is now available.

What's new in this release (see below for details):
  - Support for disabling individual joysticks.
  - Better support for D3DX9 constant tables.
  - Some XRandR improvements.
  - Various bug fixes.

The source is available from the following locations:

  http://prdownloads.sourceforge.net/wine/wine-1.5.12.tar.bz2
  http://mirrors.ibiblio.org/wine/source/1.5/wine-1.5.12.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.12 (total 31):

  21159  "Rayman 2": Does not recognize user input
  21461  GrapherOC: problem with drawing dotted lines
  21472  GrapherOC: Incorrect drawing
  21473  GrapherOC: Never remember DB path
  22071  Adding a new Record after a Find fails.
  22562  Raisonance Ride7 + RKit-ARM crashes on startup
  23104  Pro evolution soccer 2010/2011 demo crashes without native d3dx9_36
  24422  Victoria 2 demo crashes on startup without native d3dx9_36
  25439  Guitar Pro 6 requires vcrun2005
  26113  gameux/gamestatistics shows a ton of valgrind warnings
  26205  Dragon Age 2 demo doesn't start
  29038  strftime in gvim is outputting strings in a wrong encoding
  29340  Multiple apps need msvcp100.dll.??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAI@Z (Cave Story+, Arda C&C Red Alert extension)
  29352  NightSky HD crashes on startup (msvcp100)
  30009  Pepakura Designer fails to start
  30088  Microsoft SQL Server 2005 Express Edition installer fails due to missing msvcp80.dll.??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z
  30168  GLSL does not work on ATI-based Macs
  30658  Rendering artifacts in Anarchy Online
  31017  Cave Story+ crashes with builtin msvcp90 (msvcp100)
  31021  Diablo III: Jumping pixels on enemies/NPC's
  31206  PDF Annotator can't load documents, complains "OLE error 80004001"
  31303  Netflix on Firefox hangs with loading bar at 0%
  31363  Intellicad Viewer needs msvcp71.dll.?_Init@strstreambuf@std@@IAEXHPAD0H@Z
  31482  VariantChangeTypeEx crashes when trying to convert VT_BSTR to VT_UI1|VT_ARRAY
  31490  Beyond Divinity: black screen during gameplay
  31501  Wine binaries have become substantially bigger in Wine 1.5.11
  31512  'Movavi video converter 3D' crashes in RegSetValueExW
  31521  Microsoft SQL Server Management Studio Express 2005: cannot control server service (Win32_Service WMI class needs StartMode and SystemName properties)
  31538  'And Yet It Moves' crashes when switching between windowed and fullscreen modes
  31550  Patrizier 2 Gold crashes in wined3d_device_set_render_target
  31551  Synthesia crashes when you click on play button in main menu, "elf_search_auxv can't find symbol in module" in console output

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

Changes since 1.5.11:

Alexandre Julliard (12):
      gdi32: Add a helper function to find a specific driver in the DC stack.
      gdi32: Allow removing a driver from the stack based on its function table.
      kernel32/tests: "en" is not a valid locale on some platforms.
      configure: Only enable -gdwarf-2 if -g was specified.
      opengl32: Generate null driver entry points for all extension functions.
      user32: ScrollWindow should not use a cached DC, unlike ScrollWindowEx.
      user32: Rely on SetWindowPos to invalidate the DCEs when the window region is changed.
      user32: Always go through set_window_pos when the WS_VISIBLE style is changed.
      user32: Invalidate the DCEs while still holding the window lock in SetWindowPos.
      winex11: Never attempt to create the window data from a different thread.
      winex11: Don't select for mouse events on the client window.
      winex11: Always paint to the whole window.

Alistair Leslie-Hughes (3):
      kernel32: Add GetCurrentConsoleFont stub.
      kernel32: Add GetConsoleFontSize stub.
      oleaut32: Add VT_BSTR to VT_UI2|VT_ARRAY test.

Andrew Eikum (1):
      winealsa.drv: Special-case copying common sample sizes in a tight loop.

André Hentschel (7):
      ntdll: Add support for Windows 8 version.
      ntdll: Catch bad pointers in RtlWow64EnableFsRedirectionEx.
      winedbg: Add load word operators to Thumb2 disassembler.
      po: Update German translation.
      winedbg: Add store operators to Thumb2 disassembler.
      winedbg: Add register data processing operators to Thumb2 disassembler.
      usbd.sys: Add partial USBD_ValidateConfigurationDescriptor implementation.

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

Austin English (1):
      readme: Wine no longer supports Mac OS X 10.4.

Dan Kegel (1):
      advapi32: RegSetValueExW should not crash when passed 1 instead of L"1".

Dmitry Timoshkov (25):
      windowscodecs: Do not assume that vtable is the first element of the object.
      gdi32: Make sure that pattern info is initialized before being used.
      gdiplus: If there is no hbitmap associated with GpBitmap then create one.
      gdiplus: Add a test for measuring string that doesn't fit into layout rectangle.
      gdiplus: Round the layout rectangle down instead of up in gdip_format_string().
      gdiplus: Return error code of the failed API to the caller.
      gdiplus: GdipGetImageThumbnail should return image in 32bppPARGB format.
      gdiplus: Add a test for extra space added by GdipMeasureString.
      gdiplus: StringFormatFlagsLineLimit doesn't allow line wrapping.
      gdiplus: Rename roundr() to gdip_round() to make it clearer that it's an internal helper.
      gdiplus: Use set_rect_empty() helper to make the code slightly more compact and readable.
      gdiplus: Add a bunch of tests for GdipMeasureCharacterRanges.
      gdiplus: GdipMeasureCharacterRanges shouldn't treat empty layout rectangle as infinite bounds.
      gdiplus: GdipMeasureCharacterRanges should respect device units and transformations.
      gdiplus: Clarify in the tests where 1/3 of extra text height comes from.
      gdiplus: Filter tabs out until they are properly supported using stringformat.
      gdiplus: Do not convert range_rect.X twice.
      gdiplus: Make GdipMeasureCharacterRanges use common font transformation code.
      gdiplus: Correct signature/mask info for the GIF codec.
      gdiplus/tests: Fix font leak.
      gdiplus: Fix font leak.
      gdiplus: get_log_fontW helper requires a valid graphics object.
      gdiplus: Make GdipMeasureCharacterRanges/GdipMeasureString/GdipDrawString add extra space around the text.
      gdiplus: Print some additional information about device and image being drawn.
      gdiplus: Add a test for scaling an image with world transform.

Erich Hoover (2):
      hhctrl.ocx: Create a special structure for holding non-const unicode strings.
      hhctrl.ocx: Implement HH_SET_WIN_TYPE.

Francois Gouget (12):
      dsound: Make dumpCooperativeLevel() static.
      msvcrt/tests: Add a trailing '\n' to a win_skip().
      msvcp100: VTBL_WRAPPER(60) is unused so remove it.
      dssenh/tests: add a trailing '\n' to a couple of ok() calls.
      po: A couple of British spelling fixes for the start usage message.
      po: Remove an unwanted trailing full stop in the Lithuanian translation.
      d3dx9_36: Add a trailing '\n' to a couple of Wine traces.
      xcopy: Fix spelling and slightly reword the usage message.
      po: A spelling fix in the French translation.
      msvcp100: Make some locale and string functions static.
      msvcp100: Remove some unused functions.
      usbd.sys: Add a trailing '\n' to a Wine trace.

Gerald Pfeifer (2):
      wininet: Fix initialization in test_cert_struct.
      dinput: Fix incorrect check in device_disabled_registry.

Henri Verbeet (4):
      winex11: Try XRandR 1.0 if 1.2 fails.
      winex11: Try harder to get usable RandR screen resources.
      wined3d: Use a slightly shorter timeout in wined3d_event_query_finish().
      wined3d: Also issue any queries for index buffers in drawPrimitive().

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

Jacek Caban (15):
      mshtml: Added IHTMLWindow6::get_sessionStorage implementation.
      oleaut32: Ensure that the right interface is passed to the callee in ITypeInfo::Invoke.
      oleaut32: Added more tests.
      d3d8: Use proper helpers for iface calls.
      ddraw: Use proper helpers for iface calls.
      dsound: Use proper helpers for iface calls.
      d3d9/tests: Use proper helpers for iface calls.
      windowscodecs/tests: Use proper helpers for iface calls.
      d3d10core: Use proper helpers for iface calls.
      Fixed remaining wrong iface call helpers.
      unknwn.idl: Don't use inline wrappers for IUnknown calls.
      Always define WIDL_C_INLINE_WRAPPERS.
      widl: Fail with error on an attempt to inherit interface from itself.
      mshtml: Added nsIDirectoryServiceProvider2 implementation.
      mshtml: Use nsIDirectoryServiceProvider2::GetFiles to provide Wine-specific plugin directory.

Jonas Wielicki (1):
      wined3d: Fix crash in wined3d_device_reset with gdi backend for directdraw.

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

Jérôme Gardou (1):
      opengl32/tests: Do not pass NULL attrib list to wglCreatePBufferARB.

Józef Kucia (7):
      d3dx9: ID3DXConstantTable::SetMatrix should set scalar constants.
      d3dx9: ID3DXConstantTable::SetVector shouldn't change the value of matrix constants.
      d3dx9: ID3DXConstantTable::SetFloat shouldn't change the value of matrix and vector constants.
      d3dx9: Implement ID3DXConstantTable::SetMatrixTransposeArray.
      d3dx9: Implement ID3DXConstantTable::SetMatrixTranspose.
      d3dx9: Implement ID3DXConstantTable::SetMatrixPointerArray.
      d3dx9: Implement ID3DXConstantTable::SetMatrixTransposePointerArray.

Lauri Kenttä (2):
      po: Update Finnish translation.
      joy.cpl: Make Enable/Disable buttons wider for translations.

Lucas Zawacki (10):
      dinput/tests: Test for keyboard GetCapabilities.
      dinput: Return a valid keyboard type in keyboard GetCapabilities.
      joy.cpl: Prevent crash on IDirectInputEffect_Release.
      dinput: Append driver name to dinput joysticks on Linux.
      dinput: Disable linuxinput or linux joysticks based on registry key.
      joy.cpl: Disable joysticks using joy.cpl.
      dinput8/tests: Added tests for saving and retrieving settings with SetActionMap.
      dinput: SetActionMap saving mappings.
      dinput8/tests: Test load actions when there's no pre-stored ones.
      dinput: BuildActionMap should not fail if mapping has no pre-stored settings.

Marcus Meissner (9):
      winecfg: Fixed use-after-free (Coverity).
      user32: Free the correct dce (Coverity).
      user32: Fixed two use-after-free (Coverity).
      quartz: Avoid linked list walk with free next (Coverity).
      qcap: Fixed a use after free in error path (Coverity).
      qcap: Fixed another use-after free (Coverity).
      joy.cpl: Avoid uninitialized variable usage (Coverity).
      hhctrl.ocx: Initialize ret on some error paths (Coverity).
      riched20: Fixed pointer to value out of scope (Coverity).

Marek Chmiel (3):
      dssenh/tests: Fixed failing block cipher mode tests on the DSSENH cryptographic service provider.
      dssenh/tests: Added signature tests on the DSSENH cryptographic service provider.
      dssenh/tests: Added key exchange tests for the DSSENH cryptographic service provider.

Matteo Bruni (3):
      wined3d: Fix blending test expected results.
      wined3d: Force ARB shader programs reselection on bool/int constant changes.
      wined3d: Use BOOL instead of char in shader_load_constants().

Michael Stefaniuc (10):
      qedit: COM cleanup for the IClassFactory iface.
      strmbase: COM cleanup for the IClassFactory iface.
      mlang: COM cleanup for the IClassFactory iface.
      amstream: COM cleanup for the IClassFactory iface.
      quartz: COM cleanup for the IClassFactory iface.
      dsound: Cleanup IKsPrivatePropertySetImpl_Create().
      dplayx: Avoid TRUE:FALSE conditional expressions.
      wineconsole: Avoid TRUE:FALSE conditional expressions.
      dsound: Move the capture structs declarations to the .c file.
      winetest: Remove an unused struct field.

Nikolay Sivov (26):
      amstream: Call interface methods properly.
      browseui: Call interface methods properly.
      comctl32: Call interface methods properly.
      gameux: Call interface methods properly.
      itss: Call interface methods properly.
      mciqtz: Call interface methods properly.
      mlang: Call interface methods properly.
      mscoree: Call interface methods properly.
      msctf: Call interface methods properly.
      mstask: Call interface methods properly.
      qcap: Call interface methods properly.
      winealsa: Fix variable types so pointer is not truncated on 64bit.
      winecoreaudio: Fix variable types so pointer is not truncated on 64bit.
      wineoss: Fix variable types so pointer is not truncated on 64bit.
      msdaps: Use proper method macro.
      quartz/tests: Use proper method macros.
      shell32/tests: Use proper method macros.
      wshom.ocx/tests: Use proper method macro.
      qmgr: Use proper method macros.
      riched20/tests: Use proper method macros.
      wmi: Implement StartMode property for service class.
      wmi: Implement SystemName property for service class.
      msxml3: Implement xmldecl-version property for a reader.
      dwrite: Added IDWriteFontFamily stub.
      kernel32: Handle neutral locale names better in GetLocaleInfoEx.
      xmllite: Store DTD processing mode in reader.

Piotr Caban (10):
      msvcp90: Fixed buffer allocation in basic_stringbuf<wchar> class.
      msvcrt: Fixed vector destructors implementation on 64-bit systems.
      msvcrt/tests: Execute c++ related tests on 64-bit systems.
      user32: Don't limit time needed for WM_DDE_INITIATE processing.
      msvcp100: Removed virtual function callers for functions that are not virtual.
      msvcp80: Forward basic_string::erase functions to msvcp90.
      msvcp80: Fixed basic_string::rbegin and basic_string::rend implementation.
      comctl32: Remove property sheet page that can't be initialized.
      wbemprox: Added MaxClockSpeed and NumberOfLogicalProcessors builtin properties.
      dxdiagn: Initialize ProcessorEnglish property.

Rico Schüller (34):
      d3dx9: Return NULL if name is not given.
      d3dx9: Improve check for empty braces for elements.
      d3dx9: Make annotation handling more generic for techniques and passes.
      d3dx9: Silence missing function handling in the effect interface.
      d3dx9: Use a separate function for the technique name.
      d3dx9: Move technique name handling to technique handle validation.
      d3dx9/tests: Add variable name test.
      d3dx9: Don't double check the technique.
      d3dx9: Identify D3DTSS_CONSTANT and FVF states.
      d3dx9: Remove not needed TRACE.
      d3dx9: Avoid TRUE : FALSE conditional expression.
      d3dx9: Remove ctab_constant typedef.
      d3dx9: Add a fixme for flags in D3DXGetShaderConstantTableEx().
      d3dx9: Don't use an index as variable handle, it's not useable for subvariables.
      d3dx9: Parse structs and sub constants in ID3DXConstantTable.
      d3dx9: Improve is_valid_constant().
      d3dx9: Improve ID3DXConstantTable::GetConstantByName().
      d3dx9: Improve ID3DXConstantTable::GetConstant().
      d3dx9: Improve ID3DXConstantTable::GetConstantDesc().
      d3dx9: Implement ID3DXConstantTable::GetConstantElement().
      d3dx9: Fix RegisterCount calculation.
      d3dx9/tests: Add tests for ID3DXConstantTable::GetConstantDesc().
      d3dx9/tests: Add tests for ID3DXConstantTable::GetConstant/ByName/Element().
      d3dx9: Use debug_d3dxparameter_class/type in traces.
      d3dx9: Add debug helper function for RegisterSet.
      d3dx9: Remove "too many constants" fixme.
      d3dx9/tests: Fix typo.
      d3dx9: Add some traces to D3DXLoadSurfaceFromMemory().
      d3dx9: Improve set_matrix_array().
      d3dx9: Handle D3DXPC_VECTOR in set_matrix_array().
      d3dx9: Remove min() in set_matrix_array(), uses always the desc value.
      d3dx9: Avoid desc copy in ID3DXConstantTable::GetSamplerIndex().
      d3dx9: Optimize set_matrix().
      d3dx9: Improve traces in set_number().

Roman Dadkov (2):
      oleaut32: Record DocString field in ITypeInfoImpl structure in function ITypeLib2_Constructor_SLTG.
      oleaut32: Fix VectorFromBstr call in VARIANT_CoerceArray.

Vincent Povirk (8):
      windowscodecs: Allow CopyPixels to succeed without padding from the last row.
      windowscodecs: Implement IWICImagingFactory::CreateBitmapFromSource.
      mscoree: Avoid calling mono_image_open_from_module_handle for libraries.
      propsys: Fix memory leak in IPropertyStore::SetValue.
      ole32: Add tests for StgConvertPropertyToVariant.
      ole32: Implement StgConvertPropertyToVariant.
      ole32: Add support for reading BSTR properties.
      ole32: Fix typo.

--
Alexandre Julliard
julliard@winehq.org
