Wine 2.17 released
Posted on: 09/16/2017 09:10 AM

The Wine development release 2.17 is now available. Wine is a compatibility layer capable of running Windows applications on several POSIX-compliant operating systems, such as Linux, macOS, & BSD. Version 2.17 comes with better support for grayscale mode in DirectWrite, per-application StartupWMClass in desktop files, virtual memory compatibility improvements, palette handling improvements in WindowsCodecs, reply messages improvements in WebServices, and bug fixes.

Bugs fixed in 2.17:

12185 Before You Know It crashes
19177 Gorky-17 does not start in Direct3D HAL (SW Renderer is OK)
29958 UIRibbon Framework not implemented: 926749fa-2615-4987-8845-c33e65f2b957
38622 gdiplus should return PixelFormat32bppARGB instead of PixelFormat8bppIndexed for a grayscale PNG file
39885 Cannot allocate more than 32gb of memory
41370 TTM_GETCURRENTTOOL returns always FALSE when send from TTN_NEEDTEXT handler.
41827 Wrong specular rendering with some applications
42427 Steam application claims no internet connection
43046 Multiple apps need api-ms-win-crt-stdio-l1-1-0.dll.__stdio_common_vfprintf_s (Civilization VI, Mafia 3, SketchBook)
43197 5Plus: Print dialog crashes with illegal floating point operation
43290 MyLifeOrganized crashes when mousing over tabs
43319 Steam Store/Uplay/Epic Games Launcher no longer display text in Windows 7 mode (libcef applications)
43476 Skyrim hardware detection spinlocks with CSMT enabled
43519 Path of Exile: Corrupt/flickering UI textures after ~1 minute of gameplay
43577 unit test: DBGrid inplace editor dropdown does not work and worked on version 2.0.2
43586 Dead Space: no shadows in game
43649 dbgeng stub DebugCreateEx causes jadesentinel crash in JADE thin client
43658 Text in Deletion Confirmation MsgBox has wrong background colour
43668 Terris Universal Remote UFB 234 - update database does not work
43685 Many games fail to start, or run without audio

Changes since 2.16:

Alex Henrie (7):
msvcrt: Note that __stdio_common functions are for ucrtbase.
ucrtbase: Add __stdio_common_vfprintf_s.
ucrtbase: Add __stdio_common_vfwprintf_s.
include: Add multimon.h.
shell32/tests: Add tests for FolderItems_Item and FolderItems_get_Count.
shell32: Implement FolderItems_Item.
shell32: Implement FolderItems_get_Count.

Alexandre Julliard (29):
ntdll: Add helper functions for getting and setting page protection bytes.
ntdll: Add a helper function for setting bits in page protection bytes.
ntdll: Add a helper function for applying page protection bytes with mprotect.
ntdll: Pass the allocation size to the alloc_virtual_heap function.
ntdll: Allocate the per-page protection byte separately from the view.
ntdll: Remove the view parameter from the page protection helpers.
ntdll: Allocate views out of a memory block instead of using a heap.
ntdll: Don't do partial writes in virtual_uninterrupted_write_memory.
ntdll: Use the find_view_range helper function to check for overlapping views.
rbtree.h: Add a wine_rb_prev iteration helper function.
ntdll: Store memory views in a binary tree instead of a list.
server: Enforce valid flags for file mappings.
ntdll: Disallow changing PAGE_NOCACHE flag for individual pages.
ntdll: Remove the no longer used VPROT_NOEXEC flag.
ntdll: Store the SEC_* section flags directly in the view protection.
ntdll: Ignore attempts to commit pages in an already committed anonymous mapping.
kernel32/tests: Retrieve the page size only once.
kernel32/tests: Fix mapping protection tests to succeed on recent Windows versions.
kernel32/tests: Also run mapping tests against an anonymous mapping.
kernel32/tests: Also run mapping tests against an executable image.
ntdll: Avoid accessing builtin views outside of the critical section.
ntdll: Trace views once they are properly initialized.
ntdll: Fix access rights checks for mapping objects.
ntdll: Verify page protection against the mapping protections in VirtualAlloc and VirtualProtect.
ntdll: Pass the mapping file access instead of the protection bits to the server.
ntdll: Get rid of the VPROT_VALLOC flag.
ntdll: Also release memory past the last view in remove_reserved_area.
ntdll: Don't use the mapping handle to detect file mappings.
kernel32/tests: Avoid some delays in the process test.

Alistair Leslie-Hughes (6):
include: Added IMFMediaEventQueue interface.
include: Add interfaces IMFMediaTypeHandler, IMFStreamDescriptor.
mfplat: Added MFCreateEventQueue stub.
include: Add IMFSinkWriterEx interface.
mfplat: Implement MFCreateStreamDescriptor.
mfplat: Implement MFCreateEventQueue.

Andrey Gusev (1):
unicows: Fix CreateDialogParamW spec file entry.

Daniel Lehman (3):
wininet: Fix proxy bypass with wildcard if domain length matches with server.
msvcrt: Use exception base to create copy constructor pointer.
msvcrt: Protect onexit table with critical section.

Dmitry Timoshkov (11):
windowscodecs: Implement IWICBitmapDecoder::CopyPalette in PNG decoder.
windowscodecs: Fix IWICBitmapEncoder::SetPalette for a not initialized case in PNG encoder.
windowscodecs/tests: Make create_decoder() return an error code in PNG tests.
windowscodecs/tests: Add more tests for loading PNG images in various color formats.
windowscodecs: Implement IWICBitmapFrameEncode::SetPalette in JPEG encoder.
windowscodecs: Fix IWICBitmapEncoder::SetPalette for a not initialized case in JPEG encoder.
windowscodecs: Fix IWICBitmapEncoder::SetPalette for a not initialized case in BMP encoder.
windowscodecs: Implement IWICBitmapFrameEncode::SetPalette in BMP encoder.
windowscodecs: Implement IWICBitmapDecoder::CopyPalette in TIFF decoder.
windowscodecs: Implement IWICBitmapFrameEncode::SetPalette in the TIFF encoder.
windowscodecs: Fix IWICBitmapEncoder::SetPalette for a not initialized case in TIFF encoder.

Fabian Maurer (11):
shell32: Draw text on message boxes without background.
winecfg: Remove processorArchitecture from manifest.
user32: Add stub for CalcMenuBar.
api-ms-win-core-heap-l2-1-0: Add dll.
api-ms-win-core-localization-obsolete-l1-3-0: Add dll.
api-ms-win-core-shlwapi-obsolete-l1-2-0: Add dll.
api-ms-win-core-synch-l1-2-1: Add dll.
mfidl.idl: Add interfaces IMFClockStateSink, IMFGetService.
dxva2api.idl: Add interface IDirectXVideoMemoryConfiguration.
evr: Add interface definitions for EVR filter.
comctl32/tests: Dump failed message sequence correctly.

François Gouget (7):
dsquery: Case fixes.
ieproxy: Case fixes.
mshtml: A spelling fix in a WARN() message.
mshtml: Make HTMLDocumentNode_init_dispex_info() static.
dwrite: Factory_release_cached_fontface() is unused so remove it.
webservices: Alloc_utf16_text() is unused, so remove it.
gdiplus: Add a trailing linefeed to an ERR() message.

Hans Leidekker (13):
webservices: Store headers in WsReadEnvelopeStart.
webservices: Implement WsSendReplyMessage.
webservices: Return HRESULT from insert_string.
webservices: Store the action header as WS_XML_STRING.
webservices: Add a mechanism to use the builtin static dictionary in the writer.
webservices: Also use the dictionary for writing UTF-8 text values.
webservices: Build a session dictionary for strings not present in the static dictionary.
webservices: Add support for multiple message descriptions in WsReceiveMessage.
webservices: Parse the MessageID header.
webservices: Include a RelatesTo header in reply messages.
winhttp: Trace errors from send and recv.
winhttp: Allocate a credential handle for each session.

Hugh McMaster (3):
reg/tests: Delete the test registry key before starting each test.
reg/tests: Add basic tests for the export operation.
setupapi: Recursively remove any subkeys before calling NtDeleteKey().

Huw D. M. Davies (4):
riched20: Remove an unused parameter.
riched20: Correctly release the STGMEDIUM.
riched20: Don't special case the non-stretching case.
riched20: Don't scale the picture size with dpi.

Jacek Caban (12):
mshtml: Added IHTMLDocument7::get_characterSet implementation and use it in get_charset.
mshtml: Added IHTMLDocument7::get_defaultView implementation and use it for get_parentWindow implementation.
mshtml: Forward common function from IHTMLDocument7 to IHTMLDocument2.
mshtml: Added implementation of IHTMLDocument7 event handler properties for supported events.
mshtml: Expose IHTMLDocument7 interface to scripts.
mshtml: Added IHTMLDocument7::head property implementation.
mshtml: Added IHTMLDocument7::getElementsByClassName implementation.
mshtml: Forward IHTMLElement6::get_nodeName to IHTMLDOMNode implementation.
mshtml: Forward IHTMLElement6::get_tagName to IHTMLElement implementation.
mshtml: Forward attributes functions from IHTMLElement6 to older interfaces.
mshtml: Expose IHTMLElement6 to scripts.
mshtml: Fixed getElementsByTagName for comment elements.

Jonathan Doron (2):
ntdll: Apply owner and group regardless of the SE_OWNER_DEFAULTED or SE_GROUP_DEFAULTED flags.
kernel32/tests: Test suspended process states.

Józef Kucia (1):
d3d11/tests: Add test for conservative depth output.

Marcin Mikołajczak (1):
po: Update Polish translation.

Martin Storsjo (1):
msvcrt: Implement setjmp/longjmp on aarch64.

Matteo Bruni (13):
d3d9/tests: Add a test for "NULL" FourCC format.
wined3d: Return the up-to-date locations from blitters.
wined3d: Don't take the upload path for blits to formats requiring conversion.
wined3d: Restore support for d3d9 extension formats.
wined3d: Get rid of most of the redundant query flushes.
d3d9/tests: Trace the current test in test_signed_formats().
d3d8/tests: Trace the current test in test_signed_formats().
wined3d: Copy the module handle to a local variable in wined3d_cs_run().
wined3d: Disable YUV formats when not supported.
wined3d: Disable the ARBfp blitter on core profile.
opengl32/tests: Fix typo in ok() condition.
opengl32: Support a couple new typedefs in the XML.
opengl32: Update to OpenGL 4.6.

Michael Müller (2):
wined3d: Recognize conservative depth output registers.
wined3d: Add conservative depth output information to GLSL pixel shaders.

Nikolay Sivov (22):
dwrite: Handle 8bpp gray bitmaps for bitmap target.
dwrite: Validate buffer size passed to CreateAlphaTexture() against analysis texture type.
dwrite: Use 8bpp bitmaps in grayscale mode.
d2d1: Use 8bpp text bitmaps for grayscale mode.
dbgeng: Added DebugCreateEx() stub.
dwrite: Fix 8bpp bitmap copy.
msxml3/httpreq: Support HEAD request.
comctl32/tooltips: Return full toolinfo from TTM_GETCURRENTTOOL.
comctl32/tooltips: Set current tool before sending TTN_NEEDTEXT.
comctl32/tooltips: Calm down trace messages.
qcap: Remove redundant filter state check.
usp10/tests: Remove special itemization failure test that doesn't happen.
usp10/tests: Move initialization to a separate function, add another ScriptShape() test.
usp10/tests: Remove workarounds that are no longer useful.
shell32: Implement Application() property for Folder and FolderItems.
dwrite/tests: Added a helper to initialize test text source.
d2d1: Use better bezier segment bounds approximation when updating figure bounds.
d2d1: Implement GetBounds() for path geometries.
d3d9: Ask for texture GetDC() capability GET_DC based on texture format instead of initial swapchain buffer format.
shell32/tests: Remove workarounds that are no longer relevant.
shell32: Implement Application property for FolderItem.

Paul Gofman (3):
d3dx9/tests: Add test for null shaders in effect.
d3dx9: Return E_FAIL from ValidateTechnique() for techniques with unsupported shaders.
d3dx9: Fix zero object_id handling in d3dx9_base_effect_get_pass_desc().

Rafał Mużyło (1):
itss: Fix handling non-ASCII content paths.

Sebastian Lackner (1):
kernel32: Add stub for GetProcessWorkingSetSizeEx.

Stefan Dösinger (1):
ntdll: Make RtlDeregisterWaitEx(handle, INVALID_HANDLE_VALUE) thread safe.

Vincent Povirk (9):
gdiplus: Account for gdi32 transform in SOFTWARE_GdipDrawPath.
gdiplus: Account for gdi32 transforms in text functions.
gdiplus: Account for gdi32 transform in GdipSetClipHrgn.
windowscodecs: Generate a palette for color-keyed grayscale PNG's.
winex11: Convert process name to lowercase for WM name hint.
winemenubuilder: Set StartupWMClass for shortcuts to exe files.
loader/wine.inf: Put 32-bit .ds fakedlls in windows/twain_32.
sane.ds: Add support for word list options.
shell32: Stub SHOpenWithDialog.

Zebediah Figura (9):
msi: Remove ACTION_PerformUIAction().
msi: Simplify message type processing.
msi: More fully implement the ExecuteAction action.
msi: Implement the INSTALL top-level action.
msi: Perform the given action, or INSTALL, from MsiInstallProduct().
msi/tests: Some cleanup for external UI tests.
msi/tests: Add external UI tests for top-level actions.
ieframe: Parse multiple command-line arguments.
dsquery: Register CommonQuery coclass.

The source is available from the following locations:

Binary packages for various distributions will be available from:

Printed from Linux Compatible (