-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support compatibility tools other than Proton out-of-the-box. #293
base: main
Are you sure you want to change the base?
Support compatibility tools other than Proton out-of-the-box. #293
Conversation
fc45233
to
60315a1
Compare
will this make it possible to use proton-tkg ?? |
It should make possible to run any tool that works with Steam as a compatibility tool. The main constraint not addressed yet are tools that require a runtime other than |
f4d0ab0
to
32babaa
Compare
…ommand Using the information in the compatibility tool's manifest, umu executes the tool's entry point as described by the tool with the expected runtime environment. Umu now detects when the runtime should be used and potentially use the correct runtime to do so. This also enables umu to run tools other than proton, such as luxtorpeda simply by setting `PROTONPATH=luxtorpeda` or `PROTONPATH=/path/to/not/proton`
32babaa
to
b711018
Compare
This PR aims to allow auto-configuration of compatibility tools other than Proton by using the information in
compatibilitytool.vdf
andtoolmanifest.vdf
manifest files. Using this information umu can construct the proper command for each tool based on which runtime the tool depends on (if at all), the entry point of the runtime and the tool, and the type of the tool (important forwinetricks
as it works only on proton). This supersedes environment variables suchUMU_NO_PROTON
(PROTONPATH
remains as a way to set the tool with expanded meaning) andUMU_NO_RUNTIME
. These variables are retained only to force a specific configuration if required.For example
GAMEID=0 WINEPREFIX=~/Wine/umu/ UMU_LOG=debug PROTONPATH=luxtorpeda umu-run
launchesluxtorpeda
throughumu
.Important changes:
vdf
library is now a vendored dependency. It is a pure-python library and thus compatible withzipapp
.UMU_NO_PROTON
renamed toUMU_NO_TOOL
to avoid confusion of its purpose. This is useful if the user wants to run a linux-native binary in the runtime without a tool.UMU_NO_RUNTIME
is retained as an override if the user wants to explicitly disable the runtime even if the tool requires it. Tools that don't use the runtime do not require this to be set any more.umu-shim
is always prepended to the tool's command. I have not tested this extensively but it didn't cause issues while testing with various tools and protons under X11.Things that need more consideration:
_v2-entry-point
toumu
. This rename is handled here. The same name for the entry point is also used in thesoldier, streamrt2
runtime. The "new" scout-in-soldier runtime usesscout-on-soldier-entry-point-v2
. If umu was to stop renaming the runtime's entry point, it should make supporting more runtimes easier.scout-in-soldier
, it is a runtime which depends on another runtime. The current implementation ofSteamRuntime
class doesn't handle a runtime using another runtime. Should it be implemented and remain unused for now?UMU_NO_TOOL
env variable. ThePROTONPATH
env variable could be used to define the runtime that should be used to run a linux-native executable in the form ofPROTONPATH="soldier/scout/etc"
. This should makeUMU_NO_TOOL
obsolete.umu-shim
is always prepended to the tool's command. I have no tested this extensively but it didn't cause issues while testing with various tools and protons.Marked as draft for now pending the first round of reviews.