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
