1 The Wine development release 8.8 is now available.
3 What's new in this release:
4 - More work towards full PE support in the PostScript driver.
5 - Initial support for loading ARM64EC modules.
6 - More work on IME restructuration.
9 The source is available at:
11 https://dl.winehq.org/wine/source/8.x/wine-8.8.tar.xz
13 Binary packages for various distributions will be available from:
15 https://www.winehq.org/download
17 You will find documentation on https://www.winehq.org/documentation
19 You can also get the current source directly from the git
20 repository. Check https://www.winehq.org/git for details.
22 Wine is available thanks to the work of many people. See the file
23 AUTHORS in the distribution for the complete list.
25 ----------------------------------------------------------------
27 Bugs fixed in 8.8 (total 18):
29 - #33945 Wine build warnings with gcc
30 - #35254 Freemake Video Converter 4.1 installer complains about running Freemake processes (builtin 'findstr' stub app always returns "match")
31 - #48596 Multiple applications need tasklist.exe to support printing process list in CSV format '/fo CSV /nh' (Net64+ Client 2.x, Playstation Now 11.x, MathType)
32 - #49964 32-bit dxdiag doesn't support '/64bit' command line switch (launch 64-bit dxdiag)
33 - #50576 ACAT Phrase, part of Intel Assistive Context-Aware Toolkit (ACAT) v1.00.0 (.NET 4.5 app) crashes on unimplemented function 'uiautomationcore.dll.UiaNodeFromFocus'
34 - #51107 rise of nation extended: cannot do multiplayer when having more than one network interface
35 - #52269 Captvty can't find its own tools/cefsharp folder
36 - #53073 mfplat: unimplemented function while loading Devil May Cry 1
37 - #53826 Attempting to install / update battle.net fails with Qt error
38 - #54250 winedbg loads wrong debug symbols for builtin dlls
39 - #54367 Wow64 wineboot fails to generate 32Bit slice of wineprefix
40 - #54596 Wavelab 6.1 has problems minimising window
41 - #54733 Notepad3 crashes on unimplemented function SHLWAPI.dll.StrFormatByteSizeEx
42 - #54760 imm32:imm32 - test_ImmActivateLayout() fails on Windows
43 - #54864 imm32:imm32 - test_ImmSetOpenStatus() fails on Windows in the Korean locale
44 - #54879 RtlValidSecurityDescriptor should return TRUE if the given descriptor is valid.
45 - #54904 RtlInitializeSid should return NTSTATUS
46 - #54918 compiling nvcuda fails with threadpoolapiset.h:36:55: error: expected declaration specifiers before ‘__WINE_DEALLOC’
48 ----------------------------------------------------------------
53 ntdll: Fix return value of RtlInitializeSid().
54 ntdll: Fix RtlValidSecurityDescriptor() return value.
57 winemenubuilder: Skip desktop integration for certain associations.
59 Alexandre Julliard (23):
60 ntdll: Initialize TLS links also on the 64-bit side in wow64 mode.
61 ntdll: Add a helper function to read a PE image directory.
62 ntdll: Allow loading ARM64EC binaries.
63 ntdll: Apply dynamic relocations when mapping an ARM64X binary.
64 ntdll: Support the ARM64EC code map.
65 ntdll: Implement RtlIsEcCode().
66 ntdll: Handle the extended memory attributes in NtAllocateVirtualMemoryEx().
67 ntdll: Support the MEM_EXTENDED_PARAMETER_EC_CODE attribute.
68 server: Make x86_64 a supported architecture on ARM64.
69 ntdll: Pass limit instead of zero bits to internal memory mapping functions.
70 ntdll: Add a helper function to process MEM_EXTENDED_PARAMETER parameters.
71 ntdll: Support extended address requirements in NtMapViewOfSectionEx().
72 ntdll/tests: Add tests for address requirements in NtMapViewOfSectionEx().
73 wow64: Add a helper function to convert MEM_EXTENDED_PARAMETER.
74 wow64: Convert MEM_EXTENDED_PARAMETER also for NtMapViewOfSectionEx().
75 ntdll: Add a helper function to free a range of pages.
76 ntdll: Move the Unix function tables to avoid forward declarations, and make them static.
77 win32u: Don't export wow64 Unix call functions.
78 kernelbase: Move Wow64EnableWow64FsRedirection() from kernel32 to kernelbase.
79 win32u: Don't use floating point types in syscalls.
80 winebuild: Disallow floating point arguments in syscall functions.
81 server: Add a separate request to create a memory view for a .so builtin.
82 server: Move the Wine-specific flags out of the image_flags field.
84 Alistair Leslie-Hughes (1):
85 activeds: Free memory on error paths (coverity).
88 po: Update Lithuanian translation.
91 include: Add DXGI_DEBUG_D3D11 in d3d11sdklayers.idl.
94 include: Implement C_ASSERT() using the C11 _Static_assert() if available.
95 winemac: Initialize retina_on to avoid incorrect cached display data in high-res/retina mode.
98 combase: Check that process ID matches before searching the MTA for a stub manager.
101 vkd3d: Leave the command queue op mutex locked after a partial flush.
104 gdiplus: Traverse and draw the whole string.
105 shlwapi: Implement StrFormatByteSizeEx.
107 Davide Beatrici (18):
108 winealsa: Move SimpleAudioVolume into mmdevapi.
109 winecoreaudio: Use mmdevapi's SimpleAudioVolume.
110 wineoss: Use mmdevapi's SimpleAudioVolume.
111 winepulse: Use mmdevapi's SimpleAudioVolume.
112 winecoreaudio: Implement per-channel volume control.
113 mmdevapi: Remove unused "channel" member in set_volumes_params.
114 winealsa: Move ChannelAudioVolume into mmdevapi.
115 winecoreaudio: Use mmdevapi's ChannelAudioVolume.
116 wineoss: Use mmdevapi's ChannelAudioVolume.
117 winepulse: Use mmdevapi's ChannelAudioVolume.
118 winepulse: Move AudioStreamVolume into mmdevapi.
119 winealsa: Use mmdevapi's AudioStreamVolume.
120 winecoreaudio: Use mmdevapi's AudioStreamVolume.
121 wineoss: Use mmdevapi's AudioStreamVolume.
122 winepulse: Move AudioClock into mmdevapi.
123 winealsa: Use mmdevapi's AudioClock.
124 winecoreaudio: Use mmdevapi's AudioClock.
125 wineoss: Use mmdevapi's AudioClock.
128 evr: Fix incorrect integral computation.
129 winedump: Fix copy & paste error.
130 winegstreamer: Fix typo.
132 Etaash Mathamsetty (1):
133 kernelbase: Add GetPackagesByPackageFamily stub.
136 po: Update Dutch translation.
139 kernel32/tests: Use win_skip() for missing APIs.
140 kernelbase/tests: Use win_skip() for missing APIs.
143 winevulkan: Update to VK spec version 1.3.250.
146 webservices: Avoid uninitialized variable warning in format_double.
148 Giovanni Mascellani (11):
149 winegstreamer: Synchronize concurrent access to the media source.
150 winegstreamer: Synchronize concurrent access to the media stream.
151 winegstreamer: Synchronize access to the media source from callbacks.
152 mfplat/tests: Push image size and format as context.
153 mfplat/buffer: Use the appropriate image copy function for NV11.
154 mfplat/buffer: Support YV12, I420 and IYUV image formats.
155 mfplat/tests: Test large RGB image formats.
156 mfplat/tests: Test IMF2DBuffer::ContiguousCopyFrom().
157 mfplat/buffer: Implement IMF2DBuffer::ContiguousCopyFrom().
158 mfplat/tests: Test IMF2DBuffer::ContiguousCopyTo().
159 mfplat/buffer: Implement IMF2DBuffer::ContiguousCopyTo().
162 wordpad: Resize buttons of toolbar to make them align with height of the font list combox.
164 Michael Stefaniuc (4):
165 dxdiagn: Avoid assigning COM objects to interface variables.
166 dbgeng: Avoid casts to IUnknown* in IUnknown method calls.
167 d2d1: Remove superfluous casts to self.
168 wbemprox: Avoid assigning COM objects to interface variables.
171 include: Add hrtfapoapi.idl file.
172 hrtfapo: Add stub DLL.
173 hrtfapo: Add CreateHrtfApo() stub.
176 ntdll/tests: Add some tests for RtlInitializeSid().
177 ntdll: Fix subauthority count check in RtlInitializeSid().
178 ntdll/tests: Add some RtlValidSecurityDescriptor() tests.
179 mfplat: Implement MFCreatePathFromURL().
180 mfplat/tests: Add another test for MFCopyImage().
182 Olivier F. R. Dierick (1):
183 dxdiag: Ignore option /64bit on the commandline.
186 win32u: Partially implement NtUserDisplayConfigGetDeviceInfo(DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_PREFERRED_MODE).
187 d3dx9: Fix dst pitch for compressed format in D3DXLoadSurfaceFromMemory().
188 wbemprox: Bump video driver version and date.
189 ntdll: Retry send on ECONNREFUSED in try_send().
190 ntdll/tests: Add tests for freeing a part of view.
191 kernelbase: Validate nonzero size for MEM_RELEASE in VirtualFreeEx().
192 ntdll: Fix size validation in NtFreeVirtualMemory().
193 ntdll: Fully support unaligned views in free ranges management.
194 ntdll: Factor out some view manipulation functions.
195 ntdll: Support partial view release in NtFreeVirtualMemory().
196 ntdll: Add logging for free ranges.
199 gdi32: Ignore in_count parameter in Escape() on PASSTHROUGH escape.
200 gdi32: Support saving EMR_EXTESCAPE record in spool file.
201 gdi32: Return error in EndPage if it's called before StartPage.
202 win32u: Don't allow bitmap fonts if OUT_TT_ONLY_PRECIS output precision is specified.
203 wineps: Use only TrueType fonts in print processor.
204 Revert "wineps: Fix default device font selection.".
205 winspool: Change CUPS printers print processor to wineps.
206 wineps: Remove no longer used graphic driver functions.
207 wineps: Use designated initializers to initialize gdi_dc_funcs structure.
208 wineps: Store page size full name as unicode string.
209 gdi32: Handle NEXTBAND escape in Escape().
210 wineps: Remove no longer used NEXTBAND escape.
211 wineps: Copy GetDeviceCaps implementation to unixlib.
212 wineps: Copy ResetDC implementation to unixlib.
213 wineps: Move ExtEscape implementation to unixlib.
214 wineps: Store font related strings in unicode.
215 wineps: Copy SelectFont implementation to unixlib.
216 wineps: Move EnumFonts implementation to unixlib.
217 wineps: Move GetCharWidth implementation to unixlib.
218 wineps: Copy GetTextMetrics implementation to unixlib.
219 wineps: Copy GetTextExtentExPoint implementation to unixlib.
220 wineps: Use printer DC in print processor.
221 wineps: Change initial printer font to DEVICE_DEFAULT_FONT.
222 wineps: Introduce PSDRV_GET_GLYPH_NAME escape to obtain builtin glyph name from unixlib.
223 wineps: Remove unused fields from PSFONT structure.
224 wineps: Don't use BUILTIN structure on PE side.
225 wineps: Remove no longer used font selection code from PE side.
226 wineps: Remove no longer used PSDRV_StartDoc and PSDRV_EndDoc functions.
227 gdi32: Add device name to wine_get_gdi_driver call.
228 wineps: Move remaining DC driver functions to unixlib.
229 wineps: Rename PSDRV_PDEVICE structure to print_ctx.
230 wineps: Define PSDRV_PDEVICE structure in unixlib.
231 wineps: Remove gdi_physdev from print_ctx structure.
232 wineps: Remove unused fields from PSDRV_DEVMODE.
233 wineps: Use standard DEVMODEW structure instead of PSDRV_DEVMODE when possible.
234 wineps: Store data from PPD file used in unixlib in DEVMODE.
235 wineps: Store font substitution table in DEVMODE.
238 winegstreamer: Query the wg_parser stream in media_stream_create.
239 winegstreamer: Keep a IMFMediaSource pointer in the media stream.
240 winegstreamer: Only break cyclic references in IMFMediaSource_Shutdown.
241 winegstreamer: Remove unnecessary media source stream states.
242 riched20: Update the editor IME position on GCS_RESULTSTR.
243 winex11: Rename preedit buffer and related variables.
244 winex11: Simplify xic_preedit_draw control flow.
245 winex11: Compute preedit text buffer sizes in WCHAR units.
246 winex11: Always zero terminate XIM composition string buffer.
247 imm32/tests: Move IME calls test helpers around.
248 imm32/tests: Test cross-thread ImmRequestMessage(W|A) calls.
249 imm32: Use INPUTCONTEXT directly in ImmRequestMessage(W|A).
250 imm32/tests: Add more ImmProcessKey and ImmGetVirtualKey tests.
251 imm32/tests: Test ImmTranslateMessage / ImeToAsciiEx calls.
252 imm32: Ignore some messages in ImmTranslateMessage.
253 imm32: Clear vkey before calling ToAsciiEx in ImmTranslateMessage.
254 imm32: Post messages to the target window in ImmTranslateMessage.
255 imm32/tests: Adjust the ImmSetOpenStatus tests for MS Korean IME.
256 imm32/tests: Print human readable IME message names.
257 imm32/tests: Ignore some unknown WM_IME_NOTIFY messages.
258 imm32/tests: Add some missing local variables declarations.
259 imm32/tests: Test MS Korean IME GA-NA-DA sequence.
260 imm32/tests: Test MS Japanese IME NIHONGO-NO sequence.
261 winegstreamer: Return a IUnknown pointer from source_create_async_op.
262 winegstreamer: Avoid potential leak of media source async commands.
263 winegstreamer: Use helpers to convert stream descriptor type to wg_format.
264 winegstreamer: Start media streams in a dedicated media_stream_start helper.
265 winegstreamer: Simplify media source wait_on_sample control flow.
266 winegstreamer: Avoid eating errors in media source async commands.
267 winegstreamer: Keep a stream descriptor array on the media source.
268 winegstreamer: Create media source presentation descriptor as needed.
269 winemac: Delay ime_set_text until ImeToAsciiEx requests it.
270 winemac: Wait for IME input result on the unix side.
271 winemac: Send IME key input from ImeProcessKey.
272 imm32/tests: Mark some tests as broken by prior SetForegroundWindow call.
273 winex11: Use a helper to change internal composition status.
274 winex11: Clear the composition string when input context is closed.
275 winex11: Simplify NotifyIME with NI_COMPOSITIONSTR / CPS_COMPLETE.
276 win32u: Introduce new NtUserNotifyIMEStatus syscall.
277 winex11: Move NotifyIME to the default IME implementation.
278 winemac: Use the default IME implementation for NotifyIME.
279 winex11: Use the default IME implementation for ImeSetCompositionString.
280 winemac: Use the default IME implementation for ImeSetCompositionString.
281 win32u: Introduce a new ImeProcessKey call through NtUserMessageCall.
282 winemac: Use the ImeProcessKey driver entry to process IME input.
283 win32u: Introduce a new ImeToAsciiEx call through NtUserMessageCall.
284 winemac: Use the ImeToAsciiEx driver entry to retrieve IME result.
285 winemac: Compute the required COMPOSITIONSTRING size in ImeToAsciiEx.
286 imm32: Resize the composition string if the driver requested so.
287 winemac: Write the IME strings to the COMPOSITIONSTRING in ImeToAsciiEx.
288 winemac: Generate IME messages from the default ImeToAsciiEx implementation.
291 mf/session: Reset presentation flags when session_clear_presentation is called.
294 sapi: Implement ISpRegDataKey::SetStringValue.
295 sapi: Ignore read_only in ISpRegDataKey::SetKey.
296 sapi: Implement ISpRegDataKey::OpenKey.
297 sapi: Use ISpRegDataKey in object_token.
298 sapi: Implement ISpObjectToken::Set/GetStringValue.
299 sapi: Implement ISpObjectToken::CreateInstance.
302 mscoree/tests: Remove the parent argument from create_new_dir() (Coverity).
303 ddraw: Set the texture height in SetSurfaceDesc() (Coverity).
306 ntdll: Decrement thread count from exit_thread and exit the process if needed.
307 winemac.drv: Force a window in front of its peers if its level is decreased.
310 ntdll/tests: Add test for file attributes of files with names beginning with a dot.
311 ntdll: Handle hidden file names inside get_file_info instead of after it.
312 ntdll: Only infer hidden attribute from file name if xattr is not present.
313 ntdll: Set xattr in NtCreateFile if inferred and requested attributes don't match.
315 Vijay Kiran Kamuju (1):
316 winex11.drv: Fix compile when xrandr is not available.
318 Zebediah Figura (32):
319 d3d8: Move surface allocation to d3d8_surface_create().
320 d3d8: Create sub-resource surfaces manually.
321 d3d8: Pass the container to d3d8_surface_create().
322 wined3d: Directly call wined3d_texture_create() to create swapchain textures.
323 winepulse: Avoid accessing the product name after freeing it.
324 ntdll: Fix the prototype of NtDuplicateToken().
325 advapi32/tests: Add more tests for token duplication.
326 quartz: Check whether the pin is connected in IBasicVideo::GetVideoSize().
327 quartz: Check whether the pin is connected in IVideoWindow::put_Caption().
328 quartz: Check whether the pin is connected in IVideoWindow::put_WindowStyle().
329 quartz: Check whether the pin is connected in IVideoWindow::put_AutoShow().
330 quartz: Check whether the pin is connected in IVideoWindow::put_Owner().
331 quartz: Check whether the pin is connected in IVideoWindow::put_MessageDrain().
332 quartz: Check whether the pin is connected in IVideoWindow::put_Visible().
333 quartz: Check whether the pin is connected in IVideoWindow::SetWindowPosition().
334 d3d9/tests: Add some more tests for accessing an old backbuffer surface after a reset.
335 d3d9: Hold a reference to the wined3d swapchain from d3d9 swapchain surfaces.
336 d3d8: Hold a reference to the wined3d swapchain from d3d8 swapchain surfaces.
337 d3d11: Hold a reference to the wined3d swapchain from d3d11 swapchain textures.
338 wined3d: Do not forward texture references to the swapchain.
339 wined3d: Read the sm4 sample count in DCL instructions.
340 wined3d: Do not declare resources as multisampled if the sample count is 1.
341 qcap/audiorecord: Get rid of the AudioRecord typedef.
342 qcap/audiorecord: Add a stub source pin.
343 qcap/tests: Test audio capture pin interfaces.
344 qcap/tests: Test audio capture pin information.
345 qcap/tests: Test the audio capture CLSID.
346 qcap/audiorecord: Stub IAMStreamConfig.
347 qcap/tests: Add tests for media types.
348 qcap/audiorecord: Implement pin_get_media_type().
349 qcap/audiorecord: Implement IAMStreamConfig::GetStreamCaps().
350 qcap/audiorecord: Partially implement QueryAccept().
353 tasklist: Add basic functionality.
354 tasklist: Support '/nh' option.
355 tasklist: Support '/fo' option.
356 tasklist: Partially support '/fi' option.
357 findstr: Add basic functionality.
358 oledb32/tests: Test initial catalog property.
359 oledb32: Use the correct property for initial catalog.
360 oledb32/tests: Test provider string with multiple provider specific properties.
361 oledb32: Put provider initialization properties in a single DBPROP_INIT_PROVIDERSTRING.
362 oledb32/tests: Test converting DBTYPE_VARIANT to DBTYPE_UI8.
363 oledb32: Support converting DBTYPE_VARIANT to DBTYPE_UI8.
364 oledb32/tests: Test converting DBTYPE_VARIANT to DBTYPE_GUID.
365 oledb32: Support converting DBTYPE_VARIANT to DBTYPE_GUID.
366 oledb32/tests: Test converting DBTYPE_VARIANT to DBTYPE_VARIANT.
367 oledb32: Support converting DBTYPE_VARIANT to DBTYPE_VARIANT.
370 winegstreamer: Introduce format_is_compressed.
371 winegstreamer: Implement wg_parser_stream_get_codec_format.
372 winegstreamer: Implement amt_from_wg_format_video_wmv.
373 winegstreamer: Use codec format in stream_props_GetMediaType.