About optional Wine dependencies

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
z-s-e
Level 1
Level 1
Posts: 6
Joined: Tue Jun 13, 2017 6:02 am

About optional Wine dependencies

Post by z-s-e »

Wine has a lot of optional dependencies to various libraries and tools (e.g. see all the optional dependencies of the Arch Linux package, and I believe that list is not even comprehensive). It seems many recommend installing simply all of them, because without those Windows applications might crash or misbehave, without clear indication what the problem is. Furthermore, the wiki here says to report bugs only when "Your system has all the libraries that Wine needs.".

So I was wondering how "optional" these dependencies are now. Which of them can safely be skipped without fearing that apps break? Which of those are required for bug reporting? I'd rather like to not install some larger things that I wouldn't otherwise need (like samba).
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: About optional Wine dependencies

Post by Bob Wya »

z-s-e wrote:...

So I was wondering how "optional" these dependencies are now. Which of them can safely be skipped without fearing that apps break? Which of those are required for bug reporting? I'd rather like to not install some larger things that I wouldn't otherwise need (like samba).
A quick look over the wine-staging-4.9 package leads to my cherry-picking the following very optional dependencies:

Code: Select all

 
optdepends=(
...
  v4l-utils             lib32-v4l-utils # Can omit - webcam, digital camera capture support (recently was bumped to V4L2 - so might be more useful now!)
...
  gtk3                  lib32-gtk3 # Can omit - only required for broken Gtk3 widgets option (wine-staging only)
...
  libldap               lib32-libldap # Can omit - allows Windows applications access to directory services LDAP. 
...
  sdl2                  lib32-sdl2 # Can omit - currently just used to supported joysticks and controllers via SDL2
  vkd3d                 lib32-vkd3d # Can omit - D3D12 support via Vulkan - very poor support for most games at present
  sane # can omit - only required for scanner support
  libgphoto2 # can omit? - required for digital camera support
  gsm # can omit? - GSM 06.10 codec support
  cups # can omit - but is required for printer support
  samba # can omit - typically only used directly by Microsoft products
  dosbox # can omit - used to support DOS games and applications
)

Please ask if you have a more specific question or application in mind...

As it standards, your question is largely meaningless...
Because you haven't stated what specific applications, you are trying run with Wine. :roll:

Bob
Gcenx
Level 6
Level 6
Posts: 709
Joined: Mon Dec 25, 2017 12:11 pm

Re: About optional Wine dependencies

Post by Gcenx »

Some games also use ntlm_auth for secure connections, so samba should be installed.
z-s-e
Level 1
Level 1
Posts: 6
Joined: Tue Jun 13, 2017 6:02 am

Re: About optional Wine dependencies

Post by z-s-e »

Maybe I should clarify a bit more: Obviously, functionality provided by a dependency won't work without it. So without samba, I wouldn't expect some local netplay to work for some games, or without cups an application wouldn't find any printer. That much is clear.

What I wonder is: are there optional dependencies that can cause applications to crash or bug out when they are missing? One concrete example: Suppose I run an application that in principle can use a printer. Can it happen that the application does not even start up when cups is missing, even though I don't have any printer and never plan to use the print functionality of the application?

So in other words, which of the optional dependencies can impact/stop applications from working in general, and not just reduce functionality in the obvious way. At least I think this would be good to know.
Gcenx
Level 6
Level 6
Posts: 709
Joined: Mon Dec 25, 2017 12:11 pm

Re: About optional Wine dependencies

Post by Gcenx »

@Bob

Code: Select all

gsm-  library and tools to convert to/frm gsm audio format
So it might be needed.

@z-s-e
Nobody can be sure it’s very Application/game specific sometime I’ve gotten away with only providing libpng/libfreetype/libjpeg and that was all.
Sometimes I’ve needed literally everything to get something to function.

It’s not so cut and dry, if the developer didn’t anticipate printer support being broken on the system it could crash right away or crash when trying to access a printer.

A game could function without a required codec, some just plain crash or refuse to even start.
So as Bob said above the question is too broad meaning no single answer.
z-s-e
Level 1
Level 1
Posts: 6
Joined: Tue Jun 13, 2017 6:02 am

Re: About optional Wine dependencies

Post by z-s-e »

@Gcenx Well, but you gave me an answer, according to you every single missing optional dependency can cause applications to not work. If you are correct, that would be unfortunate...

I guess I probably should rather ask the Wine devs via Bugzilla directly or something, because this is a question about how Wine is implemented. E.g. if Wine has no cups on the host system, will it simply crash when the Windows application uses Windows printer APIs, or will it rather emulate a system that simply has no printers available (but the Windows API still technically functional).

For some dependencies, like libpng/libfreetype/libjpeg or codecs as you said, it is pretty clear that those cannot be "mocked out", so there it is obvious that not having those can cause problems for the whole application. But for example all those dependencies for special hardware or network support could in principle be handled in Wine such that it would just emulate a system without the corresponding hardware or network, and not just simply crash.
User avatar
DarkShadow44
Level 8
Level 8
Posts: 1207
Joined: Tue Nov 22, 2016 5:39 pm

Re: About optional Wine dependencies

Post by DarkShadow44 »

When it's optional, it's dynamic. Like, print an error message and act like this functionality is unsupported. At least that's why I found. You'll quickly see if your program needs that, but obviously, every missing dependency can break a program.
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: About optional Wine dependencies

Post by Bob Wya »

@z-s-e

When testing specific (!!) applications you can run these with:

Code: Select all

export WINEDEBUG=+loaddll,+module
- which will at least tell you, what Windows libraries the application is trying to load.

Bob
Locked