win32u: Use syscall interface for more printer functions.
[wine.git] / ANNOUNCE
blobb9812b8c3432dd32f5a3390754d2cd588b481ccd
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.
7   - Various bug fixes.
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 ----------------------------------------------------------------
50 Changes since 8.7:
52 Ake Rehnman (2):
53       ntdll: Fix return value of RtlInitializeSid().
54       ntdll: Fix RtlValidSecurityDescriptor() return value.
56 Alex Henrie (1):
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).
87 Aurimas Fišeras (1):
88       po: Update Lithuanian translation.
90 Biswapriyo Nath (1):
91       include: Add DXGI_DEBUG_D3D11 in d3d11sdklayers.idl.
93 Brendan Shanks (2):
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.
97 Connor McAdams (1):
98       combase: Check that process ID matches before searching the MTA for a stub manager.
100 Conor McCarthy (1):
101       vkd3d: Leave the command queue op mutex locked after a partial flush.
103 David Kahurani (2):
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.
127 Eric Pouech (3):
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.
135 Floris Renaud (1):
136       po: Update Dutch translation.
138 François Gouget (2):
139       kernel32/tests: Use win_skip() for missing APIs.
140       kernelbase/tests: Use win_skip() for missing APIs.
142 Georg Lehmann (1):
143       winevulkan: Update to VK spec version 1.3.250.
145 Gerald Pfeifer (1):
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().
161 Jactry Zeng (1):
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.
170 Mohamad Al-Jaf (3):
171       include: Add hrtfapoapi.idl file.
172       hrtfapo: Add stub DLL.
173       hrtfapo: Add CreateHrtfApo() stub.
175 Nikolay Sivov (5):
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.
185 Paul Gofman (11):
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.
198 Piotr Caban (37):
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.
237 Rémi Bernon (51):
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.
290 Santino Mazza (1):
291       mf/session: Reset presentation flags when session_clear_presentation is called.
293 Shaun Ren (6):
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.
301 Sven Baars (2):
302       mscoree/tests: Remove the parent argument from create_new_dir() (Coverity).
303       ddraw: Set the texture height in SetSurfaceDesc() (Coverity).
305 Tim Clem (2):
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.
309 Torge Matthies (4):
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().
352 Zhiyi Zhang (15):
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.
369 Ziqing Hui (4):
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.