The new super food - why is it so healthy?


Current solutions

There are already existing solutions such as PlayOnLinux and Lutris to make Windows software available under Linux. They use Wine, a compatibility layer to translate Windows API calls into POSIX calls, and add a GUI for convenience to allow end users to install their software. They do so by maintaining recipes - short scripts, that automate the setup procedure for certain software.


Why Dolmades?

A dolmade is a Linux container prepared for installation and execution of Windows applications. Once a user has prepared a recipe for a specific application it can be shared and reused by others.


1) Recipe + Ingredients = SUCCESS

When I had tested recipes on AppDB, PlayOnLinux and Lutris  many were broken - mainly due to outdated resources and missing resource links. Also sometimes several recipes existed for one app making it hard to decide which one would lead to success. Current solutions offer no dedicated repositories for their resources. Hence, their recipes work for a while, but will fail as soon as the resource links of utilized dependencies get outdated, wasting effort unnecessarily by fixing existing recipes over and over again.

Dolmades handle recipes differently: they should be easy to find by providing their ingredients. And most importantly, once a recipe is working, it should not break. This will require a repository, where users can manage recipes, ingredients and cooked dolmades. This way dolmades could be archived, reproduced, shared or distributed, and will be working for a long time.


2) Easy Installation

Current solutions require a GUI which offer recipes to install the software locally. This installation process is often tedious and error-prone especially for outdated recipes. Dolmades can be downloaded and tested straightaway, no GUI is required. If they do work and you like them, install them permanently, if not, just delete the downloaded files.


3) No Dependencies

With current solutions  it happened several times that I had to install system packages to make something work. In some cases the GUI required a lot of dependencies. Dolmades take care of their dependencies and will never require additional system packages.


4) Easy Sharing

Certain things must be taken care of in order to transfer a successfully installed app from your computer to your friends' and expect it to still work there. Due to the containerization this is practical for Dolmades while current solutions do not support this.


5) Extendability

This is mainly for developers: The containerization really offers nice possibilities for the future such as running complex dolmaded Linux setups and Windows apps or even a mixture of both. It would be also possible to add support for debugging and bug reporting to help wine developers.


As of now there are basically three well-known solutions to run Windows software in Linux environments. Have a look in the following table how they compare to each other in terms of making Windows software available for users running mainly Linux environments:


Solution
Dual Boot
Virtualization
Wine
Costs
Windows license

Windows license

for some solutions: Virtualization license

free
Integration with the host system
N/A
host file system/hardware is isolated and (partially) passed through shared mount protocols/abstraction layers
seamless
Performance
native
reduced, especially for 3D GFX and file I/O
near native, also for 3D GFX
Requirements
separated installation
memory overhead, fixed resource allocations
many functionally complementary versions, many dependencies
Functionality of installed application
as good as it gets
nearly as good as it gets
depends on windows software and wine version / configuration
Effort maintaining many applications
as good as it gets
low effort to make apps work, but resource-hungry and often bad usability, system updates may break VMs
high effort to make apps work, high effort to not break apps due to system upgrades or newly installed apps
Effort maintaining one application
ridiculously high
still too high
justifiable if the application is important


Now how do Dolmades compare to that?

  • Costs: no licensing fees required
  • Integration with the host system: seamless , but file system is isolated. Files on the host system can be made available by disk drive binds.
  • Performance: near native, 3D support lacks behind Windows
  • Requirements: non-privileged Linux user account, Python 2.7
  • Functionality of installed application: if you happen to make a software run using any version of wine there is currently no better way to preserve its functionality across system upgrades.
  • Effort maintaining many applications: Applications exist as separate dolmades with independent configuration and system files each. System upgrades and newly installed software won't affect them.
  • Effort maintaining one application: If you find an existing recipe for the  application it is as easy as it gets. Just download and install it. If the application is new, you can develop a recipe using the required ingredients, cook your application and start using it. As soon as it seems to work reliably you can share the recipe.

But wait - aren't only a few apps supported yet?

Yes indeed. And there is still a high effort to install a particular app and make it work well in a dolmade. But as soon as it is done, a recipe specific to that app can be made and published so that other users just need to download the ready-to-use container.






GITHUB
code  recipes  base images


RELATED

wine  udocker  proot


IMPRESS