Commit Graph

229 Commits

Author SHA1 Message Date
Ikey Doherty d4eb0ca042 Fix gitmodules so we can git build LSI in ypkg
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-23 20:10:31 +01:00
Ikey Doherty bfb703be68 intercept: Only blacklist common glews (TEMPORARY)
This will permit Super Hexagon to launch, which has a vendored libglew
in tree (1.6 ABI). This is only being allowed on a temporary basis for
two reasons:

 * C ABI and not C++
 * We don't ship this guy in Solus, and don't plan to.

Once LSI is available as a snap, we'll add a super strict mode and then
provide all the GLEW libraries in the image.

This fixes #21.

Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-23 20:05:21 +01:00
Ikey Doherty d0708a2332 redirect: Unbreak Ark profile
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-23 19:38:19 +01:00
Ikey Doherty a7c59cacef profiles: When running Ark, set up the log ID for debugging
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-23 19:06:27 +01:00
Ikey Doherty 799c4b1e48 redirect: Use fine-grained absolute process name matching
This ensures we only target the games we care about, and don't accidentally
match something using the same binary name.

Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-23 19:01:16 +01:00
Ikey Doherty ada9b92f53 common: Add new lsi_get_process_name for absolute path
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-23 18:56:23 +01:00
Ikey Doherty 60c3ddc6e9 Rename lsi_get_process_name for clarity
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-23 18:53:48 +01:00
Ikey Doherty c3a071e2a0 redirect: Split hard-coded Ark into separate generation function
This allows us to make profile initialisation more generic, and potentially
support more workarounds in future. For now our entry point will walk the
generator table until a profile is supported.

Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-23 18:51:14 +01:00
Ikey Doherty 4001ffc814 common: Make William happy (and memory alignment)
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-23 03:29:09 +01:00
Ikey Doherty e3a4640c04 redirect: Reduce spam, don't redirect to non-existent files
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-23 03:08:02 +01:00
Ikey Doherty bddeda6ef3 redirect; Fix process matching again
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-23 03:07:19 +01:00
Ikey Doherty 71322156e3 Leak less!
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-23 03:06:38 +01:00
Ikey Doherty c5bb4ca040 Build redirect paths for all known Steam Paths
This will ensure that if Steam is located on another disk, we're still
able to locate the LibraryFolders stanza in `libraryfolders.vdf` and
add all applicable rules given the realpath()'d resolved paths.

Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-23 03:02:30 +01:00
Ikey Doherty a2502c1ec7 common: Add the initial VDF parser
This is a node-tree based parser for the Valve Data Format. Currently
it is provided so that we can parse the Steam Client's library configuration
to determine exactly what directories consitute the "installation" for the
user.

At present, this is a "parse or bail" implementation, and doesn't really
do much in the way of pretty printing errors. It's also not geared for
writing VDF files, though if people request it, I'll happily add that.

Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-23 02:25:06 +01:00
Ikey Doherty 2b2e73b572 redirect: Spam output!
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 03:27:22 +01:00
Ikey Doherty a98ebc3607 profile: realpath all the things!
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 03:26:21 +01:00
Ikey Doherty 78fcdf6247 redirect: Clean up that multiline jankiness
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 03:23:29 +01:00
Ikey Doherty 516823ae3c redirect: Fix broken list behaviour
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 03:13:47 +01:00
Ikey Doherty f2352546d4 redirect: Ensure we deal with absolute paths only
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 03:13:36 +01:00
Ikey Doherty b87210a253 redirect: Walk op table until we have a replacement path
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 03:01:44 +01:00
Ikey Doherty 2d6ab6d497 redirect: Flesh out the basic Ark: Survival Evolved profile
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 02:55:43 +01:00
Ikey Doherty ffdc14c109 redirect: Add API for creating and freeing chained LsiRedirects
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 02:47:49 +01:00
Ikey Doherty e45340973a Fix logging, start fleshing out redirect profile API
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 02:39:47 +01:00
Ikey Doherty 1f73dd3e0b intercept: Prettify output again
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 01:15:18 +01:00
Ikey Doherty fb50dca553 redirect: Set up an initial Ark Survival Evolved profile
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 01:13:55 +01:00
Ikey Doherty edf3176c70 common: Fix derpy log
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 01:13:45 +01:00
Ikey Doherty e73d384726 redirect: Make sure op_table is pointered vfunc table
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 01:04:27 +01:00
Ikey Doherty 30152b9604 redirect: Begin working on new Profile bits
The Profile will allow us to construct reusable/extendable rules
to handle various game issues.

Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 01:02:18 +01:00
Ikey Doherty a83b1c24b2 Switch all "pretty printing" over to common/log
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 00:50:34 +01:00
Ikey Doherty 0f33bb1fbd redirect: Start using log functions
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 00:39:24 +01:00
Ikey Doherty 88550aeffc common: Add basic (janky) logging system
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 00:37:32 +01:00
Ikey Doherty fe83d34984 redirect: Clean up init, don't use fprintf when OOM
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 00:25:43 +01:00
Ikey Doherty 9b4187ed27 common: Fix symbol visibility once more
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 00:19:52 +01:00
Ikey Doherty b40eba8ad9 Further deduplication (get_process_name, file_exists)
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 00:18:55 +01:00
Ikey Doherty 1179763531 redirect: Don't dupe lsi_file_exists
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 00:16:16 +01:00
Ikey Doherty 627c7639cf Stop building nica lots, build it once inside lsi_common
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 00:14:38 +01:00
Ikey Doherty 290260c09e Move common.h into common library
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 00:12:04 +01:00
Ikey Doherty a691985541 Dedupe, implement support for getting steam directory
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 00:10:49 +01:00
Ikey Doherty 1811ff5225 lsi: Dedupe into common
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 00:03:51 +01:00
Ikey Doherty a932486826 Start splitting out a new common library
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-22 00:02:18 +01:00
Ikey Doherty 3c69b6dc05 Switch to C11 so we get unnamed structs/unions
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-21 20:25:25 +01:00
Ikey Doherty c8f0cecb15 redirect: Start designing the generic ops table
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-21 20:24:57 +01:00
Ikey Doherty 3b01919148 shim: Set LD_PRELOAD for libredirect if enabled
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-21 19:46:25 +01:00
Ikey Doherty 474aca0b69 lsi: Teach config how to handle toggle on libredirect
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-21 19:46:13 +01:00
Ikey Doherty fa81893d41 Be a little bit less verbose
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-21 19:19:27 +01:00
Ikey Doherty f958b8ac3f redirect: Cheeky initial hack to see if we can replace paths
This is a very ugly hack right now but we'll prettify it and make
it all more generic, but right now it'll hotswap the depthblur
in Ark for the one coming from "TheCenter" mod.

Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-21 19:18:30 +01:00
Ikey Doherty 971d0c280e redirect: Temporarily teach it about ShooterGame for debugging
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-21 19:02:58 +01:00
Ikey Doherty 4f6166bdce redirect: Add basic code path for "if lsi_override"
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-21 18:44:09 +01:00
Ikey Doherty be98e146ed redirect: Differentiate between table + lsi redirect init
Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-21 18:42:22 +01:00
Ikey Doherty 5c131f6b28 redirect: Fix open args for variadic functions
Also mark stuff as fatal because at this point we've override `open` ..

Signed-off-by: Ikey Doherty <ikey@solus-project.com>
2017-10-21 18:31:24 +01:00