wine/ANNOUNCE.md
Alexandre Julliard e8f936c745 Release 9.13.
2024-07-14 22:40:51 +02:00

24 KiB

The Wine development release 9.13 is now available.

What's new in this release:

  • Support for loading ODBC Windows drivers.
  • More user32 data structures in shared memory.
  • More rewriting of the CMD.EXE engine.
  • Various bug fixes.

The source is available at https://dl.winehq.org/wine/source/9.x/wine-9.13.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

Wine is available thanks to the work of many people. See the file AUTHORS for the complete list.


Bugs fixed in 9.13 (total 22):

  • #21344 Buffer overflow in WCMD_run_program
  • #35163 Victoria 2: A House Divided crashes on start with built-in quartz
  • #39206 Lylian demo hangs after intro video
  • #44315 Buffer maps cause CPU-GPU synchronization (Guild Wars 2, The Witcher 3)
  • #44888 Wrong texture in Assassin's Creed : Revelations
  • #45810 WINEPATH maximums
  • #52345 Unclosed right-side double quote in if command breaks wine cmd
  • #52346 Filename completion is not supported in cmd
  • #54246 Full Metal Daemon Muramasa stuck at black screen at boot
  • #54499 Native ODBC drivers should be able be used.
  • #54575 False positive detection of mmc reader as hard drive since kernel 6.1
  • #55130 IF EXIST fails when its argument ends on a slash
  • #55401 CMD 'for loop' params are not recognized
  • #56575 CUERipper 2.2.5 Crashes on loading WMA plugin
  • #56600 MEGA TECH Faktura Small Business: Access violation in module kernelbase.dll
  • #56617 Photoshop CC 2024: crashes after a short period (Unimplemented function NETAPI32.dll.NetGetAadJoinInformation)
  • #56882 ConEmu errors: Injecting hooks failed
  • #56895 So Blonde (demo): font display bug (regression)
  • #56938 msiexec crashes with stack overflow when installing python 3.11+ dev.msi
  • #56945 Multiple UI elements in builtin programs is missing (taskbar in Virtual Desktop, right-click menu in RegEdit)
  • #56948 Intel Hardware Accelerated Execution Manager needs unimplemented function ntoskrnl.exe.KeQueryGroupAffinity
  • #56952 PS installer crashes inside msi (regression)

Changes since 9.12:

Alex Henrie (11):
      msi: Initialize size argument to RegGetValueW.
      shell32: Pass size in bytes to RegGetValueW.
      twinapi.appcore: Initialize size argument to RegGetValueW.
      mscoree: Pass size in bytes to RegGetValueW.
      wineboot: Correct size argument to SetupDiSetDeviceRegistryPropertyA.
      advapi32/tests: Test RegGetValue[AW] null termination.
      advapi32/tests: Drop security test workarounds for Windows <= 2000.
      windowscodecs: Use RegQueryValueExW in ComponentInfo_GetStringValue.
      kernelbase: Ensure null termination in RegGetValue[AW].
      ntdll: Double-null-terminate registry multi-strings in RtlQueryRegistryValues.
      ntdll/tests: Remove unused WINE_TODO_DATA flag.

Alexandre Julliard (26):
      kernelbase: Mask extra protection flags in WriteProcessMemory.
      wow64: Call pre- and post- memory notifications also in the current process case.
      wow64: Add more cross-process notifications.
      ntdll/tests: Add tests for in-process memory notifications on ARM64.
      wow64: Add a helper to get the 32-bit TEB.
      ntdll: Always set the dll name pointer in the 32-bit TEB.
      wow64: Fix NtMapViewOfSection CPU backend notifications.
      wow64: Add NtReadFile CPU backend notifications.
      wow64cpu: Simplify the Unix call thunk.
      xtajit64: Add stub dll.
      ntdll: Load xtajit64.dll on ARM64EC.
      ntdll/tests: Add some tests for xtajit64.
      ntdll: Create the cross-process work list at startup on ARM64EC.
      ntdll: Support the ARM64EC work list in RtlOpenCrossProcessEmulatorWorkConnection.
      ntdll: Call the processor information callback on ARM64EC.
      ntdll: Load the processor features from the emulator on ARM64EC.
      ntdll: Call the flush instruction cache callback on ARM64EC.
      ntdll: Call the memory allocation callbacks on ARM64EC.
      ntdll: Call the section map callbacks on ARM64EC.
      ntdll: Call the read file callback on ARM64EC.
      ntdll: Implement ProcessPendingCrossProcessEmulatorWork on ARM64EC.
      wininet/tests: Update issuer check for winehq.org certificate.
      wow64: Fix prototype for the NtTerminateThread CPU backend notification.
      wow64: Add NtTerminateProcess CPU backend notifications.
      ntdll: Call the terminate thread callback on ARM64EC.
      ntdll: Call the terminate process callback on ARM64EC.

Alexandros Frantzis (4):
      opengl32: Add default implementation for wglChoosePixelFormatARB.
      winex11: Remove driver wglChoosePixelFormatARB implementation.
      winewayland: Support WGL_ARB_pixel_format.
      winewayland: Support WGL_ARB_pixel_format_float.

Alfred Agrell (10):
      include: Fix typo in DXGI_DEBUG_APP.
      include: Fix typo in IID_IDWriteStringList.
      include: Fix typo in IID_IAudioLoudness.
      include: Fix typo in GUID_DEVCLASS_1394DEBUG.
      include: Fix typo in IID_IRemoteDebugApplication.
      include: Fix typos in MF_MT_VIDEO_3D and MF_MT_AUDIO_FOLDDOWN_MATRIX.
      include: Fix typos in IID_IMimeWebDocument and IID_IMimeMessageCallback.
      include: Fix typos in IID_IPropertyEnumType2 and CLSID_PropertySystem.
      include: Fix typo in MEDIASUBTYPE_P408.
      include: Fix typo in CLSID_WICXMPMetadataReader.

Austin English (2):
      netapi32: Add NetGetAadJoinInformation stub.
      ntoskrnl.exe: Add a stub for KeQueryGroupAffinity.

Biswapriyo Nath (5):
      include: Add flags for ID3D11ShaderReflection::GetRequiresFlags method in d3d11shader.h.
      include: Add macros for d3d12 shader version in d3d12shader.idl.
      include: Add new names in D3D_NAME enum in d3dcommon.idl.
      include: Fix typo with XINPUT_DEVSUBTYPE_FLIGHT_STICK name in xinput.h.
      include: Fix typo with X3DAUDIO_EMITTER structure in x3daudio.h.

Brendan McGrath (3):
      winegstreamer: Use process affinity to calculate thread_count.
      winegstreamer: Use thread_count to determine 'max-threads' value.
      winegstreamer: Set 'max_threads' to 4 for 32-bit processors.

Connor McAdams (14):
      d3dx9/tests: Move the images used across multiple test files into a shared header.
      d3dx9/tests: Add more D3DXLoadVolumeFromFileInMemory() tests.
      d3dx9: Use shared code in D3DXLoadVolumeFromFileInMemory().
      d3dx9/tests: Add more tests for D3DXCreateVolumeTextureFromFileInMemoryEx().
      d3dx9: Refactor texture creation and cleanup in D3DXCreateVolumeTextureFromFileInMemoryEx().
      d3dx9: Cleanup texture value argument handling in D3DXCreateVolumeTextureFromFileInMemoryEx().
      d3dx9: Use d3dx_image structure inside of D3DXCreateVolumeTextureFromFileInMemoryEx().
      d3dx9: Add support for mipmap generation to D3DXCreateVolumeTextureFromFileInMemoryEx().
      d3dx9/tests: Add tests for DDS skip mip level bits.
      d3dx9: Apply the DDS skip mip level bitmask.
      d3dx9/tests: Add more DDS header tests for volume texture files.
      d3dx9: Check the proper flag for DDS files representing a volume texture.
      d3dx9/tests: Add more DDS header tests for cube texture files.
      d3dx9: Return failure if a cubemap DDS file does not contain all faces.

Dmitry Timoshkov (3):
      msv1_0: Add support for SECPKG_CRED_BOTH.
      kerberos: Add support for SECPKG_CRED_BOTH.
      crypt32: Make CertFindCertificateInStore(CERT_FIND_ISSUER_NAME) work.

Elizabeth Figura (19):
      d3dcompiler/tests: Use the correct interfaces for some COM calls.
      mfplat/tests: Use the correct interfaces for some COM calls.
      d3dx9: Use the correct interfaces for some COM calls.
      d3dx9/tests: Define COBJMACROS.
      mfplat/tests: Add more tests for compressed formats.
      winegstreamer: Check the version before calling wg_format_from_caps_video_mpeg1().
      winegstreamer: Implement MPEG-4 audio to wg_format conversion.
      winegstreamer: Implement H.264 to wg_format conversion.
      winegstreamer: Implement H.264 to IMFMediaType conversion.
      winegstreamer: Implement AAC to IMFMediaType conversion.
      winegstreamer: Implement WMV to IMFMediaType conversion.
      winegstreamer: Implement WMA to IMFMediaType conversion.
      winegstreamer: Implement MPEG-1 audio to IMFMediaType conversion.
      wined3d: Invalidate the FFP VS when diffuse presence changes.
      wined3d: Destroy the push constant buffers on device reset.
      wined3d: Feed the fragment part of WINED3D_RS_SPECULARENABLE through a push constant buffer.
      wined3d: Feed the FFP color key through a push constant buffer.
      wined3d: Reorder light application in wined3d_device_apply_stateblock().
      wined3d: Feed WINED3D_RS_AMBIENT through a push constant buffer.

Eric Pouech (49):
      cmd: Add success/failure tests for file related commands.
      cmd: Set success/failure return code for TYPE command.
      cmd: Set success/failure return code DELETE command.
      cmd: Set success/failure return code for MOVE command.
      cmd: Set success/failure return code for RENAME command.
      cmd: Set success/failure return code for COPY command.
      cmd: Add success/failure tests for dir related commands.
      cmd: Add success/failure return code for MKDIR/MD commands.
      cmd: Set success/failure return code for CD command.
      cmd: Set success/failure return code for DIR command.
      cmd: Set success/failure return code for PUSHD command.
      cmd: Add some more tests for success/failure.
      cmd: Return tri-state for WCMD_ReadParseLine().
      cmd: Improve return code / errorlevel handling.
      cmd: Set success/failure return_code for POPD command.
      cmd: Set success/failure return code for RMDIR/RD command.
      cmd: Don't set ERRORLEVEL in case of redirection error.
      cmd/tests: Test success / failure for more commands.
      cmd: Set success/failure return code for SETLOCAL/ENDLOCAL commands.
      cmd: Set success/failure return code for DATE/TIME commands.
      cmd: Set success/failure return code for VER command.
      cmd: Set success/failure return code for VERIFY command.
      cmd: Set success/failure return code for VOL command.
      cmd: Set success/failure return code for LABEL command.
      cmd/tests: Add more tests for success/failure.
      cmd: Set success/failure return code of PATH command.
      cmd: Set success/failure return code for SET command.
      cmd: Set success/failure return code for ASSOC,FTYPE commands.
      cmd: Set success/failure return code for SHIFT command.
      cmd: Set success/failure return code for HELP commands.
      cmd: Set success/failure return_code for PROMPT command.
      cmd: Add tests for screen/interactive builtin commands.
      cmd: Set success/failure return code for CLS command.
      cmd: Set success/failure return code for COLOR command.
      cmd: Set success/failure return code for TITLE command.
      cmd: Use the correct output handle in pipe command.
      cmd: Set success/failure return code for CHOICE command.
      cmd: Set success/failure return code for MORE command.
      cmd: Set success/failure return code for PAUSE command.
      cmd: Get rid of CTTY command.
      cmd: Add more tests for return codes in builtin commands.
      cmd: Set success/failure return code for MKLINK command.
      cmd: Set success/failure return code for START command.
      cmd: Move empty batch command handling to WCMD_batch() callers.
      cmd: Improve return code/errorlevel support for external commands.
      cmd: Cleanup transition bits.
      cmd: Get rid for CMD_COMMAND structure.
      cmd: When parsing, dispose created objects on error path.
      cmd: Fix a couple of issues with redirections.

Fabian Maurer (6):
      cmd: Close file opened with popen with correct function (coverity).
      mlang/tests: Add test for GetGlobalFontLinkObject allowing IID_IMultiLanguage2.
      mlang/tests: Add tests showing which interface is returned by GetGlobalFontLinkObject.
      mlang: Return the correct interface in GetGlobalFontLinkObject.
      d3dx9: Remove superflous nullcheck (coverity).
      msv1_0: Set mode in ntlm_check_version.

Hans Leidekker (25):
      msi: Avoid infinite recursion while processing the DrLocator table.
      odbc32: Turn SQLBindParam() into a stub.
      odbc32: Replicate Unix data sources to the ODBC Data Sources key.
      odbc32: Reimplement SQLDrivers() using registry functions.
      odbc32: Reimplement SQLDataSources() using registry functions.
      odbc32: Introduce a Windows driver loader and forward a couple of functions.
      odbc32: Forward more functions to the Windows driver.
      odbc32: Forward yet more functions to the Windows driver.
      odbc32: Forward the remaining functions to the Windows driver.
      odbc32/tests: Add tests.
      msi: Handle failure from MSI_RecordGetInteger().
      msi: Load DrLocator table in ITERATE_AppSearch().
      winhttp: Implement WinHttpQueryOption(WINHTTP_OPTION_URL).
      odbc32: Implement SQLSetEnvAttr(SQL_ATTR_ODBC_VERSION).
      odbc32: Implement SQLGet/SetConnectAttr(SQL_ATTR_LOGIN_TIMEOUT).
      odbc32: Implement SQLGet/SetConnectAttr(SQL_ATTR_CONNECTION_TIMEOUT).
      odbc32: Stub SQLGetEnvAttr(SQL_ATTR_CONNECTION_POOLING).
      odbc32: Handle options in SQLFreeStmt().
      odbc32: Default to ODBC version 2.
      odbc32: Implement SQLGetInfo(SQL_ODBC_VER).
      odbc32: Factor out helpers to create driver environment and connection handles.
      odbc32: Accept SQL_FETCH_NEXT in SQLDataSources/Drivers() if the key has not been opened.
      odbc32: Set parent functions before creating the environment handle.
      odbc32: Use SQLFreeHandle() instead of SQLFreeEnv/Connect().
      odbc32: Use SQLSetConnectAttrW() instead of SQLSetConnectAttr() if possible.

Ilia Docin (1):
      comctl32/rebar: Hide chevron if rebar's band is resized back to full size with gripper.

Jacek Caban (38):
      jscript: Factor out find_external_prop.
      jscript: Rename PROP_IDX to PROP_EXTERN.
      jscript: Introduce lookup_prop callback.
      jscript: Factor out lookup_dispex_prop.
      jscript: Introduce next_property callback.
      jscript: Factor out handle_dispatch_exception.
      jscript: Use to_disp in a few more places.
      mshtml: Factor out dispex_prop_put.
      mshtml: Factor out dispex_prop_get.
      mshtml: Factor out dispex_prop_call.
      jscript: Allow objects to have their own addref and release implementation.
      jscript: Introduce IWineJSDispatch insterface.
      mshtml: Allow external properties to have arbitrary names.
      jscript: Introduce HostObject implementation.
      jscript: Support converting host objects to string.
      jscript: Support host objects in disp_cmp.
      jscript: Use jsdisp_t internally for host objects that support it.
      mshtml: Implement jscript IWineJSDispatchHost.
      mshtml: Pass an optional script global window to init_dispatch.
      mshtml: Support using IWineJSDispatch for DispatchEx implementation.
      mshtml: Use IWineJSDispatch for screen object script bindings.
      jscript: Factor out native_function_string.
      jscript: Add support for host functions.
      mshtml/tests: Make todo_wine explicit in builtin_toString tests.
      mshtml: Use host object script bindings for DOMImplementation class.
      mshtml: Use host object script bindings for History class.
      mshtml: Use host object script bindings for PerformanceNavigation class.
      mshtml: Use host object script bindings for PerformanceTiming class.
      mshtml: Use host object script bindings for Performance class.
      mshtml: Store document node instead of GeckoBrowser in DOMImplementation.
      mshtml/tests: Add script context test.
      mshtml: Store script global object pointer in document object.
      mshtml: Use host object script bindings for MediaQueryList class.
      mshtml: Use host object script bindings for Navigator class.
      mshtml: Use host object script bindings for Selection class.
      mshtml: Use host object script bindings for TextRange class.
      mshtml: Use host object script bindings for Range class.
      mshtml: Use host object script bindings for Console class.

Marc-Aurel Zent (4):
      ntdll: Prefer futex for thread-ID alerts over kqueue.
      ntdll: Use USE_FUTEX to indicate futex support.
      ntdll: Simplify futex interface from futex_wake() to futex_wake_one().
      ntdll: Implement futex_wait() and futex_wake_one() on macOS.

Matthias Gorzellik (2):
      winebus.sys: Fix rotation for angles < 90deg.
      winebus.sys: Align logical max of angles to physical max defined in dinput.

Mohamad Al-Jaf (7):
      include: Add windows.data.json.idl file.
      windows.web: Add stub DLL.
      windows.web: Implement IActivationFactory::ActivateInstance().
      include: Add IJsonValueStatics interface definition.
      windows.web: Add IJsonValueStatics stub interface.
      windows.web/tests: Add IJsonValueStatics::CreateStringValue() tests.
      windows.web: Implement IJsonValueStatics::CreateStringValue().

Nikolay Sivov (2):
      winhttp/tests: Add some tests for querying string options with NULL buffer.
      winhttp: Fix error handling when returning string options.

Paul Gofman (14):
      ntdll: Report the space completely outside of reserved areas as allocated on i386.
      psapi/tests: Add tests for QueryWorkingSetEx() with multiple addresses.
      ntdll: Validate length in get_working_set_ex().
      ntdll: Factor OS-specific parts out of get_working_set_ex().
      ntdll: Iterate views instead of requested addresses in get_working_set_ex().
      ntdll: Limit vprot scan range to the needed interval in get_working_set_ex().
      ntdll: Fill range of output in fill_working_set_info().
      ntdll: Buffer pagemap reads in fill_working_set_info().
      winhttp/tests: Add test for trailing spaces in reply header.
      winhttp: Construct raw header from the parse result in read_reply().
      winhttp: Skip trailing spaces in reply header names.
      win32u: Use FT_LOAD_PEDANTIC on first load try in freetype_get_glyph_outline().
      ntdll: Better track thread pool wait's wait_pending state.
      ntdll: Make sure wakeups from already unset events are ignored in waitqueue_thread_proc().

Piotr Caban (9):
      ucrtbase: Store exception record in ExceptionInformation[6] during unwinding.
      xcopy: Exit after displaying help message.
      xcopy: Exit on invalid command line argument.
      xcopy: Strip quotes only from source and destination arguments.
      xcopy: Introduce get_arg helper that duplicates first argument to new string.
      xcopy: Handle switch options concatenated with path.
      xcopy: Add support for parsing concatenated switches.
      kernel32/tests: Fix CompareStringW test crash when linguistic compressions are used.
      ucrtbase: Fix FILE no buffering flag value.

Rémi Bernon (60):
      server: Move thread message queue masks to the shared mapping.
      win32u: Read the thread message queue masks from the shared memory.
      server: Move thread message queue bits to the shared mapping.
      win32u: Use the thread message queue shared memory in get_input_state.
      win32u: Use the thread message queue shared memory in NtUserGetQueueStatus.
      win32u: Use the thread message queue shared memory in wait_message_reply.
      mf/session: Don't update transform output type if not needed.
      mf/session: Implement D3D device manager propagation.
      winegstreamer: Translate GstCaps directly to MFVIDEOFORMAT / WAVEFORMATEX in wg_transform.
      winegstreamer: Translate MFVIDEOFORMAT / WAVEFORMATEX directly to GstCaps in wg_transform.
      winegstreamer: Create transforms from MFVIDEOFORMAT / WAVEFORMATEX.
      winegstreamer: Only use pool and set buffer meta for raw video frames.
      winegstreamer: Use a new wg_video_buffer_pool class to add buffer meta.
      winegstreamer: Keep the input caps on the transform.
      winegstreamer: Use video info stride in buffer meta rather than videoflip.
      winegstreamer: Normalize both input and output media types stride at once.
      winegstreamer: Normalize video processor and color converter apertures.
      winegstreamer: Respect video format padding for input buffers too.
      server: Move the desktop flags to the shared memory.
      win32u: Use the shared memory to read the desktop flags.
      server: Create a thread input shared mapping.
      server: Move active window to input shared memory.
      server: Move focus window to input shared memory.
      server: Move capture window to input shared memory.
      server: Move caret window and rect to input shared memory.
      win32u: Use input shared memory for NtUserGetGUIThreadInfo.
      win32u: Move offscreen window surface creation fallback.
      win32u: Split a new create_window_surface helper from apply_window_pos.
      win32u: Pass the window surface rect for CreateLayeredWindow.
      win32u: Pass whether window is shaped to drivers WindowPosChanging.
      win32u: Introduce a new window surface helper to set window shape.
      win32u: Use a 1bpp bitmap to store the window surface shape bits.
      win32u: Update the window surface shape with color key and alpha.
      win32u: Pass the shape bitmap info and bits to window_surface flush.
      mfreadwrite/reader: Look for a matching output type if setting it failed.
      winex11: Reset window shape whenever window surface is created.
      mf/tests: Remove static specifier on variables referencing other variables.
      win32u: Allocate heap in peek_message only when necessary.
      win32u: Use the thread message queue shared memory in peek_message.
      win32u: Simplify the logic for driver messages polling.
      ddraw/tests: Make sure the window is restored after some minimize tests.
      ddraw/tests: Flush messages and X11 events between some tests.
      server: Add a foreground flag to the thread input shared memory.
      server: Add cursor handle and count to desktop shared memory.
      win32u: Use the thread input shared memory for NtUserGetForegroundWindow.
      win32u: Use the thread input shared memory for NtUserGetCursorInfo.
      win32u: Use the thread input shared memory for NtUserGetGUIThreadInfo.
      server: Use a shared_object_t for the dummy object.
      win32u: Check the surface layered nature when reusing window surface.
      win32u: Update the window state when WS_EX_LAYERED window style changes.
      win32u: Update the layered surface attributes in apply_window_pos.
      winex11: Rely on win32u layered window surface attribute updates.
      wineandroid: Rely on win32u layered window surface attribute updates.
      winemac: Rely on win32u layered window surface attribute updates.
      winegstreamer/video_decoder: Generate timestamps relative to the first input sample.
      mfreadwrite/reader: Send MFT_MESSAGE_NOTIFY_START_OF_STREAM on start or seek.
      mf/tests: Reduce the mute threshold for the transform tests.
      win32u: Fix initial value when checking whether WS_EX_LAYERED changes.
      win32u: Use the dummy surface for empty layered window surfaces.
      maintainers: Remove MF GStreamer section.

Shaun Ren (1):
      dinput: Call handle_foreground_lost() synchronously in cbt_hook_proc().

Stefan Dösinger (1):
      ddraw: Set dwMaxVertexCount to 2048.

Zhiyi Zhang (1):
      winemac.drv: Remove the clear OpenGL views to black hack.

Ziqing Hui (18):
      winegstreamer/video_encoder: Implement GetInputAvailableType.
      winegstreamer/video_encoder: Implement SetInputType.
      winegstreamer/video_encoder: Implement GetInputCurrentType.
      mf/tests: Add more tests for h264 encoder type attributes.
      winegstreamer/video_encoder: Introduce create_input_type.
      winegstreamer/video_encoder: Check more attributes in SetInputType.
      winegstreamer/video_encoder: Implement GetInputStreamInfo.
      winegstreamer/video_encoder: Implement GetOutputStreamInfo.
      winegstreamer/video_encoder: Rename create_input_type to video_encoder_create_input_type.
      winegstreamer/video_encoder: Clear input type when setting output type.
      winegstreamer/video_encoder: Create wg_transform.
      winegstreamer/video_encoder: Implement ProcessInput.
      winegstreamer/video_encoder: Implement ProcessMessage.
      winegstreamer/video_encoder: Use MF_ATTRIBUTES_MATCH_INTERSECTION to compare input type.
      winegstreamer/video_encoder: Set output info cbSize in SetOutputType.
      winegstreamer/wg_transform: Introduce transform_create_decoder_elements.
      winegstreamer/wg_transform: Introduce transform_create_converter_elements.
      winegstreamer/wg_transform: Support creating encoder transform.