Представлено випуск проекту Bottles 2022.1.28, що розвиває програму для спрощення установки, налаштування та запуску Windows-додатків у Linux на базі Wine або Proton. Програма надає інтерфейс для управління префіксами, що визначають Wine-оточення та параметри для запуску додатків, а також інструменти для встановлення залежностей, необхідних для коректної роботи програм, що запускаються. Код проекту написаний мовою Python та поширюється під ліцензією GPLv3. Програма постачається у форматі Flatpak та у пакетах для Arch Linux.
Замість скрипту Winetricks у Bottles для встановлення додаткових бібліотек застосовується повноцінна система управління залежностями, робота якої нагадує управління залежностями у пакетних менеджерах дистрибутивів. Для Windows-додатка визначається список залежностей (DLL-бібліотеки, шрифти, runtime і т.п.), які необхідно завантажити і встановити для нормальної роботи, при тому, що у кожної залежності можуть бути свої залежності.
Bottles надає репозиторій з інформацією про залежність для різних програм та бібліотек, а також інструментарій для централізованого управління залежностями. Всі встановлені залежності відстежуються, тому при видаленні програми, можна видалити і пов'язані залежності, якщо вони не використовуються для запуску інших програм. Подібний підхід дозволяє обійтися без встановлення окремої версії Wine для кожної програми та використовувати єдине Wine-оточення для запуску якомога більшої кількості програм.
Для роботи з Windows-префіксами в Bottles застосовується концепція оточень, що надають готові налаштування, бібліотеки та залежність певного класу додатків. Пропонуються базові оточення: Gaming – для ігор, Software – для прикладних програм та Custom – чисте оточення для проведення власних експериментів. В оточенні для ігор включені DXVK, VKD3D, Esync, на системах з гібридною графікою активована дискретна графічна карта, а PulseAudio включені налаштування для поліпшення якості звуку. В оточенні програм включені налаштування, що підходять як для мультимедійних програм, так і офісних програм.
При необхідності можна встановити кілька різних версій wine, proton і dxvk, і на льоту перемикатися між ними. Можливий імпорт оточення з інших менеджерів Wine, таких як Lutris та PlayOnLinux. Оточення запускаються з використанням sandbox-ізоляції, відокремлені від основної системи та мають доступ лише у необхідних даних у домашньому каталозі. Надається підтримка версійного контролю, що автоматично зберігає стан перед встановленням кожної нової залежності і дозволяє відкататися на один із минулих станів у разі проблем.
Серед змін у новому випуску:
- Додано новий бекенд для керування 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.
Джерело: opennet.ru