Stable release of Wine 8.0

After a year of development and 28 experimental versions, a stable release of the open implementation of the Win32 API, Wine 8.0, is presented, which includes more than 8600 changes. The key achievement in the new version is the completion of work on translating Wine modules into the .

5266 (5156 year ago 5049, two years ago 4370) programs for Windows were confirmed to work properly, 4312 more (4227 year ago 3888, two years ago 3813) programs work fine with additional settings and external DLLs. 3703 programs (XNUMX years ago, XNUMX two years ago) have minor problems that do not interfere with the use of the main functions of applications.

Key innovations in Wine 8.0:

  • Modules in PE format
    • After four years of work, the transfer of all DLL libraries to use the PE executable file format (Portable Executable, used in Windows) is completely completed. Using PE allows you to use the debuggers available for Windows and solves problems with support for various copy protection schemes that verify the identity of system modules on disk and in memory. Issues with running 32-bit applications on 64-bit hosts and x86 applications on ARM systems have also been resolved. Of the remaining tasks that are planned to be solved in subsequent experimental releases of Wine 8.x, the movement of modules to the NT system call interface is noted, instead of making direct calls between the PE and Unix levels.
    • Implemented a special system call dispatcher used to translate calls from PE to Unix libraries in order to reduce overhead when making a full NT system call. For example, the optimization performed made it possible to reduce the performance drop when using the OpenGL and Vulkan libraries.
    • Winelib applications retain the ability to use mixed builds of Windows/Unix libraries in ELF format (.dll.so), but such applications without 32-bit libraries will not support functionality available through the NT system call interface, such as WoW64.
  • WoW64
    • WoW64 (64-bit Windows-on-Windows) layers are provided for all Unix libraries, allowing 32-bit PE format modules to access 64-bit Unix libraries, which, after getting rid of direct PE / Unix calls, will make it possible to execute 32-bit bit Windows applications without installing 32-bit Unix libraries.
    • In the absence of a 32-bit Wine loader, 32-bit applications can be launched in a new experimental Windows-like WoW64 mode, in which 32-bit code runs inside a 64-bit process. The mode is enabled when building Wine with the '--enable-archs' option.
  • Graphical subsystem
    • The default configuration uses the light theme ("Light"). You can change the theme using the WineCfg utility.
      Stable release of Wine 8.0
    • Graphics drivers (winex11.drv, winemac.drv, wineandroid.drv) have been converted to perform Unix-level system calls and access drivers through the Win32u library.
      Stable release of Wine 8.0
    • The Print Processor architecture is implemented, which is used to exclude direct calls between the PE and Unix levels in the printer driver.
    • The Direct2D API adds support for effects.
    • The ability to record and play command lists has been added to the Direct2D API.
    • Added support for the Vulkan 1.3.237 specification in the Vulkan graphics API driver (Vulkan 7 was supported in Wine 1.2).
  • Direct3D
    • A new shader compiler for HLSL (High-Level Shader Language) has been added, based on the vkd3d-shader library. Also, based on vkd3d-shader, an HLSL disassembler and an HLSL preprocessor have been prepared.
    • Implemented the Thread Pump interface introduced in D3DX 10.
    • Direct3D 10 effects adds support for many new expressions.
    • Support library for D3DX 9 implemented support for Cubemap texture projection.
  • Sound and video
    • Based on the GStreamer framework, support for filters for audio decoding in MPEG-1 format is implemented.
    • Added filter for reading streaming audio and video in ASF (Advanced Systems Format) format.
    • Removed intermediate layer library OpenAL32.dll, instead of which the native Windows library OpenAL32.dll, supplied with applications, is now used.
    • Media Foundation Player has improved content type detection.
    • Implemented the ability to control the data transfer rate (Rate control).
    • Improved support for the default mixer and presenter in the Enhanced Video Renderer (EVR).
    • Added an initial implementation of the Writer Encoding API.
    • Improved topology loader support.
  • Input Devices
    • Significantly improved support for hot plugging controllers.
    • An improved implementation of the code for determining game wheels, based on the SDL library, is proposed.
    • Improved support for the Force feedback effect when using gaming steering wheels.
    • Implemented the ability to control the left and right vibration motors using the HID Haptic specification.
    • Changed the design of the joystick control panel.
    • Through the use of the hidraw backend, support for Sony DualShock and DualSense controllers is provided.
    • The WinRT-module Windows.Gaming.Input with the implementation of a programming interface for accessing gamepads, joysticks and game wheels is proposed. For the new API, among other things, support for notification of hot plugging of devices, tactile and vibration effects is implemented.
  • Internationalization
    • The generation of the correct database of locales in the locale.nls format from the Unicode CLDR (Unicode Common Locale Data Repository) repository is provided.
    • The Unicode string comparison functions have been moved to use the database and the Windows Sortkey algorithm instead of the Unicode Collation algorithm, bringing the behavior closer to Windows.
    • Support for upper Unicode code ranges (planes) has been added to most features.
    • Provided the ability to use UTF-8 as an ANSI encoding.
    • The character tables have been updated to the Unicode 15.0.0 specification.
  • Text and fonts
    • Font linking is enabled for most system fonts to resolve missing glyphs on systems with Chinese, Korean, and Japanese locales.
    • Redesigned fallback to a fallback font in DirectWrite.
  • Kernel (Windows kernel interfaces)
    • The ApiSetSchema database was implemented, which replaced the api-ms-* modules and made it possible to reduce disk and address space consumption.
    • DOS file attributes are saved on disk in a Samba-compatible format using extended file system attributes.
  • Networking opportunities
    • Added support for the OCSP (Online Certificate Status Protocol) used to check revoked certificates.
    • Expanded the range of EcmaScript features available in JavaScript standards compliance mode.
    • Implemented garbage collector for JavaScript.
    • The Gecko engine package includes tools for people with disabilities.
    • MSHTML adds support for the Web Storage API, the Performance object, and additional objects for event handling.
  • Built-in applications
    • All built-in applications have been switched to use the Common Controls 6 library, with support for themes and rendering, taking into account screens in high pixel density.
    • Enhanced thread debugging capabilities in the Wine Debugger (winedbg).
    • Support for the QWORD type has been added to the registry utilities (REGEDIT and REG).
    • Added a status line to Notepad with information about the position of the cursor and the Goto Line function to jump to the specified line number
    • The built-in console provides data output in the OEM code page.
    • Added 'query' command to sc.exe (Service Control) utility.
  • Assembly system
    • Provided the ability to build executable files in PE format for several architectures (for example, '--enable-archs=i386,x86_64').
    • On all platforms with the 32-bit long type, data types defined as long on Windows are now redefined as 'long' instead of 'int' in Wine. In Winelib, this behavior can be disabled via the WINE_NO_LONG_TYPES definition.
    • Added ability to generate libraries without using dlltool (enabled by specifying the '--without-dlltool' option in winebuild).
    • To improve loading efficiency and reduce the size of non-code, resource-only libraries, winegcc implements the '--data-only' option.
  • Miscellanea
    • Updated versions of built-in libraries Faudio 22.11, LCMS2 2.14, LibJPEG 9e, LibMPG123 1.31.1, LibPng 1.6.39, LibTiff 4.4.0, LibXml2 2.10.3, LibXslt 1.1.37, Zlib 1.2.13.
    • The Wine Mono engine with .NET platform implementation has been updated to release 7.4.
    • Implemented support for encryption based on the RSA algorithm and RSA-PSS digital signatures.
    • Added the initial version of the UI Automation API.
    • The source tree includes the LDAP and vkd3d libraries, which are built in PE format, eliminating the need to supply Unix builds of these libraries.
    • The use of the OpenAL library has been discontinued.

Source: opennet.ru

Add a comment