11.2. Before you compile - Soft vs. Hard dependencies

Wine is a compatibility layer. It is not an attempt to create a new OS. As such, it tries to rely on existing functionality wherever possible. This means that some aspects of Wine require libraries to be available during compilation and runtime, or certain functionality will not be available.

There are two types of dependencies. These are the "soft dependency" and the "hard dependency".

Hard Dependency

This is a dependency of Wine that, if compiled into the code, must be available at runtime or Wine will not function. Due to it's restrictive manner, developers go to a great length to make sure there are as few of those as possible.

Fixme: How many of those are there?

Soft Dependency

These are libraries that, if present during both compilation and runtime, will add to Wine's capabilities. Unlike the hard dependencies above, compiling Wine with these libraries will allow Wine to work even on runtime environments where some or all of the soft dependencies are not available.

Packager's note: Please do your best to make sure that as many soft dependencies are available during compilation. Failing to have a soft dependency available means that users cannot benefit from a Wine capability.

11.2.1. Soft dependencies list

Here is a list of the libraries Wine needs, and their dependency is soft. We suggest packagers install each and every last of those before building the package. These libraries are not dependencies in the RPM sense. In DEB packages, they should appear as "Suggests" or "Recommends", as the case may be.

FreeType

This library is used for direct rendering of fonts. It provides better support of fonts than using the X11 fonts engine. It is only needed for the X11 back end engine. Used from GDI.

Alsa - Linux only

This library gives sound support to the Windows environment.

libjack

Something to do with the MultiMedia system. Recording sound?

Fixme: I don't truely know what this lib is.

CUPS - Common Unix Printing System

This library allows Windows to see CUPS defined printers, and to print to them.

OpenGL

This is used for both OpenGL and Direct3D (and some other DirectX functions as well) support in Wine. There are many many libraries for providing this functionality. It is enough for one of them to be available when compiling Wine. Wine can work with any other library during runtime.

If no library is available, packagers are encouraged to compile Wine with Mesa3D, which requires no hardware support to install.