80 Commits
Author SHA1 Message Date
Ikey Doherty 0a02c111a0 Can't go to bed with that looking me in the face.
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-11 02:57:58 +01:00
Ikey Doherty 9bd423fb34 intercept: Dedupe the list
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-11 01:58:20 +01:00
Ikey Doherty f2dddd9f88 intercept: Catch the last of the SDL offenders like steamwebhelper
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>
2017-10-11 00:15:52 +01:00
Ikey Doherty 94d5c6d939 intercept: Pretty print stuff
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 23:38:12 +01:00
Ikey Doherty f4564e2ab8 intercept: Be spammy only on demand, and provide relevant information
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 23:33:11 +01:00
Ikey Doherty 8d85cb3bed Fix storage of the use-libintercept setting
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 23:28:40 +01:00
Ikey Doherty fb2e84cb97 frontend: Teach UI how to control the libintercept setting
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 23:23:48 +01:00
Ikey Doherty e1f2783d11 shim: Allow disabling libintercept from config
Note libintercept requires that we use the native runtime, otherwise very
bad things will happen. ™

Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 23:18:11 +01:00
Ikey Doherty 13afbe69c3 lsi: Teach configuration about libintercept toggle
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 23:17:29 +01:00
Ikey Doherty b458346f5a Fix invalid date range for copyright assignment
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 23:12:53 +01:00
Ikey Doherty fe80861f66 frontend: Fix linking once more
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 23:00:12 +01:00
Ikey Doherty 38ec05ce98 Move lsi into new subdir to be reused as static lib
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 22:59:33 +01:00
Ikey Doherty d983f8ebdf Add currently failing build for frontend
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 22:54:51 +01:00
Ikey Doherty 47e50b789f shim: Only set LD_AUDIT if we were built with libintercept enabled
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 22:51:40 +01:00
Ikey Doherty 9905a2bc81 intercept: Allow controlling build of this library
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 22:50:28 +01:00
Ikey Doherty 11e1d8ae5f shim: Build lsi-steam or not at all, depending on meson options
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 22:46:19 +01:00
Ikey Doherty 00e78f705e Only build frontend and look for GTK if its requested
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 22:44:02 +01:00
Ikey Doherty a61e22d677 shim: When using native runtime, load liblsi-intercept in LD_AUDIT
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>
2017-10-10 22:31:25 +01:00
Ikey Doherty 93b0f82279 Hack stuff up so we can build shim again
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 22:27:54 +01:00
Ikey Doherty d870577a55 intercept: Add missing modelines
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 22:07:15 +01:00
Ikey Doherty fd252e265d Move common helpers to common.h to fix compilation warnings
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 22:07:02 +01:00
Ikey Doherty 3684dfe11e intercept: More unused code
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 22:04:22 +01:00
Ikey Doherty d5b31dbf54 intercept: That guy is unused
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 22:03:43 +01:00
Ikey Doherty f6dcc30d33 shim: Ensure we disable GTK_MODULES (thanks @cybre!)
Same reason as XMODIFIERS - it'll stop Steam starting up properly

Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 21:56:11 +01:00
Ikey Doherty 7a2670f3e1 intercept: Completely clamp down on Steam, allow only Steam's own libs
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 21:54:59 +01:00
Ikey Doherty 61d9296a6c Let's pretend that one didnt happen
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 21:07:36 +01:00
Ikey Doherty 4b36347ade Remove unused define
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 20:41:51 +01:00
Ikey Doherty d3469e3eb0 intercept: Add quick hack which *should* work
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 20:37:19 +01:00
Ikey Doherty d77ad58934 Remove intercept-emul32 because meson is weak a.f.
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 20:24:47 +01:00
Ikey Doherty 2aae934271 Ensure we can build 32-bit and 64-bit libraries together
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 20:16:11 +01:00
Ikey Doherty 12d5268252 Split emul32 into new dir
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 20:07:59 +01:00
Ikey Doherty 15253b97df Fail massively. But progress.
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 20:06:02 +01:00
Ikey Doherty 8dd27f6f24 intercept: Actually compile..
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 20:02:28 +01:00
Ikey Doherty f21559ee78 Make config.h work again
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 20:01:47 +01:00
Ikey Doherty 5b17fe9447 Start teaching intercept how to build (not complete.)
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 19:56:37 +01:00
Ikey Doherty 9ca7ffdd85 Get two nicas building, native and emul32
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 19:52:06 +01:00
Ikey Doherty 3b552ec17d Begin meson conversion.. Not yet building anything
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 19:46:00 +01:00
Ikey Doherty a3226a293c intercept: Build a static override table
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 19:15:21 +01:00
Ikey Doherty 9c40a9d106 intercept: Account for more processes
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-10 19:13:06 +01:00
Ikey Doherty 49d68c52a7 intercept: Teach intercept how to override libSDL2
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>
2017-10-10 19:09:30 +01:00
Ikey Doherty d20c230067 Begin basic libintercept design
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>
2017-10-10 18:17:14 +01:00
Ikey Doherty 1a70578cb1 shim: Work around Steam client's SDL regression with XMODIFIERS
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>
2017-10-09 20:03:08 +01:00
Ikey Doherty dd5237e648 shim: Launch vanilla /usr/bin/steam when replacement is disabled
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>
2016-12-08 23:54:20 +00:00
Ikey Doherty 196a039746 Include libnica as a git submodule
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>
2016-12-08 22:13:33 +00:00
Ikey Doherty 4ff98e225a Remove our local forked copy of libnica
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>
2016-12-08 22:12:11 +00:00
Ikey Doherty 00d8831720 nica: Sync with upstream commit a8b1f1ee423f386d1ff676d4173ebd83a64656de
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2016-06-15 13:01:23 +01:00
Ikey Doherty 451ffe7680 nica: Sync with upstream
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2016-06-11 18:47:54 +01:00
Ikey Doherty e104513e1d Add the missing ® in case nobody gets the idea..
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2016-06-08 20:59:12 +01:00
Ikey Doherty 7aa6ceca74 frontend: Fix padding and default to the dark theme, swap buttons
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2016-06-08 20:46:15 +01:00
Ikey Doherty 5032054c3c Remove defunct code
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2016-06-08 19:56:26 +01:00