FS#66832 - [steam] Add new dependencies
Attached to Project:
Community Packages
Opened by John (gee) - Friday, 29 May 2020, 20:31 GMT
Last edited by Buggy McBugFace (bugbot) - Saturday, 25 November 2023, 20:06 GMT
Opened by John (gee) - Friday, 29 May 2020, 20:31 GMT
Last edited by Buggy McBugFace (bugbot) - Saturday, 25 November 2023, 20:06 GMT
|
Details
Hello,
to allow SteamVR to setup correct capabilities, we need polkit and zenity installed. Link explaining this better: https://github.com/ValveSoftware/SteamVR-for-Linux/issues/342#issuecomment-634288105 It would be nicer for VR users to have this as actual dependencies, but since we are pretty niche, maybe optdepend would have to do, I'm not sure what would be best. Thank you for looking at this! |
This task depends upon
Closed by Buggy McBugFace (bugbot)
Saturday, 25 November 2023, 20:06 GMT
Reason for closing: Moved
Additional comments about closing: https://gitlab.archlinux.org/archlinux/p ackaging/packages/steam/issues/3
Saturday, 25 November 2023, 20:06 GMT
Reason for closing: Moved
Additional comments about closing: https://gitlab.archlinux.org/archlinux/p ackaging/packages/steam/issues/3
Moreover, if you completely remove system zenity (both zenity and qarma), the dialog will work correctly, since Steam will use the steam-runtime version of zenity (in <steam>/ubuntu12_32/steam-runtime/amd64/usr/bin/zenity). But if you have system zenity, Steam will prioritize it over its runtime version.
Based on that, we could actually *remove* zenity from package dependency list.
Agree on polkit, it's needed for pkexec which vrstartup.sh uses. On my system polkit is required by rtkit, which is required by pulseaudio, but I don't think pulseaudio is a hard dependency of steam.
error: package 'lib32-fribidi' was not found
error: package 'lib32-libthai' was not found
And Steam is working fine for me without them. They are definitely not required by Steam itself, probably by some other library (they are both dependencies of lib32-pango).
So probably you have some custom package replacing an official one, and this custom package has incorrectly specified dependencies.
$ steam
Running Steam on ubuntu rolling 64-bit
STEAM_RUNTIME is enabled automatically
Pins up-to-date!
Error: You are missing the following 32-bit libraries, and Steam may not run:
libthai.so.0
libfribidi.so.0
Steam client's requirements are satisfied
/home/torti/.local/share/Steam/ubuntu12_32/steam
Installing breakpad exception handler for appid(steam)/version(1591251555)
Installing breakpad exception handler for appid(steam)/version(1591251555)
Failed to load steamui.so - dlerror(): libthai.so.0: wrong ELF class: ELFCLASS64
[2020-06-07 12:46:05] Startup - updater built Jun 4 2020 05:50:42
[2020-06-07 12:46:05] Verifying installation...
[2020-06-07 12:46:05] Verification complete
[2020-06-07 12:46:09] Shutdown
I have no idea why lib32-libthai is required on my system, I don't speak thai.
ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu/gtk-2.0/2.10.0/engines/libmurrine.so
ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu/pango/1.6.0/modules/pango-arabic-lang.so
steamapps/common/Hue/Hue_Data/Plugins/x86/libCSteamworks.so
I guess these are dependencies of games that I've installed in Steam. So Steam should have installed these dependencies in ubuntu12_32/steam-runtime (like all the other libraries there), but they're missing.
$ ldd ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu/pango/1.6.0/modules/pango-arabic-lang.so
ldd: warning: you do not have execution permission for `ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu/pango/1.6.0/modules/pango-arabic-lang.so'
linux-gate.so.1 (0xf7f47000)
libgobject-2.0.so.0 => /usr/lib32/libgobject-2.0.so.0 (0xf7eac000)
libglib-2.0.so.0 => /usr/lib32/libglib-2.0.so.0 (0xf7d6b000)
libpango-1.0.so.0 => not found
libpthread.so.0 => /usr/lib32/libpthread.so.0 (0xf7d48000)
libc.so.6 => /usr/lib32/libc.so.6 (0xf7b5c000)
libffi.so.7 => /usr/lib32/libffi.so.7 (0xf7b51000)
libpcre.so.1 => /usr/lib32/libpcre.so.1 (0xf7ada000)
/usr/lib/ld-linux.so.2 (0xf7f49000)
It lists 'libpango-1.0.so.0' as not found -- which is correct, since I don't have lib32-pango installed. But Steam won't (or rather: shouldn't) use system libpango, it should use steam-runtime version:
$ ldd ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu/libpango-1.0.so.0
ldd: warning: you do not have execution permission for `ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu/libpango-1.0.so.0'
linux-gate.so.1 (0xf7f65000)
libgobject-2.0.so.0 => /usr/lib32/libgobject-2.0.so.0 (0xf7e82000)
libgmodule-2.0.so.0 => /usr/lib32/libgmodule-2.0.so.0 (0xf7e7c000)
libglib-2.0.so.0 => /usr/lib32/libglib-2.0.so.0 (0xf7d3b000)
libm.so.6 => /usr/lib32/libm.so.6 (0xf7c6e000)
libpthread.so.0 => /usr/lib32/libpthread.so.0 (0xf7c4b000)
libc.so.6 => /usr/lib32/libc.so.6 (0xf7a5f000)
libffi.so.7 => /usr/lib32/libffi.so.7 (0xf7a54000)
libdl.so.2 => /usr/lib32/libdl.so.2 (0xf7a4e000)
libpcre.so.1 => /usr/lib32/libpcre.so.1 (0xf79d7000)
/usr/lib/ld-linux.so.2 (0xf7f67000)
And as you can see, steam-runtime version of libpango is not linked against libthai (as opposed to Arch version), so you should not get those errors.
So for some reason your Steam tries to use system libpango instead of steam-runtime one, and this system libpango is linked against fribidi and libthai, which are not installed.
Do you have lib32-pango installed from repositories? If you do, it should pull lib32-fribidi and lib32-libthai. And if you don't, then there should be no libpango in system paths.
Or maybe you have some custom pango package? Anything in LD_LIBRARY_PATH that could mess up library searching?
Sometimes you have some issues that prevent the steam client from updating itself. In those cases, you have to create a new .steam folder. Also, it might be possible to remove just a few directories (while preserving downloaded and installed games), but I'd recommend you go with a fresh dir instead. When using steam, you're not using the steam-native Arch variant and everything should be working while using ubuntu's libs.
@Maciej: Yes, my system's (outdated) lib32-pango was being resolved, which caused the dependency on lib32-libthai. Didn't know ldd is also listing transitive dependencies. After removing it (it was orphaned anyway) my Steam installation works without lib32-fribidi and lib32-libthai.
@Giancarlo: My Steam installation is indeed rather old. However, most times I prefer to get to the bottom of a problem and find out the real reason why something behaves the way it does instead of just reinstalling it or turning it off and on. I know that my approach takes more time, but this time it was absolutely worth it. :-)
I don't see any use of it in Steam itself (outside SteamVR), so probably an optdepend should be enough.