The Wine development release 2.12 is now available. What's new in this release (see below for details): - Audio driver for Android. - Some performance improvements with async I/O. - More RegEdit file parser improvements. - Beginnings for MSI user interface support. - Various bug fixes. The source is available from the following locations: http://dl.winehq.org/wine/source/2.x/wine-2.12.tar.xz http://mirrors.ibiblio.org/wine/source/2.x/wine-2.12.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.12 (total 9): 24723 Lost Horizon crash/page fault during Chapter 2 27656 Deus Ex: Human Revolution - Severe graphical glitches 35142 Lara Croft and the Guardian of Light: screen filled with artefacts when StrictDrawOrdering disabled 42014 Multiple apps crash on start due to missing support for LABEL_SECURITY_INFORMATION(affects BOSE SoundTouch, Spotify, Paltalk) 42597 Mouse wheel doesn't scroll in MyLifeOrganized 43123 compilation fails in dlls/d3dx9_36/tests with gcc 4.2.2 43231 Dai-Senryaku Perfect 3.0:Not draw background with GDI. 43257 winetricks -q art2kmin fails 43295 unimplemented function IPHLPAPI.DLL.if_nametoindex ---------------------------------------------------------------- Changes since 2.11: Akihiro Sagawa (3): tools: Also ignore STATUS_WAIT_0. tools: Support multiple error name tokens in a line. ntdll/tests: Add more tests if we have real VM counters. Alex Henrie (1): ole32: Avoid null pointer dereferences in CoGetTreatAsClass. Alexandre Julliard (15): libwine: Add a helper function to set the bin directory. libwine: Add a helper function to set the dll directory. libwine: Fall back to the WINELOADER path for the bin directory. wineandroid: Fix handling of Caps Lock with non-alphabetic keys. wineandroid: Work around the Android N restriction on loading libhardware. wineandroid: Allow putting libraries in the native library directory. secur32/tests: Add some braces to silence a clang warning. ws2_32/tests: Print IP addresses as unsigned. winetest: Don't require a tag or email address when only running a few tests. server: Call the satisfied methods after removing the thread wait. wineandroid: Forward the destroy window ioctl to Java even if the window was freed already. wineandroid: Add networking permissions. wineandroid: Support running binaries from the application directory. user32: Scale cursor sizes with the screen DPI. user32: Get rid of the Wine-specific OCR_DRAGOBJECT. Alistair Leslie-Hughes (33): oledb32: Support DB/DATE/TIME/TIMESTAMP in GetConversionSize for W/STR. dsound: Free MMDevice on Release. oledb32: Support DBTYPE_DBTIMESTAMP to DBTYPE_WSTR in DataConvert. dmime: Add TRACE to IDirectMusicSegment8 QueryInterface. dmime: Support more interfaces in IDirectMusicAudioPath.GetObjectInPath. mfplat: Implement MFCreateMediaType. mfplat/tests: Added MFCreateMediaType test. include: Add mftransform.idl. include: Support wine_dbgstr_longlong in tests. propsys/tests: Use standard wine_dbgstr_longlong. ntdll/tests: Use standard wine_dbgstr_longlong. vcomp/tests: Use standard wine_dbgstr_longlong. dmusic/tests: Use standard wine_dbgstr_longlong. iphlpapi/tests: Use standard wine_dbgstr_longlong. quartz/tests: Use standard wine_dbgstr_longlong. apphelp/tests: Use standard wine_dbgstr_longlong. shlwapi/tests: Use standard wine_dbgstr_longlong. wmiutils/tests: Use standard wine_dbgstr_longlong. msvcp110/tests: Use standard wine_dbgstr_longlong. msvcp90/tests: Use standard wine_dbgstr_longlong. msvcp60/tests: Use standard wine_dbgstr_longlong. msvcp120/tests: Use standard wine_dbgstr_longlong. webservices/tests: Use standard wine_dbgstr_longlong. pdh/tests: Use standard wine_dbgstr_longlong. shell32/tests: Use standard wine_dbgstr_longlong. dmime: Rename IPersistStreamImpl_Load functions. d2d1/tests: Use standard wine_dbgstr_longlong. dwrite/tests: Use standard wine_dbgstr_longlong. qmgr/tests: Use standard wine_dbgstr_longlong. include: Define IDirectSoundFXI3DL2Reverb interface. wmvcore: Support IWMReaderNetworkConfig1/2 interfaces in IWMReader. mfreadwrite: Implement MFCreateSourceReaderFromByteStream. mmdevapi/tests: Use standard wine_dbgstr_longlong. Andrew Eikum (1): wineandroid: Add an audio driver. Andrey Gusev (6): po: Update Ukrainian translation. ext-ms-win-kernel32-package-l1-1-1: Add dll. ext-ms-win-ntuser-windowclass-l1-1-1: Add dll. ext-ms-win-ras-rasapi32-l1-1-0: Add dll. ext-ms-win-security-credui-l1-1-0: Add dll. ext-ms-win-security-cryptui-l1-1-0: Add dll. André Hentschel (2): include: Add some more prototypes to winuser.h. vcomp/tests: Test more arguments with a callback. Aurimas Fišeras (1): po: Update Lithuanian translation. Clemens Tamme (3): gdiplus: Write API for GdipAddPathLine and GdipAddPathLineI. gdiplus: Write API for GdipClonePath. gdiplus: Write API documentation for GdipAddPathArc and GdipAddPathArcI. Dmitry Timoshkov (7): windowscodecs: Use PropVariantCompareEx to compare metadata items. windowscodecs: Implement IWICMetadataQueryReader::GetLocation. windowscodecs: Implement IWICBitmapDecoder::GetMetadataQueryReader in the GIF decoder. windowscodecs: Add initial implementation of IWICMetadataQueryReader::GetMetadataByName. windowscodecs: Add some tests for IWICMetadataQueryReader. windowscodecs/tests: Add more tests for IWICMetadataQueryReader::GetMetadataByName. windowscodecs: Fix a memory leak. François Gouget (9): wsdapi: Remove WINAPI on static functions where not needed. advapi32/tests: A couple of spelling fixes in ok() messages. mapi32: A spelling fix in a comment. ntdll/tests: A spelling fix in a comment. rpcrt4: Spelling fixes in comments. msvcrt/tests: A couple of spelling fixes in ok() messages. msvcp90: Spelling fixes in comments. ws2_32/tests: A spelling fix in a comment. msi/tests: Add a trailing linefeed to an ok() call. Hans Leidekker (7): webservices: Fix write option mapping in write_type_struct_field. webservices: Add an index to the static dictionary. webservices: Make sure to use the right dictionary to look up text values. webservices: Fix reading byte records with 2 and 4 byte length. webservices/tests: Add more dictionary tests. webservices: Fix the empty text case for a couple of data types. webservices: Handle text records with implicit end element. Hugh McMaster (52): regedit: Free the buffer and reset data information on error and after setting the value. reg/tests: Separate Unicode import tests from the combined import tests. reg/tests: Use verify_key() for consistency with the verify_reg*() functions. reg/tests: Use the verify_key*() functions where possible. regedit/tests: Use verify_key() for consistency with the verify_reg*() functions. regedit/tests: Use the verify_key*() functions where possible. reg/tests: Test backslashes with whitespace variations and comma placement. reg/tests: Test line concatenation with a new registry key on the next line. reg/tests: Test line concatenation with comments, new lines and comma variations before a new registry value. reg/tests: Test line concatenation with comments, new lines and comma variations before a new default registry value. reg/tests: Test whether a line beginning with a backslash can follow a line ending in a backslash. reg/tests: Test the effects of comments and new lines that appear between valid hex data lines. reg/tests: Test whether a forward slash can be used as a concatenation marker. reg/tests: Test whether EOF invalidates a hex data line ending in a backslash. regedit/tests: Test backslashes with whitespace variations and comma placement. regedit/tests: Test line concatenation with a new registry key on the next line. regedit/tests: Test line concatenation with comments, new lines and comma variations before a new registry value. regedit/tests: Test line concatenation with comments, new lines and comma variations before a new default registry value. regedit/tests: Test whether a line beginning with a backslash can follow a line ending in a backslash. regedit/tests: Test the effects of comments and new lines that appear between valid hex data lines. regedit/tests: Test whether a forward slash can be used as a concatenation marker. regedit/tests: Test whether EOF invalidates a hex data line ending in a backslash. regedit: Free the binary data buffer after saving the new value (Coverity). reg/tests: Test comma placement when parsing hex data. regedit/tests: Test comma placement when parsing hex data. regedit/tests: Correct out of sequence test numbering. reg/tests: Test the effect of whitespace-only lines during hex data concatenation. regedit/tests: Fix another incorrectly named registry key. regedit/tests: Test the effect of whitespace-only lines during hex data concatenation. regedit: Remove un-necessary parser state assignment if we are returning to the same state. regedit: Improve the parsing of multiline hex data during the registry import operation. reg/tests: Test whether registry keys ending with trailing backslashes are imported and created. reg/tests: Test whether the "0x" prefix is valid when importing hex data. regedit/tests: Test whether registry keys ending with trailing backslashes are imported and created. regedit/tests: Test whether the "0x" prefix is valid when importing hex data. regedit: Simplify a while loop for skipping whitespace. regedit: Skip lines that do not begin with a hexadecimal character during hex data concatenation. regedit: Skip blank and whitespace-only lines during hex data concatenation. regedit: Do not remove lines beginning with '#' from the read buffer. regedit: Do not remove lines beginning with a semicolon from the read buffer. regedit: Check if any hex data exists before attempting to parse it. regedit: Do not import the line if a hex data type has a "0x" prefix. regedit/tests: Check if regedit.exe has elevated privileges before starting some tests. regedit/tests: Add another test for "0x" prefixes in the hex data type. regedit/tests: Add some more tests for importing hex data. regedit: Hex data lines may be terminated by a semicolon. regedit: Null-terminate REG_EXPAND_SZ and REG_MULTI_SZ data if the parsed hex data does not end in a null-terminating character. reg/tests: Add another test for "0x" prefixes in the hex data type. reg/tests: Add some more tests for importing hex data. reg/tests: Test the effects of EOF on hex data during concatenation. regedit/tests: Test the effects of EOF on hex data during concatenation. regedit: Use a function to free the parser data. Huw D. M. Davies (4): winex11: Use logical co-ords to call GdiAlphaBlend(). wineandroid: Use logical co-ords to call GdiAlphaBlend(). msvcrt: _difftime64() takes 64-bit args. winemac: Use logical co-ords to call GdiAlphaBlend(). Jacek Caban (28): wininet: Moved INTERNET_STATUS_REDIRECT notification to HTTP_HandleRedirect. wininet: Return an error on redirect with no host name specified. server: Preallocate wait handle in create_request_async and return it in read request. server: Close async wait handle when wait is satisfied. server: Return async result directly instead of via APCs if it's available. server: Use create_request_async for write requests. server: Store fd reference in async object for unqueued asyncs. server: Allow async_handoff users to set result themselves. ntdll: Set iosb status in server_ioctl_file. server: Use create_request_async in ioctl request handler. server: Use create_request_async in flush request handler. server: Remove no longer needed need_handle from queue_irp. rsaenh: Use bcrypt for SHA512 hashes. rsaenh: Use bcrypt for SHA384 hashes. rsaenh: Use bcrypt for SHA265 hashes. winhttp/tests: Get rid of unneeded Sleep() call. server: Use default poll only for default read and write queue asyncs. server: Associate named pipe device waiters queue with its fd. server: Keep ifchange queue through sock object life time. server: Keep weak fd reference in async object when async is queued. server: Store completion in async object instead of async_queue. server: Make async_queue object a simple list instead of a server object. server: Remove no longer needed NULL checks. server: Make fd_queue_async infallible. server: Call create_irp from queue_irp. rsaenh: Implement duplicate_hash_impl for bcrypt-based hashes. d3d11.idl: Added CD3D11_DEPTH_STENCIL_DESC declaration. wininet: Fixed connection_pool_cs declaration. Jactry Zeng (1): ucrtbase: Implement wcstoull and _wcstoull_l. Lauri Kenttä (1): po: Update Finnish translation. Marcin Mikołajczak (1): po: Updated Polish translation. Martin Storsjo (1): ntdll: Handle IMAGE_REL_BASED_DIR64 for arm64 in the same way as for x86_64. Michael Stefaniuc (3): wineandroid: Use EqualRect() instead of memcmp(). regedit: Remove a redundant NULL check before HeapFree(). urlmon: Remove a redundant NULL check before SysFreeString(). Nikolay Sivov (16): d3drm: Added IDirect3DRMWrap stub. d3drm/tests: Some tests for animation object QI behavior. d3drm: Store animated frame pointer in animation object. d3drm: Store animation options. regedit: Use notification message to clean up item data. regedit: Remove explicit iIndent field initialization. po: Update Russian translation. d3drm/tests: Additional test for SetOptions(). d3drm/tests: Some tests for animation keys handling. d3drm: Use AddKey() method internally to add all types of keys. iphlpapi: Fix GetIfTable() trace message. d3drm: Store frame traversal options. d3drm: Store face color. regedit: Remove commented out block. d3drm: Initial support for storing animation keys. d3drm: Implement DeleteKey(). Owen Rudge (16): wsdapi: Add stub implementation of IWSDUdpMessageParameters and WSDCreateUdpMessageParameters. wsdapi/tests: Add tests for CreateUdpMessageParameters. wsdapi/tests: Add tests for Get/SetLocalAddress. wsdapi/tests: Add tests for Get/SetRemoteAddress. wsdapi/tests: Add tests for Get/SetRetransmitParams. wsdapi: Implement Get/SetLocalAddress. wsdapi: Implement Get/SetRemoteAddress. wsdapi: Implement Get/SetRetransmitParams. wsdapi: Implement IWSDUdpAddress_SetTransportAddress. wsdapi/tests: Add additional SetTransportAddress tests with port numbers. wsdapi: Implement IWSDUdpAddress_GetTransportAddress[Ex]. wsdapi: Implement IWSDUdpAddress_Get/SetPort. wsdapi: Implement IWSDUdpAddress_Get/SetMessageType. wsdapi: Implement IWSDUdpAddress_Get/SetSockAddr. wsdapi: Implement WSDXMLGetValueFromAny. wsdapi/tests: Add tests for WSDXMLGetValueFromAny. Paul Gofman (6): d3dx9: Remove redundant parameter size check in set_constants(). d3dx9: Get rid of constant's length checking for matrix in set_constants(). d3dx9: Move transpose 'if' outside of the inner loop in set_constants(). d3dx9: Check type and register count for sampler constants. d3dx9: Support arrays of samplers. d3dx9/tests: Add tests for array of samplers. Pierre Schweitzer (1): mpr: Implement WNetConnectionDialog(). Piotr Caban (3): gdiplus: Add GdipDrawLine test on EmfTypeEmfOnly metafile. gdiplus: Add GdipDrawImagePointsRect test on EmfTypeEmfPlusOnly file. winedump: Add initial support for handling EMF+ records. Vincent Povirk (1): gdiplus: Set flatness more appropriately in GdipDrawPath. Zebediah Figura (14): msi/tests: Add another test for MsiProcessMessage. comctl32: Don't FIXME on handled cases. winedbg: Add support for printing floating point registers. winedbg: Add support for printing SSE (XMM) registers. msi/tests: Add tests for external UI callback. msi: Send the correct UI messages upon calling MsiDoAction(). msi: Implement INSTALLMESSAGE_INITIALIZE and INSTALLMESSAGE_TERMINATE. msi: Implement UI messages in MsiOpenPackage(). gdiplus: Scale widened dashes to the pen width. msi: Fix a buffer overrun. msi/tests: Work around test failures on Windows. msi: Add a basic internal UI implementation. msi: Don't increment the refcount when creating dialogs. msi: Implement UI messages for dialogs. -- Alexandre Julliard julliard@winehq.org