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

steam: fix paradox launchers, and electron apps #106409

Merged
merged 3 commits into from Dec 9, 2020

Conversation

jonringer
Copy link
Contributor

@jonringer jonringer commented Dec 9, 2020

Motivation for this change

Got tired of the paradox launcher failing to start correctly, preventing me from playing CK III whenever I want.

expanded the options passed to buildFHSUserEnvBubblewrap to allow for unsharing certain pieces, the defaults reflect the previous code. But allows for ipc to be passed through which allows for certain applications to render better.

cc @mweinelt

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.
https://github.com/NixOS/nixpkgs/pull/106409
37 packages built:
Sylk android-studio androidStudioPackages.beta androidStudioPackages.canary androidStudioPackages.dev deltachat-electron devdocs-desktop electronplayer irccloud joplin-desktop keeweb kodiPlugins.steam-launcher ledger-live-desktop lunar-client lutris lutris-free marktext minetime molotov mycrypto notable nuclear p3x-onenote plexamp runwayml ssb-patchwork standardnotes station steam steam-run steam-run-native steamcmd timeular tusk unityhub wootility zettlr

@mweinelt
Copy link
Member

mweinelt commented Dec 9, 2020

I haven't been playing Stellaris in a while, but that indeed does fix the launcher. However Among Us (using Proton 4.11) isn't happy:

Failed to initialize graphics.
Make sure you have DirectX 11 installed, have up to date
drivers for your graphics card and have not disabled
3D acceleration in display settings.
InitializeEngineGraphics failed
GameAction [AppID 945360, ActionID 1] : LaunchApp changed task to SiteLicenseSeatCheckout with ""
GameAction [AppID 945360, ActionID 1] : LaunchApp changed task to CreatingProcess with ""
GameAction [AppID 945360, ActionID 1] : LaunchApp waiting for user response to CreatingProcess ""
GameAction [AppID 945360, ActionID 1] : LaunchApp continues with user response "CreatingProcess"
Opted-in Controller Mask for AppId 945360: 0
Game update: AppID 945360 "", ProcID 575, IP 0.0.0.0:0
Starting app 945360
>>> Adding process 575 for game ID 945360
GameAction [AppID 945360, ActionID 1] : LaunchApp changed task to WaitingGameWindow with ""
GameAction [AppID 945360, ActionID 1] : LaunchApp changed task to Completed with ""
ERROR: ld.so: object '/home/hexa/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/hexa/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
>>> Adding process 576 for game ID 945360
ERROR: ld.so: object '/home/hexa/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/hexa/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
>>> Adding process 577 for game ID 945360
ERROR: ld.so: object '/home/hexa/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/hexa/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
>>> Adding process 582 for game ID 945360
ERROR: ld.so: object '/home/hexa/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
esync: up and running.
ERROR: ld.so: object '/home/hexa/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
>>> Adding process 584 for game ID 945360
>>> Adding process 587 for game ID 945360
ERROR: ld.so: object '/home/hexa/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
>>> Adding process 589 for game ID 945360
ERROR: ld.so: object '/home/hexa/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
>>> Adding process 592 for game ID 945360
ERROR: ld.so: object '/home/hexa/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
>>> Adding process 599 for game ID 945360
ERROR: ld.so: object '/home/hexa/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
>>> Adding process 615 for game ID 945360
Game update: AppID 945360 "", ProcID 582, IP 0.0.0.0:0
RecordSteamInterfaceCreation (PID 582): SteamUtils009 / Utils
Setting breakpad minidump AppID = 945360
RecordSteamInterfaceCreation (PID 582): SteamUser019 / User
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561197960527101 [API loaded no]
RecordSteamInterfaceCreation (PID 582): SteamUser019 / User
RecordSteamInterfaceCreation (PID 582): SteamFriends015 / Friends
RecordSteamInterfaceCreation (PID 582): SteamUtils009 / Utils
RecordSteamInterfaceCreation (PID 582): SteamMatchMaking009 / Matchmaking
RecordSteamInterfaceCreation (PID 582): SteamMatchMakingServers002 / MatchmakingServers
RecordSteamInterfaceCreation (PID 582): STEAMUSERSTATS_INTERFACE_VERSION011 / UserStats
RecordSteamInterfaceCreation (PID 582): STEAMAPPS_INTERFACE_VERSION008 / Apps
RecordSteamInterfaceCreation (PID 582): SteamNetworking005 / Networking
RecordSteamInterfaceCreation (PID 582): STEAMREMOTESTORAGE_INTERFACE_VERSION014 / RemoteStorage
RecordSteamInterfaceCreation (PID 582): STEAMSCREENSHOTS_INTERFACE_VERSION003 / Screenshots
RecordSteamInterfaceCreation (PID 582): STEAMHTTP_INTERFACE_VERSION002 / HTTP
RecordSteamInterfaceCreation (PID 582): SteamController006 / Controller
RecordSteamInterfaceCreation (PID 582): STEAMUGC_INTERFACE_VERSION010 / UGC
RecordSteamInterfaceCreation (PID 582): STEAMAPPLIST_INTERFACE_VERSION001 / AppList
RecordSteamInterfaceCreation (PID 582): STEAMMUSIC_INTERFACE_VERSION001 / Music
RecordSteamInterfaceCreation (PID 582): STEAMMUSICREMOTE_INTERFACE_VERSION001 / MusicRemote
RecordSteamInterfaceCreation (PID 582): STEAMHTMLSURFACE_INTERFACE_VERSION_004 / HTMLSurface
RecordSteamInterfaceCreation (PID 582): STEAMINVENTORY_INTERFACE_V002 / Inventory
RecordSteamInterfaceCreation (PID 582): STEAMVIDEO_INTERFACE_V002 / Video
RecordSteamInterfaceCreation (PID 582): STEAMPARENTALSETTINGS_INTERFACE_VERSION001 / ParentalSettings
ERROR: ld.so: object '/home/hexa/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
>>> Adding process 631 for game ID 945360
ERROR: ld.so: object '/home/hexa/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
>>> Adding process 635 for game ID 945360
Installing breakpad exception handler for appid(steam)/version(1607372145)
Installing breakpad exception handler for appid(steam)/version(1607372145)
Installing breakpad exception handler for appid(steam)/version(1607372145)

@SuperSandro2000
Copy link
Member

Result of nixpkgs-review pr 106409 run on x86_64-linux 1

37 packages built:
  • Sylk
  • android-studio
  • androidStudioPackages.beta
  • androidStudioPackages.canary
  • androidStudioPackages.dev
  • deltachat-electron
  • devdocs-desktop
  • electronplayer
  • irccloud
  • joplin-desktop
  • keeweb
  • kodiPlugins.steam-launcher
  • ledger-live-desktop
  • lunar-client
  • lutris
  • lutris-free
  • marktext
  • minetime
  • molotov
  • mycrypto
  • notable
  • nuclear
  • p3x-onenote
  • plexamp
  • runwayml
  • ssb-patchwork
  • standardnotes
  • station
  • steam
  • steam-run
  • steam-run-native
  • steamcmd
  • timeular
  • tusk
  • unityhub
  • wootility
  • zettlr

@jonringer
Copy link
Contributor Author

@mweinelt I get those warnings all the time, does it actually prevent a launch?

@jonringer
Copy link
Contributor Author

@mweinelt I'm not able to start it with the steam from master either

@mweinelt
Copy link
Member

mweinelt commented Dec 9, 2020

Very odd, I played a few hours ago. But it doesn't work for me with steam from master anymore either. Guess I'll drop my steam state.

@mweinelt
Copy link
Member

mweinelt commented Dec 9, 2020

Nope, no dice. I wonder what happened.

@jonringer
Copy link
Contributor Author

I also updated the steam runtime... earlier

Copy link
Member

@Atemu Atemu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't own or play games affected by this change, but the diff looks good.

The only way to find out whether this breaks things or not is to have it on people's machines.

@jonringer
Copy link
Contributor Author

I don't own or play games affected by this change, but the diff looks good.

The only way to find out whether this breaks things or not is to have it on people's machines.

Yea, not sure who else besides @mweinelt plays on steam.

@1000101
Copy link
Member

1000101 commented Dec 9, 2020

I don't own or play games affected by this change, but the diff looks good.
The only way to find out whether this breaks things or not is to have it on people's machines.

Yea, not sure who else besides @mweinelt plays on steam.

I do. Something broke quite awfully after steam got automagically updated and I haven't been able to play most of my games since yesterday but I'm not sure if this is related. Every game throws a different set of errors such as Failed to create SDL window: Couldn't find matching GLX visual

Steam itself runs fine but throws:

STEAM_RUNTIME has been set by the user to: /steamrt
Can't find 'steam-runtime-check-requirements', continuing anyway

@mweinelt
Copy link
Member

mweinelt commented Dec 9, 2020

Great, so you are the third data point pointing to yesterdays runtime upgrade. Glad that we are in agreement about the culprit.

@1000101
Copy link
Member

1000101 commented Dec 9, 2020

Great, so you are the third data point pointing to yesterdays runtime upgrade. Glad that we are in agreement about the culprit.

I was so desperate I even opened a support ticket with them yesterday, but they haven't got back to me yet 😄.

@jonringer
Copy link
Contributor Author

are you launching the games through proton, or are you doing linux native?

@mweinelt
Copy link
Member

mweinelt commented Dec 9, 2020

Among us is a PE32 executable, so through proton.

@jonringer
Copy link
Contributor Author

@1000101 what games are you trying to launch?

@jonringer
Copy link
Contributor Author

anyway, is anyone against merging this?

@mweinelt mweinelt merged commit 6a4be92 into NixOS:master Dec 9, 2020
@jonringer jonringer deleted the fix-steam branch December 9, 2020 16:14
@1000101
Copy link
Member

1000101 commented Dec 9, 2020

are you launching the games through proton, or are you doing linux native?

Only Linux native. I've been fiddling with Proton 5.13-2 (which got updated to 5.13-3 yesterday along with everything else) but it didn't work for me so far.

Doesn't work (Linux native): Sid Meier's Civilization V, Day of Defeat: Source (Source engine), Left 4 Dead 2 (Source engine)

There are few minimalistic games which do work though.

@baracoder
Copy link
Contributor

I do. Something broke quite awfully after steam got automagically updated and I haven't been able to play most of my games since yesterday but I'm not sure if this is related. Every game throws a different set of errors such as Failed to create SDL window: Couldn't find matching GLX visual

I am also had this SDL error on Sunday with Left 4 Dead 2. At least CSGO still works.

As for Proton >= 5.13, from what I understand, it is an internal change on how sandboxing is done, which does not play well with nixpkgs' version of steam runtime, see #100655

I will try steam from master later and report.

@mweinelt
Copy link
Member

mweinelt commented Dec 9, 2020

I was using proton 4.11-13, and that broke too.

@1000101
Copy link
Member

1000101 commented Dec 9, 2020

Hmmm, it still doesn't work for me. I also did steam --reset to no avail. All the games mentioned above throw: ~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored but https://wiki.archlinux.org/index.php/Steam/Troubleshooting suggests this can be safely ignored.

@jonringer
Copy link
Contributor Author

@1000101 Civ 5 looks related to https://bbs.archlinux.org/viewtopic.php?id=182875

$ ./result/bin/steam-run ~/.steam/steam/steamapps/common/Sid\ Meier\'s\ Civilization\ V/Civ5XP
/home/jon//.steam/steam/steamapps/common/Sid Meier's Civilization V/Civ5XP: error while loading shared libraries: libMiles.so: cannot open shared object file: No such file or directory

then I get a few more issues, in that ~/.local/share/Steam/ubuntu_32/ isnt' on LD_LIBRARY_PATH, so those are being ignored, and a few other issues.

@mweinelt
Copy link
Member

Downgraded Proton to 4.2-9 and now Among Us works again. Still, odd that newer version of Proton don't work at all. They can't find a symbol in glib. Will post a log shortly.

@Atemu
Copy link
Member

Atemu commented Dec 10, 2020

We should probably move this conversation to a new issue though as this is caused by the SteamRT upgrade, not this PR, right?

@1000101
Copy link
Member

1000101 commented Dec 10, 2020

We should probably move this conversation to a new issue though as this is caused by the SteamRT upgrade, not this PR, right?

Yeap, if there's not an issue open already.

@1000101
Copy link
Member

1000101 commented Dec 10, 2020

I do. Something broke quite awfully after steam got automagically updated and I haven't been able to play most of my games since yesterday but I'm not sure if this is related. Every game throws a different set of errors such as Failed to create SDL window: Couldn't find matching GLX visual

I am also had this SDL error on Sunday with Left 4 Dead 2. At least CSGO still works.

As for Proton >= 5.13, from what I understand, it is an internal change on how sandboxing is done, which does not play well with nixpkgs' version of steam runtime, see #100655

I will try steam from master later and report.

@baracoder If it helps, I was able to get Left 4 Dead 2 working on Proton 5.0-10

@jbalme
Copy link
Contributor

jbalme commented Dec 11, 2020

For people on 20.09 that want Stellaris to work while whatever problems are ironed out (not sure about CK) here's some sed magic.

  1. Right click -> Properties -> (General) -> Set Launch Options
  2. Put in echo "%command%" | sed 's/dowser/stellaris/' | sh
  3. The game should just start, bypassing the launcher entirely.

@nyanloutre
Copy link
Member

I also have a lot of issues with Proton (5.0-10) games lately (with nixos-unstable on commit e9158ec)

It began yesterday but I was not playing games for a few days.

I have either this (Among US, Pummel party), or the game doesn't launch at all (Assassin's Creed Origins)
image

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/trouble-starting-game-through-steam/4167/17

@1000101
Copy link
Member

1000101 commented Dec 19, 2020

Are we tracking this issue somewhere else? It still doesn't work for majority of the games so I was wondering if I may somehow help in resolving this one. Running through different Proton versions is sub-optimal and introduces bunch of other problems.

Ah I guess this is the right place: #106503

@mweinelt
Copy link
Member

Pretty sure #100655 tracks the issues with more recent Proton versions.

@1000101
Copy link
Member

1000101 commented Dec 20, 2020

@1000101 Civ 5 looks related to https://bbs.archlinux.org/viewtopic.php?id=182875

$ ./result/bin/steam-run ~/.steam/steam/steamapps/common/Sid\ Meier\'s\ Civilization\ V/Civ5XP
/home/jon//.steam/steam/steamapps/common/Sid Meier's Civilization V/Civ5XP: error while loading shared libraries: libMiles.so: cannot open shared object file: No such file or directory

then I get a few more issues, in that ~/.local/share/Steam/ubuntu_32/ isnt' on LD_LIBRARY_PATH, so those are being ignored, and a few other issues.

Thanks, it seems to be resolved with #107252 so hopefully there's no need for extra fixing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants