https://bugs.winehq.org/show_bug.cgi?id=40842
--- Comment #7 from sworddragon2@aol.com --- (In reply to Sebastian Lackner from comment #6)
For people trying to run Wine on a minimal system (for example with limited disk space), the overhead of installing a lot of additional packages is probably not acceptable - especially when they are not required for the applications they would like to run. By adding such packages as recommendation instead of fixed dependency we leave the choice to the user, which would not be possible otherwise.
This part is a bit tricky. A normal user does not know what is required to get specific parts of Wine working. If they are even experienced enough to install Wine without recommended packages (for example they run a device with limited disk space) they would expect to hit no troubles on executing random Windows applications. If they tinker around to solve any appearing issues because of missing libraries like libxi6 building Wine from scratch becomes close to a choice.
Also this can have the opposite effect of what would be desired. If too much issues are arising the normal user could decide to install the recommended packages afterwards by uninstalling Wine and reinstalling it with enabled recommendations (which has now a much higher chance to trigger the apt issue I pointed to in my previous comment). This can cause that an user with limited disk space is forced to install a "minimalistic" Wine with all its dependencies and recommendations.
(In reply to Sebastian Lackner from comment #6)
Also please note that the installation instructions on https://wiki.winehq.org/Ubuntu suggests the following line for installing the package, which should effectively treat all recommendations as dependencies:
sudo apt-get install --install-recommends winehq-devel
There is a "predictable" race condition in apt as I mentioned in my previous comment. Here is an example how this can look on Ubuntu:
root@ubuntu:~# apt-cache policy winehq-devel libxcursor1:i386 libpng12-0:i386 libxi6:i386 | grep -P '^[^\s]|Installed:' winehq-devel: Installed: (none) libxcursor1:i386: Installed: (none) libpng12-0:i386: Installed: (none) libxi6:i386: Installed: (none) root@ubuntu:~# apt-get install --install-recommends winehq-devel Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: winehq-devel 0 upgraded, 1 newly installed, 0 to remove and 10 not upgraded. Need to get 0 B/1980 B of archives. After this operation, 73.7 kB of additional disk space will be used. debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package winehq-devel. (Reading database ... 134553 files and directories currently installed.) Preparing to unpack .../winehq-devel_1.9.12~ubuntu16.04.1_amd64.deb ... Unpacking winehq-devel (1.9.12~ubuntu16.04.1) ... Processing triggers for desktop-file-utils (0.22-1ubuntu6) ... Processing triggers for mime-support (3.59ubuntu1) ... Processing triggers for man-db (2.7.5-1) ... Setting up winehq-devel (1.9.12~ubuntu16.04.1) ... root@ubuntu:~# apt-cache policy winehq-devel libxcursor1:i386 libpng12-0:i386 libxi6:i386 | grep -P '^[^\s]|Installed:' winehq-devel: Installed: 1.9.12~ubuntu16.04.1 libxcursor1:i386: Installed: (none) libpng12-0:i386: Installed: (none) libxi6:i386: Installed: (none)
It depends on the state of the system how much recommended packages are not getting installed. On this testcase it's not that special that none of the shown recommended packages got installed. On a fresh installed system this is extremely unlikely to happen. On a moderately used system this could happen for a few packages. At least it gets more likely to happen over time.
(In reply to Sebastian Lackner from comment #6)
I guess it really depends on the use-case. For someone who wants to run console applications only, the lack of those components might be harmless.
This someone would possibly like to install wine-console-devel (or wine-dos-devel) instead of wine-devel. But these packages do not exist and instead he installs wine-devel which targets to provide the full Windows API (though, that implies that we could also split the Wine-package for example into OS-specific (Windows 2000, Windows XP, etc.) ones with only their related Windows-API part as alternative to provide minimalistic means).