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
Task Type Bug Report
Category Packages: Multilib
Status Closed
Assigned To Levente Polyak (anthraxx)
Giancarlo Razzolini (grazzolini)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

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
Comment by Giancarlo Razzolini (grazzolini) - Monday, 01 June 2020, 09:47 GMT
I'm fine with adding it as optdep, since SteamVR is indeed quite niche. What do you think Levente?
Comment by Maciej Stanczew (stanczew) - Thursday, 04 June 2020, 16:36 GMT
zenity is already a hard dependency of steam package. As you wrote in the GitHub issue, you had qarma installed instead of zenity. The vrenv.sh script modifies environment by overriding Qt libraries with steam-runtime versions, which makes qarma not work.
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.
Comment by Thorsten Hirsch (thorstenhirsch) - Sunday, 07 June 2020, 10:02 GMT
Here are 2 more missing dependencies: lib32-fribidi lib32-libthai. They have nothing to do with VR, just regular dependencies. Steam throws an error if they are missing.
Comment by Maciej Stanczew (stanczew) - Sunday, 07 June 2020, 10:16 GMT
$ pacman -Q lib32-fribidi lib32-libthai
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.
Comment by Thorsten Hirsch (thorstenhirsch) - Sunday, 07 June 2020, 10:53 GMT
Strange. Here's what happens when I remove them:

$ 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.
Comment by Thorsten Hirsch (thorstenhirsch) - Sunday, 07 June 2020, 11:09 GMT
Found 'em. I have several so files in steam's ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu and steamapps/common that depend on lib32-libthai, e.g.:

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.
Comment by Maciej Stanczew (stanczew) - Sunday, 07 June 2020, 14:39 GMT
If you're using ldd to find link dependencies, keep in mind that you won't get steam-runtime versions of libraries in the output. For example, on my system pango-arabic-lang.so doesn't list libthai.so:
$ 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?
Comment by Giancarlo Razzolini (grazzolini) - Monday, 08 June 2020, 14:27 GMT
@Thorsten

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.
Comment by Thorsten Hirsch (thorstenhirsch) - Monday, 08 June 2020, 16:41 GMT
Thanks to the both of you.

@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. :-)
Comment by Jelle van der Waa (jelly) - Sunday, 23 July 2023, 11:01 GMT
Steam now already depends on zenity, so that is solved. Is polkit still a requirement?
Comment by Maciej Stanczew (stanczew) - Monday, 24 July 2023, 17:01 GMT
It is for SteamVR, the vrstartup.sh script uses pkexec to set capabilities on vrcompositor-launcher executable.
I don't see any use of it in Steam itself (outside SteamVR), so probably an optdepend should be enough.
Comment by Buggy McBugFace (bugbot) - Tuesday, 08 August 2023, 19:11 GMT
This is an automated comment as this bug is open for more then 2 years. Please reply if you still experience this bug otherwise this issue will be closed after 1 month.

Loading...