summaryrefslogtreecommitdiff
path: root/app-emulation/steam
diff options
context:
space:
mode:
authorV3n3RiX <venerix@rogentos.ro>2016-08-13 21:03:35 +0100
committerV3n3RiX <venerix@rogentos.ro>2016-08-13 21:03:35 +0100
commit2a97b3fa7a1c934e692eaa9bb66b8488a8f8cd90 (patch)
treebc353d5bb5aca5bd4d0f76b6b500c377ff4932d2 /app-emulation/steam
parent3a44fea93ba6633a0704a7c4681ae444bd567796 (diff)
force steam to use native gcclibs, or in some situations, oss drivers will fail to load
Diffstat (limited to 'app-emulation/steam')
-rwxr-xr-xapp-emulation/steam/files/kogaion-steam29
-rw-r--r--app-emulation/steam/steam-1.0.0.45-r4.ebuild (renamed from app-emulation/steam/steam-1.0.0.45-r3.ebuild)0
2 files changed, 26 insertions, 3 deletions
diff --git a/app-emulation/steam/files/kogaion-steam b/app-emulation/steam/files/kogaion-steam
index aac32526..7da83bf3 100755
--- a/app-emulation/steam/files/kogaion-steam
+++ b/app-emulation/steam/files/kogaion-steam
@@ -1,12 +1,35 @@
#!/usr/bin/env bash
-main () {
- export LD_PRELOAD='/usr/lib64/gcc/x86_64-pc-linux-gnu/4.9.3/32/libstdc++.so.6 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.9.3/32/libgcc_s.so.1 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.9.3/libgcc_s.so.1 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.9.3/32/libstdc++.so.6'
+# steam-runtime is a mess with old libraries from Ubuntu 12.04
+# so native drivers compiled on anything newer may not load
+# if we remove some bundled libs, like gcclibs, native drivers
+# will be able to load, because system libs will be used instead
+#
+# but we have to do this everytime when we launch steam, because
+# steam-runtime is being fixed right away by steam client
+
+
+remove_some_bundled_libs () {
+ # force steam to use some system libraries
+ find /home/$USER/.local/share/Steam -name 'libxcb*' -type f | grep -v installed | xargs rm -rf
+ find /home/$USER/.local/share/Steam -name 'libstdc++.so.6*' -type f | grep -v installed | xargs rm -rf
+ find /home/$USER/.local/share/Steam -name 'libgcc_s*' -type f | grep -v installed | xargs rm -rf
+}
+
+
+preload_some_system_libs () {
+ export LD_PRELOAD='/usr/lib32/gcc/x86_64-pc-linux-gnu/4.9.3/32/libstdc++.so.6 /usr/lib32/gcc/x86_64-pc-linux-gnu/4.9.3/32/libgcc_s.so.1 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.9.3/libgcc_s.so.1 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.9.3/32/libstdc++.so.6'
if [[ "$(lsmod|grep nvidia)" ]] ; then
export LD_LIBRARY_PATH='$LD_LIBRARY_PATH:/usr/lib32/opengl/nvidia/lib:/usr/lib64/opengl/nvidia/lib'
export __GLVND_DISALLOW_PATCHING=1
fi
+}
+
+launch_steam () {
+ remove_some_bundled_libs
+ preload_some_system_libs
export DISPLAY=:0
steam
}
-main
+
+launch_steam
diff --git a/app-emulation/steam/steam-1.0.0.45-r3.ebuild b/app-emulation/steam/steam-1.0.0.45-r4.ebuild
index 5d2ebc9d..5d2ebc9d 100644
--- a/app-emulation/steam/steam-1.0.0.45-r3.ebuild
+++ b/app-emulation/steam/steam-1.0.0.45-r4.ebuild