Release day 2021.8.28
today isRelease Day!
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).
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.
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
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.
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.
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
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
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