Closed stefan11111 closed 7 months ago
You need dev-libs/libgcrypt-compat
. All of this, except USE=alsa
which is dependent on your setup, is handled by esteam
, which is recommended if you disable the runtime.
Thanks, emerging dev-libs/libgcrypt-compat fixed the issue. However, I already had esteam installed and those deps were not pulled.
esteam is a tool you need to run, ideally after you install a new Linux-based games. Sorry, I know this is not documented very well.
Just ran esteam.
emerge: there are no ebuilds built with USE flags to satisfy "app-emulation/faudio[abi_x86_32]".
!!! One of the following packages is required to complete your request:
- app-emulation/faudio-23.02::gentoo (Missing IUSE: abi_x86_32)
(dependency required by "@esteam" [argument])
Reporting back on the issues I encountered with esteam.
I dealt with faudio by putting it in my overlay: https://github.com/stefan11111/stefan_overlay/blob/main/app-emulation/faudio/faudio-23.02.ebuild
I don't know how to make a proper ebuild with abi stuff with cmake, but this does the job.
I also encountered an error with libstdc++-v3, also pulled in by esteam: https://bugs.gentoo.org/923112
I tried making a proper patch instead of what I posted there, but I couldn't get it to work.
Unfortunately, libstdc++-v3 is really ancient now. I wouldn't waste time with -flto
, but hopefully we can resolve the other issue.
Multilib support for faudio was dropped by another developer a year ago. @ionenwks, mind if I restore this? I guess I can take ownership of the package.
The problem with libstdc++-v3 is more that just -flto. It doesn't build with any CFLAGS, even CFLAGS="" and needs patching to build.
Multilib support for faudio was dropped by another developer a year ago. @ionenwks, mind if I restore this? I guess I can take ownership of the package.
Feel free to do as you please with it, albeit sounds surprising that it's needed (some native 32bit games maybe? not that I use steam so I wouldn't know). Afaik even proton doesn't use ELF faudio anymore, but rather build it as PE files. That's why wine @ g.o dropped maintaining it and removed multilib to make it easier to maintain (ebuild was a bit messy, and didn't sound like 32bit would be useful for anything but old wine). Would've considered last rites if 86box didn't use it.
Yeah, 3 native games I have installed use it, although admittedly they're all 64-bit and have it bundled.
@stefan11111, out of interest, which game needed this? /etc/portage/sets/esteam should tell you.
libstdc++-v3 was needed by Half-Life faudio was needed by Proton 5.0
Oh old proton, figures (stopping being needed in wine-7+)
Ah, Proton doesn't count because it runs in a container anyway. It will have that library bundled. esteam normally skips Proton because 5.0 is so old that the mechanism it uses to decide this doesn't work.
@chewi Reran esteam after editing it like so:
$ diff -Naru /usr/bin/esteam esteam
--- /usr/bin/esteam 2024-01-28 17:09:35.584128649 +0200
+++ esteam 2024-01-28 17:09:23.927634592 +0200
@@ -60,6 +60,8 @@
# Games or tools depending on a containerised runtime should be ignored.
grep -Exq '\s*"require_tool_appid"\s+"(1391110|1628350)"\s*' "$1"/toolmanifest.vdf 2>/dev/null && return 0
+ [[ ${1##*/} = Proton* ]] && return 0
+
return 1
}
It still prints some warnings:
$ doas !!
doas esteam
* Scanning /home/stefan/.local/share/Steam ...
* Unknown: libharfbuzz.so.0 needed by Counter-Strike Global Offensive/game/bin/linuxsteamrt64/libpangoft2-1.0.so
* Scanning /home/stefan/.steam/steam ...
* Unknown: libharfbuzz.so.0 needed by Counter-Strike Global Offensive/game/bin/linuxsteamrt64/libpangoft2-1.0.so
Before doing that, it printed a lot more warnings about proton libs. Any ideas as to how to fix these last warnings about libharfbuzz.so.0?
Hmm yes, that is a library I could add to esteam. Don't know why I haven't before.
Just hit the problem
app-emulation/faudio-23.02::gentoo (Missing IUSE: abi_x86_32)
/etc/portage/sets/esteam
says faudio is needed by Proton 6.3, but I don't think this version is even installed now in Steam. Steam library storage says only Experimental, 8.0 and 7.0 Proton versions are installed. Can I remove the whole Proton 6.3 section from /etc/portage/sets/esteam
and live a happy life?
I have now addressed all this in esteam.
@minlexx, esteam doesn't care whether Steam thinks the games/tools are installed or not, it just traverses the directories. Incidentally, I also recently found that 6.3 had been left behind. Maybe there was some glitch with that version. I suggest you remove it manually.
I tried playing around with disabling USE=steamruntime on the steam packages. I noticed some things that aren't quite right. For some games, like cs 1.6 and probably many others, the following dependencies must be installed: media-libs/libsdl2 with USE="also sound video opengl abi_x86_32" media-libs/libvorbis with USE="abi_x86_32"
Also, even with all that, cs 1.6 still fails to start with the following error: Error:libgcrypt.so.11: cannot open shared object file: No such file or directory
Emerging dev-libs/libgcrypt with USE="abi_x86_32" does not fix the issue. One way to fix that is to copy ~/.local/share/Steam/ubuntu12_32/steam-runtime/lib/i386-linux-gnu/libgcrypt.so.11 to /usr/lib But that is still not a system lib.
Also, I remember mentioning this here, but I don't use udev. Tell me if you are interested as to how I run steam without steam runtime and without udev.