FS#53618 - [openssl-1.0] Breaks games on steam

Attached to Project: Community Packages
Opened by Laurent Carlier (lordheavy) - Saturday, 08 April 2017, 16:20 GMT
Last edited by Antonio Rojas (arojas) - Wednesday, 17 May 2017, 20:36 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Pierre Schmitz (Pierre)
Antonio Rojas (arojas)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 21
Private No

Details

Description:
When i try to launch games with steam, some are now failing:
Game update: AppID 234140 "Mad Max", ProcID 11940, IP 0.0.0.0:0
>>> Adding process 11940 for game ID 234140
ERROR: ld.so: object '/home/lordh/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/lordh/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/lordh/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
>>> Adding process 11941 for game ID 234140
ERROR: ld.so: object '/home/lordh/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
pid 11954 != 11950, skipping destruction (fork without exec?)
pid 11953 != 11950, skipping destruction (fork without exec?)
ERROR: ld.so: object '/home/lordh/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
=== ERROR - You're missing vital libraries to run Mad Max
=== Either use the steam runtime or install these using your package manager
ERROR: ld.so: object '/home/lordh/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
/home/lordh/.local/share/Steam/SteamApps/common/Mad Max/bin/MadMax: /usr/lib/libcrypto.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /home/lordh/.local/share/Steam/SteamApps/common/Mad Max/bin/MadMax)
/home/lordh/.local/share/Steam/SteamApps/common/Mad Max/bin/MadMax: /usr/lib/libssl.so.1.0.0: version `OPENSSL_1.0.1' not found (required by /home/lordh/.local/share/Steam/SteamApps/common/Mad Max/bin/../lib/x86_64/libcurl.so.4)
/home/lordh/.local/share/Steam/SteamApps/common/Mad Max/bin/MadMax: /usr/lib/libssl.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /home/lordh/.local/share/Steam/SteamApps/common/Mad Max/bin/../lib/x86_64/libcurl.so.4)
/home/lordh/.local/share/Steam/SteamApps/common/Mad Max/bin/MadMax: /usr/lib/libcrypto.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /home/lordh/.local/share/Steam/SteamApps/common/Mad Max/bin/../lib/x86_64/libcurl.so.4)
===
ERROR: ld.so: object '/home/lordh/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
>>> Adding process 11942 for game ID 234140
>>> Adding process 11950 for game ID 234140
ERROR: ld.so: object '/home/lordh/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/lordh/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
/home/lordh/.local/share/Steam/SteamApps/common/Mad Max/bin/MadMax: /usr/lib/libcrypto.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /home/lordh/.local/share/Steam/SteamApps/common/Mad Max/bin/MadMax)
/home/lordh/.local/share/Steam/SteamApps/common/Mad Max/bin/MadMax: /usr/lib/libssl.so.1.0.0: version `OPENSSL_1.0.1' not found (required by /home/lordh/.local/share/Steam/SteamApps/common/Mad Max/bin/../lib/x86_64/libcurl.so.4)
/home/lordh/.local/share/Steam/SteamApps/common/Mad Max/bin/MadMax: /usr/lib/libssl.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /home/lordh/.local/share/Steam/SteamApps/common/Mad Max/bin/../lib/x86_64/libcurl.so.4)
/home/lordh/.local/share/Steam/SteamApps/common/Mad Max/bin/MadMax: /usr/lib/libcrypto.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /home/lordh/.local/share/Steam/SteamApps/common/Mad Max/bin/../lib/x86_64/libcurl.so.4)
>>> Adding process 11956 for game ID 234140
>>> Adding process 11957 for game ID 234140
>>> Adding process 11958 for game ID 234140
>>> Adding process 11959 for game ID 234140
Game removed: AppID 234140 "Mad Max", ProcID 11940

This task depends upon

Closed by  Antonio Rojas (arojas)
Wednesday, 17 May 2017, 20:36 GMT
Reason for closing:  Duplicate
Additional comments about closing:   FS#53836 
Comment by Laurent Carlier (lordheavy) - Saturday, 08 April 2017, 20:19 GMT
As noticed in  FS#53619 , reverting openssl-1.0-versioned-symbols.patch fixed the issue
Comment by Antonio Rojas (arojas) - Saturday, 08 April 2017, 20:35 GMT
Yes, but removing the versioned symbols breaks many official packages from our repos that depend on packages linked to different versions of OpenSSL: at least kate, ktexteditor, zeal, subsurface and mumble are known to be broken.
One way to fix this would be to add an openssl-1.0-compat package, similar to libcurl-compat, with only the libraries (no headers) and unversioned symbols, as a dependency of steam (and other closed source applications such as Spotify).
Unfortunately this would also require changing the soversion of the openssl-1.0 libraries so they don't conflict with these ones, which means yet another rebuild. FTR, Fedora uses soversion 10, Debian has soversion 1.0.2.
Comment by Gustavo Alvarez (sl1pkn07) - Wednesday, 12 April 2017, 14:23 GMT
teamspeak is also affected:

└───╼ ldd /opt/teamspeak3/ts3client_linux_amd64
/usr/bin/ldd: línea 160: /usr/lib/ld-linux.so.2: No existe el fichero o el directorio #note: see https://bbs.archlinux.org/viewtopic.php?id=224344
/opt/teamspeak3/ts3client_linux_amd64: /usr/lib/libcrypto.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /opt/teamspeak3/ts3client_linux_amd64)
/opt/teamspeak3/ts3client_linux_amd64: /usr/lib/libssl.so.1.0.0: version `OPENSSL_1.0.1' not found (required by /opt/teamspeak3/ts3client_linux_amd64)
/opt/teamspeak3/ts3client_linux_amd64: /usr/lib/libssl.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /opt/teamspeak3/ts3client_linux_amd64)
linux-vdso.so.1 (0x00007ffd811dd000)
---snip---


└───╼ teamspeak3
./ts3client_linux_amd64: ./libcrypto.so.1.0.0: version `OPENSSL_1.0.2d' not found (required by /usr/lib/libQt5Network.so.5)
./ts3client_linux_amd64: ./libssl.so.1.0.0: version `OPENSSL_1.0.2d' not found (required by /usr/lib/libQt5Network.so.5)
Comment by Antonio Rojas (arojas) - Wednesday, 12 April 2017, 14:48 GMT
@sl1pkn07 that's  FS#53578 , different problem
Comment by Aleš Ferlan (Alko89) - Friday, 14 April 2017, 15:29 GMT
Can confirm same problem with DiRT Rally and Total War: Warhammer.
Comment by Christoph Haag (haagch) - Saturday, 15 April 2017, 08:12 GMT
Workaround is to install libopenssl-1.0-compat from AUR and use LD_LIBRARY_PATH=/usr/lib/openssl-1.0-compat/ for the affected games.
Comment by Christoph Berliner (Styx85) - Saturday, 15 April 2017, 10:03 GMT
As mentioned by haagch you can work around it by installing libopenssl-1.0-compat from AUR.
In Steam then open game properties and set Launch options.
The exact command to enter ist: LD_LIBRARY_PATH=/usr/lib/openssl-1.0-compat/ %command%
After that it starts working again.
Comment by Laurent Carlier (lordheavy) - Monday, 17 April 2017, 15:11 GMT
tried openssl-1.0-compat, it works fine with mad max, not with ME:SOM

edit: it fail with -> 'ShadowOfMordor: /usr/lib/openssl-1.0-compat/libcrypto.so.1.0.0: no version information available'
Comment by John (gee) - Monday, 17 April 2017, 15:24 GMT
I've just tried with SOM and it worked for me. I do see various warnings such as you do though.
Comment by Darek (blablo) - Sunday, 23 April 2017, 07:27 GMT
COH2 is affected.

Temporary fix:
- download and unpack openssl-1.0.2.k-1-x86_64.pkg.tar.xz (core repository)
- cp libcrypto.so.1.0.0 and libssl.so.1.0.0 to ~/.steam/steam/SteamApps/common/Company\ of\ Heroes\ 2/lib/<ARCH>/

package version(s):
local/lib32-openssl 1:1.1.0.e-1
local/openssl 1.1.0.e-1
local/openssl-1.0 1.0.2.k-3
Comment by Pierre Schmitz (Pierre) - Sunday, 23 April 2017, 07:42 GMT
The Steam runtime already includes libssl an libcrypto in version 1.0.0. So there should be no issue.

% find . -name 'libcrypto.so*' -o -name 'libssl.so*'
./.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libssl.so.1.0.0
./.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
./.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libssl.so.1.0.0
./.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libcrypto.so.1.0.0

Are you using "steam-native-runtime"? This is not really supported anyway.
Comment by Darek (blablo) - Sunday, 23 April 2017, 07:49 GMT
>Are you using "steam-native-runtime"?
Yes

$ find . -name 'libcrypto.so*' -o -name 'libssl.so*'
./.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libssl.so.1.0.0
./.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libcrypto.so.1.0.0
./.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libssl.so.1.0.0
./.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
./.local/share/Steam/ubuntu12_32/steam-runtime.old/i386/lib/i386-linux-gnu/libssl.so.1.0.0
./.local/share/Steam/ubuntu12_32/steam-runtime.old/i386/lib/i386-linux-gnu/libcrypto.so.1.0.0
./.local/share/Steam/ubuntu12_32/steam-runtime.old/amd64/lib/x86_64-linux-gnu/libssl.so.1.0.0
./.local/share/Steam/ubuntu12_32/steam-runtime.old/amd64/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
./.local/share/Steam/SteamApps/common/Sid Meier's Civilization V/libssl.so.1.0.0
./.local/share/Steam/SteamApps/common/Sid Meier's Civilization V/libcrypto.so.1.0.0
./.local/share/Steam/SteamApps/common/Borderlands 2/libssl.so.1.0.0
./.local/share/Steam/SteamApps/common/Borderlands 2/libcrypto.so.1.0.0
./.local/share/Steam/SteamApps/common/Company of Heroes 2/lib/x86_64/libssl.so.1.0.0 ## tmp fix
./.local/share/Steam/SteamApps/common/Company of Heroes 2/lib/x86_64/libcrypto.so.1.0.0 ## tmp fix
./.local/share/Steam/SteamApps/common/Company of Heroes 2/lib/x86_64/libcrypto.so
./.local/share/Steam/SteamApps/common/Company of Heroes 2/lib/x86_64/libssl.so

Edit:
"steam-runtime" also requires a "coh2 temporary fix"
Comment by Pierre Schmitz (Pierre) - Sunday, 23 April 2017, 10:07 GMT
So if you use the regular Steam launcher and not "Steam (native)" everything works fine?
Comment by Darek (blablo) - Sunday, 23 April 2017, 10:19 GMT
>So if you use the regular Steam launcher and not "Steam (native)" everything works fine?
No, I still have to copy the files (libcrypto.so.1.0.0, libssl.so.1.0.0) to run the game.
Comment by Xaver (xaver) - Sunday, 23 April 2017, 10:20 GMT
Looks like all games ported by Feral Interactive are affected.
Maybe the launcher has a problem. (Small UI for settings like resolution, can be turned off)
https://www.feralinteractive.com/en/linux-games/

I use steam beta and testing and can confirm the games won't start. Even latest vulkan beta of Mad Max.

I will drop a line to Feral about this issue.

PS: If you pushed 25 or more commits to Mesa, Feral will you access to all there Linux titles.
http://www.feralinteractive.com/en/news/752/
Comment by Pierre Schmitz (Pierre) - Sunday, 23 April 2017, 12:11 GMT
Thanks for the game list. As I actually own some of these I can confirm the issue even when steam-runtime should be used. I wonder if the actual issue here is in the startup scripts of these games.
Comment by Xaver (x-f) - Tuesday, 25 April 2017, 15:03 GMT
Answer from Feral:
We are aware of this issue and are working to see the cause. It is possible that the issue is Steam-side, but we will continue to investigate and hope to have everything working correctly again soon.

Best regards,
Comment by TesX (tesfabpel) - Wednesday, 26 April 2017, 07:43 GMT
I'm afraid it's not only a Steam/Feral issue...
It seems that also Jetbrains Toolbox is affected...
After the update it can't update the info from the server anymore...

In the log I've found this line:
DownloadAction::replyReadyRead: Error: "Error creating SSL context (error:140A90C4:SSL routines:func(169):reason(196))"

I also think this issue's priority should be raised from Low to something higher, since it seems to break some precompiled binaries that link to an older version of openssl...

Anyway please recheck...
Thanks
Comment by Kevin Weiss (kelso) - Saturday, 29 April 2017, 12:23 GMT
I updated the Launch options as Styx85 suggested and additionally installed sdl2_image and librtmp0 to get Mad Max running.
Comment by TesX (tesfabpel) - Sunday, 30 April 2017, 06:24 GMT
I've tried to launch JetBrains Toolbox using `LD_LIBRARY_PATH=/usr/lib/openssl-1.0-compat/` and it works...
Without it, it doesn't...
Comment by Adrian Garay (EzdineG) - Thursday, 11 May 2017, 00:16 GMT
To fix this behavior without altering your Arch installation, try running steam (non-native) from the command line like so:

STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 steam

Although Steam-Runtime does indeed contain the correct version of libssl, the default behavior is now to use the local system's version instead if it exists. This is my experience with the beta builds, at least.
Comment by Paul New (phash) - Wednesday, 17 May 2017, 20:31 GMT
Same problem when i try to launch Undertale from GOG

$ ./bin/games/Undertale/start.sh
Running Undertale
./UNDERTALE: /usr/lib32/libcrypto.so.1.0.0: version `OPENSSL_1.0.0' not found (required by ./UNDERTALE)
./UNDERTALE: /usr/lib32/libssl.so.1.0.0: version `OPENSSL_1.0.0' not found (required by ./UNDERTALE)

Loading...