This now ensures steamwebhelper is also using our SDL as it was previously
loading from a relative location. This actually fixes issues on my local
system whereby the steam trailer videos couldn't full screen properly,
now using our own SDL, they can.
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
Note libintercept requires that we use the native runtime, otherwise very
bad things will happen. ™
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
liblsi-intercept has a simple job of stopping Steam from trying to
replace all of the system libraries in a mish-mash approach. Even when
we have STEAM_RUNTIME=0, and even with the advent of the new "prefer host
libraries" system, the internal replacements and pinning system actually
break massively.
To counteract this issue, we use our own rtld-audit implementation when
launching the real Steam, which will severely restrict which libraries the
main Steam binaries are actually allowed to load. This is on a whitelist
basis and ensures that the host libraries will be used where appropriate,
i.e. SDL, X11, etc. This prevents compatibility issues as well as the random
crashes we're now seeing with Steam beta.
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
This doesn't actually work properly yet as we need to build dual libraries
for 32-bit and 64-bit to ensure LD_AUDIT is non-fatal.
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
This is the very start of our adventure into rtld-audit, and effectively
we'll have liblsi-intercept loaded by LD_AUDIT via our Steam LSI shim, and
when we find an interesting process, we'll match that process name and
activate ourselves.
In future, we'll want to blacklist Steam from being able to load duplicated
libraries on the system, i.e. libSDL, to resolve a number of crashes.
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
The version of SDL shipping with Valve's Steam Client has a regression
that fails to correctly `SDL_InitSubSystem` whenever `XMODIFIERS` is set,
talking to dbus objects with no set address.
Relevant issue: ValveSoftware/steam-for-linux#501
This change will ensure that SDL can initialise correctly on startup,
and no longer make users suffer crashes.
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
When we're not built for distro integration, we'll now call out to
/usr/bin/steam with the LSI modifications in place, so that we don't
enter into an infinite recursion.
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
This ensures we only need to maintain the library in one place, greatly
reducing the complexity of integration and updating of the library.
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
This will pave the way for embedding libnica as a submodule and building
against the static library, removing any requirements for having the shared
library present.
As it seems nica fits better currently as a utility library, that's not
such a bad thing.
Signed-off-by: Ikey Doherty <ikey@solus-project.com>