It’s Release Day again!
Over the past few weeks we’ve been working on a number of bugfixes and improvements as well as new features. This is an update that sees a large part of the Bottles code rewritten and prepares the basis for Bottles Trento (v4).
Trento?
The original idea for Trento, was to rewrite the project from scratch, using the libwine library, part of the Bottles project.
Fortunately we managed to avoid this rewrite and started a series of rewrites of the Bottles backend, starting with this update. When the codebase is compatible, we will begin integrating libwine, aligning with the original project.
There will then be other updates that will focus on this source code update.
News
Ok now let’s get to the point. What’s new in this version?
Prefixes and Suffixes
The most important feature of this update is in the Launch Options of the
executable. It is now possible to define prefixes and suffixes in the launch
options of an executable, using the %command%
placeholder.
So everything that is defined before the %command%
placeholder will be
used as prefixes and after as suffixes, like how it works in Steam.
New bottle on launch
You may have happened to launch an executable in Bottles directly from your File manager and realize that it is not possible to create a bottle where to start the executable immediately.
Well now it is possible! Simply choose a Windows executable (.exe/.msi/.bat) from your File manager and launch it with Bottles. Then create a new bottle and when it’s ready, it will launch the executable. Easy?
Obviously it is possible to achieve the same goal using the CLI:
bottles -e /path/to/file.exe
Better dependencies management
Thanks to the new backend structure, we have also improved the dependency manager. This in fact supports new installation methods and can now extract single files from Windows Cabinet without saturating the Bottles’ temp path.
- action: download_archive
file_name: msxml6-KB973686-enu-amd64.exe
url: https://.../msxml6-KB973686-enu-amd64.exe
file_checksum: 13a292beb9ebe46ac97b8a4352fe2cd5
- action: get_from_cab
source: msxml6-KB973686-enu-amd64.exe
file_name: msxml6.msi
- action: get_from_cab
source: msxml6.msi
file_name: msxml6.dll.86F857F6_A743_463D_B2FE_98CB5F727E09
dest: drive_c/windows/system32/
rename: msxml6.dll
In the above example, we use the new download_archive
method to download
the cabinet and get_from_cab
to extract the msxml6.msi
file from it. Then
we use it again to extract the msxml6.dll
and copy it to the destination.
Full example
Also, the cab extraction is now quiet, it will only show essential logs.
This will take some time for all repository dependencies to adopt the new system, in fact the old one will remain active as a fallback.
Crash Report
Now the new Crash Report dialog, show a notice to the user saying that there is already similar report for that crash (if any).
So the user should read and accept the notice to be able to send the report.
Also, in the report the homedir
is replaced with /home/USER
to standardize
the reports.
Bugfixes
There are a lot of bugfixes in this release. Let’s see the most important ones.
We fixed a bug in Wayland support via XWayland. A configuration error
prevented the runner from starting executables under XWayland when the
DISPLAY
env var was not set to 0
.
The custom launchers added to the program list used an incorrect working directory and this sometimes prevented them from starting.
All other changes
There are a lot of other changes and improvements in this release. Below are other noteworthy ones, for all the others, refer to the GiHub organization.
- The dependencies/components/installers has now they own managers, indipendent from the main one
- The dependencies manager can now extract single files from Windows Cabinet files
- The user homedir is now removed from the reports
- The lutris-lol runner is now hidden when Bottles is running under flatpak, as it is not compatible with it
- The Windows Cabinet extraction is now quiet and only show relavant logs
- The download status icon in the preferencies dialog, is now on the right of the percentage, so it will be no more moved by the percentage
- Fixed a bug in name resolution that could cause Bottles to crash if it cannot reach a resource
- Prevent Bottles from running executables when the runner is not available
- Environment names are now translated again
- Added missing translations in bottle creation
- Spanish translations thanks to @fitojb, @kenpb, @oscfdezdz
- Portuguese (Brazil) translations thanks to @farribeiro, @swyknox
- Hungarian translations thanks to @ovari
- French translations thanks to @julroy67
- Swedish translations thanks to @bittin
- Chinese (Simplified) translations thanks to @sr093906
- Japanese translations thanks to @jatin-cbs
- Croatian translations thanks to @milotype
- Indonesian translations thanks to @liimee
Thanks to all users who contributed to this release!
~ Bottles’ Developers
Download 2021.8.28