Bug 18959 - Old low level libraries in the Steam runtime make it defective and need to be removed
Summary: Old low level libraries in the Steam runtime make it defective and need to be...
Status: RESOLVED WORKSFORME
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: Cauldron
Hardware: All Linux
Priority: Normal normal
Target Milestone: ---
Assignee: Rémi Verschelde
QA Contact:
URL:
Whiteboard:
Keywords: FOR_ERRATA6, UPSTREAM
: 19511 (view as bug list)
Depends on:
Blocks:
 
Reported: 2016-07-16 15:18 CEST by Rémi Verschelde
Modified: 2020-11-03 22:11 CET (History)
2 users (show)

See Also:
Source RPM: steam
CVE:
Status comment:


Attachments

Description Rémi Verschelde 2016-07-16 15:18:58 CEST
Since mesa-12.0.1-4.mga6 which enabled gcrypt as a BuildRequires for sha1 support for Vulkan, steam won't start anymore with the 32-bit mesa libraries:


$ LIBGL_DEBUG=verbose steam
Running Steam on mageia 6 64-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(1468023329)
libGL: Can't open configuration file /home/akien/.drirc: Aucun fichier ou dossier de ce type.
libGL: pci id for fd 7: 8086:0166, driver i965
libGL: OpenDriver: trying /usr/lib/dri/tls/i965_dri.so
libGL: OpenDriver: trying /usr/lib/dri/i965_dri.so
libGL: dlopen /usr/lib/dri/i965_dri.so failed (/lib/libgcrypt.so.20: symbol gpgrt_lock_lock, version GPG_ERROR_1.0 not defined in file libgpg-error.so.0 with link time reference)
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL: pci id for fd 7: 8086:0166, driver i965
libGL: OpenDriver: trying /usr/lib/dri/tls/i965_dri.so
libGL: OpenDriver: trying /usr/lib/dri/i965_dri.so
libGL: dlopen /usr/lib/dri/i965_dri.so failed (/lib/libgcrypt.so.20: symbol gpgrt_lock_lock, version GPG_ERROR_1.0 not defined in file libgpg-error.so.0 with link time reference)
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL: OpenDriver: trying /usr/lib/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/dri/swrast_dri.so
libGL: dlopen /usr/lib/dri/swrast_dri.so failed (/lib/libgcrypt.so.20: symbol gpgrt_lock_lock, version GPG_ERROR_1.0 not defined in file libgpg-error.so.0 with link time reference)
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast


Found this ArchLinux bug report: https://bbs.archlinux.org/viewtopic.php?id=211822

Apparently it's an issue with the Steam runtime which ships an older libgcrypt version, and it can be solved by removing it from the runtime. But sadly that's not something we have influence on :/
Comment 1 Rémi Verschelde 2016-07-16 15:21:30 CEST
Note that Arch closed the bug as an upstream issue, and that would apply in our case too.

On the other hand, it used to work fine before we enabled libgcrypt as a BR in mesa, so if we want to work it around, that would save some pain to our Steam users.

Source RPM: mesa-12.0.1-4.mga6 => mesa-12.0.1-4.mga6, steam

Comment 2 Rémi Verschelde 2016-07-16 15:31:49 CEST
The workaround for end users is:
 find ~/.steam/root/ -name "libgpg-error.so*" -print -delete
psyca 2016-07-19 21:41:05 CEST

CC: (none) => linux

Comment 3 Paulo Ricardo 2016-07-28 06:55:22 CEST
To solve this problem you have to remove some libraries. Run the following commands:

find ~/.steam/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" -o -name "libgpg-error.so*" \) -print -delete

find ~/.local/share/Steam/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" -o -name "libgpg-error.so*" \) -print -delete

this will make the steam works. But it would be better if it already came without these files, not to have nessecidade it! :|

CC: (none) => paulo_ricardogo

Comment 4 Rémi Verschelde 2016-08-29 15:02:16 CEST
There's not much we can do until Valve fixes this (apart from reverting the mesa changes, but that's a workaround, not a fix), so for now it will have to do with an errata entry.

Whiteboard: (none) => FOR_ERRATA
Keywords: (none) => UPSTREAM
Assignee: tmb => rverschelde

Rémi Verschelde 2016-08-29 15:03:57 CEST

Whiteboard: FOR_ERRATA => FOR_ERRATA6

Comment 5 Rémi Verschelde 2016-10-02 21:34:02 CEST
*** Bug 19511 has been marked as a duplicate of this bug. ***

CC: (none) => arichter

Samuel Verschelde 2016-10-18 13:15:56 CEST

Whiteboard: FOR_ERRATA6 => (none)
Keywords: (none) => FOR_ERRATA6

Rémi Verschelde 2016-11-12 13:58:43 CET

See Also: (none) => https://bugs.mageia.org/show_bug.cgi?id=19765

Comment 6 Rémi Verschelde 2017-01-19 22:55:31 CET
It today's Steam automatic update:

[...]
Linux
- Improved interactions between the Steam runtime and host distribution libraries, which should let Steam work out of the box with open-source graphics drivers on modern distributions. If using an older distribution or running into problems, use STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 to revert to previous behavior.
[...]
- Updated libxcb in the runtime with a fix for DRI3-related crashes on open-source graphics drivers
[...]

I believe this should take care of this bug. This will need confirmation from users who did not modify their Steam runtime manually with workarounds like in comment 2 and comment 3.
Comment 7 Alan Richter 2017-01-20 05:27:47 CET
This isn't much help but the old Steam with the offending libraries removed work with:

radeonsi
amdgpu
i915 (Intel) for Haswell and Skylake.  

Mageia 6 is going to be great.  

It's so fun to watch a distribution grow, mature and evolve.
Comment 8 Rémi Verschelde 2017-01-20 08:01:52 CET
I guess I was a bit too confident in this upstream changelog. Today:

```
$ steam
Running Steam on mageia 6 64-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(1484790260)
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
```

Back to the workaround...
Comment 9 Rémi Verschelde 2017-01-20 08:23:23 CET
I can confirm that the workaround in comment 2 fixes starting Steam, but the one in comment 3 is actually needed to run some game (at least with primusrun).

So the part in comment 3 is what needs to go in the Errata.
Rémi Verschelde 2017-01-20 08:24:11 CET

Source RPM: mesa-12.0.1-4.mga6, steam => steam
Summary: Enabled gcrypt support in mesa breaks it for Steam (older libgcrypt version in the steam runtime) => Old low level libraries in the Steam runtime make it defective and need to be removed

psyca 2018-12-09 17:19:59 CET

CC: linux => (none)

Comment 10 Rémi Verschelde 2020-11-03 17:17:31 CET
I haven't experienced this issue in a while, I think Valve fixed it.

Resolution: (none) => WORKSFORME
Status: NEW => RESOLVED

Comment 11 Alan Richter 2020-11-03 22:11:10 CET
It's impressive how far Steam has come since this issue surfaced.  I agree that should be closed and hopefully forgotten.

Note You need to log in before you can comment on or make changes to this bug.