The Wine development release 4.2 is now available. What's new in this release (see below for details): - Unicode string normalization support. - Support for ECC cryptographic keys. - Support for mixing 32/64-bit dlls in the load path. - Futex-based implementations for more synchronization primitives. - Various bug fixes. The source is available from the following locations: https://dl.winehq.org/wine/source/4.x/wine-4.2.tar.xz http://mirrors.ibiblio.org/wine/source/4.x/wine-4.2.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.2 (total 60): 12453 Bad performance in Source based games 17913 Port Royale: sea is black 19748 Multiple games complain about checking occlusion query results from the wrong thread (Metro 2033, Unreal Tournament 3, Counter Strike: Source, Metro 2033, Call of Duty 4, Left 4 Dead, Left 4 Dead 2, Final Fantasy XIV, Half-Life 2) 20083 SIV (System Information Viewer) v4.00 SIVDRIVER crashes to due invalid PIO_STACK_LOCATION->FileObject passed into IRP_MJ_DEVICE_CONTROL dispatch routine 21101 Can't use SHIFT key with onboard visual keyboard and wine application 23863 The Bard's Tale (2005): unplayable due to almost completely black screen 28167 EA Sports FIFA 11 crashes on startup 35096 Kerning misbehavior for Hebrew text in Office 2010 35889 wine1.6 display fuzzy chinese ttf fonts, but dialog fonts display normal 36201 valgrind shows a definite leak under crypt32/tests/store.c 36261 valgrind shows a use after free in d3d_device_inner_Release() ddraw/tests/ddraw{4,7}.c 36267 valgrind shows an invalid read in ddraw/tests/ddraw4.c 36340 valgrind shows several warnings in ddraw/tests/ddraw2.c 36343 valgrind shows some leaks in ddraw/tests/ddraw4.c 36348 valgrind shows a couple leaks in d3d9/tests/d3d9ex.c 36349 valgrind shows a few leaks in d3d9/tests/stateblock.c 36380 valgrind shows a possible leak in in ddraw/tests/ddraw1.c 36381 valgrind shows a couple possible leaks in in ddraw/tests/ddraw2.c 36382 valgrind shows a possible leak in in ddraw/tests/ddraw7.c 36620 valgrind shows a few invalid reads in ddraw/tests/ddraw1.c 36621 valgrind shows several definite leaks in ddraw/tests/ddraw1.c 36623 valgrind shows some leaks in ddraw/tests/ddraw7.c 36631 valgrind shows a definite leak in in ddraw/tests/ddraw2.c 36658 valgrind shows an invalid read in ddraw/tests/d3d.c 36660 ddraw/tests/d3d.c CapsTest crashes under valgrind 36689 ddrawex/tests/surface.c crashes under valgrind/nvidia 37639 Multiple applications crash on unimplemented function vssapi.dll.?CreateVssBackupComponents@@YGJPAPAVIVssBackupComponents@@@Z (AlphaShadow v1.2, EMC Retrospect 7) 38021 64-bit Planetside 2 fails to load bundled xinput1_3.dll (loader must check architecture before trying to load module) 38138 Avencast: Rise of the Mage: invisible doors 38685 valgrind shows an invalid read in d3d9/tests/d3d9ex.c 39080 The Settlers: Rise of an Empire: world geometry broken 40036 Shadows of Destiny Crash After Begins 41168 Test Drive Unlimited Crash before entry main menu 42573 Several Flickering Senran Kagura Shinovi Versus 42704 1Password 6.4.377 needs function bcrypt.dll.BCryptDeriveKeyPBKDF2 42734 NormalizeString (Unicode normalization) is not implemented 42911 Bayonetta: launches but screen stays black 44150 Alien vs Predator: Crash in DX11 Mode 45312 AC Syndicate needs bcrypt algorythm/functions (ECDH_P256, BCryptGenerateKeyPair, BCryptFinalizeKeyPair) 45473 Rogue Squadron 3D crashes on startup 45524 Add a futex-based implementation of condition variables 45570 League of Legends 8.12+ fails to start a game (anticheat engine, incorrect implementation of LdrInitializeThunk) 45820 Symantec Eraser Control Driver 'eeCtrl64.sys' (Norton 360) crashes on unimplemented function ntoskrnl.exe.ExpInterlocked{Push,Pop}EntrySList 46047 Multiple applications want Windows 8+ futex-like operations kernelbase.dll.WaitOnAddress, kernelbase.dll.WakeByAddress{All,Single} (VLC) 46088 BETest tool from Windows 10 SDK (10.0.17763.x) crashes on unimplemented function vssapi.dll.CreateVssBackupComponentsInternal 46127 aria2 1.34 fails to connect, reports 'WinTLS: Channel setup failed. Schannel provider did not fulfill requested flags. Excepted: 33180 Actual: 33052' 46208 Elite Dangerous is unstable in wine-devel 46252 StarCitizen has bad performance 46300 Yousician: unimplemented function mfplat.dll.MFGetSystemTime 46341 kernel32/tests/pipe.c shows uninitialized memory use in test_overlapped_transport() 46387 ReactOS/Windows XP TASKMGR: Column headers don't scroll when scrolling horizontally (multiple listview or header control) 46516 AfterEffects CS16 headless renderer crashes due to missing crypt32 functions CryptHashCertificate2 and CryptImportPublicKeyInfoEx2 46565 Disney's Chicken Little displays text upside down 46581 HeidiSQL generates OLE error when executing custom queries against MSSQL server. 46602 3D Custom Girl fails to render characters 46611 Readiris 17 fails to load when d2d1 is enabled: fixme:d2d:d2d_factory_CreateGeometryGroup iface 46617 Far Cry v1.40 locks up on the loading screen 46618 Far Cry v1.40 locks up when changing screen resolution or anti-aliasing level 46631 winecfg fails to load 46644 Ichitarou crashes when creating a new document (needs msvcrt._ismbcl1) ---------------------------------------------------------------- Changes since 4.1: Alexandre Julliard (29): kernel32: Fix handling of NULL argument in SetDllDirectoryA(). ntdll: Don't use current directory for libraries unless explicitly specified in the search path. setupapi/tests: Avoid sizeof in traces. ntdll: Use an NT filename to search for loaded modules. ntdll: Return an NT filename in find_dll_file(). ntdll: Pass an NT filename to get_load_order(). ntdll: Use NT filenames when loading dlls. ntdll: Remove no longer used parameter from find_fileid_module(). ntdll: Pass a flag instead of a file handle to load_builtin_dll(). ntdll: Directly try to open the dll file instead of checking for existence first. ntdll: Create the memory mapping for a dll directly at open time. server: Add custom flag for fake dlls in PE image information. ntdll: Use the image info to check for fake dlls. ntdll: Skip dlls of the wrong machine type when searching through the load path. crypt32: Don't build password_to_ascii without GnuTLS. ntdll: Use the current platform as processorArchitecture instead of a wildcard. ntdll: Reimplement init_user_process_params() using RtlCreateProcessParametersEx(). ntdll: Hardcode the path of the windows directory for redirects. server: Create the windows directories at startup if necessary. ntdll: Also create the initial process parameters with RtlCreateProcessParametersEx(). ntdll: Recreate the process parameters structure once everything has been initialized. ntdll/tests: Add tests for initial process parameters layout. dinput: Add error check to silence a compiler warning. ntdll: Return the kernel process start address from __wine_kernel_init(). ntdll: Rename attach_dlls() to LdrInitializeThunk(). ntdll: Make the CPU information global. ntdll: Store extended FPU context in NtGetContextThread(). ntdll: Store extended FPU state and debug registers in RtlRaiseException(). server: Report a 64-bit CPU for IL-only binaries. Alistair Leslie-Hughes (12): combase: Add DllGetActivationFactory stub. comdlg32: Improve PRINT32 dialog. secur32: Fix compile error on older gnutls. include: Add more VSS_* typedefs. include: Add VSS writer enums. include: Convert header vswriter to an idl. include: Add vsbackup.idl. vssapi: Add CreateVssBackupComponentsInternal stub. vssapi: Add ?CreateVssBackupComponents@@YGJPAPAVIVssBackupComponents@@@Z stub. dsound: IDirectSoundNotify is only available when DSBCAPS_CTRLPOSITIONNOTIFY is specified. comdlg32: Improve Printer Setup dialog. mfplat: Implement MFGetSystemTime. Andrey Gusev (3): msi: Remove duplicate condition in msi_dialog_destroy(). crypt32: Remove duplicate condition in CRYPT_AsnDecodeNameValueInternal(). mscoree: Fix condition in CorDebug_Release(). Aric Stewart (2): hidclass.sys: Prevent buffer overrun. configure: Use SDL2_LIBS if set. Aurimas Fišeras (1): po: Update Lithuanian translation. Brendan McGrath (2): wineboot: Fix PROCESSOR_ARCHITECTURE reg value. vbscript: Allow more keywords to be used as identifiers. Byeong-Sik Jeon (6): gdi32: Fix vertical rotation. gdi32: Add a helper function to get the transform matrices. gdi32: Add helper functions to cache the glyph metrics. gdi32: Add helper functions to compute the glyph metrics. gdi32: Add helper functions to get GGO glyph bitmap. gdi32: Add a helper macro for FreeType version check. Dmitry Timoshkov (7): windowscodecs: WICConvertBitmapSource should ask IWICFormatConverter::Initialize to use an optimized palette. windowscodecs: Fix behaviour of format converter for indexed formats when NULL or empty palette has been provided. windowscodecs/tests: Add a bunch of new tests for indexed format conversions. windowscodecs/tests: Add some tests for converting 24bppBGR to 8bppIndexed format. crypt32: CryptAcquireCertificatePrivateKey should look up certificate in the user's store if not linked to a provider. wineps.drv: Add stubs for escapes required by Adobe PageMaker. wineps.drv: PostScript header should be written by StartDoc instead of StartPage. Gabriel Ivăncescu (28): comctl32/listbox: Check for out of bounds using the index when painting the item. comctl32/listbox: Use a helper to expand the item array. comctl32/listbox: Shrink the item array with resize_storage. comctl32/listbox: Return proper value for LB_INITSTORAGE. comctl32/tests: Add tests for LB_INITSTORAGE. user32/listbox: Check for out of bounds using the index when painting the item. user32/listbox: Use a helper to expand the item array. user32/listbox: Shrink the item array with resize_storage. user32/listbox: Return proper value for LB_INITSTORAGE. user32/tests: Add tests for LB_INITSTORAGE. comctl32/listbox: Resize the entire item array at once in SetCount. comctl32/listbox: Repaint the old selected item after setting the item selection. comctl32/listbox: Use descr->selected_item for single-selection listboxes when checking selection. comctl32/tests: Test changing the selection styles after listbox creation. comctl32/listbox: Use a helper to retrieve item data by index. comctl32/listbox: Use a helper to retrieve item string by index. comctl32/listbox: Use is_item_selected in more places. comctl32/listbox: Use a helper to set the selected item state. comctl32/listbox: Send LB_RESETCONTENT from RemoveItem rather than DeleteItem. user32/listbox: Resize the entire item array at once in SetCount. user32/listbox: Repaint the old selected item after setting the item selection. user32/listbox: Use descr->selected_item for single-selection listboxes when checking selection. user32/tests: Test changing the selection styles after listbox creation. user32/listbox: Use a helper to retrieve item data by index. user32/listbox: Use a helper to retrieve item string by index. user32/listbox: Use is_item_selected in more places. user32/listbox: Use a helper to set the selected item state. user32/listbox: Send LB_RESETCONTENT from RemoveItem rather than DeleteItem. Hans Leidekker (14): odbc32: Improve tracing in a number of functions. odbc32: Work around drivers that don't accept NULL name length in SQLDescribeCol. odbc32: Improve tracing in the remaining functions. secur32: Add support for client certificate authentication. crypt32/tests: Show that PFXImportCertStore doesn't set CERT_KEY_PROV_INFO_PROP_ID. secur32: Return ISC_RET_USED_SUPPLIED_CREDS for schannel contexts if the feature was requested. secur32: Fix default return flags for schannel contexts. wininet: Trace modifiers in hexadecimal in HttpAddRequestHeaders. bcrypt: Implement BCryptGenerate/FinalizeKeyPair for ECDH P256. bcrypt: Add support for importing and exporting ECC public keys. bcrypt: Add support for importing and exporting ECC private keys. bcrypt: Implement BCryptDeriveKeyPBKDF2. msi: Initialize assembly caches before disabling redirection. msi: Link directly to sxs. Henri Verbeet (1): d3d8: Improve ValidateVertexShader(). Huw D. M. Davies (7): kernel32/tests: Move the tests to a per-test todo. kernel32: Initial support for canonical decomposition in NormalizeString(). kernel32: Implement canonical reordering. libport: Add support for compatibility decomposition. libport: Add support for singleton decomposition. kernel32: Implement canonical composing. user32/listbox: Remove some unnecessary differences to the comctl32 version. Isira Seneviratne (4): po: Update Sinhala translation. po: Update Sinhala translation. view: Move open dialog filter string to resource file and add extensions. po: Update Sinhala translation. Jacek Caban (13): ntoskrnl.exe: Properly export *SList functions on win64. ntoskrnl.exe: Add PsRevertToSelf stub. ntoskrnl.exe: Implement ExDeleteNPagedLookasideList. ntoskrnl.exe: Set FileObject of IRP passed to driver callbacks. ntoskrnl.exe: Add KeRevertToUserAffinityThread stub. ntoskrnl.exe/tests: Introduce get_proc_address helper. mshtml: Add style.borderCollapse property implementation. mstml: Add style.borderSpacing property implementation. mshtml: Support custom user agent strings in IOmNavigator::get_appVersion. ntoskrnl.exe: Add PsReferenceProcessFilePointer stub. kernel32: Support MUI_LANGUAGE_ID flag in EnumUILanguages. mshtml: Suport load event in HTMLXMLHttpRequest object. mshtml: Expose nsIFormPOSTActionChannel interface from nsChannel object. Jactry Zeng (5): shcore: Don't return E_FAIL in IStream::SetSize() for read-only mode. ole32/tests: Test PropVariantCopy() with VT_UNKNOWN. propsys: Implement PSCreateMemoryPropertyStore(). propsys/tests: Add tests of IPropertyStore interface. propsys: Implement PropVariantToDouble(). Józef Kucia (12): d3d8/tests: Use correct index variable in test_resource_access() (Coverity). d3d9/tests: Use correct index variable in test_resource_access() (Coverity). d3d11: Avoid using wined3d_stream_output_element for validation. wined3d: Do not convert SO declaration entries. wined3d: Export wined3d_extract_shader_input_signature_from_dxbc(). wined3d: Keep original component index in stream output elements. wined3d: Factor out shader_get_stream_output_register_info(). wined3d: Remove unnecessary src_format NULL check from arbfp_blit_supported(). wined3d: Remove unnecessary src_format NULL check from ffp_blit_supported(). wined3d: Remove unnecessary src_format NULL check from glsl_blitter_supported(). ddraw/tests: Destroy viewport in test_lighting_interface_versions() (Valgrind). wined3d: Mark dcl_input_ps_{siv, sgv} shader instructions as implemented. Kai Krakow (1): editorconfig: Indent Makefiles properly. Ken Thomases (1): winemac: Fix failure to render OpenGL on macOS 10.14 (Mojave). Lauri Kenttä (1): po: Update Finnish translation. Matteo Bruni (7): d3d9: Refuse to create D3DUSAGE_WRITEONLY textures. d3d8: Refuse to create D3DUSAGE_WRITEONLY textures. ddraw: Refuse to create non-managed DDSCAPS_WRITEONLY surfaces. wined3d: Cleanup stateblock state before enumerating resources. d3d9: Keep track of D3DUSAGE_AUTOGENMIPMAP textures in the d3d9 device. d3d11/tests: Simplify test_cb_relative_addressing() a bit. d3d10core/tests: Simplify test_cb_relative_addressing() a bit. Michael Müller (2): ntoskrnl.exe: Implement ExInitializeNPagedLookasideList. ntoskrnl.exe: Implement NtBuildNumber. Michael Stefaniuc (16): webservices: Delete duplicated return value checks. d3dx9/tests: Actually test the return of the effect SetInt() call. kernelbase: Avoid TRUE : FALSE conditional expressions. taskschd: Avoid TRUE : FALSE conditional expressions. dmime/tests: Test the return value of IDirectMusic_SetDirectSound(). gdi32: Avoid TRUE : FALSE conditional expressions. odbc32: Print the debug strings and not the pointers. amstream: Remove useless cast to self. crypt32: Remove useless cast to self. d3d10core/tests: Remove useless casts to self. d3dxof: Remove useless casts. oleaut32/tests: Fix printing of an expected value. oleaut32/tests: Floating point numeric constants are by default doubles. ddraw/tests: Remove useless casts to self. d3d10/tests: Remove useless casts to self. d3d11/tests: Remove useless casts to self. Nikolay Sivov (16): dwrite: Implement mark-to-mark attachment, GPOS lookup 6. dwrite: Add a stub for mark-to-ligature attachment handler. dwrite: Fix positions in outline mode. dwrite: Store outline offset as a vector. comctl32/listview: Take care of scrolling offset when repositioning header. comctl32/listview: Remove duplicated handle check. uiautomationcore: Return success from UiaRaiseAutomationEvent(). d2d1: Add ID2D1GeometryGroup stub. uiautomationcore: Add UiaHostProviderFromHwnd() stub. dwrite: Use more appropriate allocation helpers. xmllite/tests: Test complete writer output for UTF-16 case. msvcrt: Add _ismbcl0_l(). msvcrt: Add _ismbcl1_l(). msvcrt: Add _ismbcl1(). msvcrt: Add _ismbcl2_l(). msvcrt: Add _ismbcl2(). Paul Gofman (19): user32: Select more appropriate stretch mode for colored images interpolation. user32/tests: Add more tests for SetWindowPos() on child window. wined3d: Use lower 8 bits only from _ALPHAREF state. d3d9/tests: Add test for bigger alpha reference values. d3d8/tests: Port test_alphatest() from d3d9. wined3d: Ignore multisample quality for MULTISAMPLE_NONE in context_find_fbo_entry(). d3d9/tests: Test mismatched multisample quality with D3DMULTISAMPLE_NONE. ddraw/tests: Port test_alphatest() from d3d9. wined3d: Initialise stream frequency to 1. d3d9/tests: Test GetStreamSourceFreq() before any values were set. wined3d: Return 1e10f for MaxVertexW from wined3d_get_device_caps(). d3d9/tests: Add test for MaxVertexW device capability. d3d8/tests: Add test for MaxVertexW device capability. d3d9/tests: Add test for buffer read / write. wined3d: Invalidate _SYSMEM location when mapping opengl buffer. d3dx9/tests: Clear vertex shader constants in test_effect_states(). d3dx9/tests: Add more tests for VertexShaderConstant state. d3dx9: Handle short parameter in d3dx_set_shader_const_state(). d3dx9: Use parameter data for the first constant only in d3dx_set_shader_const_state(). Piotr Caban (9): kernel32/tests: Add file mapping tests on readonly file. kernel32/tests: Test that copy-on-write file mapping is not modifying the file. api-ms-win-crt-private-l1-1-0: Add __std_terminate implementation. msvcrt: Add _ismbbtrail_l implementation. msvcrt: Add _ismbclegal_l implementation. msvcrt: Validate character in _ismbcl0. msvcrt: Use mbtowc/wctomb for string conversion in printf. msvcrt: Use correct locale when validating character in _ismbcl0_l and _ismbcl1_l. msvcrt: Change __getmainargs signature. Sergio Gómez Del Real (2): riched20: Mask out extended flags introduced by CHARFORMAT2 when converting to CHARFORMAT. gdi32/dibdrv: Clip segment points to dib rect in wide_line_segment(). Sven Baars (9): ole32: Fix some memory leaks (Valgrind). riched20: Fix IRichEditOle COM aggregation (Valgrind). shell32: Don't return a path from SHGetKnownFolderPath when it can not be created. mstask: Fix some memory leaks on error path (Valgrind). mstask: Move memory allocation to avoid a memory leak (Valgrind). taskschd: Fix some memory leaks (Valgrind). ws2_32: Use heap_realloc instead of HeapReAlloc to avoid an invalid realloc (Valgrind). wininet/tests: Fix some memory leaks (Valgrind). webservices/tests: Add a missing closesocket call (Coverity). Vijay Kiran Kamuju (1): setupapi: Add stub for CM_Get_Sibling. Yussur-Mustafa Oraji (1): httpapi: Add stub for HttpCloseServerSession. Zebediah Figura (36): wined3d: Set the correct matrix in wined3d_device_multiply_transform(). wined3d: Store texture states in the wined3d_stateblock_state structure. wined3d: Store textures in the wined3d_stateblock_state structure. wined3d: Factor out init_default_sampler_states(). wined3d: Store sampler states in the wined3d_stateblock_state structure. kernelbase/tests: Relax tests for WaitOnAddress(). ntdll: Add a futex-based implementation of WaitOnAddress(). winebus.sys: Translate SDL controller axes to unsigned 32-bit values. hid: Don't sign-extend 16-bit values. wined3d: Store transforms in the wined3d_stateblock_state structure. wined3d: Store clip planes in the wined3d_stateblock_state structure. wined3d: Store the material in the wined3d_stateblock_state structure. wined3d: Store the viewport in the wined3d_stateblock_state structure. wined3d: Store the scissor rect in the wined3d_stateblock_state structure. wined3d: Store the index buffer in the wined3d_stateblock_state structure. wined3d: Store vertex declaration in the wined3d_stateblock_state structure. wined3d: Store blend factor in the wined3d_stateblock_state structure. wined3d: Store stream state in the wined3d_stateblock_state structure. ntdll: Reimplement condition variables on top of RtlWaitOnAddress(). comsvcs/tests: Add tests for implicit MTA creation in RegisterDispenser(). comsvcs: Create an implicit MTA thread in RegisterDispenser(). ntdll: Add a direct futex-based implementation of condition variables. oleaut32: Register non-dual dispinterfaces using the correct proxy. wined3d: Get rid of apply_lights() helper. wined3d: Introduce a separate structure for light state. wined3d: Introduce wined3d_state_set_light() helper. wined3d: Store lights in the wined3d_stateblock_state structure. wined3d: Correct indices for contained states in wined3d_stateblock_apply(). user32/tests: Execute test_shell_window() last. wined3d: Get rid of the "update_state" field from struct wined3d_device. wined3d: Get rid of the "state" field from struct wined3d_stateblock. hid: Correctly sign-extend all values in HidP_GetScaledUsageValue(). hid: Scale from logical to physical coördinates in HidP_GetScaledUsageValue(). xinput: Use HidP_GetScaledUsageValue(). xinput: Use a struct instead of an array to store axis information. xinput: Fix axis scaling arithmetic. Zhiyi Zhang (2): setupapi: Implement SetupDiSetDevicePropertyW. setupapi: Implement SetupDiGetDevicePropertyW. -- Alexandre Julliard julliard@xxxxxxxxxx