1 The Wine development release 5.18 is now available.
3 What's new in this release (see below for details):
4 - Vulkan shader compilation using the new vkd3d-shader library.
5 - USER32 library converted to PE.
6 - Console no longer requires the curses library.
7 - Support for display modes with various orientations.
8 - A number of syntax fixes in the WIDL compiler.
9 - Non-recursive makefiles.
12 The source is available from the following locations:
14 https://dl.winehq.org/wine/source/5.x/wine-5.18.tar.xz
15 http://mirrors.ibiblio.org/wine/source/5.x/wine-5.18.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 5.18 (total 42):
33 10603 IDirectSoundBufferImpl_SetFX needed for sound effects in several games
34 18670 QIP Infium 2.0 build 9030 crashes on exit (needs a proper implementation of WSACleanup)
35 21232 Multiple games and applications (Chromium-based browser engines, Blizzard games, League of Legends) crash due to hooking/anticheat validation (needs syscall thunks in ntdll.dll)
36 22749 Hard link creation from a Finddupe-generated batch file fails ('fsutil.exe' needs to support 'hardlink create' command)
37 35467 Multiple games crash on unimplemented function msvcirt.dll.??0fstream@@QAE@PBDHH@Z (Lock On: Modern Air Combat, TRON 2.0)
38 36960 Avencast: Rise of the Mage fails to start (D3DXCreateTextureFromFileA failed)
39 37254 wineconsole/curses.c fails to build on NetBSD 6.1.4
40 37491 wineconsole requires/uses TERM environment variable
41 37644 .NET console applications using System.Console.Clear() crash when directly started in terminal
42 38964 widl: inconsistent null pointer checks in typelib writer
43 39469 PreSonus Studio One 3 says it requires Windows 7 SP1 (d3d11 '{bb2c6faa-b5fb-4082-8e6b-388b8cfa90e1}', 'ID3D11DeviceContext1' not implemented)
44 43107 The Witcher 3 fails to detect dx11 - registry dx11>opengl applied
45 44422 Vectric Aspire 9 : it does not load 3d images
46 45433 dark souls 3: cannot change resolution in fullscreen mode
47 45573 League of Legends 8.12+ fails to start a game (anticheat engine, hooking of syscall return instructions)
48 45797 NVIDIA GeForce Experience 3.x installer fails due to 'mshtml.OleObject_{Get,Set}Extent' stubs
49 47251 add support for ConPTY API (pseudo console)
50 47491 dinput event queue is overflowing and stalling the whole game/wineserver
51 48396 'cmd.exe /c move file1 file2' doesn't respect non-interactive mode, causing prompt for overwrite if destination file exists
52 48397 'cmd.exe /c move file1 file2' doesn't overwrite existing destination file in non-interactive mode
53 48952 NVDA hangs on start
54 49038 O.E.D. v 4.0 (Oxford English Dictionary) No longer starts.
55 49206 ITHVNR: hooked processes segfault
56 49309 vbscript:run test fails in Japanese locale
57 49335 Dolphin EasyReader for Windows 6.04 (TTS app) crashes after completing startup wizard (needs IMarkupServices::CreateMarkupPointer method implementation)
58 49343 Neverwinter Online: Launcher crash on Startup
59 49532 .NET 4.0 and higher fail to install via winetricks
60 49591 Multiple GOG installers display the error message "Out of Global Vars range"
61 49624 Protocol error: process 0020: recvmsg: Message too long on mac OS
62 49643 Calling ClipCursor too frequently can cause stack overflow in foreground window thread.
63 49647 wine 5.14 build fails in winegstreamer on Ubuntu 16.04 and Debian 9
64 49738 "warning: implicit declaration of function ‘strtoumax’" when compiling PuTTY with Winelib
65 49765 SlingPlayer Desktop crashes on unimplemented function msvcrt._snprintf_c
66 49770 Firestorm viewer crashes
67 49774 macDriver no longer functions within macOS VM
68 49806 WIDL doesn't tolerate attribute [hidden] within enums.
69 49811 cmd /c "cd "directory"&&"somecommand.exe"" tries to cd to "directory"&&"somecommand.exe"
70 49820 VBScript fails to parse decimal literals between -1 and 1 without 0 in front
71 49834 45a63e5b3ce0e5d7fcc55ce57f315086b87f8ad7 breaks binary compatibility with 5.0 on passing main() argc
72 49847 Logos Bible 8: wineserver always using 100% CPU core
73 49850 No One Lives Forever crashes due to GetMotif stub in dmstyle
74 49889 wineserver shows failed assertion on shutdown
76 ----------------------------------------------------------------
81 vbscript: Support non-Latin 1 characters in Asc.
83 Alexandre Abgrall (1):
84 msxml3: Fix value of 'fetched' in IEnumVARIANT::Next() for IXMLDOMSelection.
86 Alexandre Julliard (34):
87 vbscript: Add support for translating messages.
88 kernel32/tests: Avoid assumptions about the current working directory.
89 makefiles: Generate a single non-recursive makefile at the top level.
90 makefiles: Regenerate po files with full path information.
91 makefiles: Remove .. components from generated paths.
92 makefiles: Remove directory variables that are redundant with non-recursive make.
93 ntdll: Update argc when changing process name.
94 makefiles: Only add default libraries for Unix builds.
95 makefiles: Don't use default imports for Unix libraries.
96 makefiles: Define WINE_UNIX_LIB when building Unix libraries.
97 include: Don't use IsBadStringPtr in debug functions for Unix libraries.
98 crypt32: Move GnuTLS-specific helpers into the #ifdef.
99 ntdll: Add support for loading a Unix helper library from builtin dlls.
100 user32: Move PNG support to a new Unix library.
101 user32: Build with msvcrt.
102 user32: Use wide character string literals.
103 user32: Use wide character string literals for system parameter entries.
104 ntdll: Add inline wrappers for pthread mutex locking.
105 ntdll: Don't lock mutexes during process exit.
106 server: Add an object operation to retrieve an object name.
107 server: Return the device name for device files.
108 server: Return the device name for mailslot files.
109 server: Return the device name for named pipe files.
110 server: Implement object name information for registry keys.
111 server: Pass all creation arguments to the device creation functions.
112 server: Use OBJ_PERMANENT for permanent objects.
113 server: Rename make_object_static() to make_object_permanent().
114 server: Keep permanent objects on the standard object list.
115 server: Restart search from the start when releasing permanent objects at exit.
116 server: Initialize the object permanent flag.
117 makefiles: Don't build Unix object files on Windows.
118 include: Also define gethostname for msvcrt builds.
119 kernel32: Get rid of obsolete 16-bit relay functions.
120 kernel32: Make export directory writable to set FT_Thunk to 0.
122 Alistair Leslie-Hughes (6):
123 ws2_32: Map AI ALL_option in getaddrinfo().
124 include: Add inclusion guards for schema API enums.
125 include: Remove coclasses that don't belong to msxml6.idl.
126 xactengine3_7: Return S_OK from IXACT3Cue Destroy.
127 dmband: Semi-stub IDirectMusicBand CreateSegment.
128 dmstyle: Implement IDirectMusicStyle8 GetBand.
131 amstream: Implement AMDirectDrawStream::SetState.
132 amstream: Implement AMDirectDrawStream::EndOfStream.
133 amstream: Call ::SetFormat in AMDirectDrawStream::CreateSample.
134 amstream: Implement AMDirectDrawStream::Receive and IDirectDrawStreamSample::Update.
137 po: Update Lithuanian translation.
138 po: Update Lithuanian translation.
139 po: Update Lithuanian translation.
142 include/ddraw.h: Add missing members in DDPIXELFORMAT struct.
143 include/ddraw.h: Add missing UpdateOverlay flags.
144 include/ddraw.h: Add missing DDSCAPS2.dwCaps2 flags.
145 include/ddraw.h: Add DDSCAPS2.dwCaps3 flags.
146 include/ddraw.h: Add missing dwFlags of DD_BLTDATA struct.
149 wininet: Implement INTERNET_OPTION_SECURITY_CERTIFICATE flag for InternetQueryOption.
151 Dmitry Timoshkov (4):
152 setupapi/tests: Add explicit field for inf contents size.
153 setupapi: Treat trailing \0 in field values same way as trailing spaces.
154 sxs: Return correct path from IAssemblyCache::QueryAssemblyInfo().
155 crypt32: Fix conversion of CRYPT_KEY_PROV_INFO between store and certificate property.
158 gdiplus/tests: Don't test point type array padding.
161 vbscript: Fix the spelling of the delimiter* variables.
162 ntdll: Fix the spelling of the arch_context_parameters variable.
163 ntdll/tests: Fix the spelling of a couple of ok_() messages.
164 conhost/tests: Fix the spelling of a comment message.
165 msvcirt/tests: Fix the spelling of a couple of ok() messages.
168 winevulkan: Add is_alias for VkFunctionPointer.
169 winevulkan: Forward declare required structs for function pointer.
172 msvcr120: Add [_]strtoimax[_l] and [_]strtoumax[_l].
173 msxml3/tests: Add more iteration tests for IXMLDOMNamedNodeMap, IXMLDOMSchemaCollection and IXMLDOMNodeList.
174 msxml3: Support Reset() for IEnumVARIANTs created by create_enumvariant.
175 msxml3: Support retrieving more than one element in IEnumVARIANT::Next() for IXMLElementCollection.
176 msvcrt: Add _s[w|n]printf_c[_l].
177 msvcrt: Fix _snprintf_l function signature.
178 msvcrt: Add _snprintf_s_l.
179 msvcirt: Set error when file can't be opened in fstream_open_ctor.
180 msvcirt: Implement ofstream class.
181 mshtml: Implement IOleObject::[Get|Set]Extent.
182 dwmapi: Implement DwmIsCompositionEnabled.
185 conhost: Add missing LeaveCriticalSection.
186 ws2_32: Add missing LeaveCriticalSection.
187 conhost: Input should be restored and input_thread handle should be closed before return.
190 crypt32: Set key context if PKCS12_NO_PERSIST_KEY is passed, otherwise set key provider info.
191 crypt32: Add support for CRYPT_MACHINE_KEYSET in PFXImportCertStore.
194 gdiplus: Implement GdipEnumerateMetafileSrcRectDestRect.
197 wined3d: Do not accumulate ended queries in wined3d_query_vk_poll().
198 wined3d: Implement shader_spirv_compile_vk().
199 wined3d: Implement sample masks for the Vulkan adapter.
202 conhost: Introduce IOCTL_CONDRV_READ_CONSOLE ioctl.
203 conhost: Add support for ENABLE_ECHO_INPUT.
204 conhost: Add support for ENABLE_LINE_INPUT.
205 kernel32: Use IOCTL_CONDRV_READ_CONSOLE in ReadConsoleW when possible.
206 kernel32: Use NtDeviceIoControlFile directly for IOCTL_CONDRV_READ_CONSOLE and IOCTL_CONDRV_WRITE_CONSOLE.
207 conhost/tests: Improve handling slow conhost replies.
208 conhost/tests: Allow clear screen on console exit.
209 conhost/tests: Add ReadConsole tests.
210 conhost: Free screen buffer data in destroy_screen_buffer.
211 server: Introduce console_connection object.
212 kernelbase: Create console connection in init_console.
213 server: Allow creating unbound console connection objects.
214 server: Introduce IOCTL_CONDRV_BIND_PID ioctl.
215 server: Support creating console reference from console connection object.
216 kernelbase: Use console connection object in AttachConsole.
217 server: Remove no longer used attach_console request.
218 conhost: Explicitly set tty cursor position after updating output in write_console.
219 conhost: Signal console in tty_input if needed.
220 conhost: Terminate current read request when input when reading tty input fails.
221 conhost: Introduce Unix mode.
222 conhost: Use CP_UNIXCP in Unix mode.
223 conhost: Force using relative cursor positioning in update_read_output.
224 conhost: Delay creating input thread in Unix mode.
225 server: Introduce IOCTL_CONDRV_SETUP_INPUT ioctl.
226 conhost: Use IOCTL_CONDRV_SETUP_INPUT to initialize input in Unix mode.
227 kernelbase: Move force override logic to init_console_std_handles callers.
228 ntdll: Pass RTL_USER_PROCESS_PARAMETERS to get_initial_console.
229 ntdll: Fill console size in get_initial_console.
230 kernelbase: Use conhost to handle Unix consoles.
231 kernel32: Remove no longer used bare console support.
232 conhost: Fix a leak in create_screen_buffer.
233 wineconsole: Remove curses backend.
234 configure: Remove curses checks.
235 server: Remove support for creating bare consoles.
236 kernelbase: Move ReadConsoleInput.
237 kernel32: Move Beep implementation to conhost.
238 kernel32: Move Beep() to kernelbase.
239 conhost: Improve bound checking in fill_output.
240 kernelbase: Duplicate input and output handles to ensure that they are inheritable.
241 conhost/tests: Don't use inheritable handle for console pipe end.
242 conhost: Terminate pseudo console on input error.
243 user32: Support control characters in null driver VkKeyScanEx implementation.
246 comctl32: Implement WM_GETTEXTLENGTH for datetime picker.
249 iphlpapi: Rename local variables shadowing the flags parameters.
252 rpcrt4: Fix ARM64 stack corruption in call_server_func.
253 oleaut32/tests: Reformat test_dump_typelib.
254 oleaut32/tests: Fix expect_wstr_acpval(...,NULL).
255 widl: All VARDESC fields of TKIND_UNION should have oInst=0.
256 oleaut32/tests: Cover GetVarDesc in test_dump_typelib.
257 widl: Remove duplicate '\n\n' in midl_info_guid.
259 Liam Middlebrook (1):
260 winevulkan: Update to VK spec version 1.2.154.
263 ntdll: Implement __C_specific_handler and _local_unwind for arm64.
266 ntdll: Implement NtFilterToken.
267 server: Implement support for creating a process with a specified token.
269 Michael Stefaniuc (13):
270 directmanipulation: Print the debug string and not the pointer to it.
271 winegstreamer: Drop redundant NULL check before heap_free().
272 xactengine3_7: Remove superfluous cast to self.
273 advapi32: Remove superfluous cast to self.
274 gdiplus/tests: Use the ARRAY_SIZE() macro.
275 windowscodecs/tests: Use the ARRAY_SIZE() macro.
276 qedit: Drop redundant NULL check before free().
277 dmime: Reimplement IPersistStream_Load() for SegTrigger track.
278 dmime: Simplify the parse_segments_list() helper.
279 dmime: Reimplement the segment item parser.
280 dmime: dmutils.h is no longer needed.
281 dmime: Get rid of the DMUS_PRIVATE_SEGMENT_ITEM typedef.
282 dmcompos: Remove the unused DMUS_PRIVATE_CHUNK struct.
285 msvcr120: Add imaxabs.
286 shell32: Add ShellLinkObject stubs.
287 shell32: Implement ShellLinkObject::get_Path.
288 sapi: Add AudioOutput registry keys.
289 sapi: Improve GetDefaultTokenId stub.
290 sapi: Fix MMAudioOut registry key location.
291 sapi: Add stubs for SpObjectToken.
292 sapi: Improve stub for ISpObjectToken::SetId.
293 dmstyle: Return S_FALSE for IDirectMusicStyle8::GetMotif.
294 dmband: Avoid cloning stream in parse_bands_list.
297 include: Add some missing types to msxml6 typelib.
298 include: Handle same typelib name in msxml2.idl and msxml6.idl.
299 widl: Emit a guard around library contents.
300 combase: Use public symbol for special PS context flag.
301 ole32: Remove some leftovers from private header.
302 combase: Manage per-thread call cancellation counter.
303 oleacc: Use wide string constants.
304 oleacc/tests: Use wide string constants.
305 evr/mixer: Handle uninitialized input case in GetOutputAvailableType().
306 evr/tests: Add a test for returned input type instance.
307 dxva2: Implement CreateSurface().
308 dxva2: Return single software device for GetVideoProcessorDeviceGuids().
309 ole32/clipboard: Use wide string constants.
310 ole32/comcat: Use wide string constants.
311 dxva2: Return some static render target formats.
312 evr/mixer: Fix error handling in output types collection helper.
313 winedbg: Double dll name buffer size for unimplemented function exception.
314 include: Add an entry for ProcessIoPriority.
315 kernel32/tests: Link to more functions directly.
316 kernel32/tests: Add a test for PROC_THREAD_ATTRIBUTE_HANDLE_LIST.
317 server: Implement inherited handles list.
318 widl: Enable [hidden] attribute for enums.
319 widl: Allow [hidden] attribute on enum members.
320 widl: Add null source pointer check for typelib writer.
321 widl: Allow [restricted] for coclass-es.
322 comctl32/datetime: Do not call default procedure for WM_NCCREATE.
323 comctl32/tests: Use wide strings literals.
326 d3d11: Avoid crash in _CopySubresourceRegion[1]() on NULL resources.
327 d3d10core/tests: Add test for NULL resource parameters for _CopySubresourceRegion().
328 msvcrt/tests: Test .{O|A}CP locale string.
329 wmc: Add Dxgi facility.
330 kernel32: Add string for DXGI_INVALID_CALL error.
331 kernel32: Add string for DXGI_ERROR_NOT_CURRENTLY_AVAILABLE error.
332 ntdll/tests: Test named pipe with empty name.
333 wined3d: Track resource binding as render target.
334 wined3d: Don't check for readonly depth / stencil in context_preload_texture().
335 wined3d: Track SRV to RTV aliasing on sub resource level.
336 msvcrt: Implement _mbsnextc_l().
337 msvcrt: Implement _mbscmp_l().
338 msvcrt: Implement _mbbtype_l().
341 gdiplus: Initialize the dead point coordinates in "GpPointF, *ptf" to 0.
342 conhost: Validate width param in write_output.
345 d3d9: Lock wined3d mutex in d3d9_device_CreateTexture().
346 msvcrt: Fix buffer overflow in _write function.
347 msvcrt: Fix _vs{w,n}printf_c function when terminating character doesn't fit into buffer.
348 msvcrt: Fix count parameter type in printf functions family.
349 msvcirt: Set error when file can't be opened in ifstream_open_ctor.
350 msasn1: Fix buffer allocations.
351 msvcrt: Use default user locale when only codepage is passed to setlocale.
352 msvcrt: Fix console detection in _write.
353 server: Don't create wait object if infinite timeout is passed to NtSetTimer.
354 server: Don't overflow if timeout doesn't fit into int range in get_next_timeout.
355 setupapi: Remove unused end parameter from next_xml_attr internal function.
356 setupapi: Copy all files specified in manifest on wine dll install.
357 gdi32: Share font_gamma_ramp structure between all DCs.
360 vbscript: Parse decimal literals between -1 and 1 without 0 in front.
361 vbscript: Fix vanishing statements.
362 vbscript: Fix handling zero and negative number arguments in err.raise.
364 Roberto Pungartnik (1):
365 po: Brazilian Portuguese update.
368 gdi32/tests: Add test fonts with names in several languages.
369 gdi32: Look for another secondary font family name.
370 gdi32: Use explicit CDECL in gdi_image_bits.
371 gdi32: Use explicit CDECL in window_surface_funcs.
372 windowscodecs/tests: Add a simple JXR/WMP test case.
373 windowscodecs: Support JXR/WMP detection and formats.
376 ntdll: Use the MacOS file handle limit workaround from libs/wine/loader.c.
379 ntdll: Fix some memory leaks (Valgrind).
381 Vijay Kiran Kamuju (1):
382 include: Remove duplicated defines in winnt.h.
385 msxml3: Fix a memory leak (Valgrind).
387 Zebediah Figura (23):
388 server: Create the Afd device.
389 server: Return a new, uninitialized socket when opening the Afd device.
390 server: Introduce IOCTL_AFD_CREATE.
391 ws2_32: Reimplement WSASocketW() on top of NtOpenFile() and IOCTL_AFD_CREATE.
392 server: Remove the no longer used create_socket request.
393 advapi32/tests: Test which tokens DuplicateHandle() validates access against.
394 advapi32/tests: Add more tests for CreateRestrictedToken().
395 kernelbase: Implement CreateRestrictedToken().
396 advapi32/tests: Add basic tests for CreateProcessAsUser().
397 ntdll: Pass the token to NtCreateUserProcess().
398 kernelbase: Pass the token to NtCreateUserProcess().
399 server: Check duplicated handle access against the calling thread token and target process token.
400 wined3d: Factor out wined3d_state_uses_depth_buffer().
401 winegstreamer: Don't set the buffer offset in request_buffer_src().
402 winegstreamer: Avoid leaking a newly allocated buffer on failure in request_buffer_src().
403 ws2_32: Translate WSA_FLAG_OVERLAPPED to NT overlapped flags.
404 ws2_32: Translate SIO_ADDRESS_LIST_CHANGE into a proper NT ioctl.
405 server: Move sock_ioctl() down to avoid forward declarations.
406 ws2_32/tests: Add more tests for WSASocket() parameters.
407 ws2_32: Always return WSAEINVAL if AF_UNSPEC is used with a zero protocol.
408 wined3d: Introduce a depth/stencil state object.
409 d3d11: Use wined3d depth/stencil state objects.
410 wined3d: Fully move the depth buffer enable state to wined3d_depth_stencil_state.
413 winex11.drv: If the end of the sequence is '\r\n', there is no need to add extra '\r'.
416 user32/tests: Fix a test failure.
417 user32/tests: Add display orientation tests.
418 winex11.drv: Sort display modes with orientation considered.
419 winex11.drv: Support finding a full display mode with specified orientation.
420 winex11.drv: Support display orientations for XRandR 1.4 display settings handler.
423 kernel32/tests: Add more tests for UpdateResource.
424 kernel32: Use uppercase name in UpdateResourceW().