Skip to content
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

Ability to Download Compatibility Tools if dependencies aren't met. #447

Open
SavageKiller13 opened this issue Aug 19, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@SavageKiller13
Copy link

Is your feature request related to a problem? Please describe.
I am trying to use ProtonUp-Qt to install the compatibility tool SteamTinkerLaunch.
I am unable to install the compatibility tool due to an outdated library (Ubuntu 24.04 does not have the required library on package manager), but I do have an up to date version of the library as a portable application (of which protonup cannot recognize).

Describe the solution you'd like
I would like to see an option to enable ability to download a compatibility tool even if dependencies aren't met, with a popup warning about possible errors that can happen without the correct dependencies. This could also be mixed with the "Advanced Mode" option.
Another possible solution is ability to provide a path to a dependency that is already installed (in the case of custom installs or portable applications).

Describe alternatives you've considered
An alternative I have is to manually install the compatibility tool and link the library with such.

Additional context

@SavageKiller13 SavageKiller13 added the enhancement New feature or request label Aug 19, 2024
@sonic2kk
Copy link
Contributor

sonic2kk commented Aug 19, 2024

Sounds reasonable to keep this behind Advanced Mode. We have a similar precedent for this already when installing SteamTinkerLaunch with Advanced Mode enabled where you can choose not to add SteamTinkerLaunch to PATH (#127, added as part of #125). We should be able to add a similar path for SteamTinkerLaunch dependencies. I don't know if we need this for other tools as I think SteamTinkerLaunch is the only one that blocks if dependencies aren't met.

  • Luxtorpeda will show a dialog if the dependencies aren't met, but will always return True anyway.
    • Boxtron and Roberta inherit from the Luxtorpeda ctmod and only override is_system_compatible so that they can use the ctmod name in the dialog
  • SteamTinkerLaunch is the only ctmod that blocks if the dependencies are not met.
  • Every other ctmod should return True, and only defines is_system_compatible for composition reasons. For example, GE-Proton, DXVK, and all the Proton-tkg/Wine-tkg variants (they all inherit from this ctmod).

Note as well that we don't need to show this on SteamOS at all because everything is managed on SteamOS already, so we don't need to worry about SteamTinkerLaunch installation failing on SteamOS if this is enabled. Outside of SteamOS, a user enabling this option could end up installing SteamTinkerLaunch and having it not work because dependencies were not met, but users enabling this option should understand the risk and since SteamTinkerLaunch is for tinkerers I think this is fine anyway. Although you have to enable Advanced Mode to use SteamTinkerLaunch properly anyway since only SteamTinkerLaunch-git is supported, the latest stable is extremely out of date, but again users should know what they're doing if they enable this option.

As maintainer of SteamTinkerLaunch this sounds like a reasonable thing to do, I hadn't considered using a local version of one of the libraries. Out of interest, how are you pointing SteamTinkerLaunch to it in a way that ProtonUp-Qt can't find with which? I think some dependencies can go in some local folder but that should be on PATH for SteamTinkerLaunch to find it. Also out of interest, what is the dependency? Not that either of these invalidate the proposal, I'm just curious :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants