Sortie stable de Wine 10.0

Après un an de développement et 29 versions expérimentales, la version stable de l'implémentation ouverte de l'API Win32 - Wine 10.0 - a été lancée, intégrant plus de 6000 changements. Parmi les réalisations clés de cette nouvelle version, on note le support complet de l'architecture ARM64EC, le redimensionnement sur des écrans à haute densité de pixels, l'activation par défaut du pilote Wayland, la mise en œuvre de panneaux pour la configuration de l'écran et du joystick, un backend multimédia alternatif basé sur FFmpeg, un pilote Bluetooth, le support de Vulkan 1.4, et la capacité pour l'émulation du changement de modes vidéo.

Wine prend en charge pleinement 5372 programmes Windows (contre 5336 l'année dernière, 5266 il y a deux ans, et 5156 il y a trois ans), tandis que 4435 programmes (contre 4397 l'année dernière, 4370 il y a deux ans, et 4312 il y a trois ans) fonctionnent très bien avec des réglages supplémentaires et des DLL externes. Pour 4020 programmes (contre 3943 l'année dernière, 3888 il y a deux ans, et 3813 il y a trois ans), de légers problèmes de fonctionnement ont été observés, mais cela n'interfère pas avec l'utilisation des fonctions principales des applications.

Les principales nouveautés de Wine 10.0 :

  • ARM64
    • Un support complet de l'architecture ARM64EC (ARM64 Emulation Compatible) a été assuré, atteignant un niveau de parité avec l'architecture ARM64 dans Wine. L'architecture ARM64EC a été conçue pour faciliter le portage d'applications initialement écrites pour les systèmes x86_64 vers les systèmes ARM64, permettant l'exécution dans un environnement ARM64 de modules distincts contenant du code x86_64 grâce à un émulateur.
    • Un support complet du format de fichiers PE ARM64X a été mis en œuvre, permettant de combiner dans un même fichier exécutable du code pour les architectures ARM64EC et ARM64. Pour construire Wine dans le format ARM64X, il est nécessaire d'installer LLVM depuis Git (la fonctionnalité requise fera partie de la version LLVM 20) et d'indiquer l'option « --enable-archs=arm64ec,aarch64 » lors de l'exécution du script « configure ».
    • Une interface pour l'émulation de systèmes 64 bits x86 a été réalisée. En utilisant ARM64EC, Wine s'exécute tel quel, tandis que l'émulation est appliquée uniquement au code des applications x86-64. La bibliothèque avec l'émulateur n'est pas encore incluse dans la version principale de Wine, mais pour exécuter du code x86-64 dans un environnement ARM64, un émulateur externe FEX, compilé avec le support ARM64EC, peut être utilisé.
    • Pour assurer le support d'ARM64, il est nécessaire d'utiliser des pages mémoire de 4 Ko dans le système, comme l'exige l'ABI Windows (le démarrage dans des environnements avec des noyaux Linux utilisant des pages mémoire de 16 Ko ou 64 Ko n'est pas encore pris en charge).
  • Sous-système graphique
    • Un meilleur redimensionnement sur les écrans à haute densité de pixels (High-DPI) a été mis en œuvre. La prise en charge du mode DPI Awareness a été assurée pour l'affichage des applications sur des écrans à haute densité de pixels, en tenant compte de la capacité de l'application à s'adapter à un changement de DPI ou non (les applications ne tenant pas compte du DPI sont mises à l'échelle automatiquement). Des options ont été ajoutées pour remplacer le support High-DPI lié à des applications spécifiques ou des préfixes Wine.
    • La prise en charge de la spécification Vulkan 1.4 a été ajoutée au pilote pour l'API graphique Vulkan (dans Wine 9.0, Vulkan 1.3.272 était pris en charge). La prise en charge des extensions Vulkan pour l'encodage et le décodage vidéo a été ajoutée.
    • Lors de l'utilisation du backend X11, il est désormais possible de dessiner des fenêtres enfant Vulkan pour les applications utilisant de telles fenêtres pour afficher du contenu 3D (auparavant, cette possibilité n'était disponible que pour OpenGL).
    • La bibliothèque GdiPlus a ajouté la prise en charge du mécanisme de liaison de polices (« Font Linking »), permettant d'utiliser plusieurs polices lors de l'affichage du texte, si aucune police individuelle ne couvre tous les caractères présents dans le texte.
  • Wayland
    • Dans la configuration par défaut, le pilote winewayland.drv est activé, permettant d'utiliser Wine dans des environnements basés sur le protocole Wayland sans utiliser XWayland et les composants X11. Wine lance par défaut des applications sur Wayland directement uniquement si XWayland n'est pas disponible, sinon le lancement avec XWayland reste prioritaire. Pour forcer l'activation de Wayland, vous pouvez utiliser la variable d'environnement DISPLAY, ou ajouter une clé dans le registre en créant un fichier file.reg : Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\Drivers] « Graphics »=« wayland » et l'appliquer avec la commande : $ WINEPREFIX=\/chemin\/vers\/le\/préfixe wine regedit \/chemin\/vers\/file.reg
    • Le pilote winewayland.drv a ajouté la prise en charge d'OpenGL et des tampons de pixels (pBuffer).
    • Les problèmes de positionnement des fenêtres contextuelles dans les environnements basés sur Wayland ont été résolus.
    • Lors de l'utilisation de Wayland, le support de la répétition automatique des frappes lors du maintien des touches a été mis en œuvre.
  • Intégration avec le bureau
    • Un mécanisme expérimental d'émulation « modesetting » a été ajouté, permettant d'émuler le changement de modes vidéo sans modifier réellement les paramètres de l'écran. La visibilité du changement de résolution d'écran sans changement de mode vidéo est créée via l'extension et le redimensionnement des fenêtres.
    • Un nouvel applet Panneau de configuration de bureau (desk.cpl) a été ajouté, avec une interface de gestion des paramètres d'affichage (par exemple, il est possible de modifier la résolution virtuelle du bureau ou de régler les paramètres d'affichage émulés).
    • Il est désormais possible de restaurer les paramètres de l'écran aux valeurs par défaut en cas d'impossibilité de rétablir l'état après une terminaison anormale du processus.
    • Ajout de la prise en charge de la désactivation de l'affichage des icônes dans la barre système (dans « HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer », il faut définir « NoTrayItemsDisplay=1 »).
    • Ajout de la prise en charge de la désactivation des shells (lanceurs de Shell) en mode bureau (dans « HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer », il faut définir « NoDesktop=1 »).
  • Direct3D
    • Pour le rendu utilisant OpenGL, la prise en charge de GLSL 1.20 est désormais requise, ainsi que des extensions EXT_framebuffer_object et ARB_texture_non_power_of_two. Le support de l'ancien backend ARB shader et des réglages OffscreenRenderingMode a été abandonné.
    • Pour Direct3D 9 et les versions antérieures, un pipeline graphique fixe a été ajouté (dans les anciens Direct3D, seules des opérations graphiques prédéfinies étaient fournies et ne pouvaient pas être modifiées), réalisé à l'aide du langage de shaders HLSL, permettant d'émuler des fonctions fixes lors du rendu via l'API Vulkan ou OpenGL.
    • Lors du rendu utilisant Vulkan, des extensions Vulkan pour le changement dynamique de l'état du pipeline graphique ont été activées, réduisant ainsi les retards dans les jeux.
    • Ajout d'un backend alternatif glsl-vkd3d pour les shaders GLSL, utilisant vkd3d-shader.
    • Prise en charge initiale de la compilation des effets Direct3D, utilisant vkd3d-shader.
    • Dans la bibliothèque D3DX9, la génération de textures MIP (MipMap) lors du chargement de textures volumineuses a été implémentée. Prise en charge des formats de couleur 64bpp RGBA et 48bpp RGB dans les images PNG, ainsi que des formats X8L8V8U8, A2W10V10U10, A8P8, V16U16 et Q16W16V16U16.
  • Son et vidéo
    • Un nouveau backend multimédia fondé sur l'utilisation de FFmpeg a été implémenté comme alternative au backend basé sur GStreamer, adapté pour assurer le fonctionnement du framework Media Foundation. Pour activer le backend alternatif, il faut définir « DisableGstByteStreamHandler=1 » dans la section du registre « HKCU\Software\Wine\MediaFoundation ».
    • Amélioration de l'implémentation de l'API Media Foundation, qui s'harmonise désormais mieux avec les applications dépendantes des composants de démultiplexage et de décodage.
    • L'API DirectMusic prend désormais en charge le téléchargement de fichiers MIDI.
  • Périphériques d'entrée
    • Une version initiale du pilote Bluetooth a été ajoutée.
    • Applet Joystick Control Panel (joy.cpl) ajouté avec des paramètres pour le joystick.
    • Améliorations apportées aux dispositifs de pointage (touchpads, souris) utilisant le protocole HID (Human Interface Device). Le pilote mouhid.sys pour les dispositifs HID a été ajouté. Un traitement correct des dispositifs d'entrée composés a été réalisé et l'information a été transmise aux applications Windows en tant que dispositifs séparés.
    • Pour le backend X11, le support des écrans tactiles a été ajouté ainsi que la possibilité d'utiliser le mode multitouch via le traitement des messages WM_POINTER* (WM_POINTERENTER, WM_POINTERLEAVE, etc.).
    • Certaines structures internes de la bibliothèque user32 ont été placées dans la mémoire partagée, ce qui a amélioré les performances et réduit la charge sur le Wine Server.
    • Le support du traitement des événements XInput2 a été ajouté dans winex11 lié à des fenêtres individuelles.
    • Un support correct pour les claviers avec la disposition Dvorak a été mis en œuvre.
  • Noyau (interfaces du noyau Windows)
    • Un support pour l'élévation des privilèges des processus a été ajouté (un processus initialement exécuté sous un utilisateur ordinaire peut se voir attribuer des privilèges d'administrateur). Lors de la création de processus serveur (msi action server), ainsi que de processus invoquant les fonctions RtlCreateUserProcess() et CreateProcessInternal(), un jeton d'administrateur limité est utilisé par défaut.
    • Lors de l'obtention d'informations sur les étiquettes des disques, l'accès aux services système via DBus est maintenant utilisé dans la mesure du possible, au lieu d'essayer un accès direct au dispositif.
    • Un mécanisme de communication interprocessus (IPC) unidirectionnel Mailslots est désormais implémenté directement dans le serveur Wine, ce qui permet d'atteindre un support complet de la sémantique Windows.
    • La attente des événements du port série en mode asynchrone a été mise en œuvre.
    • Le support complet des extensions de processeur XSTATE dans les contextes de thread a été ajouté, permettant l'utilisation de nouvelles extensions vectorielles telles que l'AVX-512.
  • Applications intégrées
    • Le moteur de traitement des entrées utilisé dans l'interpréteur de commandes cmd.exe a été réécrit. Le support des opérations '||' et '&&' a été ajouté dans cmd.exe.
    • Un support pour les expressions régulières et la recherche sans tenir compte de la casse a été ajouté à l'outil findstr.
    • Les utilitaires regsvr32 et rundll32 ont été dotés de la capacité d'enregistrer des modules ARM64EC.
    • Des outils ont été ajoutés : sort pour trier les données d'entrée, fc pour comparer des fichiers et where pour rechercher des fichiers.
    • L'application wmic prend en charge un mode de fonctionnement interactif.
    • Dans l'Explorateur, un support optionnel pour le menu de démarrage et la barre d'outils a été ajouté. Le lancement de explorer.exe avec des droits d'accès réduits a été assuré.
  • Outils pour le développement
    • L'option « -marm64x » a été ajoutée à winebuild pour générer des bibliothèques hybrides ARM64X.
    • L'option « -marm64x » a été ajoutée à winegcc pour permettre la compilation pour ARM64X.
    • Dans les fichiers générés à l'aide du langage de description d'interface IDL (Interface Definition Language), des composants entièrement compatibles en mode interprété sont utilisés.
    • Le compilateur du langage d'interface IDL (Interface Definition Language) a été mis à jour pour prendre en charge la génération de bibliothèques de types (TypeLib) au format ancien (SLTG).
    • L'outil winedump a été mis à jour pour prendre en charge la sauvegarde des dumps de tables minidump, des informations sur les exceptions C++ et des ressources typelib.
  • Divers
    • Amélioration du support du protocole d'échange de clés de Diffie-Hellman (DH). Possibilité de configurer et d'obtenir des paramètres DH. Des gestionnaires ont été implémentés pour créer des paires de clés publiques et privées.
    • L'utilisation du remplissage OAEP (Optimal Asymmetric Encryption Padding) a été assurée avec l'algorithme RSA.
    • L'API DirectPlay prend désormais en charge les sessions réseau.
    • Le traitement des états d'entrée/sortie asynchrone a été amélioré lors de l'utilisation en mode WoW64 (Windows-on-Windows 64 bits), permettant d'exécuter des applications Windows 32 bits sur des systèmes Unix 64 bits.
    • Le chargement des pilotes ODBC pour les SGBD compilés pour Windows a été ajouté.
    • Un support complet pour RPC/COM, C++ RTTI (Run-Time Type Information) et les exceptions C++ a été implémenté pour la plateforme ARM.
    • Le runtime C prend en charge l'encodage UTF-8 dans les fonctions ANSI.
    • Les fonctionnalités du moteur MSHTML ont été étendues. Le support des prototypes et des constructeurs d'objets a été ajouté. Un nouvel interface de liaison d'objets pour MSHTML a été introduit dans le moteur JavaScript. Les fonctions intégrées de MSHTML ont été converties en objets JavaScript valides. Le ramasse-miettes pour JavaScript a été amélioré, couvrant désormais tous les contextes d'exécution de scripts dans le fil. Le support des objets JavaScript ArrayBuffer et DataView a été ajouté.
    • Un support pour l'analyse statique utilisant Clang et des rapports de tests JUnit a été ajouté au système d'intégration continue basé sur Gitlab.
    • La bibliothèque Capstone 5.0.3 est intégrée, permettant la désassemblage dans le débogueur WineDb.
    • Les composants ont été mis à jour vers de nouvelles versions : Vkd3d 1.14, Faudio 24.10, FluidSynth 2.4.0, LDAP 2.5.18, LCMS2 2.16, LibJpeg 9f, LibMPG123 1.32.9, LibPng 1.6.44, LibTiff 4.7.0, LibXml2 2.12.8, LibXslt 1.1.42 et Zlib 1.3.1.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster