Выпуск Bottles 2022.1.28 и Proton-7.1-GE-1, пакетов для запуска Windows-приложений в Linux

Представлен выпуск проекта Bottles 2022.1.28, развивающего приложение для упрощения установки, настройки и запуска Windows-приложений в Linux на базе Wine или Proton. Программа предоставляет интерфейс для управления префиксами, определяющими Wine-окружение и параметры для запуска приложений, а также для установки зависимостей, необходимых для корректной работы запускаемых программ. Код проекта написан на языке Python и распространяется под лицензией GPLv3.

Вместо скрипта Winetricks в Bottles для установки дополнительных библиотек применяется полноценная система управления зависимостями, работа которой напоминает управление зависимостями в пакетных менеджерах дистрибутивов. Для запускаемого Windows-приложения определяется список зависимостей (DLL-библиотеки, шрифты, runtime и т.п.), которые необходимо загрузить и установить для нормальной работы, при том, что у каждой зависимости могут быть свои зависимости.


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


Для работы с Windows-префиксами в Bottles применяется концепция окружений, предоставляющих готовые настройки, библиотеки и зависимости для определённого класса приложений. Предлагаются окружения: Gaming – для игр, Software – для прикладных программ и Custom – чистое окружение для проведения собственных экспериментов. В окружении для игр включены DXVK, VKD3D, Esync, на системах с гибридной графикой активирована дискретная графическая карта, а в PulseAudio включены настройки для улучшения качества звука. В окружении для приложений включены настройки, подходящие как для мультимедийных программ, так и офисных приложений. При необходимости можно установить несколько разных версий wine, proton и dxvk, и на лету переключаться между ними.


Окружения запускаются с использованием sandbox-изоляции, отделены от основной системы и имеют доступ только в необходимым данным в домашнем каталоге. Программа поставляется в формате Flatpak. Предоставляется поддержка версионного контроля, автоматически сохраняющая состояние при установки каждой новой зависимости и позволяющая откататься на одно из прошлых состояний в случае проблем.


Среди изменений в новом выпуске:

  • Добавлен новый бэкенд для управления Wine, состоящий из трех компонентов: WineCommand, WineProgram и Executor.
  • Предложено несколько обработчиков WineProgram:
    • reg, regedit – для работы с реестром, позволяющая одним вызовом менять несколько ключей.
    • net – для управления сервисами.
    • wineserver – для проверки работы управляющего процесса Bottles.
    • start, msiexec и cmd – для работы с ярлыками .lnk и файлами .msi/.batch.
    • taskmgr – менеджер задач.
    • wineboot, winedbg, control, winecfg.
  • Реализован менеджер исполнения (Executor), при запуске исполняемого файла автоматически вызывающий необходимый обработчик в зависимости от расширения файла (.exe, .lnk, .batch, .msi).
  • Предоставлена возможность запуска команд в полном или сокращённом окружении.
  • Добавлена поддержка синхронизации с использованием системного вызова futex_waitv (Futex2), появившегося в ядре Linux 5.16. Добавлен обработчик Caffe, основанный на Wine 7 и поддерживающий механизм синхронизации Futex2.
  • Для инсталляторов реализован вызов для изменения файлов конфигурации (json, ini, yaml).
  • Добавлена поддержка скрытия элементов в списке программ.

  • Добавлен новый диалог для показа содержимого файлов-манифестов для зависимостей и инсталляторов.

  • В интерфейс со списком инсталляторов добавлена функция поиска.

Дополнительно можно отметитьпубликацию выпуска проекта Proton 7.1-GE-1, в рамках которого энтузиастами формируются независимые от компании Valve расширенные сборки пакета для запуска Windows-приложений Proton, отличающиеся более свежей версией Wine, задействованием FFmpeg в FAudio и включением дополнительных патчей, решающих проблемы в различных игровых приложениях.

В новой версии Proton GE осуществлён переход на Wine 7.1 с патчами из Wine-staging 7.1 (в Proton продолжает использоваться Wine 6.3). Перенесены все изменения из git-репозиториев проектов vkd3d-proton, dxvk и FAudio. Решены проблемы в играх Forza Horizon 5, Resident Evil 5, Persona 4 Golden, Progressbar95 и Elder Scrolls Online.

Release. Ссылка here.