Die Veröffentlichung des Projekts Bottles 2022.1.28 wurde vorgestellt, das eine Anwendung zur Vereinfachung der Installation, Konfiguration und AusfĂŒhrung von Windows-Anwendungen unter Linux auf Basis von Wine oder Proton entwickelt. Das Programm bietet eine BenutzeroberflĂ€che zur Verwaltung von Prefixen, die die Wine-Umgebung und Parameter fĂŒr die AusfĂŒhrung von Programmen definieren, sowie Werkzeuge zur Installation von AbhĂ€ngigkeiten, die fĂŒr das korrekte Funktionieren der ausgefĂŒhrten Programme erforderlich sind. Der Code des Projekts ist in Python geschrieben und wird unter der GPLv3-Lizenz veröffentlicht. Das Programm wird im Flatpak-Format und in Paketen fĂŒr Arch Linux geliefert.
Anstelle des Winetricks-Skripts wird in Bottles fĂŒr die Installation zusĂ€tzlicher Bibliotheken ein vollstĂ€ndiges AbhĂ€ngigkeiten-Management-System verwendet, dessen Funktionsweise an das Management von AbhĂ€ngigkeiten in Paketmanagern von Distributionen erinnert. FĂŒr die gestartete Windows-Anwendung wird eine Liste von AbhĂ€ngigkeiten (DLL-Bibliotheken, Schriftarten, Runtime usw.) festgelegt, die heruntergeladen und installiert werden mĂŒssen, um ein einwandfreies Funktionieren sicherzustellen, wobei jede AbhĂ€ngigkeit ihre eigenen AbhĂ€ngigkeiten haben kann.

Bottles bietet ein Repository mit Informationen zu AbhĂ€ngigkeiten fĂŒr verschiedene Programme und Bibliotheken sowie Werkzeuge zur zentralen Verwaltung von AbhĂ€ngigkeiten. Alle installierten AbhĂ€ngigkeiten werden verfolgt, daher können beim Entfernen des Programms auch die zugehörigen AbhĂ€ngigkeiten entfernt werden, wenn sie nicht zur AusfĂŒhrung anderer Anwendungen verwendet werden. Dieser Ansatz ermöglicht es, ohne die Installation einer separaten Wine-Version fĂŒr jede Anwendung auszukommen und eine einheitliche Wine-Umgebung fĂŒr die AusfĂŒhrung möglichst vieler Anwendungen zu verwenden.

FĂŒr die Arbeit mit Windows-PrĂ€fixen in Bottles wird das Konzept der Umgebungen verwendet, die vorgefertigte Einstellungen, Bibliotheken und AbhĂ€ngigkeiten fĂŒr bestimmte Anwendungsarten bereitstellen. Es werden grundlegende Umgebungen angeboten: Gaming â fĂŒr Spiele, Software â fĂŒr Anwendungen und Custom â eine saubere Umgebung fĂŒr eigene Experimente. In der Spieleumgebung sind DXVK, VKD3D, Esync enthalten, auf Systemen mit hybrider Grafik wird die dedizierte Grafikkarte aktiviert, und in PulseAudio sind Einstellungen zur Verbesserung der AudioqualitĂ€t integriert. In der Anwendungsumgebung sind Einstellungen enthalten, die sowohl fĂŒr Multimedia- als auch BĂŒroanwendungen geeignet sind.

Bei Bedarf können mehrere verschiedene Versionen von Wine, Proton und DXVK installiert und spontan zwischen ihnen gewechselt werden. Der Import von Umgebungen aus anderen Wine-Managern, wie Lutris und PlayOnLinux, ist möglich. Die Umgebungen werden mit Sandbox-Isolation gestartet, sind von dem Hauptsystem getrennt und haben nur Zugriff auf die erforderlichen Daten im Heimatverzeichnis. UnterstĂŒtzung fĂŒr Versionskontrolle wird bereitgestellt, die den Zustand vor der Installation jeder neuen AbhĂ€ngigkeit automatisch speichert und es ermöglicht, bei Problemen auf einen der frĂŒheren ZustĂ€nde zurĂŒckzukehren.

Zu den Ănderungen in der neuen Version gehören:
- Ein neuer Backend zur Verwaltung von Wine wurde hinzugefĂŒgt, bestehend aus drei Komponenten: WineCommand, WineProgram und Executor.
- Mehrere Handler fĂŒr WineProgram wurden vorgeschlagen:
- reg, regedit â zum Arbeiten mit der Registry, ermöglicht es, mehrere SchlĂŒssel mit einem Aufruf zu Ă€ndern.
- net â zur Verwaltung von Diensten.
- wineserver â zur ĂberprĂŒfung der Funktion des verwaltenden Prozesses von Bottles.
- start, msiexec und cmd â zum Arbeiten mit VerknĂŒpfungen .lnk und .msi/.batch-Dateien.
- taskmgr â Task-Manager.
- wineboot, winedbg, control, winecfg.
- Ein AusfĂŒhrungsmanager (Executor) wurde implementiert, der beim Starten einer ausfĂŒhrbaren Datei automatisch den erforderlichen Handler je nach Dateierweiterung (.exe, .lnk, .batch, .msi) aufruft.
- Es wurde die Möglichkeit bereitgestellt, Befehle in einer vollstĂ€ndigen oder verkĂŒrzten Umgebung auszufĂŒhren.
- Die UnterstĂŒtzung fĂŒr Synchronisation unter Verwendung des Systemaufrufs futex_waitv (Futex2), der im Linux-Kernel 5.16 eingefĂŒhrt wurde, wurde hinzugefĂŒgt. Ein Caffe-Handler, basierend auf Wine 7, der den Synchronisationsmechanismus Futex2 unterstĂŒtzt, wurde hinzugefĂŒgt.
- FĂŒr Installer wurde die Möglichkeit implementiert, Konfigurationsdateien (json, ini, yaml) zu Ă€ndern.
- Die UnterstĂŒtzung fĂŒr das Verstecken von Elementen in der Programmliste wurde hinzugefĂŒgt.

- Ein neuer Dialog zur Anzeige des Inhalts von Manifestdateien fĂŒr AbhĂ€ngigkeiten und Installer wurde hinzugefĂŒgt.

- Die Suchfunktion wurde zur Liste der verfĂŒgbaren Installer hinzugefĂŒgt.

ZusĂ€tzlich kann die Veröffentlichung der Proton-Version 7.1-GE-1 erwĂ€hnt werden, im Rahmen derer von Enthusiasten erstellte, von Valve unabhĂ€ngige erweiterte Builds des Proton-Pakets zum AusfĂŒhren von Windows-Anwendungen entstehen, die sich durch eine neuere Version von Wine, die Verwendung von FFmpeg in FAudio und die Integration zusĂ€tzlicher Patches, die Probleme in verschiedenen Spielanwendungen lösen, auszeichnen.
In der neuen Version von Proton GE wurde auf Wine 7.1 mit Patches aus Wine-staging 7.1 umgestellt (in der offiziellen Version von Proton wird weiterhin Wine 6.3 verwendet). Alle Ănderungen aus den Git-Repositories der Projekte vkd3d-proton, dxvk und FAudio wurden ĂŒbernommen. Probleme in den Spielen Forza Horizon 5, Resident Evil 5, Persona 4 Golden, Progressbar95 und Elder Scrolls Online wurden behoben.
Quelle: opennet.ru



