Вышел Wine 8.0

ba805841cc43544d9667b264c1352aa2.jpg

Вышел стабильный релиз Wine 8.0 — открытой реализации Win32 API. В новой версии завершили работу по переводу модулей Wine в формат PE, внедрили Print Processor, поддержку эффектов в Direct2D, новый компилятор шейдеров для языка HLSL в Direct3D, а также улучшили поддержку игровых контроллеров.

Теперь в Wine полноценно работает 5266 программ для Windows, а ещё 4370 программ работают при дополнительных настройках и внешних DLL. 

модули в формате PE. Это позволяет использовать доступные для Windows отладчики и решает проблемы с поддержкой различных схем защиты от копирования. Решены проблемы с работой 32-разрядных приложений на 64-разрядных хостах и x86-приложений на системах Arm;

специальный диспетчер системных вызовов для трансляции обращений из PE в Unix-библиотеки. Это позволит снизить падение производительности при использовании библиотек OpenGL и Vulkan. В Winelib-приложениях можно использовать смешанные сборки Windows/Unix библиотек в формате ELF (.dll.so), но без 32-разрядных библиотек они не будут поддерживать функциональность, доступную через интерфейс системных вызовов NT;

прослойку WoW64 (64-bit Windows-on-Windows) для всех Unix-библиотек. Это позволяет 32-разрядным модулям в формате PE обращаться к 64-разрядным Unix-библиотекам;

запуск 32-разрядных приложений в новом экспериментальном Windows-подобном режиме WoW64, в котором 32-разрядный код запускается внутри 64-разрядного процесса. Режим включается при сборке Wine с опцией '--enable-archs';

преобразование графических драйверов (winex11.drv, winemac.drv, wineandroid.drv) для выполнения на Unix-уровне системных вызовов и обращения к драйверам через библиотеку Win32u;

архитектуру обработчиков вывода на печать (Print Processor) для исключения в драйвере принтера прямых вызовов между уровнями PE и Unix;

поддержку эффектов в API Direct2D;

возможность записи и воспроизведения списков команд в API Direct2D;

поддержку спецификации Vulkan 1.3.237 в драйвере для графического API Vulkan;

новый компилятор шейдеров для языка HLSL (High-Level Shader Language) на базе библиотеки vkd3d-shader;

интерфейс Thread Pump;

поддержку новых выражений в эффектах Direct3D 10;

поддержку проекции текстур Cubemap во вспомогательной библиотеке для D3DX 9;

поддержку фильтров для декодирования звука в формате MPEG-1 на базе фреймворка GStreamer;

фильтр для чтения потокового звука и видео в формате ASF;

исключение промежуточной библиотеки-прослойки OpenAL32.dll, вместо которой используется родная Windows-библиотека OpenAL32.dll;

улучшенное определение типа содержимого в Media Foundation Player;

возможность управления скоростью передачи данных;

улучшенную поддержку микшера и отрисовщика по умолчанию в Enhanced Video Renderer (EVR);

начальную реализацию API Writer Encoding;

улучшенную поддержку загрузчика топологий;

улучшенную поддержку горячего подключения игровых контроллеров;

улучшенную реализацию кода для определения игровых рулей на базе библиотеки SDL;

улучшенную поддержку эффекта виброотклика (Force feedback) при использовании игровых рулей;

возможность управления левым и правым вибромоторами, использующими спецификацию HID Haptic;

новое оформление панели управления джойстиком;

поддержку контроллеров Sony DualShock и DualSense через использование бэкенда hidraw;

WinRT-модуль Windows.Gaming.Input с реализацией программного интерфейса для доступа к геймпадам, джойстикам и игровым рулям;

генерацию корректной БД локалей в формате locale.nls из репозитория Unicode CLDR (Unicode Common Locale Data Repository);

алгоритм Windows Sortkey для функции сравнения строк Unicode вместо алгоритма Unicode Collation;

поддержку верхних диапазонов кодов (плоскостей) Unicode;

возможность использования UTF-8 в качестве ANSI-кодировки;

обновление спецификации таблицы символов до Unicode 15.0.0;

связывание шрифтов для большинства системных шрифтов, чтобы решить проблему с отсутствием глифов на системах с китайскими, корейскими и японскими локалями;

новый откат на запасной шрифт в DirectWrite;

реализацию БД ApiSetSchema, которая заменила собой модули api-ms-* и позволила сократить потребление диска и адресного пространства;

сохранение на диске файловых атрибутов DOS в совместимом с Samba формате;

поддержку протокола OCSP (Online Certificate Status Protocol) для проверки отозванных сертификатов;

расширенный спектр возможностей EcmaScript в режиме соответствия стандартам JavaScript;

сборщик мусора для JavaScript;

средства для людей с ограниченными возможностями в пакете с движком Gecko;

поддержку API Web Storage, объекта Performance и дополнительных объектов для обработки событий в MSHTML;

перевод встроенных приложений на использование библиотеки Common Controls 6 с поддержкой тем оформления и отрисовки с учётом экранов c высокой плотностью пикселей;

новые возможности отладки потоков в отладчике Wine Debugger (winedbg);

поддержку типа QWORD в утилитах для работы с реестром (REGEDIT и REG);

строку состояния с информацией о позиции курсора и функция Goto Line для перехода на указанный номер строки в Notepad;

вывод данных в кодовой странице OEM во встроенной консоли;

команду 'query' в утилите sc.exe (Service Control);

возможность сборки исполняемых файлов в формате PE для нескольких архитектур (например, '--enable-archs=i386, x86_64');

переопределение типов на платформах с 32-разрядным типом long ('long' вместо 'int');

возможность генерации библиотек без использования dlltool (через опцию '--without-dlltool' в winebuild);

опцию '--data-only' в winegcc для повышения эффективности загрузки и снижения размера библиотек без кода;

новые версии встроенных библиотек 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;

обновление движка Wine Mono с реализацией платформы .NET до выпуска 7.4;

поддержку шифрования на базе алгоритма RSA и цифровых подписей RSA-PSS;

начальную версию API UI Automation;

включение в дерево исходных текстов библиотек LDAP и vkd3d, которые собираются в формате PE;

прекращение использования библиотеки OpenAL.

Версия Wine 7.5 вышла в марте 2022 года. В неё внесли 360 изменений и исправили 28 ошибок.

© Habrahabr.ru