Se presentó la versión del proyecto Bottles 2022.1.28, que desarrolla una aplicación para simplificar la instalación, configuración y ejecución de aplicaciones de Windows en Linux utilizando Wine o Proton. El programa ofrece una interfaz para gestionar los prefijos que definen el entorno de Wine y los parámetros para ejecutar aplicaciones, así como herramientas para instalar las dependencias necesarias para el correcto funcionamiento de los programas ejecutados. El código del proyecto está escrito en Python y se distribuye bajo la licencia GPLv3. La aplicación se ofrece en formato Flatpak y en paquetes para Arch Linux.
En lugar del script Winetricks, Bottles utiliza un sistema de gestión de dependencias completo para la instalación de bibliotecas adicionales, cuyo funcionamiento recuerda a la gestión de dependencias en los gestores de paquetes de las distribuciones. Para cada aplicación de Windows ejecutada, se determina una lista de dependencias (bibliotecas DLL, fuentes, runtime, etc.) que deben descargarse e instalarse para un funcionamiento correcto, y cada dependencia puede tener sus propias dependencias.

Bottles proporciona un repositorio con información sobre dependencias para varios programas y bibliotecas, así como herramientas para la gestión centralizada de dependencias. Todas las dependencias instaladas se rastrean, por lo que al eliminar un programa, también se pueden eliminar las dependencias relacionadas si no se utilizan para iniciar otras aplicaciones. Este enfoque permite evitar la instalación de una versión separada de Wine para cada aplicación y utilizar un único entorno Wine para ejecutar el mayor número posible de aplicaciones.

Para trabajar con los prefijos de Windows en Bottles, se aplica el concepto de entornos, que ofrecen configuraciones, bibliotecas y dependencias listas para una clase específica de aplicaciones. Se ofrecen entornos básicos: Gaming — para juegos, Software — para aplicaciones de escritorio y Custom — un entorno limpio para realizar experimentos propios. En el entorno para juegos se incluyen DXVK, VKD3D, Esync; en sistemas con gráficos híbridos se activa la tarjeta gráfica discreta, y en PulseAudio se incluyen configuraciones para mejorar la calidad del sonido. En el entorno para aplicaciones, se incluyen configuraciones adecuadas tanto para programas multimedia como para aplicaciones de oficina.

Si es necesario, se pueden instalar varias versiones diferentes de wine, proton y dxvk, y cambiar entre ellas sobre la marcha. Es posible importar entornos desde otros gestores de Wine, como Lutris y PlayOnLinux. Los entornos se ejecutan con aislamiento de sandbox, separados del sistema principal y solo tienen acceso a los datos necesarios en el directorio personal. Se proporciona soporte para el control de versiones, que guarda automáticamente el estado antes de la instalación de cada nueva dependencia y permite retroceder a uno de los estados anteriores en caso de problemas.

Entre los cambios en la nueva versión:
- Se ha añadido un nuevo backend para la gestión de Wine, compuesto por tres componentes: WineCommand, WineProgram y Executor.
- Se han propuesto varios controladores para WineProgram:
- reg, regedit — para trabajar con el registro, permite cambiar varias claves con una sola llamada.
- net — para gestionar servicios.
- wineserver — para verificar el funcionamiento del proceso controlador Bottles.
- start, msiexec y cmd — para trabajar con accesos directos .lnk y archivos .msi/.batch.
- taskmgr — gestor de tareas.
- wineboot, winedbg, control, winecfg.
- Se ha implementado un gestor de ejecución (Executor), que al iniciar un archivo ejecutable llama automáticamente al controlador necesario según la extensión del archivo (.exe, .lnk, .batch, .msi).
- Se ha proporcionado la posibilidad de ejecutar comandos en un entorno completo o reducido.
- Se ha añadido soporte para la sincronización utilizando la llamada al sistema futex_waitv (Futex2), que apareció en el núcleo de Linux 5.16. Se ha añadido un controlador de Caffe, basado en Wine 7, que soporta el mecanismo de sincronización Futex2.
- Para los instaladores, se ha implementado la posibilidad de modificar archivos de configuración (json, ini, yaml).
- Se ha añadido soporte para ocultar elementos en la lista de programas.

- Se ha añadido un nuevo diálogo para mostrar el contenido de los archivos de manifiesto para dependencias e instaladores.

- Se ha añadido una función de búsqueda a la lista de instaladores disponibles.

Además, se puede destacar la publicación del lanzamiento del proyecto Proton 7.1-GE-1, en el que entusiastas están formando compilaciones independientes de Valve, que difieren por una versión más actual de Wine, el uso de FFmpeg en FAudio y la inclusión de parches adicionales que resuelven problemas en varias aplicaciones de juegos.
En la nueva versión de Proton GE se ha realizado la transición a Wine 7.1 con parches de Wine-staging 7.1 (en el Proton oficial se sigue utilizando Wine 6.3). Se han trasladado todos los cambios de los repositorios git de los proyectos vkd3d-proton, dxvk y FAudio. Se han resuelto problemas en los juegos Forza Horizon 5, Resident Evil 5, Persona 4 Golden, Progressbar95 y Elder Scrolls Online.
Fuente: opennet.ru



