Problem with Enhanced Edition Beamdog games on linux

For what concerns BG2 EE and IWD EE (I got them both on GOG) if you try to install the linux native version you will get an error message about a certain library missing, this happens because newer linux systems do not provide this old version of the library, as it had security concerns.
I dont remember the exact name of the library but I think it was about Ruby and it was the old 1.0 version (the one provided with the newer systems is 1.1 if I recall correctly)

So, what I’m wondering is: is there a way to tell the game to use the new version of this library instead of the old one with the security risks? Or a way to bypass this check entirely?
I guess I could try running the windows version via Lutris and pray it works, but the fact is I also like to play these games with mods and I don’t really know how to set up those mods via Wine, so this is a route I’d like to avoid if possible.

EDIT: to be more precide the error is the following when run via console command:

error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory

The system I have has the libssl 1.1 packages installed

I can’t test as I don’t have any Linux computer at the moment, but it looks like there are a few options to get this lib:

The problem is not getting this lib, the problem is that the lib has security concerns and newer linux systems no longer provide it for a reason (it’s literally a foreign package for my Linux Mint 20.1).
I was simply wondering if there’s a way to tell the game to use the 1.1 version instead of the 1.0.0

You should be fine to just install this as an extra lib. Everything compiled for the newer version will continue to use that. Just having the library there is not by itself a security issue. Some application would have to load it. (Which I suppose some malicious actor with access to your system could setup, but pretty that seems unlikely…).

The beamdog games will use it. They’d need to be recompiled to use the newer version.

As a hack you could try copying (or symlinking) your libssl.so.1.1.0 to libssl1.so.1.0.0 and running ldconfig. As long as 1.1 still has all the symbols the games use, and they work basically the same, it may work.

You could grab the library and put it in a non-standard location then LD_PRELOAD it before starting the games. That could also do it and make it hard for anything else on the system to load it automatically.

Where do I find ID config though? I tried copying and renaming the lib from 1.1 to 1.0.0 but I still get error messages (albeit different from the previous one).

./IcewindDale: /lib/x86_64-linux-gnu/libcrypto.so.1.0.0: version `OPENSSL_1.0.0’ not found (required by ./IcewindDale)

./IcewindDale: /lib/x86_64-linux-gnu/libssl.so.1.0.0: version `OPENSSL_1.0.1’ not found (required by ./IcewindDale)

./IcewindDale: /lib/x86_64-linux-gnu/libssl.so.1.0.0: version `OPENSSL_1.0.0’ not found (required by ./IcewindDale)

ldconfig (with an ell) not ID config. But anyway, it looks like openssl 1.1 is explicitly not including compatibility with 1.0. The newer lib is not claiming support for 1.0. It was worth a try anyway.

I’d just get the library binary (there’s tools to unpack rpms, I imagine there are tools to unpack debs too). Put it somewhere. Then try
‘LD_PRELOAD=<path_to_somewhere>/libssl.so.1.0.0 ./icewindDale’

I’m not sure how you are launching it. You may need to make a wrapper script or adjust the properties of your launcher widget.

From the above message it looks like you will need to add libcrypto.so.1.0.0 as welll to the LD_PRELOAD. I think? that’s just adding a : between. (edit, should have been a colon all along).

FWIW, I’ve got 1.1 and 1.0 on my system. Steam needed 1.0 too. Probably easiest to just install the package…