Release day 2021.8.28

today is

Release 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).

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.

Launch Options with %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).

Crash Report Notice

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