Version 1: Alder
A tool for creating portable, self-contained Wine environments using dwarfs compressed filesystem images. It allows you to package Windows applications (primarily games) into portable containers that can be easily distributed and run on Linux systems.
Barrels packages Wine and Wine Mono (Kron4ek builds) into a single compressed archives using the dwarfs filesystem. The main executable (barrels
) serves as both a Wine environment and a driver for creating and running application containers, allowing you to create portable Windows application packages that can run anywhere with just the driver and the application's .dwarfs
container.
- Linux system
- dwarfs filesystem tools (
dwarfs
,mkdwarfs
) - fuse-overlayfs
- wget
- Basic build tools (make, tar)
To build the Wine environment driver:
make barrels
This will:
- Download the required Wine and Wine Mono versions
- Create a Wine prefix with necessary components
- Package everything into a compressed dwarfs filesystem
- Create a self-contained executable driver
To create a new application container:
./barrels --create <app>.dwarfs
This will set up the necessary mounts and Wine prefix. You now need to do the following:
- Install your Windows application into the Wine prefix
- Create an
entrypoint.sh
script (example provided inexample-entrypoint.sh
) Once you're done, exit the shell, and the application container will be created.
To modify an existing application container:
./barrels --edit <app>.dwarfs
This will mount the existing container and allow you to make changes to it.
The original container will be backed up as <app>.dwarfs.backup
before creating
the new container with your changes.
To run a packaged application:
./barrels <app>.dwarfs [-- <args>]
The application container will be mounted and launched according to its entrypoint script.
Any arguments after --
will be passed to the entrypoint script.
Alternatively, you can specify a command to run instead of the entrypoint:
./barrels <app>.dwarfs <command> [<args>...]
User data will be stored in ~/.local/share/dwarf-<app>
.