The Wine development release 4.17 is now available. What's new in this release (see below for details): - New version of the Mono engine with upstream fixes. - Support for DXTn compressed textures. - Initial version of the Windows Script runtime library. - Support for XRandR device change notifications. - Support for generating RSA keys. - Stubless proxies support on ARM64. - Various bug fixes. The source is available from the following locations: https://dl.winehq.org/wine/source/4.x/wine-4.17.tar.xz http://mirrors.ibiblio.org/wine/source/4.x/wine-4.17.tar.xz Binary packages for various distributions will be available from: https://www.winehq.org/download You will find documentation on https://www.winehq.org/documentation You can also get the current source directly from the git repository. Check https://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 4.17 (total 14): 24701 Vampire the Masquerade bloodlines hanging with Out of adapter memory 35561 Some MSYS2 commands generate a stackdump (queued user APC not executed) 36313 valgrind shows a possible leak in propsys/tests/propstore.c 39026 Wrong key mapping in virtualdub 39934 AppCAD graphics corruption 43842 Cached Authorization cause wrong username/password to be used 44394 Game “Civilization 4” is aborted because of unhandled exception. 46404 Shed installer - text overflow in browse-for-folder dialog 47706 ntdll: Compiler warnings regression on x86_64 [stable] 47736 __ASM_CFI not working on mac 47752 commit "winex11.drv: Wake up the display on user input." introduced severe performance issues with atomic modesetting kernel drivers 47766 PathAllocCanonicalize treats path segments start with dots wrong. 47769 Royal Quest: fails to start with LdrInitializeThunk "gaxomofy.dll" failed to initialize, aborting 47779 iCloud refuses to install: "Your computer is missing Media features." ---------------------------------------------------------------- Changes since 4.16: Akihiro Sagawa (1): dwrite: Prefer Windows platform names regardless of record order. Alex Henrie (13): ntdll: Avoid dead initialization (scan-build). user32: Avoid dead initialization (scan-build). dbghelp: Avoid dead assignment (scan-build). glu32: Avoid dead assignment (scan-build). crypt32: Factor out sprintf calls in trust_status_to_str (scan-build). winex11: Avoid dead assignment (scan-build). windowscodecs: Avoid dead assignment (scan-build). ntdll: Ensure that performance information is initialized (scan-build). wined3d: Avoid dead assignment (scan-build). include: Rename Reserved1 to SystemStatusFlag in SYSTEM_POWER_STATUS. include: Add constants needed for SYSTEM_POWER_STATUS. include: Add Tag field to SYSTEM_BATTERY_STATE. ntdll/tests: Add tests for NtPowerInformation(SystemBatteryState). Alexandre Julliard (30): ntdll: Don't use virtual_uninterrupted_read_memory() for invalid %gs check. kernel32: Move some path functions to kernelbase. kernel32: Move some locale functions to kernelbase. ntdll: Fix usage of libunwind on x86-64 on non-macOS platforms. ntdll: Don't send the first chance debug event twice. ntdll: Send first chance debug event while on signal stack on i386. kernelbase: Don't round thread stack guaranteed size when it is zero. psapi: Avoid using forwards. include: Import uchar.h from MinGW. ntdll: Avoid server call when possible in NtSetContextThread() on ARM64. ntdll: Send first chance debug event while on signal stack on ARM64. winegcc: Add ARRAY_SIZE macro. winegcc: Add --wine-objdir and --winebuild options for the Wine build. winegcc: Always search the standard include dirs. winegcc: Pass all linker arguments also when testing link options. include: Remove no longer needed dependency on setjmp.h. kernel32: Move some handle functions to kernelbase. kernel32: Move delay-load functions to kernelbase. kernel32: Move file time functions to kernelbase. kernel32: Move NUMA-related functions to kernelbase. kernel32: Move some misc functions to kernelbase. oleaut32: Split DispCallFunc() into platform-specific functions. oleaut32: Implement DispCallFunc() for ARM64. make_specfiles: Don't add forwards to the api-ms-* dlls. oleaut32: Return value pointer needs to be in x8 on ARM64. rpcrt4: Add stubless proxy support for ARM64. winegcc: Update __stdcall defines for ARM platforms. winegcc: Centralize argument parsing into the main switch. kernelbase: Use set_ntstatus() in more places. msvcrt: Move vtbl wrappers together with the other functions. Alistair Leslie-Hughes (6): wininet: Pass correct server name when retrieving username information. wininet: Update session username/password when cached credentials are used. wininet: Clear cached credentials in INTERNET_OPTION_END_BROWSER_SESSION. wininet: Use username/password parameters over cached credentials. bcrypt: Fix key_asymmetric_init function for macos. dsound: Primary buffer doesn't support flag DSBCAPS_CTRLFX. Andrew Eikum (3): winex11.drv: Throttle calls to XResetScreenSaver. winebus.sys: Fix build without Linux event support. msvcrt: Implement %T format for strftime. Brendan Shanks (3): user32/tests: Test GetWindowInfo error conditions and incorrect cbSize. user32: Fix behavior of GetWindowInfo(0, NULL). d2d1: Only create shader resource views for drawable bitmaps. Charles Davis (1): include: Pick up the ms_hook_prologue attribute for Clang, too. Dmitry Timoshkov (7): rpcrt4: Implement wait_for_incoming_data() for named pipes transport. rpcrt4: Implement NdrAsyncServerCall. rpcrt4: Implement RpcAsyncCompleteCall for server side. shell32: Return S_OK from IDropTargetHelper::Show(). rpcrt4: Remove FIXME about RPC_CONTEXT_HANDLE_FLAGS from NDRSContextMarshall2 and NDRSContextUnmarshall2. rpcrt4: Perform the INITOUT phase in NdrAsyncServerCall instead of RpcAsyncCompleteCall. rpcrt4: Reimplement rpcrt4_conn_np_wait_for_incoming_data() using asynchronous read with zero sized buffer. Fabian Maurer (1): shell32: Prevent text truncation inside the old "browse folder" dialog. François Gouget (11): ieframe/tests: Fix the name of an unused function parameter. ieframe/tests: Fix the spelling of an ok() message. glu32: Fix the spelling of some comments. gdiplus: Fix a function name in a FIXME() message. gdi32: Fix the spelling of some comments. winmm: Avoid a couple of unneeded lstrlenW() calls. kernel32/tests: Fix the spelling of the exerciseServer() function name. jscript/tests: Fix the spelling and slightly reword an ok() message. kernel32/tests: Fix the spelling of three ok() messages and comments. dxerr9: Fix the spelling of some error messages. jscript/tests: Fix the spelling of a couple of jscript ok() messages. Gabriel Ivăncescu (7): vbscript: Add support for the SCRIPTTEXT_ISEXPRESSION flag in ParseScriptText. vbscript/tests: Add tests for ParseScriptText with the SCRIPTTEXT_ISEXPRESSION flag. vbscript: Add support for the SCRIPTPROC_ISEXPRESSION flag in ParseProcedureText. vbscript/tests: Add test for ParseProcedureText with the SCRIPTPROC_ISEXPRESSION flag. vbscript: Handle NULL code text in ParseScriptText and ParseProcedureText. msscript.ocx: Partially implement IScriptControl::ExecuteStatement. msscript.ocx/tests: Add tests for IScriptControl::ExecuteStatement. Hans Leidekker (14): wbemprox: Add support for CIM_REAL32 values. wbemprox: Implement Win32_BIOS.CurrentLanguage. wbemprox: Implement more Win32_OperatingSystem properties. wbemprox: Implement more Win32_PhysicalMemory properties. wbemprox: Implement Win32_WinSAT. wbemprox: Avoid a crash when a class is not implemented. wbemprox: Map CIM_UINT16 and CIM_UINT32 to VT_I4 by default. wbemprox: Implement Win32_DisplayControllerConfiguration. bcrypt: Add support for generating RSA keys. bcrypt: Implement BCryptSignHash. webservices: Simplify WsAddressMessage. webservices: Add support for writing WS_ENUM_TYPE values. webservices: Add support for mapped HTTP headers. ws2_32: Call the completion routine in GetAddrInfoExW. Henri Verbeet (15): wined3d: Add GPU information for AMD VEGA12. wined3d: More accurately determine whether a separate sRGB texture is required. wined3d: Explicitly initialise sRGB format info. wined3d: Retrieve the supported sample counts for Vulkan formats. wined3d: Initialise the multi-sample draw location for the Vulkan adapter. wined3d: Use wined3d_resource_gl_legacy_map_flags() in wined3d_buffer_gl_map(). wined3d: Derive the GL bind point for buffer object maps from the bind flags. wined3d: Use explicit flushing in wined3d_context_gl_unmap_bo_address(). wined3d: Move the "buffer_object" field from struct wined3d_buffer_gl to struct wined3d_buffer. wined3d: Use wined3d_context_map_bo_address() in wined3d_buffer_gl_map(). wined3d: Merge wined3d_buffer_gl_map() and buffer_resource_sub_resource_map(). wined3d: Merge wined3d_buffer_gl_unmap() and buffer_resource_sub_resource_unmap(). wined3d: Make the adapter responsible for clearing UAVs. wined3d: Make the adapter responsible for copying between buffer objects. wined3d: Handle typeless formats in surface_cpu_blt(). Jacek Caban (34): jscript: Use wide-char literals in lexer. scrobj: Add partial DllInstall implementation. scrobj/tests: Add scriptlet tests. scrobj: Add scriptlet factory stub implementation. scrobj: Add beginning scriptlet parser implementation. scrobj: Add registration element parser. scrobj: Add public element parser implementation. scrobj: Add script element parser partial implementation. scrobj: Suport scriptlet registration. scrobj: Add stub IActiveScriptSite implementation. scrobj: Add IActiveScriptSiteWindow stub implementation. scrobj: Add IServiceProvider stub implementation. scrobj: Create script engine instances for script hosts. kernel32/tests: Enable debug break exception race tests on i386 Wine. winegcc: Use -print-libgcc-file-name to find libgcc. scrobj: Add scriptlet instance stub implementation. scrobj: Parse scripts in DllInstall. scrobj: Create script hosts for scriptlet instance. scrobj: Implement GetItemInfo. scrobj: Run scripts when creating a scriptlet instance. ole32: Lock spies list when iterating it. ole32/tests: Add more initialization spies tests. include: Add threadpoolapiset.h file. msscript.ocx: Fix VARIANT access. scrobj: Zero initialize scriptlet instance. scrobj: Add property element parser support. scrobj/tests: Add property element tests. scrobj: Store script dispatch in script host. scrobj: Lookup object members implementations in scripts when createating scriptlet instance. scrobj: Add GetDispID implementation. scrobj: Add InvokeEx implementation. scrobj: Use ReadValueChunk to read script body. scrobj: Improve debug traces. scrobj: Ignore processing instructions in scriptlet files. Jactry Zeng (3): msscript/tests: Initialize custom engine for global. msscript: Cache state of IActiveScript in ScriptHost struct. msscript: Partially implement IScriptControl::AddCode(). Jeff Smith (1): kernelbase: Fix PathAllocCanonicalize handling segments that contain dots. Ken Thomases (2): ntdll: Fix the Mac build with SDKs older than 10.14. include: Always generate CFI directives on macOS. Kevin Puetz (4): winbase.h: Add GetFinalPathNameByHandle declaration. atlbase.h: Add AtlComModuleRevokeClassObjects declaration. winegcc: Correctly pass the '-' file name (stdin) to the compiler. oleaut32: Fix RegisterTypeLib prototype. Matteo Bruni (15): d3dx9: Simplify unsupported format check. d3dx9: Relax a block alignment check. d3dx9/tests: Add a test for loading surfaces not divisible by the block size. d3dx9/tests: Add a test for loading a texture smaller than the block size. d3dx9/tests: Add a test with a larger DXT5 texture. d3dx9/tests: Add more tests loading misaligned block textures. d3dx9/tests: Add even more tests for misaligned block textures. d3dx9: Add traces to filtering functions. d3dx9: Handle compressed surfaces in D3DXLoadSurfaceFromMemory. d3dx9/tests: Improve tests to check for DXTn fallback formats. d3dx9: Move the source rect alignment check into the condition for simple copy. d3dx9: Handle non-zero source rect position in D3DXLoadSurfaceFromMemory(). d3dx9: Implement DXTn compression for offset destination rect. d3dx9: Don't pass the D3DLOCK_DISCARD flag when mapping a texture. d3dx9: Compute the correct source rect in D3DXLoadSurfaceFromFileInMemory(). Michael Müller (1): wine.inf: Create the WindowsMediaVersion key and set its default value. Michael Stefaniuc (1): widl: Add the ARRAY_SIZE() macro. Nikolay Sivov (12): d3d10_1/tests: Add a test for creating SRV for resource without D3D10_BIND_SHADER_RESOURCE. d3d10core/tests: Add a test for creating SRV for resource without D3D10_BIND_SHADER_RESOURCE. d3d11/tests: Add a test for creating SRV for resource without D3D11_BIND_SHADER_RESOURCE. dwrite: Sort localized strings by locale name. mfplat: Add Media Session attributes for tracing. mf: Add stub implementation for standard quality manager. mf: Create topology loader of session creation. mf: Create quality manager on session creation. mf: Remove fixme trace for partially handled functionality. wined3d: Fail SRV creation for resources without corresponding bind flag. mf: Fix stream IID loader should be testing for. mf: Add initial async implementation of SetTopology(). Paul Gofman (1): wined3d: Allow loading buffers mapped through system memory. Piotr Caban (9): winebus.sys: Stop deviceloop_thread to avoid crash on driver unload. winebus.sys: Stop device report threads to avoid crash on driver unload. ntdll: Ignore ExceptionFlags changes done by exception handlers. mountmgr.sys: Null terminate serial_search_paths and parallel_search_paths tables. mountmgr.sys: Always add all user-defined ports. winebus.sys: Don't do anything in udev_driver_unload if udev was not initialized. winebus.sys: Don't do anything in iohid_driver_unload if iohid was not initialized. winebus.sys: Stop SDL deviceloop_thread to avoid crash on driver unload. msxml3: Don't return NULL namespace and local name in saxreader callbacks. Rémi Bernon (6): winex11.drv: Destroy old clipping message window if it has been replaced. ntoskrnl.exe: Use case-insensitive driver name comparison. ntoskrnl.exe: Update the interface if it is already in the tree. winebus.sys: Use the SDL joystick index as device id instead of instance id. winebus.sys: Report the native product string for some Xbox gamepads. winex11.drv: Handle FocusIn/NotifyGrab and FocusOut/NotifyUngrab events. Sebastian Lackner (1): ntdll: Execute queued APCs before starting a process. Sven Baars (6): httpapi: Fix a memory leak (Valgrind). httpapi/tests: Initialize response_buffer to 0 (Valgrind). httpapi/tests: Cancel a pending receive request (Valgrind). msi: Fix a leak on error path (Coverity). kernelbase: Fix a leak on error path (Coverity). httpapi/tests: Use CancelIo to avoid a test failure on Windows XP. Vincent Povirk (1): mscoree: Update Wine Mono to 4.9.3. Zebediah Figura (53): winegstreamer: Store the pin media type directly. winegstreamer: Improve some trace messages. winegstreamer: Use the "format" field to determine the subtype and bit depth. winegstreamer: Factor out amt_from_gst_caps(). configure: Also try /usr/lib32/pkgconfig/ for the 32-bit PKG_CONFIG_PATH. winegstreamer: Set lSampleSize in amt_from_gst_caps_audio(). winegstreamer: Set bFixedSizeSamples in amt_from_gst_caps_audio(). winegstreamer: Clear bTemporalCompression in amt_from_gst_caps_audio(). winegstreamer: Also set cbFormat when using WAVE_FORMAT_PCM. user32: Return -1 from peek_message() on error. server: Validate the filter window handle in get_message. winegstreamer: Move more common pin initialization into create_pin(). winegstreamer: Introduce a callback for filter-specific initialization. winegstreamer: Reimplement the WAVE parser ontop of the wavparse plugin. winex11: Track the client colormap separately. winegstreamer: Fix registration for the WAVE parser. winegstreamer: Clear bFixedSizeSamples in amt_from_gst_caps_video(). winegstreamer: Set lSampleSize to 1 in amt_from_gst_caps_video(). winegstreamer: Don't set the source and target rects in amt_from_gst_caps_video(). winegstreamer: Reimplement the AVI splitter on top of the avidemux plugin. winegstreamer: Reimplement the MPEG splitter on top of the mpegaudioparse plugin. quartz: Get rid of the no longer used base parser. wined3d: Fully clean up the device state in wined3d_device_uninit_3d(). wined3d: Reset the CS state before cleaning up the device state. wineqtdecoder: Use BasePinImpl_QueryAccept() and BasePinImpl_EnumMediaTypes(). strmbase: Don't expose EnumMediaTypes_Construct(). strmbase: Get rid of the version fields from IEnumMediaTypesImpl. strmbase: Get rid of the "enumMediaFunction" field from IEnumMediaTypesImpl. strmbase: Get rid of the BasePin typedef. strmbase: Rename pfnCheckMediaType() to pin_query_accept(). strmbase: Rename pfnGetMediaType() to pin_get_media_type(). strmbase: Pass an unsigned index to pin_get_media_type(). qcap/vfwcapture: Use more strmbase pin methods. qcap/smartteefilter: Use BasePinImpl_EnumMediaTypes(). strmbase: Introduce BasePinImpl_QueryInterface(). strmbase: Use BasePinImpl_QueryInterface(). quartz: Use BasePinImpl_QueryInterface(). qcap: Use BasePinImpl_QueryInterface(). quartz/tests: Alter test.mpg to avoid some failures. wined3d: Return a wined3d_stateblock from wined3d_device_begin_stateblock(). d3d9: Track the primary stateblock state locally. d3d8: Track the primary stateblock state locally. wined3d: Introduce wined3d_stateblock_set_vs_consts_f(). d3d9: Handle stateblocks in d3d9_device_SetVertexShaderConstantF(). d3d8: Handle stateblocks in d3d8_device_SetVertexShaderConstant(). ntdll: Implement NtQueryInformationFile(FileAttributeTagInformation). kernelbase: Implement GetFileInformationByHandleEx(FileAttributeTagInfo). strmbase: Don't execute OnStartStreaming() or OnStopStreaming() callbacks if the sink is unconnected. quartz/tests: Add some tests for unconnected filter state change. qcap/avico: Don't try to commit a NULL allocator in AVICompressor_Run(). qcap/tests: Add some tests for unconnected filter state change. qcap/smartteefilter: Use strmbase filter state change methods. strmbase: Rename "pConnectedTo" to "peer". Zhiyi Zhang (12): user32: Don't report mirrored slave monitors in EnumDisplayMonitors. kernelbase: Comment out DECLSPEC_HOTPATCH for GetThreadLocale. kernelbase/tests: Add more PathAllocCanonicalize tests. gdi32/tests: Fix a test failure on Win10 1809. gdi32/tests: Add CreateDC tests. winex11.drv: Initialize display devices before getting primary desktop rectangle. winex11.drv: Add virtual desktop display device handler. winex11.drv: Support XRandR display device handler. winex11.drv: Handle XRandR display device changes. winemac.drv: Trace display device counts. winex11.drv: Trace display device counts. winex11.drv: Handle XRandR not reporting any providers. -- Alexandre Julliard julliard@winehq.org