1 The Wine development release 4.17 is now available.
3 What's new in this release (see below for details):
4 - New version of the Mono engine with upstream fixes.
5 - Support for DXTn compressed textures.
6 - Initial version of the Windows Script runtime library.
7 - Support for XRandR device change notifications.
8 - Support for generating RSA keys.
9 - Stubless proxies support on ARM64.
12 The source is available from the following locations:
14 https://dl.winehq.org/wine/source/4.x/wine-4.17.tar.xz
15 http://mirrors.ibiblio.org/wine/source/4.x/wine-4.17.tar.xz
17 Binary packages for various distributions will be available from:
19 https://www.winehq.org/download
21 You will find documentation on https://www.winehq.org/documentation
23 You can also get the current source directly from the git
24 repository. Check https://www.winehq.org/git for details.
26 Wine is available thanks to the work of many people. See the file
27 AUTHORS in the distribution for the complete list.
29 ----------------------------------------------------------------
31 Bugs fixed in 4.17 (total 14):
33 24701 Vampire the Masquerade bloodlines hanging with Out of adapter memory
34 35561 Some MSYS2 commands generate a stackdump (queued user APC not executed)
35 36313 valgrind shows a possible leak in propsys/tests/propstore.c
36 39026 Wrong key mapping in virtualdub
37 39934 AppCAD graphics corruption
38 43842 Cached Authorization cause wrong username/password to be used
39 44394 Game “Civilization 4” is aborted because of unhandled exception.
40 46404 Shed installer - text overflow in browse-for-folder dialog
41 47706 ntdll: Compiler warnings regression on x86_64 [stable]
42 47736 __ASM_CFI not working on mac
43 47752 commit "winex11.drv: Wake up the display on user input." introduced severe performance issues with atomic modesetting kernel drivers
44 47766 PathAllocCanonicalize treats path segments start with dots wrong.
45 47769 Royal Quest: fails to start with LdrInitializeThunk "gaxomofy.dll" failed to initialize, aborting
46 47779 iCloud refuses to install: "Your computer is missing Media features."
48 ----------------------------------------------------------------
53 dwrite: Prefer Windows platform names regardless of record order.
56 ntdll: Avoid dead initialization (scan-build).
57 user32: Avoid dead initialization (scan-build).
58 dbghelp: Avoid dead assignment (scan-build).
59 glu32: Avoid dead assignment (scan-build).
60 crypt32: Factor out sprintf calls in trust_status_to_str (scan-build).
61 winex11: Avoid dead assignment (scan-build).
62 windowscodecs: Avoid dead assignment (scan-build).
63 ntdll: Ensure that performance information is initialized (scan-build).
64 wined3d: Avoid dead assignment (scan-build).
65 include: Rename Reserved1 to SystemStatusFlag in SYSTEM_POWER_STATUS.
66 include: Add constants needed for SYSTEM_POWER_STATUS.
67 include: Add Tag field to SYSTEM_BATTERY_STATE.
68 ntdll/tests: Add tests for NtPowerInformation(SystemBatteryState).
70 Alexandre Julliard (30):
71 ntdll: Don't use virtual_uninterrupted_read_memory() for invalid %gs check.
72 kernel32: Move some path functions to kernelbase.
73 kernel32: Move some locale functions to kernelbase.
74 ntdll: Fix usage of libunwind on x86-64 on non-macOS platforms.
75 ntdll: Don't send the first chance debug event twice.
76 ntdll: Send first chance debug event while on signal stack on i386.
77 kernelbase: Don't round thread stack guaranteed size when it is zero.
78 psapi: Avoid using forwards.
79 include: Import uchar.h from MinGW.
80 ntdll: Avoid server call when possible in NtSetContextThread() on ARM64.
81 ntdll: Send first chance debug event while on signal stack on ARM64.
82 winegcc: Add ARRAY_SIZE macro.
83 winegcc: Add --wine-objdir and --winebuild options for the Wine build.
84 winegcc: Always search the standard include dirs.
85 winegcc: Pass all linker arguments also when testing link options.
86 include: Remove no longer needed dependency on setjmp.h.
87 kernel32: Move some handle functions to kernelbase.
88 kernel32: Move delay-load functions to kernelbase.
89 kernel32: Move file time functions to kernelbase.
90 kernel32: Move NUMA-related functions to kernelbase.
91 kernel32: Move some misc functions to kernelbase.
92 oleaut32: Split DispCallFunc() into platform-specific functions.
93 oleaut32: Implement DispCallFunc() for ARM64.
94 make_specfiles: Don't add forwards to the api-ms-* dlls.
95 oleaut32: Return value pointer needs to be in x8 on ARM64.
96 rpcrt4: Add stubless proxy support for ARM64.
97 winegcc: Update __stdcall defines for ARM platforms.
98 winegcc: Centralize argument parsing into the main switch.
99 kernelbase: Use set_ntstatus() in more places.
100 msvcrt: Move vtbl wrappers together with the other functions.
102 Alistair Leslie-Hughes (6):
103 wininet: Pass correct server name when retrieving username information.
104 wininet: Update session username/password when cached credentials are used.
105 wininet: Clear cached credentials in INTERNET_OPTION_END_BROWSER_SESSION.
106 wininet: Use username/password parameters over cached credentials.
107 bcrypt: Fix key_asymmetric_init function for macos.
108 dsound: Primary buffer doesn't support flag DSBCAPS_CTRLFX.
111 winex11.drv: Throttle calls to XResetScreenSaver.
112 winebus.sys: Fix build without Linux event support.
113 msvcrt: Implement %T format for strftime.
116 user32/tests: Test GetWindowInfo error conditions and incorrect cbSize.
117 user32: Fix behavior of GetWindowInfo(0, NULL).
118 d2d1: Only create shader resource views for drawable bitmaps.
121 include: Pick up the ms_hook_prologue attribute for Clang, too.
123 Dmitry Timoshkov (7):
124 rpcrt4: Implement wait_for_incoming_data() for named pipes transport.
125 rpcrt4: Implement NdrAsyncServerCall.
126 rpcrt4: Implement RpcAsyncCompleteCall for server side.
127 shell32: Return S_OK from IDropTargetHelper::Show().
128 rpcrt4: Remove FIXME about RPC_CONTEXT_HANDLE_FLAGS from NDRSContextMarshall2 and NDRSContextUnmarshall2.
129 rpcrt4: Perform the INITOUT phase in NdrAsyncServerCall instead of RpcAsyncCompleteCall.
130 rpcrt4: Reimplement rpcrt4_conn_np_wait_for_incoming_data() using asynchronous read with zero sized buffer.
133 shell32: Prevent text truncation inside the old "browse folder" dialog.
135 François Gouget (11):
136 ieframe/tests: Fix the name of an unused function parameter.
137 ieframe/tests: Fix the spelling of an ok() message.
138 glu32: Fix the spelling of some comments.
139 gdiplus: Fix a function name in a FIXME() message.
140 gdi32: Fix the spelling of some comments.
141 winmm: Avoid a couple of unneeded lstrlenW() calls.
142 kernel32/tests: Fix the spelling of the exerciseServer() function name.
143 jscript/tests: Fix the spelling and slightly reword an ok() message.
144 kernel32/tests: Fix the spelling of three ok() messages and comments.
145 dxerr9: Fix the spelling of some error messages.
146 jscript/tests: Fix the spelling of a couple of jscript ok() messages.
148 Gabriel Ivăncescu (7):
149 vbscript: Add support for the SCRIPTTEXT_ISEXPRESSION flag in ParseScriptText.
150 vbscript/tests: Add tests for ParseScriptText with the SCRIPTTEXT_ISEXPRESSION flag.
151 vbscript: Add support for the SCRIPTPROC_ISEXPRESSION flag in ParseProcedureText.
152 vbscript/tests: Add test for ParseProcedureText with the SCRIPTPROC_ISEXPRESSION flag.
153 vbscript: Handle NULL code text in ParseScriptText and ParseProcedureText.
154 msscript.ocx: Partially implement IScriptControl::ExecuteStatement.
155 msscript.ocx/tests: Add tests for IScriptControl::ExecuteStatement.
158 wbemprox: Add support for CIM_REAL32 values.
159 wbemprox: Implement Win32_BIOS.CurrentLanguage.
160 wbemprox: Implement more Win32_OperatingSystem properties.
161 wbemprox: Implement more Win32_PhysicalMemory properties.
162 wbemprox: Implement Win32_WinSAT.
163 wbemprox: Avoid a crash when a class is not implemented.
164 wbemprox: Map CIM_UINT16 and CIM_UINT32 to VT_I4 by default.
165 wbemprox: Implement Win32_DisplayControllerConfiguration.
166 bcrypt: Add support for generating RSA keys.
167 bcrypt: Implement BCryptSignHash.
168 webservices: Simplify WsAddressMessage.
169 webservices: Add support for writing WS_ENUM_TYPE values.
170 webservices: Add support for mapped HTTP headers.
171 ws2_32: Call the completion routine in GetAddrInfoExW.
174 wined3d: Add GPU information for AMD VEGA12.
175 wined3d: More accurately determine whether a separate sRGB texture is required.
176 wined3d: Explicitly initialise sRGB format info.
177 wined3d: Retrieve the supported sample counts for Vulkan formats.
178 wined3d: Initialise the multi-sample draw location for the Vulkan adapter.
179 wined3d: Use wined3d_resource_gl_legacy_map_flags() in wined3d_buffer_gl_map().
180 wined3d: Derive the GL bind point for buffer object maps from the bind flags.
181 wined3d: Use explicit flushing in wined3d_context_gl_unmap_bo_address().
182 wined3d: Move the "buffer_object" field from struct wined3d_buffer_gl to struct wined3d_buffer.
183 wined3d: Use wined3d_context_map_bo_address() in wined3d_buffer_gl_map().
184 wined3d: Merge wined3d_buffer_gl_map() and buffer_resource_sub_resource_map().
185 wined3d: Merge wined3d_buffer_gl_unmap() and buffer_resource_sub_resource_unmap().
186 wined3d: Make the adapter responsible for clearing UAVs.
187 wined3d: Make the adapter responsible for copying between buffer objects.
188 wined3d: Handle typeless formats in surface_cpu_blt().
191 jscript: Use wide-char literals in lexer.
192 scrobj: Add partial DllInstall implementation.
193 scrobj/tests: Add scriptlet tests.
194 scrobj: Add scriptlet factory stub implementation.
195 scrobj: Add beginning scriptlet parser implementation.
196 scrobj: Add registration element parser.
197 scrobj: Add public element parser implementation.
198 scrobj: Add script element parser partial implementation.
199 scrobj: Suport scriptlet registration.
200 scrobj: Add stub IActiveScriptSite implementation.
201 scrobj: Add IActiveScriptSiteWindow stub implementation.
202 scrobj: Add IServiceProvider stub implementation.
203 scrobj: Create script engine instances for script hosts.
204 kernel32/tests: Enable debug break exception race tests on i386 Wine.
205 winegcc: Use -print-libgcc-file-name to find libgcc.
206 scrobj: Add scriptlet instance stub implementation.
207 scrobj: Parse scripts in DllInstall.
208 scrobj: Create script hosts for scriptlet instance.
209 scrobj: Implement GetItemInfo.
210 scrobj: Run scripts when creating a scriptlet instance.
211 ole32: Lock spies list when iterating it.
212 ole32/tests: Add more initialization spies tests.
213 include: Add threadpoolapiset.h file.
214 msscript.ocx: Fix VARIANT access.
215 scrobj: Zero initialize scriptlet instance.
216 scrobj: Add property element parser support.
217 scrobj/tests: Add property element tests.
218 scrobj: Store script dispatch in script host.
219 scrobj: Lookup object members implementations in scripts when createating scriptlet instance.
220 scrobj: Add GetDispID implementation.
221 scrobj: Add InvokeEx implementation.
222 scrobj: Use ReadValueChunk to read script body.
223 scrobj: Improve debug traces.
224 scrobj: Ignore processing instructions in scriptlet files.
227 msscript/tests: Initialize custom engine for global.
228 msscript: Cache state of IActiveScript in ScriptHost struct.
229 msscript: Partially implement IScriptControl::AddCode().
232 kernelbase: Fix PathAllocCanonicalize handling segments that contain dots.
235 ntdll: Fix the Mac build with SDKs older than 10.14.
236 include: Always generate CFI directives on macOS.
239 winbase.h: Add GetFinalPathNameByHandle declaration.
240 atlbase.h: Add AtlComModuleRevokeClassObjects declaration.
241 winegcc: Correctly pass the '-' file name (stdin) to the compiler.
242 oleaut32: Fix RegisterTypeLib prototype.
245 d3dx9: Simplify unsupported format check.
246 d3dx9: Relax a block alignment check.
247 d3dx9/tests: Add a test for loading surfaces not divisible by the block size.
248 d3dx9/tests: Add a test for loading a texture smaller than the block size.
249 d3dx9/tests: Add a test with a larger DXT5 texture.
250 d3dx9/tests: Add more tests loading misaligned block textures.
251 d3dx9/tests: Add even more tests for misaligned block textures.
252 d3dx9: Add traces to filtering functions.
253 d3dx9: Handle compressed surfaces in D3DXLoadSurfaceFromMemory.
254 d3dx9/tests: Improve tests to check for DXTn fallback formats.
255 d3dx9: Move the source rect alignment check into the condition for simple copy.
256 d3dx9: Handle non-zero source rect position in D3DXLoadSurfaceFromMemory().
257 d3dx9: Implement DXTn compression for offset destination rect.
258 d3dx9: Don't pass the D3DLOCK_DISCARD flag when mapping a texture.
259 d3dx9: Compute the correct source rect in D3DXLoadSurfaceFromFileInMemory().
262 wine.inf: Create the WindowsMediaVersion key and set its default value.
264 Michael Stefaniuc (1):
265 widl: Add the ARRAY_SIZE() macro.
268 d3d10_1/tests: Add a test for creating SRV for resource without D3D10_BIND_SHADER_RESOURCE.
269 d3d10core/tests: Add a test for creating SRV for resource without D3D10_BIND_SHADER_RESOURCE.
270 d3d11/tests: Add a test for creating SRV for resource without D3D11_BIND_SHADER_RESOURCE.
271 dwrite: Sort localized strings by locale name.
272 mfplat: Add Media Session attributes for tracing.
273 mf: Add stub implementation for standard quality manager.
274 mf: Create topology loader of session creation.
275 mf: Create quality manager on session creation.
276 mf: Remove fixme trace for partially handled functionality.
277 wined3d: Fail SRV creation for resources without corresponding bind flag.
278 mf: Fix stream IID loader should be testing for.
279 mf: Add initial async implementation of SetTopology().
282 wined3d: Allow loading buffers mapped through system memory.
285 winebus.sys: Stop deviceloop_thread to avoid crash on driver unload.
286 winebus.sys: Stop device report threads to avoid crash on driver unload.
287 ntdll: Ignore ExceptionFlags changes done by exception handlers.
288 mountmgr.sys: Null terminate serial_search_paths and parallel_search_paths tables.
289 mountmgr.sys: Always add all user-defined ports.
290 winebus.sys: Don't do anything in udev_driver_unload if udev was not initialized.
291 winebus.sys: Don't do anything in iohid_driver_unload if iohid was not initialized.
292 winebus.sys: Stop SDL deviceloop_thread to avoid crash on driver unload.
293 msxml3: Don't return NULL namespace and local name in saxreader callbacks.
296 winex11.drv: Destroy old clipping message window if it has been replaced.
297 ntoskrnl.exe: Use case-insensitive driver name comparison.
298 ntoskrnl.exe: Update the interface if it is already in the tree.
299 winebus.sys: Use the SDL joystick index as device id instead of instance id.
300 winebus.sys: Report the native product string for some Xbox gamepads.
301 winex11.drv: Handle FocusIn/NotifyGrab and FocusOut/NotifyUngrab events.
303 Sebastian Lackner (1):
304 ntdll: Execute queued APCs before starting a process.
307 httpapi: Fix a memory leak (Valgrind).
308 httpapi/tests: Initialize response_buffer to 0 (Valgrind).
309 httpapi/tests: Cancel a pending receive request (Valgrind).
310 msi: Fix a leak on error path (Coverity).
311 kernelbase: Fix a leak on error path (Coverity).
312 httpapi/tests: Use CancelIo to avoid a test failure on Windows XP.
315 mscoree: Update Wine Mono to 4.9.3.
317 Zebediah Figura (53):
318 winegstreamer: Store the pin media type directly.
319 winegstreamer: Improve some trace messages.
320 winegstreamer: Use the "format" field to determine the subtype and bit depth.
321 winegstreamer: Factor out amt_from_gst_caps().
322 configure: Also try /usr/lib32/pkgconfig/ for the 32-bit PKG_CONFIG_PATH.
323 winegstreamer: Set lSampleSize in amt_from_gst_caps_audio().
324 winegstreamer: Set bFixedSizeSamples in amt_from_gst_caps_audio().
325 winegstreamer: Clear bTemporalCompression in amt_from_gst_caps_audio().
326 winegstreamer: Also set cbFormat when using WAVE_FORMAT_PCM.
327 user32: Return -1 from peek_message() on error.
328 server: Validate the filter window handle in get_message.
329 winegstreamer: Move more common pin initialization into create_pin().
330 winegstreamer: Introduce a callback for filter-specific initialization.
331 winegstreamer: Reimplement the WAVE parser ontop of the wavparse plugin.
332 winex11: Track the client colormap separately.
333 winegstreamer: Fix registration for the WAVE parser.
334 winegstreamer: Clear bFixedSizeSamples in amt_from_gst_caps_video().
335 winegstreamer: Set lSampleSize to 1 in amt_from_gst_caps_video().
336 winegstreamer: Don't set the source and target rects in amt_from_gst_caps_video().
337 winegstreamer: Reimplement the AVI splitter on top of the avidemux plugin.
338 winegstreamer: Reimplement the MPEG splitter on top of the mpegaudioparse plugin.
339 quartz: Get rid of the no longer used base parser.
340 wined3d: Fully clean up the device state in wined3d_device_uninit_3d().
341 wined3d: Reset the CS state before cleaning up the device state.
342 wineqtdecoder: Use BasePinImpl_QueryAccept() and BasePinImpl_EnumMediaTypes().
343 strmbase: Don't expose EnumMediaTypes_Construct().
344 strmbase: Get rid of the version fields from IEnumMediaTypesImpl.
345 strmbase: Get rid of the "enumMediaFunction" field from IEnumMediaTypesImpl.
346 strmbase: Get rid of the BasePin typedef.
347 strmbase: Rename pfnCheckMediaType() to pin_query_accept().
348 strmbase: Rename pfnGetMediaType() to pin_get_media_type().
349 strmbase: Pass an unsigned index to pin_get_media_type().
350 qcap/vfwcapture: Use more strmbase pin methods.
351 qcap/smartteefilter: Use BasePinImpl_EnumMediaTypes().
352 strmbase: Introduce BasePinImpl_QueryInterface().
353 strmbase: Use BasePinImpl_QueryInterface().
354 quartz: Use BasePinImpl_QueryInterface().
355 qcap: Use BasePinImpl_QueryInterface().
356 quartz/tests: Alter test.mpg to avoid some failures.
357 wined3d: Return a wined3d_stateblock from wined3d_device_begin_stateblock().
358 d3d9: Track the primary stateblock state locally.
359 d3d8: Track the primary stateblock state locally.
360 wined3d: Introduce wined3d_stateblock_set_vs_consts_f().
361 d3d9: Handle stateblocks in d3d9_device_SetVertexShaderConstantF().
362 d3d8: Handle stateblocks in d3d8_device_SetVertexShaderConstant().
363 ntdll: Implement NtQueryInformationFile(FileAttributeTagInformation).
364 kernelbase: Implement GetFileInformationByHandleEx(FileAttributeTagInfo).
365 strmbase: Don't execute OnStartStreaming() or OnStopStreaming() callbacks if the sink is unconnected.
366 quartz/tests: Add some tests for unconnected filter state change.
367 qcap/avico: Don't try to commit a NULL allocator in AVICompressor_Run().
368 qcap/tests: Add some tests for unconnected filter state change.
369 qcap/smartteefilter: Use strmbase filter state change methods.
370 strmbase: Rename "pConnectedTo" to "peer".
373 user32: Don't report mirrored slave monitors in EnumDisplayMonitors.
374 kernelbase: Comment out DECLSPEC_HOTPATCH for GetThreadLocale.
375 kernelbase/tests: Add more PathAllocCanonicalize tests.
376 gdi32/tests: Fix a test failure on Win10 1809.
377 gdi32/tests: Add CreateDC tests.
378 winex11.drv: Initialize display devices before getting primary desktop rectangle.
379 winex11.drv: Add virtual desktop display device handler.
380 winex11.drv: Support XRandR display device handler.
381 winex11.drv: Handle XRandR display device changes.
382 winemac.drv: Trace display device counts.
383 winex11.drv: Trace display device counts.
384 winex11.drv: Handle XRandR not reporting any providers.