Портирование Wine на OpenBSD завершено

Thomas Frohwein объявил о новом портировании Wine на OpenBSD — проекте, который описывает как самое неожиданное предложение порта в этом году. Работа велась коллективно; толчок дало обсуждение вопроса %gs/gsbase в OpenBSD (см. соответствующую ветку в рассылке).

Решающий момент пришёл, когда Andrii предложил программное решение проблемы с %gs: вместо того чтобы устанавливать gsbase напрямую, эмулировать %gs префикс на уровне команд. Основную работу выполнили Andrii и Fabien.

Новый спрос на Wine

Оказалось, что интерес к Wine резко вырос — он существенно выше, чем 5–10 лет назад. Главная причина: большинство Windows-приложений давно перешло на 64-битную архитектуру.

Порт протестирован на множестве 64-битного Windows-ПО — результаты в основном положительные. Опубликованы скриншоты и видеозаписи прямых трансляций. Примечательно, что даже новый Remaster of The Witcher 3 запускается и работает корректно (при условии установки vkd3d-proton; подробнее в README).

Основные ограничения

Главное ограничение: WoW64 не функционирует, поэтому 32-битное Windows-ПО остаётся недоступным. Проверить разрядность можно командой file(1) — если вывод содержит "MS-DOS executable PE for MS Windows (GUI) Intel 80386 32-bit", то это 32-битное приложение.

Встроенные тесты Wine отключены на данный момент. Их активация требует доступа к X-серверу и решения проблемы зависания нескольких тестов. Однако в реальных сценариях использования, особенно при тестировании игр, таких проблем не наблюдалось. Работа над тестами продолжается.

Рекомендации для тестирования

Для первых экспериментов предлагается использовать Notepad++ — небольшое и относительно простое 64-битное Windows-приложение.

Важно помнить: это ПО запускается на собственный риск (см. FAQ Wine о совместимости с вредоносом ПО). Рекомендуется создать отдельного непривилегированного пользователя для экспериментов, пока не будут изучены возможности дополнительной изоляции, потенциально с использованием unveil(2).

Тестирование и развитие порта осуществлялось при участии brynet@, bentley@, pertho (irc.libera.chat #openbsd-gaming), vl_ms.