Skip to content

[Experimental] Wine Layers #510

@mirkobrombin

Description

@mirkobrombin

The intent of this feature (actually a concept) is to allow the user to use more than one environment (with different modifications and dependencies) in one bottle, leaving Bottles to do the hard work of making it all fit.

How it works

Let's add a fourth environment in Bottles: the Automated environment. A bottle created with this environment is basically a clean prefix, with only the essentials, so without any customization or dependency.

The user has access to only two sections:

  • list of installed programs
  • catalog of programs to be installed

When the user installs a new program from the catalog, Bottles downloads its installer, creates a temporary copy of the bottle and then follows the installer instructions (install dependencies, register keys, change bottle settings ...).

When the new bottle is ready, it compares the two bottles, takes all the differences and saves them in a new state in the overrides directory of the original bottle, then deletes the new one and adds the new program to the bottle's program list.

When the user starts the program, Bottles will mount the override on top of the original bottle and then start the program which will be able to find everything it needs to work.

bottles-overrides
bottles-overrides.pdf

Benefits

  • Less space allocated than the use of multiple bottles. Currently when a software is not compatible with the environment of a bottle, it is necessary to create a new one.
  • Shared directories, user files and installed software (although this will require tweak in the future) for each installed program.
  • Control over what is installed and immutability of the original bottle.
  • Ease of removing a program and then restoring the bottle to a previous state.
  • Easy to use. In fact, the user will only have to worry about searching for the program and pressing install. Bottles will take care of everything, without requiring user intervention (unless the program we're going to install requires it).

Drawbacks

  • The installation of a program takes some more time depending on the hardware as Bottles will have to copy the original bottle, compare the changes and eliminate the superfluous (Bottles already does this and normally takes a few minutes to create a restore point even when there are large files beyond GB, in this case it is a lot fewer files and I guess it takes a few seconds).
  • Even the start of applications could be slowed down, since the override must be mounted on the original bottle (I always think a few seconds but it depends on the weight of the override)

This is just a concept. The feature is still in the planning stage and will see the light in one of the future releases as an experimental feature.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions