solus-project / linux-steam-integration

Helper for enabling better Steam integration on Linux
GNU Lesser General Public License v2.1
430 stars 19 forks source link

Hyper Light Drifter crashes due to blacklisted libcurl #19

Closed fourwood closed 6 years ago

fourwood commented 6 years ago

With liblsi-intercept enabled, the game Hyper Light Drifter crashes immediately because of libcurl.so.4 being black-listed. It works as expected if I turn off liblsi-intercept in lsi-settings.

Here's the part of the Steam log from launching the game (with LSI_DEBUG=1), and a full log is at https://pastebin.com/raw/2UqFCGm1

GameAction [AppID 257850, ActionID 1] : LaunchApp changed task to SiteLicenseSeatCheckout with ""
GameAction [AppID 257850, ActionID 1] : LaunchApp changed task to CreatingProcess with ""
GameAction [AppID 257850, ActionID 1] : LaunchApp waiting for user response to CreatingProcess ""
GameAction[AppID 257850, ActionID 1] : LaunchApp continues with user response "CreatingProcess"
Opted-in Controller Mask: 2
Game update: AppID 257850 "Hyper Light Drifter", ProcID 4387, IP 0.0.0.0:0
ERROR: ld.so: object '/home/fourwood/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/fourwood/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/fourwood/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
[LSI:vendor_offender]: debug: blacklisted loading of vendored library: ./lib/libcurl.so.4
./HyperLightDrifter: /usr/lib32/libcurl.so.4: no version information available (required by ./HyperLightDrifter)
./HyperLightDrifter: symbol lookup error: /usr/lib32/libcurl.so.4: undefined symbol: SSL_CTX_set_alpn_protos
>>> Adding process 4387 for game ID 257850
GameAction [AppID 257850, ActionID 1] : LaunchApp changed task to WaitingGameWindow with ""
>>> Adding process 4388 for game ID 257850
GameAction [AppID 257850, ActionID 1] : LaunchApp changed task to Completed with ""
Game removed: AppID 257850 "Hyper Light Drifter", ProcID 4387 
No cached sticky mapping in ActivateActionSet.Installing breakpad exception handler for appid(steam)/version(1507938604)

I guess the SSL_CTX_set_alpn_protos() call it's missing is in OpenSSL. It should supposedly be in OpenSSL v1.0.2, which is what's in stable/Shannon, but I dunno, maybe it's shipping/linking to 1.1.0 or something.

ikeydoherty commented 6 years ago

I seriously hope its not shipping a vendored OpenSSL library ._.

fourwood commented 6 years ago

Uh... well...

fourwood@jumbo: lib $ pwd
/home/fourwood/.steam/steam/steamapps/common/HyperLightDrifter/lib
fourwood@jumbo: lib $ ls
libcrypto.so.1.0.0  libcurl.so.4  libssl.so.1.0.0  libsteam_api.so
ikeydoherty commented 6 years ago

Sweet merciful jesus.

ikeydoherty commented 6 years ago

Turns out this is related to Game Maker stuff, not really the fault of the game devs at all. Added a workaround in, getting a new package build in to help.

ikeydoherty commented 6 years ago

Try:

sudo eopkg it --ignore-dependency https://packages.solus-project.com/unstable/l/linux-steam-integration/linux-steam-integration-0.5-14-1-x86_64.eopkg

ikeydoherty commented 6 years ago

Will need to restart client + game

fourwood commented 6 years ago

Woo! Yep, seems to be all good here with that package.

ikeydoherty commented 6 years ago

Wootage :)