разработчики выпустили Wine 11.20 – новую версию ветки разработки слоя совместимости для запуска Windows-приложений и игр в Linux, macOS и других Unix-подобных системах. Обновление добавляет отладочную трассировку вызовов для ARM64EC, улучшает проверку XML и переносит обработку CD-ROM в Mount Manager. Разработчики закрыли 24 отчёта об ошибках, включая сбои Office 2013, OneDrive и старых игр. Исходный код опубликован; готовые пакеты для дистрибутивов появятся в соответствующих каналах загрузки.
Отладка ARM64EC, проверка XML и поддержка CD-ROM
Согласно официальному анонсу, Wine 11.20 получил поддержку relay debugging для ARM64EC. Этот механизм позволяет отслеживать вызовы функций и помогает разбирать ошибки совместимости.
ARM64EC – двоичный интерфейс, позволяющий специально собранному коду для Arm взаимодействовать с эмулируемым кодом x64 внутри одного процесса. Он отличается от обычного ARM64 ABI: библиотеки ARM64 и ARM64EC не взаимозаменяемы.
В компонентах MSXML разработчики улучшили проверку XML-документов. В частности, они доработали проверку элементов и атрибутов по DTD, описывающему допустимую структуру документа.
Обработку CD-ROM перенесли в Mount Manager – компонент управления томами. Изменение объединяет работу с такими устройствами в соответствующей подсистеме Wine.
Исправления Office 2013, OneDrive и других приложений
Обновление устраняет ошибки установки, запуска, интерфейса и ввода в следующих программах:
- Microsoft Office 2013 Click-to-Run: исправлен сбой установщика при использовании встроенной msxml6 и сохранении XML через DOMDocument::save() с кодировкой «unicode».
- QuickBooks 2008–2010: устранена ошибка инициализации лицензии «Could not initialize license properties».
- QuickBooks SS 2008 R1: исправлены повторные сбои при втором запуске.
- OneDrive: устранён сбой, связанный с неполной реализацией cldapi.dll.
- MusicBee: исправлено исключение System.OutOfMemoryException в режиме WoW64.
- FL Studio: открытие меню больше не приводит к немедленному выбору пункта, над которым находится указатель мыши.
- SumatraPDF 3.1.2: заголовок окна Wine больше не перекрывает вкладки.
- TagScanner: исправлено наложение системного оформления окна на оформление, которое рисует само приложение.
- Medicalc4: устранена проблема входа в приложение.
- Unigine Heaven 2.0, Toad for SQL Server 5.7 и справка QuickBooks: исправлена загрузка библиотеки взаимодействия SHDocVw.dll, которой мешал выбор встроенной shdocvw.dll вместо нативной.
Исправления игр
- Pure Pinball: устранён сбой при обращении к уже освобождённым объектам текстур.
- Incoming (1998): исправлен сбой после вступительной анимации.
- Star Wolves 3: устранены прерывания звука и падение производительности.
- Imperium: Great Battles of Rome: исправлено отсутствие музыки и звуковых эффектов.
- UFO: Aftershock и UFO: Afterlight: устранена проблема запуска с проприетарными драйверами NVIDIA при использовании бэкенда EGL.
- Battlefield 1942: исправлена проблема копирования secdrv.sys из-за отсутствия каталога C:\windows\syswow64\drivers.
- Neko Project 21/W: исправлена работа ввода в эмуляторе.
Регрессия Wine 11.19 и системные ошибки
Разработчики устранили регрессию из Wine 11.19: обработка большого файла /etc/hosts в компоненте dnsapi могла задерживать инициализацию нового префикса Wine.
Остальные исправления затрагивают библиотеки и низкоуровневые механизмы:
- Исправлена загрузка 64-разрядной msxml6.dll из Microsoft Core XML Services 6.0: Wine не учитывал 44-битное ограничение пользовательского виртуального адресного пространства Windows до версии 8.1.
- Устранён сбой InternetQueryOptionW при запросе proxy_username с нулевым буфером и корректным указателем размера.
- В cmd исправлено переполнение стекового буфера при обработке заключённой в кавычки командной строки /c длиннее MAX_PATH.
- На ARM64 устранён сбой обработки исключения C++, когда функция DLL заканчивается вызовом вспомогательной функции выброса исключения, которая не возвращает управление.
- На ARM64 исправлен сброс бита SSBS после RtlRestoreContext, обнаруженный тестом ssbs-probe.
- В Media Foundation исправлена работа MFCreateDXGISurfaceBuffer с текстурами DXGI_FORMAT_R8_UINT. Ошибка могла оставлять приложения с ElectraPlayer из Unreal Engine 4 без видео.
Доступность Wine 11.20
Wine 11.20 относится к ветке разработки. Разработчики опубликовали архив исходного кода и сообщили, что бинарные пакеты для разных дистрибутивов будут доступны через соответствующие страницы загрузки. Наличие пакета нужно проверять для своего дистрибутива и подключённого репозитория.
Вывод
Wine 11.20 полезен пользователям, которые столкнулись с перечисленными ошибками установки, запуска, звука или интерфейса Windows-программ. Для разработчиков, работающих с ARM64EC, выпуск расширяет возможности диагностики, а исправление dnsapi устраняет задержку создания нового окружения при большом файле /etc/hosts.