summaryrefslogtreecommitdiff
path: root/app-emulation/steam/files
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/steam/files')
-rw-r--r--app-emulation/steam/files/redcore-steam35
-rw-r--r--app-emulation/steam/files/redcore-steam.patch86
-rw-r--r--app-emulation/steam/files/steam-wrapper.sh34
3 files changed, 34 insertions, 121 deletions
diff --git a/app-emulation/steam/files/redcore-steam b/app-emulation/steam/files/redcore-steam
deleted file mode 100644
index 83c01ac4..00000000
--- a/app-emulation/steam/files/redcore-steam
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env bash
-
-# steam-runtime is a somewhat a mess bundled with old libraries
-# due to this reason, system native graphic drivers may not load
-#
-# if we remove some bundled libs and preload some system libs
-# system native graphic drivers will be able to load
-#
-# however we must do this everytime when we launch steam, because
-# steam-runtime is being fixed right away by steam client
-
-
-source /lib/gentoo/functions.sh
-
-do_remove () {
- einfo "Removing bundled libraries (libxcb, libstdc++, libgcc_s)"
- 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
-}
-
-do_preload () {
- einfo "Preloading system libraries (libstdc++, libgcc_s)"
- export LD_PRELOAD='/usr/lib/gcc/x86_64-pc-linux-gnu/13/32/libstdc++.so.6 /usr/lib/gcc/x86_64-pc-linux-gnu/13/32/libgcc_s.so.1 /usr/lib/gcc/x86_64-pc-linux-gnu/13/libgcc_s.so.1 /usr/lib/gcc/x86_64-pc-linux-gnu/13/32/libstdc++.so.6'
-}
-
-launch_steam () {
- do_remove
- do_preload
- export DISPLAY=:0
- export DBUS_FATAL_WARNINGS=0
- steam
-}
-
-launch_steam
diff --git a/app-emulation/steam/files/redcore-steam.patch b/app-emulation/steam/files/redcore-steam.patch
deleted file mode 100644
index 7d74ebfc..00000000
--- a/app-emulation/steam/files/redcore-steam.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-diff -Nur a/steam.desktop b/steam.desktop
---- a/steam.desktop 2018-09-27 19:20:20.000000000 +0100
-+++ b/steam.desktop 2020-01-06 00:00:32.785536584 +0000
-@@ -27,7 +27,7 @@
- Comment[tr]=Steam üzerinden oyun oynama ve düzenleme uygulaması
- Comment[uk]=Програма для керування іграми та запуску ігор у Steam
- Comment[vi]=Ứng dụng để quản lý và chơi trò chơi trên Steam
--Exec=/usr/bin/steam %U
-+Exec=/usr/bin/redcore-steam %U
- Icon=steam
- Terminal=false
- Type=Application
-@@ -63,7 +63,7 @@
- Name[tr]=Mağaza
- Name[uk]=Крамниця
- Name[vi]=Cửa hàng
--Exec=steam steam://store
-+Exec=redcore-steam steam://store
-
- [Desktop Action Community]
- Name=Community
-@@ -93,7 +93,7 @@
- Name[tr]=Topluluk
- Name[uk]=Спільнота
- Name[vi]=Cộng đồng
--Exec=steam steam://url/SteamIDControlPage
-+Exec=redcore-steam steam://url/SteamIDControlPage
-
- [Desktop Action Library]
- Name=Library
-@@ -123,7 +123,7 @@
- Name[tr]=Kütüphane
- Name[uk]=Бібліотека
- Name[vi]=Thư viện
--Exec=steam steam://open/games
-+Exec=redcore-steam steam://open/games
-
- [Desktop Action Servers]
- Name=Servers
-@@ -153,7 +153,7 @@
- Name[tr]=Sunucular
- Name[uk]=Сервери
- Name[vi]=Máy chủ
--Exec=steam steam://open/servers
-+Exec=redcore-steam steam://open/servers
-
- [Desktop Action Screenshots]
- Name=Screenshots
-@@ -183,7 +183,7 @@
- Name[tr]=Ekran Görüntüleri
- Name[uk]=Скріншоти
- Name[vi]=Ảnh chụp
--Exec=steam steam://open/screenshots
-+Exec=redcore-steam steam://open/screenshots
-
- [Desktop Action News]
- Name=News
-@@ -213,7 +213,7 @@
- Name[tr]=Haberler
- Name[uk]=Новини
- Name[vi]=Tin tức
--Exec=steam steam://open/news
-+Exec=redcore-steam steam://open/news
-
- [Desktop Action Settings]
- Name=Settings
-@@ -243,11 +243,11 @@
- Name[tr]=Ayarlar
- Name[uk]=Налаштування
- Name[vi]=Thiết lập
--Exec=steam steam://open/settings
-+Exec=redcore-steam steam://open/settings
-
- [Desktop Action BigPicture]
- Name=Big Picture
--Exec=steam steam://open/bigpicture
-+Exec=redcore-steam steam://open/bigpicture
-
- [Desktop Action Friends]
- Name=Friends
-@@ -277,4 +277,4 @@
- Name[tr]=Arkadaşlar
- Name[uk]=Друзі
- Name[vi]=Bạn bè
--Exec=steam steam://open/friends
-+Exec=redcore-steam steam://open/friends
diff --git a/app-emulation/steam/files/steam-wrapper.sh b/app-emulation/steam/files/steam-wrapper.sh
new file mode 100644
index 00000000..25936107
--- /dev/null
+++ b/app-emulation/steam/files/steam-wrapper.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+# Set a default STEAM_RUNTIME value.
+: ${STEAM_RUNTIME:=@@STEAM_RUNTIME@@}
+export STEAM_RUNTIME
+
+# Gentoo's lsb-release doesn't set this.
+export DISTRIB_RELEASE="@@PVR@@"
+
+# Add paths to occasionally needed libraries not found in /usr/lib.
+export LD_LIBRARY_PATH+="${LD_LIBRARY_PATH+:}@@GENTOO_LD_LIBRARY_PATH@@"
+
+# Preload the extest library when running in a Wayland session.
+[[ -f "@@GENTOO_X86_LIBDIR@@/libextest.so" && ${XDG_SESSION_TYPE} == wayland ]] &&
+ export LD_PRELOAD+="${LD_PRELOAD+:}@@GENTOO_X86_LIBDIR@@/libextest.so"
+
+# Preload libstdc++ on default-libcxx systems to avoid crashes. Loading the
+# 64-bit library prevents Steam from working at all, so only load the 32-bit
+# multlib library. Pure 32-bit systems are untested and may not work.
+if grep -Fxqe --stdlib=libc++ /etc/clang/gentoo-runtimes.cfg 2>/dev/null; then
+ IFS=:
+ for GCC_LIB_DIR in $(gcc-config -L 2>/dev/null); do
+ [[ ${GCC_LIB_DIR} == */32 ]] || continue
+ export LD_PRELOAD+="${LD_PRELOAD+:}${GCC_LIB_DIR}/libstdc++.so"
+ done
+ unset IFS GCC_LIB_DIR
+fi
+
+# Steam renames LD_LIBRARY_PATH to SYSTEM_LD_LIBRARY_PATH and it then becomes
+# ineffective against games. We unfortunately therefore have to force the value
+# through via STEAM_RUNTIME_LIBRARY_PATH instead.
+export STEAM_RUNTIME_LIBRARY_PATH="${LD_LIBRARY_PATH}"
+
+. "${0%/*}"/../lib/steam/bin_steam.sh