ProtonUp-Qt
ProtonUp-Qt copied to clipboard
Lutris and Steam GE-Proton conflict also Lutris not detecting GE-Proton
Please fill out following when reporting a new bug:
Describe the bug
If GE-Proton is installed on both Steam and Lutris, there is a conflict. both during selection and deletion.
To Reproduce
Steps to reproduce the behavior:
- Install GE-Proton-27 (as of this bug) on both Steam and Lutris through ProtonUp-Qt
- try to make GE-Proton-27 default wine runner in lutris (Preferences -> Runners -> Wine -> Options -> Runner Options-> Wine Version) , it will select the Steam version (verified by selecting the Manage wine versions button next to the wine runner options button, GE-Proton-27 will not show any games)
- uninstall GE-Proton-27 from steam with ProtonUp-Qt, lutris will no longer show GE-Proton-27 (GE-Proton-27 folder is still in lutris wine runner folder, even after reinstallation of GE-Proton on lutris, still not showing on dropdown list)
Expected behavior
Lutris should be able to select the installed GE-Proton-27 and also show the amount of games using this runner (in the manage wine versions)
Screenshots
Desktop (please complete the following information):
- Platform: Steam Deck
- System: SteamOS 3.6.24
- Version: ProtonUp-Qt 2.12.1
- How did you install ProtonUp-Qt?: Flatpak
I think this are multiple issues.
uninstall GE-Proton-27 from steam with ProtonUp-Qt, lutris will no longer show GE-Proton-27 (GE-Proton-27 folder is still in lutris wine runner folder, even after reinstallation of GE-Proton on lutris, still not showing on dropdown list) Lutris should be able to select the installed GE-Proton-27
The first issue is related to Lutris misbehaving when the same compatibility tool is installed for both Steam and Lutris.
This is more of an issue with Lutris since it detects both versions but has a problem if one of them is deleted. Please open an issue there and add a reference/link to this issue.
Furthermore, I suggest that Lutris should also show where it gets the compatibility tool from. For example:
GE-Proton9-27 (via Steam)
GE-Proton9-27
...
I'm not sure if it can be fixed from our side. We cannot stop Lutris from detecting the Steam version, as far as I know. Alternatively, it would be possible to not allow installing a GE-Proton version for Lutris if it is already installed for Steam and vice versa (or automatically removing GE-Proton for Lutris if it is installed for Steam).
and also show the amount of games using this runner (in the manage wine versions)
With the second issue, I think you are referring to the compatibility tool info (ctinfo) dialog, right?
Regarding this, we have the following options for ProtonUp-Qt:
- Include Lutris games in addition to Steam games in the ctinfo for a compatibility tool of Steam when the Steam launcher is selected in ProtonUp-Qt
- Display Steam's compatibility tool when the Lutris launcher is selected. Only display Lutris games there (or also Steam games if it is a Steam compatibility tool?)
- Don't show Lutris games for a Steam compatibility tool (this wouldn't fix this issue though)
I agree that the core of the issue here sounds like a Lutris issue. It would be a good idea to test manually installing GE-Proton into Steam and seeing if it exhibits the same problems.
The ctinfo dialog issue is interesting. I don't think displaying Lutris games for a Steam-installed version of GE-Proton is viable, but ctinfo for Lutris games using a Lutris install of GE-Proton should just work I believe? Since we pull that from the compatibility tool name from Lutris, unless Lutris is writing a different name for GE-Proton than its display name (which would be unusual).
If we did want to go the road of showing Lutris compatibility tool information we could add another tab to the CtInfo dialogue for tools that are available in other launchers, i.e. GE-Proton9-27 for Steam could have a "Lutris" tab to show Lutris games. I'm not sure how useful this is, but it could theoretically be done (although I expect this to have a performance impact either on loading of Steam if we index Steam + Lutris games, or on opening of the CtInfo dialogue because iirc we index Lutris games for a compatibility tool only when opening the CtInfo dialog for Lutris).
there is still the matter of lutris not detecting GE-Proton properly if Steam's GE-Proton is not installed.
even after properly re-installing Lutris' GE-Proton, lutris still does not show the entry.
from my understanding this is a lutris problem, due to wine-ge-proton being deprecated. the detection of proton-GE has not been updated properly
wine-GE's folder structure is wine-GE/bin,lib,etc... proton-GE's folder structure is proton-GE/files/bin,lib,etc...
if you move proton-GE's files up a directory to proton-GE/bin,lib,etc... then it will start to show in lutris' dropdown.
i read PUQ's PR notes to remove wine-GE in order to transition to Proton-GE due to deprecation, but without lutris' proper detection, it kind of makes the PR useless?
i think you guys should try to ask lutris' team to also detect Proton-GE in lutris' default compatibility directory, before you impose the PR since it is not properly installed and is useless to the normal end-user
also in terms of the "double" detection conflict, i would suggest that the PR change PUQ's naming when installing proton-GE.
if PUQ renames proton-GE to proton-GE-x-Steam and proton-GE-x-lutris, then lutris can differentiate the installs properly. it does not have to be both, but maybe just renaming lutris' proton-GE should be sufficient.
regardless at this moment, the PUQ's recent transition to proton-GE for lutris is broken ATM.
my only choice was to close the issue in order to reply so please consider leaving the issue open until resolved.
edit: nvm, it allowed me to re-open the issue.
there is still the matter of lutris not detecting GE-Proton properly if Steam's GE-Proton is not installed.
I can re-create an issue where installing GE-Proton9-26 for Lutris but not for Steam will result in Lutris not finding it. However, this is a Lutris bug.
also in terms of the "double" detection conflict, i would suggest that the PR change PUQ's naming when installing proton-GE.
This is a Lutris thing and is not a "bug". Lutris lists versions of GE-Proton and other Proton-based compatibility tools installed for Steam and lists them. If you install GE-Proton for Steam, you should not install it again for Lutris, regardless of whether you use ProtonUp-Qt or not.
This is simply the design decision Lutris went with, to detect GE-Proton versions. This is not a problem with this project.
i think you guys should try to ask lutris' team to also detect Proton-GE in lutris' default compatibility directory, before you impose the PR since it is not properly installed and is useless to the normal end-user
Feel free to open an issue on the Lutris GitHub repo.
I'm not sure what you mean by "impose". If you're referring to the fact of being unable to download Wine-GE, that project is archived and no longer maintained and so should not be used. It is also incredibly out of date, so there would be no reason to download and use it if you didn't already have it installed.
I'm not sure what else ProtonUp-Qt would be "imposing" here.
regardless at this moment, the PUQ's recent transition to proton-GE for lutris is broken ATM.
This is the direction Lutris and afaik GloriousEggroll wants to go. GE-Proton is supposed to succeed Wine-GE, and Wine-GE is archived and unmaintained now. If something is broken, it should be reported to Lutris. ProtonUp-Qt is worked as intended as a tool to download and extract tools. There may be an issue with Lutris, but I don't think this is our bug.
my term "impose" referring to the transition from wine-GE to proton-GE with no option to download wine-GE due to deprecation, but since you say this is a lutris problem, doesn't that mean the function is not serving it's purpose until lutris attempts to fix the problem (if they even choose to)
if lutris' team does not make the necessary fixes doesn't this just mean the new PR is not serving it's purpose correctly because lutris does not detect proton-GE at all?
regardless, i know you say this is a steam conflict and not required, but since i use a steam deck (which steam is required) maybe this function is not meant for me and steam deck users (since as you say, it serves no purpose if steam has proton-GE already installed)
so i guess it serves it's purpose to linux users without steam. i guess i will just accept that as it is...
anyways thanks for the quick replies.
if lutris' team does not make the necessary fixes doesn't this just mean the new PR is not serving it's purpose correctly because lutris does not detect proton-GE at all?
And this would also happen if you were to install GE-Proton manually, which is my point. This is a Lutris bug that I believe is a regression from previous functionality.
On the Lutris issue tracker, there's lots of chatter around GE-Proton.
so i guess it serves it's purpose to linux users without steam. i guess i will just accept that as it is...
That is the reason why you would download GE-Proton for Lutris, I'm not sure I understand the problem here? Otherwise you'll just end up with Proton in two places. By design, Lutris detects Proton-based compatibility tools installed for Steam, that's not a ProtonUp-Qt decision or anything we can control.
It also doesn't quite work right now for users who do not use Steam as GE-Proton versions installed for Lutris do not always show up. Again, I don't think this happened ~6 months ago or so, but it is either way a Lutris bug.
I don't believe there's any work on the ProtonUp-Qt side. We shouldn't remove valid functionality because it is temporarily broken in another application. Wine-GE would've been removed anyway too as it is an archived project.
It may be worth letting you folks know that Proton versions, when installed in Lutris, go in the ~/.local/share/lutris/runners/proton directory, not in ~/.local/share/lutris/runners/wine. This has been true since 0.5.18.
But Lutris 0.5.19 is pickier about this than 0.5.18 was. It looks in those directories but filters out 'bad' versions based on the files present, so that it does not try to run a plain Wine version using Umu, or run a Proton version without it.
Previous Lutris versions could do weird halfway house things, like digging out the wine executable in a Proton version and executing it as if it was a normal Wine build. We are trying to be more careful with this stuff.
Lutris is likely to be confused if faced with two versions of Wine that are in different places, but have the same name. ~~I'd be inclined to fix~~ I've fixed that bug by ignoring 'extra' versions, preferring the one installed in Lutris 'proper', and by further tightening the checks against Proton stuff in runners/wine.
It may be worth letting you folks know that Proton versions, when installed in Lutris, go in the
~/.local/share/lutris/runners/protondirectory, not in~/.local/share/lutris/runners/wine
Thank you for the tip! I did not realise Lutris itself could download GE-Proton versions. This folder structure makes sense, we should be able to tell ProtonUp-Qt to install into this directory for Lutris instead of runners/wine (creating runners/proton if it does not already exist).
I am going to take a look at implementing this change to use the runners/proton folder now :-)
Lutris is likely to be confused if faced with two versions of Wine that are in different places, but have the same name
If a user has GE-Proton9-27 for example installed for Steam, and they install it again for Lutris, this is user error and not something for ProtonUp-Qt to fix or try to prevent imo. It would be unnecessary complexity (handling cases like removing a tool when it may be used by Steam games), and strange to, for example, list something like "GE-Proton9-27 (from Steam)" in the Lutris tools list. At that point we're just mirroring what Lutris does in its version dropdown.
So a user should not do this, and if they do, it's user-error imo.
@sonic2kk, I should let you know that @Strycore is presently removing the Proton-builds-just-for-Lutris feature entirely; he wants to use the builds in compatibilitytools.d only, as I understand it.
I'm not thrilled about this, but he's the boss.
Hmm. Talking to @strycore, I think the ultimate design is in flux. There may well be a place to install Proton builds.
But the removal of the 'proton' directory got reverted, for now. So Lutris's master is back to using that again. For now.
Don't use that Proton folder. I reverted the commit because it was also breaking umu. If Proton builds are to be downloaded they should be in runners/wine, the fact that we had this proton folder was the result of hacks during the development of umu.
Ideally we should agree on a folder for Proton that can be shared between Lutris / Heroic / Bottle / etc that isn't compatibilitytools.d but for now, I don't think it's an issue to use compatibilitytools.d even if Steam isn't installed
Don't use that Proton folder. I reverted the commit because it was also breaking umu. If Proton builds are to be downloaded they should be in runners/wine, the fact that we had this proton folder was the result of hacks during the development of umu.
Okay, that means we need to partially revert https://github.com/DavidoTek/ProtonUp-Qt/pull/536 which overwrites the Proton install directory from runners/wine to runners/proton.
It was not included in any releases yet, so we're fine.
Ideally we should agree on a folder for Proton that can be shared between Lutris / Heroic / Bottle / etc that isn't compatibilitytools.d but for now, I don't think it's an issue to use compatibilitytools.d even if Steam isn't installed
Defining a common folder for Proton(/Wine/DXVK/... maybe) sounds like a good idea. Are you already in talks with the devs of Heroic, etc.?
Using compatibilitytools.d has the advantage that Proton versions can be shared between Steam and other launchers like Lutris...
[original issue 527]
- Install GE-Proton-27 (as of this bug) on both Steam and Lutris through ProtonUp-Qt
- try to make GE-Proton-27 default wine runner in lutris (Preferences -> Runners -> Wine -> Options -> Runner Options-> Wine Version) , it will select the Steam version (verified by selecting the Manage wine versions button next to the wine runner options button, GE-Proton-27 will not show any games)
- uninstall GE-Proton-27 from steam with ProtonUp-Qt, lutris will no longer show GE-Proton-27 (GE-Proton-27 folder is still in lutris wine runner folder, even after reinstallation of GE-Proton on lutris, still not showing on dropdown list)
there is still the matter of lutris not detecting GE-Proton properly if Steam's GE-Proton is not installed.
What's the cause of this issue? Was this an issue with Lutris v0.5.19 only?
So what makes this transition to Lutris using Proton pretty difficult is the fact that people are not aware that Lutris is not just its own thing anymore but part of a larger project called Open Wine Components that has been going on for a couple years now (Started during Ubuntu Summit 2023). This project has members from pretty much all Wine / Proton related projects.
This means that the "classic Lutris way" is no longer a thing. We are working to provide a common architecture that works for everyone.
Now, the most important thing to know about umu is that when not passed any Proton path, it will download and use the latest GE-Proton by itself. This is the default behavior for Lutris 0.5.20. This means we do not need to manage Proton versions ourselves.
Using other Proton / Wine builds that the default will also see some changes. We don't want to have a list of random Wine builds anymore. Every Wine/Proton build we list in our runners should have a purpose, which will be in most cases a regression backed by a URL to a bugtracker. We've also started providing latest versions of Wine / Wine Staging for cases where Proton isn't supported.