Hi there,
If I attempt to run Baldur’s Gate 2 from steam. In the steam client, I click play, and then it silently crashes.
If I run the executable in in a terminal, I get a message about ‘SSL_export_keying_material, version OPENSSL_1.0.1’
dustin@damascus ~/.l/s/S/s/c/Baldur's Gate II Enhanced Edition> ./BaldursGateII
./BaldursGateII: symbol lookup error: ./BaldursGateII: undefined symbol: SSL_export_keying_material, version OPENSSL_1.0.1
Here is the LDD:
dustin@damascus ~/.l/s/S/s/c/Baldur's Gate II Enhanced Edition> ldd./BaldursGateII
linux-vdso.so.1 (0x00007ffee519b000)
/lib64/libssl.so.1.1 (0x00007fd67f5f2000)
libopenal.so.1 => /lib64/libopenal.so.1 (0x00007fd67b88c000)
libGL.so.1 => /lib64/libGL.so.1 (0x00007fd67f546000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd67f53f000)
librt.so.1 => /lib64/librt.so.1 (0x00007fd67f53a000)
libssl.so.1.0.0 => /lib64/libssl.so.1.0.0 (0x00007fd67b81c000)
libcrypto.so.1.0.0 => /lib64/libcrypto.so.1.0.0 (0x00007fd67b59e000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x00007fd67f50b000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fd67f506000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fd67b376000)
libm.so.6 => /lib64/libm.so.6 (0x00007fd67b292000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fd67f4e3000)
libc.so.6 => /lib64/libc.so.6 (0x00007fd67b097000)
libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007fd67ad60000)
libpulse.so.0 => /lib64/libpulse.so.0 (0x00007fd67ad0b000)
libportaudio.so.2 => /lib64/libportaudio.so.2 (0x00007fd67acdc000)
libasound.so.2 => /lib64/libasound.so.2 (0x00007fd67abd6000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd67f695000)
libGLX.so.0 => /lib64/libGLX.so.0 (0x00007fd67aba4000)
libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007fd67aaed000)
libz.so.1 => /lib64/libz.so.1 (0x00007fd67aacf000)
libpulsecommon-16.1.so => /usr/lib64/pulseaudio/libpulsecommon-16.1.so (0x00007fd67aa48000)
libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007fd67a9f5000)
libjack.so.0 => /lib64/libjack.so.0 (0x00007fd67a9a3000)
libX11.so.6 => /lib64/libX11.so.6 (0x00007fd67a85d000)
libsndfile.so.1 => /lib64/libsndfile.so.1 (0x00007fd67a7d9000)
libxcb.so.1 => /lib64/libxcb.so.1 (0x00007fd67a7ae000)
libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007fd67a6da000)
libvorbisenc.so.2 => /lib64/libvorbisenc.so.2 (0x00007fd67a62f000)
libFLAC.so.12 => /lib64/libFLAC.so.12 (0x00007fd67a5ec000)
libspeex.so.1 => /lib64/libspeex.so.1 (0x00007fd67a5d0000)
libopus.so.0 => /lib64/libopus.so.0 (0x00007fd67a575000)
libvorbis.so.0 => /lib64/libvorbis.so.0 (0x00007fd67a547000)
libogg.so.0 => /lib64/libogg.so.0 (0x00007fd67a53d000)
libXau.so.6 => /lib64/libXau.so.6 (0x00007fd67f4d6000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007fd67a531000)
libgcrypt.so.20 => /lib64/libgcrypt.so.20 (0x00007fd67a3ef000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fd67a3bd000)
libzstd.so.1 => /lib64/libzstd.so.1 (0x00007fd67a30b000)
liblz4.so.1 => /lib64/liblz4.so.1 (0x00007fd67a2e7000)
libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007fd67a2c1000)
I’ve made sure that I have openssl-1_1 installed.
But so far I havent had any luck with LD_PRELOAD or LD_LIBRARY_PATH.
Here’s the ssl libraries I have:
[FONT=monospace]
dustin@damascus ~/.l/s/S/s/c/Baldur's Gate II Enhanced Edition> ls-l/lib64/libssl*
-rwxr-xr-x 1 root root 428600 Oct 4 17:10 /lib64/libssl3.so*
lrwxrwxrwx 1 root root 16 Oct 7 18:51 /lib64/libssl.so -> libssl.so.53.0.0*
-r-xr-xr-x 1 root root 458096 Oct 1 11:24 /lib64/libssl.so.1.0.0*
-rwxr-xr-x 1 root root 654984 Oct 1 10:49 /lib64/libssl.so.1.1*
-rwxr-xr-x 1 root root 651304 Sep 15 16:47 /lib64/libssl.so.3*
lrwxrwxrwx 1 root root 16 Oct 7 18:51 /lib64/libssl.so.53 -> libssl.so.53.0.0*
-rwxr-xr-x 1 root root 414072 Oct 7 18:51 /lib64/libssl.so.53.0.0*
All suggestions welcome! Thank you!
[/FONT]
hui
October 13, 2022, 6:02am
2
Baldurs gate uses an ancient openssl version, but steam provides only new/modern ones. This happened to other users too. Baldurs Gate/Steam don’t use the system libraries but the specialy for steam/the game downloaded ones. So you could only try to get old libraries and experiment with symlinks…
https://www.gog.com/forum/baldurs_gate_series/opensuse_undefined_symbol_ssl_export_keying_material
https://www.gog.com/forum/baldurs_gate_series/linux_version_openssl_mismatch
Thanks, I’ll poke around and see if i can find an exact v1.0.1. And maybe i’m misunderstanding the LDD, but isn’t it saying that the BaldursGateII executable is looking at the system library /lib64/libssl.so.1.0.0 ?
Also, I’m using the fish shell, I’ll try switching back to bash.
Thank you!
Okay, so I managed to find a version 1.0.1 rpm here: https://cbs.centos.org/koji/buildinfo?buildID=20473
I’ve extracted it, copied libssl and libcrypto to /usr/lib64/ and confirmed that it’s providing the SSL_export_keying_material.
nm -D --demangle /usr/lib64/libssl.so.1.0.1e | grep "SSL_export_keying_material"
00000000000437e0 T **SSL_export_keying_material**
Confusingly, I can also confirm that the default library BaldursGateII is using also provides the SSL_export_keying_material.
[FONT=monospace]dustin@damascus:~/.local/share/Steam/steamapps/common/Baldur's Gate II Enhanced Edition> nm -D --demangle /lib64/libssl.so.1.0.0 | grep "SSL_export_keying_material"
0000000000042c50 T **SSL_export_keying_material**
Maybe I was using LD_PRELOAD incorrectly? I am not sure, either way it is loading the 1.0.1e libraries, but seems to keep using the 1.0.0 library - which is providing what its asking for - not sure whats wrong.
dustin@damascus:~/.local/share/Steam/steamapps/common/Baldur's Gate II Enhanced Edition> LD_PRELOAD=/usr/lib64/libcrypto.so.1.0.1e:/usr/lib64/libssl.so.1.0.1e ldd ./BaldursGateII
linux-vdso.so.1 (0x00007ffcdef57000)
/usr/lib64/libcrypto.so.1.0.1e (0x00007fe2c2e00000)
/usr/lib64/libssl.so.1.0.1e (0x00007fe2c2a00000)
libopenal.so.1 => /lib64/libopenal.so.1 (0x00007fe2c6cf8000)
libGL.so.1 => /lib64/libGL.so.1 (0x00007fe2c2d73000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fe2c6cf1000)
librt.so.1 => /lib64/librt.so.1 (0x00007fe2c6cec000)
libssl.so.1.0.0 => /lib64/libssl.so.1.0.0 (0x00007fe2c2d03000)
libcrypto.so.1.0.0 => /lib64/libcrypto.so.1.0.0 (0x00007fe2c2782000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x00007fe2c2cd4000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fe2c6ce5000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fe2c255a000)
libm.so.6 => /lib64/libm.so.6 (0x00007fe2c2476000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fe2c2cb3000)
libc.so.6 => /lib64/libc.so.6 (0x00007fe2c227b000)
libz.so.1 => /lib64/libz.so.1 (0x00007fe2c2c95000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007fe2c2228000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007fe2c2159000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007fe2c6cdd000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007fe2c2c7e000)
libpulse.so.0 => /lib64/libpulse.so.0 (0x00007fe2c2104000)
libportaudio.so.2 => /lib64/libportaudio.so.2 (0x00007fe2c20d5000)
libasound.so.2 => /lib64/libasound.so.2 (0x00007fe2c1fcf000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe2c6e8d000)
libGLX.so.0 => /lib64/libGLX.so.0 (0x00007fe2c1f9d000)
libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007fe2c1ee6000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007fe2c31f0000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007fe2c6cd4000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fe2c1ed4000)
libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007fe2c1b9d000)
libpulsecommon-16.1.so => /usr/lib64/pulseaudio/libpulsecommon-16.1.so (0x00007fe2c1b16000)
libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007fe2c1ac3000)
libjack.so.0 => /lib64/libjack.so.0 (0x00007fe2c1a71000)
libX11.so.6 => /lib64/libX11.so.6 (0x00007fe2c192b000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fe2c18fc000)
libsndfile.so.1 => /lib64/libsndfile.so.1 (0x00007fe2c1878000)
libxcb.so.1 => /lib64/libxcb.so.1 (0x00007fe2c184d000)
libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007fe2c1779000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fe2c16c7000)
libvorbisenc.so.2 => /lib64/libvorbisenc.so.2 (0x00007fe2c161c000)
libFLAC.so.12 => /lib64/libFLAC.so.12 (0x00007fe2c15d9000)
libspeex.so.1 => /lib64/libspeex.so.1 (0x00007fe2c15bd000)
libopus.so.0 => /lib64/libopus.so.0 (0x00007fe2c1562000)
libvorbis.so.0 => /lib64/libvorbis.so.0 (0x00007fe2c1534000)
libogg.so.0 => /lib64/libogg.so.0 (0x00007fe2c2c74000)
libXau.so.6 => /lib64/libXau.so.6 (0x00007fe2c2c6f000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007fe2c1528000)
libgcrypt.so.20 => /lib64/libgcrypt.so.20 (0x00007fe2c13e6000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fe2c13b4000)
libzstd.so.1 => /lib64/libzstd.so.1 (0x00007fe2c1302000)
liblz4.so.1 => /lib64/liblz4.so.1 (0x00007fe2c12dc000)
libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007fe2c12b6000)
[/FONT]
Also tried symlinking, but it did not like the library versions:
> sudo cp /usr/lib64/libssl.so.1.0.0 /usr/lib64/libssl.so.1.0.0.bak
> sudo rm /usr/lib64/libssl.so.1.0.0
> sudo ln -s /usr/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.0.0
> ./BaldursGateII
./BaldursGateII: /lib64/libssl.so.1.0.0: version `OPENSSL_1.0.1' not found (required by ./BaldursGateII)
./BaldursGateII: /lib64/libssl.so.1.0.0: version `OPENSSL_1.0.0' not found (required by ./BaldursGateII)
After much trial and error, this works! (in bash)
LD_PRELOAD="/home/dustin/.steam/bin/steam-runtime/lib/x86_64-linux-gnu/libssl.so.1.0.0" "/home/dustin/.local/share/Steam/steamapps/common/Baldur's Gate II Enhanced Edition/BaldursGateII"
and in the launch options of steam:
LD_PRELOAD="/home/dustin/.steam/bin/steam-runtime/lib/x86_64-linux-gnu/libssl.so.1.0.0" %command%
Huzzah