protonscr

Steam web component fails to load (libcef.so missing) since Oct-31 update

steamclosed reviewed
ValveSoftware/steam-for-linux#4687 · opened 2016-11-01 by kripton · updated 2016-11-01 · 14 comments · github
Kkripton 2016-11-01 github

Your system information

  • Steam client version: Latest Linux Beta (2016-10-31)
  • Distribution (e.g. Ubuntu): Gentoo
  • Opted into Steam client beta?: [Yes/No] Yes
  • Have you checked for system updates?: [Yes/No] For Sure ;)

Please describe your issue in as much detail as possible:

  • Start Steam
  • Open anything needing recently-update web component (e.g. Store)
  • Expected: Store page displays
  • Actual: Page stays black, in terminal this line is printed multiple times:
    ./steamwebhelper: error while loading shared libraries: libcef.so: cannot open shared object file: No such file or directory

STEAM_RUNTIME is used

Kkripton 2016-11-01 github

File is existing, don't know why it's not found:

kripton@miramis ~ $ file .local/share/Steam/ubuntu12_64/cef .local/share/Steam/ubuntu12_6 /steamwebhelper
.local/share/Steam/ubuntu12_64/cef.pak: data
.local/share/Steam/ubuntu12_64/cef_100_percent.pak: data
.local/share/Steam/ubuntu12_64/cef_200_percent.pak: data
.local/share/Steam/ubuntu12_64/cef_extensions.pak: data
.local/share/Steam/ubuntu12_64/libcef.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=641498cd14e1a5394adccfe553062d6c634dbf2d, not stripped
.local/share/Steam/ubuntu12_64/steamwebhelper: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=f21a20e944424702826e43eda95efc9b2fe7b193, not stripped

tricks like LD_LIBRARY_PATH and LD_PRELOAD are not helping as well, assuming they are dropped from the environment in which steamwebhelper is executed

TTele42 2016-11-01 github

Changing the 4th line of ~/.local/share/Steam/ubuntu12_64/steamwebhelper.sh to LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${HOME}/.steam/bin64" ./steamwebhelper "$@" fixed this locally for me.

Kkripton 2016-11-01 github

Doesn't help here. When I edit that file and restart Steam, the update helper is triggered which reverts my changes :(

TTele42 2016-11-01 github

@kripton, right, that's expected with steam's current sanity checks, the adjustment is only good for the running session until a Valve dev can take a look at this.

Aalfred-valve maintainer 2016-11-01 github

@kripton can you please provide the list of files you have in the ubutntu12_32/ and ubuntu12_64/ folder.

Kkripton 2016-11-01 github
Aalfred-valve maintainer 2016-11-01 github

Interesting, why is your OS install dropping the LD_LIBRARY_PATH env variable when bash is spawned? Is this some kind of security choice? You are running the steam.sh script to launch your steam install right, not manually running our executable?

Either way I'm going to add manually setting LD_LIBRARY_PATH here, just to make sure

TTele42 2016-11-01 github

@alfred-valve, For what it's worth, I'm running steam on Gentoo with no steam runtime here. I don't do anything particularly interesting in starting steam besides the normal method to disable the steam runtime, which is handled by a slight adjustment of /usr/bin/steam by the ebuild (gentoo package) for steam.

Kkripton 2016-11-01 github

It's not a "feature" of my install, I'd rather expected that some steam component is dropping it to prevent messing around with any DRM parts.
What I did and expected to work was:

export LD_LIBRARY_PATH=.local/share/Steam/ubuntu12_64
steam

and it kept complaining that file file didn't exist. I didn't dig any deeper to find the actual env the steamwebhelper is launched in.
When I run "steam", it's this that gets executed:

kripton@miramis ~ $ file which steam
/usr/bin/steam: Bourne-Again shell script, ASCII text executable
kripton@miramis ~ $ head which steam
#!/usr/bin/env bash

This is the Steam script that typically resides in /usr/bin

It will create the Steam bootstrap if necessary and then launch steam.

Get the full name of this script

export STEAMSCRIPT="$(cd "${0%/}" && echo "$PWD")/${0##/}"

When this version is incremented a new package will be deployed to:

http://repo.steampowered.com/steam

kripton@miramis ~ $ md5sum /usr/bin/steam
bbbbf9a27b047bf358fcf38c16f9d44e /usr/bin/steam

and is probably from http://repo.steampowered.com/steam/pool/steam/s/steam/steam_1.0.0.53.tar.gz

TTele42 2016-11-01 github

@kripton as far as I know, you can't use relative paths with LD_LIBRARY_PATH and it's bad practice to replace it's contents instead of appending to the start or end of it.

This is why I used ${HOME} in my test to make my adjustment an absolute path.

Kkripton 2016-11-01 github

@Tele42 :+1: you're right, using an absolute path in LD_LIBRARY_PATH makes the web component in steam work. Thanks!

TTele42 2016-11-01 github

This is fixed for me without workaround with the update that just came over the wire.

Aalfred-valve maintainer 2016-11-01 github

We just released the beta update containing this fix, thanks again for all the help here.

Kkripton 2016-11-01 github

Indeed, fix confirmed, thank you!

Nothing extracted yet.