parent
02070ce84c
commit
66c308a7b8
@ -1 +1,2 @@
|
||||
DIST steam_1.0.0.56.tar.gz 2899122 BLAKE2B a4955975b36d7916d634cd076356f61a90751bdda07aa87ea79ea2237c0b17b1377685f3d6ff41ad82e3921580dc4f3524fbfe45e5918a52c146ea4bd5393c5f SHA512 17fdd26b829a5860520d955326af88ebacda18183fbf9a70cbb38a9c593cc6c3e85237ec0be598e80a3e1d2bc4354a4933e372321ce0b8716ac481cfb3d7a5e0
|
||||
DIST steam_1.0.0.59.tar.gz 2899959 BLAKE2B e213cdd417b795f90b9ff6081a3b43b058068ba153b0fad8658d648d6ba8840a644956a666955a99dae2c3eae490059522053fd85a20046b95fd4c22d04255fa SHA512 c5cbe0849b93076bf375de86c78c351af5841163825f2581d54ef98d2501f002d35b18c93b95dba1a7c65444a137bdd5e30f63ca0e72ae6ad526b11a50018276
|
||||
|
@ -0,0 +1,69 @@
|
||||
/* Copyright 1999-2019 Gentoo Authors */
|
||||
/* Distributed under the terms of the GNU General Public License v2 */
|
||||
|
||||
#define _GNU_SOURCE
|
||||
|
||||
#include <dlfcn.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#define STEAM_PRELOAD_QUOTE(name) #name
|
||||
#define STEAM_PRELOAD_STR(macro) STEAM_PRELOAD_QUOTE(macro)
|
||||
#define GLIBDIR_STR STEAM_PRELOAD_STR(GLIBDIR)
|
||||
|
||||
int (*execve_real)(const char *filename, char *const argv[], char *const envp[]) = NULL;
|
||||
|
||||
int execve(const char *filename, char *const argv[], char *const envp[]) {
|
||||
if (execve_real == NULL) {
|
||||
execve_real = dlsym(RTLD_NEXT, "execve");
|
||||
}
|
||||
|
||||
if (strcmp(filename, "./steamwebhelper") == 0) {
|
||||
fputs("Gentoo caught steamwebhelper invocation\n", stderr);
|
||||
|
||||
unsigned int i;
|
||||
for (i = 0; envp[i] != NULL; i++);
|
||||
char **envp2 = malloc(sizeof(char*) * i);
|
||||
|
||||
if (envp2 == NULL) {
|
||||
errno = ENOMEM;
|
||||
return -1;
|
||||
}
|
||||
|
||||
int ret;
|
||||
char *llp = NULL;
|
||||
|
||||
for (i = 0; envp[i] != NULL; i++) {
|
||||
if (strncmp(envp[i], "LD_LIBRARY_PATH=", 16) == 0) {
|
||||
const char *gl_ldpath = getenv("GL_LDPATH");
|
||||
|
||||
if (gl_ldpath) {
|
||||
ret = asprintf(&llp, "LD_LIBRARY_PATH=%s:" GLIBDIR_STR ":%s", gl_ldpath, envp[i] + 16);
|
||||
} else {
|
||||
ret = asprintf(&llp, "LD_LIBRARY_PATH=" GLIBDIR_STR ":%s", envp[i] + 16);
|
||||
}
|
||||
|
||||
if (ret < 0) {
|
||||
free(envp2);
|
||||
errno = ENOMEM;
|
||||
return -1;
|
||||
}
|
||||
|
||||
fprintf(stderr, "Gentoo reinvoking steamwebhelper with %s\n", llp);
|
||||
envp2[i] = llp;
|
||||
} else {
|
||||
envp2[i] = envp[i];
|
||||
}
|
||||
}
|
||||
|
||||
envp2[i] = NULL;
|
||||
ret = execve_real(filename, argv, envp2);
|
||||
free(envp2);
|
||||
free(llp);
|
||||
return ret;
|
||||
} else {
|
||||
return execve_real(filename, argv, envp);
|
||||
}
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
diff -Naur a/steam b/steam
|
||||
--- a/steam 2019-03-24 23:05:23.035074609 +0000
|
||||
+++ b/steam 2019-03-24 23:15:11.768471262 +0000
|
||||
@@ -17,6 +17,31 @@
|
||||
# Set up domain for script localization
|
||||
export TEXTDOMAIN=steam
|
||||
|
||||
+# Add paths to occasionally needed libraries not found in /usr/lib.
|
||||
+export LD_LIBRARY_PATH+="${LD_LIBRARY_PATH+:}@@GENTOO_LD_LIBRARY_PATH@@"
|
||||
+
|
||||
+# Steam appends /usr/lib32 to LD_LIBRARY_PATH. We need to make sure that
|
||||
+# OpenGL implementation dir goes before that, so we need to append it to
|
||||
+# user's LD_LIBRARY_PATH ourselves. But that's needed only with the new
|
||||
+# eselect-opengl that uses 000opengl file. GL_LDPATH is also used by
|
||||
+# by Gentoo's execve wrapper.
|
||||
+if [[ -f /etc/env.d/000opengl ]]; then
|
||||
+ export GL_LDPATH=$(. /etc/env.d/000opengl >/dev/null; echo "${LDPATH}")
|
||||
+
|
||||
+ # Append only when GL_LDPATH is non-empty -- i.e. using nvidia or ati.
|
||||
+ if [[ -n ${GL_LDPATH} ]]; then
|
||||
+ LD_LIBRARY_PATH+=":${GL_LDPATH}"
|
||||
+ else
|
||||
+ unset GL_LDPATH
|
||||
+ fi
|
||||
+else
|
||||
+ unset GL_LDPATH
|
||||
+fi
|
||||
+
|
||||
+# Preload Gentoo's execve wrapper so that steamwebhelper prefers system
|
||||
+# libraries over older bundled libraries.
|
||||
+[[ ${STEAM_RUNTIME} = 0 ]] && export LD_PRELOAD+="${LD_PRELOAD+:}@@GENTOO_LD_PRELOAD@@"
|
||||
+
|
||||
function show_message()
|
||||
{
|
||||
style=$1
|
@ -0,0 +1,178 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
# Please report bugs/suggestions on: https://github.com/anyc/steam-overlay
|
||||
# or come to #gentoo-gamerlay in freenode IRC
|
||||
|
||||
inherit desktop linux-info prefix toolchain-funcs udev xdg-utils
|
||||
|
||||
DESCRIPTION="Installer, launcher and supplementary files for Valve's Steam client"
|
||||
HOMEPAGE="http://steampowered.com"
|
||||
SRC_URI="http://repo.steampowered.com/steam/pool/steam/s/steam/steam_${PV}.tar.gz"
|
||||
|
||||
KEYWORDS="amd64 x86"
|
||||
LICENSE="ValveSteamLicense"
|
||||
|
||||
RESTRICT="bindist mirror"
|
||||
SLOT="0"
|
||||
IUSE="+steamruntime"
|
||||
|
||||
RDEPEND="
|
||||
app-arch/tar
|
||||
app-shells/bash
|
||||
net-misc/curl
|
||||
|| (
|
||||
>=gnome-extra/zenity-3
|
||||
x11-terms/xterm
|
||||
)
|
||||
|
||||
steamruntime? (
|
||||
virtual/opengl[abi_x86_32]
|
||||
x11-libs/libX11[abi_x86_32]
|
||||
x11-libs/libXau[abi_x86_32]
|
||||
x11-libs/libxcb[abi_x86_32]
|
||||
x11-libs/libXdmcp[abi_x86_32]
|
||||
)
|
||||
!steamruntime? (
|
||||
>=games-util/steam-client-meta-0-r20190331[steamruntime?]
|
||||
)
|
||||
|
||||
amd64? (
|
||||
>=sys-devel/gcc-4.6.0[multilib]
|
||||
>=sys-libs/glibc-2.15[multilib]
|
||||
)
|
||||
x86? (
|
||||
>=sys-devel/gcc-4.6.0
|
||||
>=sys-libs/glibc-2.15
|
||||
)"
|
||||
|
||||
S=${WORKDIR}/steam/
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/steam-runtime-default.patch
|
||||
"${FILESDIR}"/steam-set-distrib-release.patch
|
||||
"${FILESDIR}"/steam-fix-joystick-detection.patch
|
||||
"${FILESDIR}"/steam-libraries.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
linux-info_pkg_setup
|
||||
|
||||
if ! { linux_config_exists && linux_chkconfig_present INPUT_UINPUT; }; then
|
||||
ewarn "If you want to use the Steam controller, please make sure"
|
||||
ewarn "CONFIG_INPUT_UINPUT is enabled in your kernel config."
|
||||
|
||||
# Device Drivers
|
||||
# -> Input device support
|
||||
# -> Miscellaneous devices
|
||||
# -> User level driver support
|
||||
fi
|
||||
}
|
||||
|
||||
path_entries() {
|
||||
local multilib=${1}
|
||||
shift
|
||||
|
||||
while true; do
|
||||
echo -n ${EPREFIX}/usr/$(get_libdir)/${1}$(${multilib} && use amd64 && echo :${EPREFIX}/usr/$(ABI=x86 get_libdir)/${1})
|
||||
shift
|
||||
|
||||
if [[ -n ${1} ]]; then
|
||||
echo -n :
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
native_path_entries() { path_entries false "${@}"; }
|
||||
multilib_path_entries() { path_entries true "${@}"; }
|
||||
|
||||
src_prepare() {
|
||||
xdg_environment_reset
|
||||
default
|
||||
|
||||
sed -i 's:TAG+="uaccess":\0, TAG+="udev-acl":g' \
|
||||
lib/udev/rules.d/60-steam-input.rules || die
|
||||
|
||||
sed -i \
|
||||
-e "s#@@GENTOO_LD_LIBRARY_PATH@@#$(multilib_path_entries debiancompat fltk)#g" \
|
||||
-e "s#@@GENTOO_LD_PRELOAD@@#$(native_path_entries libsteam-preload.so)#g" \
|
||||
-e "s#@@STEAM_RUNTIME@@#$(usex steamruntime 1 0)#g" \
|
||||
steam || die
|
||||
|
||||
# use steam launcher version as release number as it is a bit more helpful than the baselayout version
|
||||
sed -i -e "s,export DISTRIB_RELEASE=\"2.2\",export DISTRIB_RELEASE=\"${PVR}\"," steam || die
|
||||
|
||||
# Still need EPREFIX in the sed replacements above because the
|
||||
# regular expression used by hprefixify doesn't match there.
|
||||
hprefixify steam
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
$(tc-getCC) ${CFLAGS} ${LDFLAGS} -fPIC -DGLIBDIR="${EPREFIX}/usr/$(get_libdir)" -shared \
|
||||
"${FILESDIR}"/libsteam-preload.c -ldl -Wl,-soname=libsteam-preload.so -o libsteam-preload.so || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin steam
|
||||
dolib.so libsteam-preload.so
|
||||
|
||||
insinto /usr/lib/steam/
|
||||
doins bootstraplinux_ubuntu12_32.tar.xz
|
||||
|
||||
udev_dorules lib/udev/rules.d/60-steam-input.rules lib/udev/rules.d/60-steam-vr.rules
|
||||
|
||||
dodoc debian/changelog steam_subscriber_agreement.txt
|
||||
doman steam.6
|
||||
|
||||
domenu steam.desktop
|
||||
|
||||
cd icons/ || die
|
||||
for s in * ; do
|
||||
doicon -s ${s} ${s}/steam.png
|
||||
done
|
||||
|
||||
# tgz archive contains no separate pixmap, see #38
|
||||
doicon 48/steam_tray_mono.png
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_icon_cache_update
|
||||
xdg_desktop_database_update
|
||||
udev_reload
|
||||
|
||||
elog "Execute ${EPREFIX}/usr/bin/steam to download and install the actual"
|
||||
elog "client into your home folder. After installation, the script"
|
||||
elog "also starts the client from your home folder."
|
||||
elog ""
|
||||
|
||||
if use steamruntime; then
|
||||
ewarn "You enabled the Steam runtime environment. Steam will use bundled"
|
||||
ewarn "libraries instead of Gentoo's system libraries."
|
||||
ewarn ""
|
||||
else
|
||||
elog "We disable STEAM_RUNTIME in order to ignore bundled libraries"
|
||||
elog "and use installed system libraries instead. If you have problems,"
|
||||
elog "try starting Steam with: STEAM_RUNTIME=1 steam"
|
||||
ewarn ""
|
||||
ewarn "Notice: Valve only supports Steam with the runtime enabled!"
|
||||
ewarn ""
|
||||
fi
|
||||
|
||||
if ! has_version "gnome-extra/zenity"; then
|
||||
ewarn "Valve does not provide a xterm fallback for all calls of zenity."
|
||||
ewarn "Please install gnome-extra/zenity for full support."
|
||||
ewarn ""
|
||||
fi
|
||||
|
||||
ewarn "The Steam client and the games are _not_ controlled by Portage."
|
||||
ewarn "Updates are handled by the client itself."
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_icon_cache_update
|
||||
xdg_desktop_database_update
|
||||
}
|
Loading…
Reference in new issue