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

No games can run with Proton 5.13 or higher #642

Closed
tim77 opened this issue Oct 15, 2020 · 84 comments · Fixed by #814
Closed

No games can run with Proton 5.13 or higher #642

tim77 opened this issue Oct 15, 2020 · 84 comments · Fixed by #814

Comments

@tim77
Copy link

tim77 commented Oct 15, 2020

TLDR: you need new flatpak 1.12.1+ version to run official Proton. Or as workaround install community build of Proton which doesn't use pressure vessel https://github.com/flathub/com.valvesoftware.Steam.CompatibilityTool.Proton#installation.

Game information

  • Borderlands 3
  • Skyrim SE

Distribution name and version where applicable
Fedora release 32 (Thirty Two)

Flatpak info
Flatpak 1.8.2
nvidia-455-28
default
host

Problem description
After Proton 5.13 update in Steam games won't work with this new Proton version.

Terminal output log: steam-proton5.13.log

Does this issue reproduce with native Steam
Have not tested

@lionirdeadman
Copy link
Contributor

This is because of pressure-vessel not working in Flatpak. Related : flatpak/flatpak#3797

@gasinvein
Copy link
Member

pressure-vessel-wrap[330]: Cannot run flatpak-spawn: wait status 256
pressure-vessel-wrap[330]: Diagnostic output:
Portal call failed: org.freedesktop.DBus.Error.ServiceUnknown

Hm, what it's trying to call? org.freedesktop.Flatpak (for flatpak-spawn --host) probably?
@tim77 Please re-run with --log-session-bus to check this out.

@tim77
Copy link
Author

tim77 commented Oct 15, 2020

With --log-session-bus: steam-proton5.13-2.log

@gasinvein
Copy link
Member

Yep, it's trying to run something on host:

C25: -> org.freedesktop.Flatpak call org.freedesktop.Flatpak.Development.HostCommand at /org/freedesktop/Flatpak/Development
*HIDDEN* (ping)

Adding --talk-name=org.freedesktop.Flatpak would allow pressure-vessel to do whatever it's trying to do.

@tim77
Copy link
Author

tim77 commented Oct 15, 2020

Tried to add --talk-name=org.freedesktop.Flatpak and run with it, but still.
Log with --log-session-bus: steam-proton5.13-3.log

@gasinvein
Copy link
Member

x86_64-linux-gnu-capsule-capture-libs: code 2: open "/run/host/etc/ld.so.cache": No such file or directory
pressure-vessel-wrap[339]: Child process exited with code 1

Now it's trying to access host's ld.so.cache from inside the sanbox, could be allowed with --fileystsem=host-os.

@tim77
Copy link
Author

tim77 commented Oct 15, 2020

Now with --filesystem=host-os 🙂: steam-proton5.13-4.log

@Fatmice
Copy link

Fatmice commented Oct 16, 2020

Errors and crash while launching Deep Rock Galactic with Proton 5.13-2
https://gist.github.com/Fatmice/b0b4e994ec91ec0e482153d221ce2aa8

Same game with 5.0.9
https://gist.github.com/Fatmice/a62e49e4ba1e9316d10e7b8dfa9daf26

@fastoslinux
Copy link

5.13 doesn't work with any game here

@nanonyme
Copy link
Collaborator

No need for individual reports. It's quite clear pressure-vessel doesn't work with this flatpak.

@Saroufim
Copy link

So what's the recommended solution for this? Should we just sit still and wait for a fix or is there something that we have to manually do to circumvent the issue?

@gasinvein
Copy link
Member

gasinvein commented Oct 16, 2020

@Saroufim There is none yet. You can try disabling pressure-vessel by replacing toolmanifest.vdf file contents in Proton directory with this one, but be warned that it may not work as intended due to ABI incompatibility. And also it'll be overwritten on update.

@nanonyme
Copy link
Collaborator

@smcv may be more of an expert on this. I don't really have any good answers.

@gasinvein
Copy link
Member

BTW you can try my proton flatpak build https://github.com/gasinvein/proton-flatpak. It's built on on top of FD.o SDK from source, so doesn't need Steam Runtime at all. Some minor features are still missing (e.g. bundled fonts), but it should work in most cases.

@tim77
Copy link
Author

tim77 commented Oct 16, 2020

gasinvein/proton-flatpak works great for me and i've tried even previous versions before. I'll going to do some benchmarks and want to compare this new 5.13 flatpak build vs official Steam Proton. 5.0-9 had equal performance in my tests.

IMHO this native flatpak proton build is awesome and would be great if this treasure available for everyone on Flathub. I would say an urgent need to push it on Flathub now since now nothing works with Valve's Proton 5.13 with Steam flatpak build.

Also in terms of disk space:

  • native flatpak build: 837 MB
  • official Proton 5.13 (+soldier runtime): 2.72 GB

@smcv
Copy link
Contributor

smcv commented Oct 16, 2020

I don't really have any good answers.

At the moment there are no good answers: making complex things work together takes time. It's in progress. Proton 5.0 is still available and still works the way it always did.

Proton 5.13 is the first version to run Proton in a container with a different runtime environment, instead of as a child process of Steam. The code required to make this work is fairly elaborate, and is not currently compatible with Flatpak: the pressure-vessel runtime tool should eventually work with the Steam Flatpak app, but at the moment it can't. Solving this needs new code in both Flatpak and pressure-vessel (flatpak/flatpak#3797 is the Flatpak side). This is exactly the same problem as not being able to run native Linux games under the "Steam Linux Runtime" compatibility tool from inside the Flatpak app (it's the same container launcher being used), except that the arrangements for Proton add an extra layer of complication, because native Linux games don't run arbitrary setup commands before running the actual game but Proton games do.

The container setup used for Proton 5.13 has other limitations that we hope will be solved in future, even without Flatpak being in the picture: controller hotplug doesn't work, primusrun almost certainly doesn't work (I haven't actually tried but I'm fairly sure it won't), it currently requires a valid XDG_RUNTIME_DIR (any systemd system has one but sysvinit systems maybe don't), and I'm sure there are others.

So what's the recommended solution for this? Should we just sit still and wait for a fix

Yes, please be patient. The solution for this will not be in this app, it will be in Flatpak and in pressure-vessel. Please don't ask for progress reports, that will only make it take longer.

Yep, it's trying to run something on host

What you're seeing here is an early prototype of making pressure-vessel work from inside Flatpak. We don't really expect people to give it full host access, and in future it shouldn't need to break down the security boundary between container and host like this, but we have to teach it to walk before we can make it run.

If you are not comfortable with letting Steam execute arbitrary code on the host, don't configure it with --talk-name=org.freedesktop.Flatpak: it's a full sandbox bypass.

For people who don't care whether there is a sandbox bypass going on, I think there are some environment variables we can set to tell pressure-vessel to put its sockets in a directory that is shared by the host and the Flatpak sandbox, which might make this work. I'll check what they are when I'm back at work next week. However, launching pressure-vessel from Flatpak is completely unsupported - what you're seeing there is early development code that we don't really expect to work.

Letting Steam see the host graphics stack in /usr (--filesystem=host-os) probably will be necessary as part of a solution to this: that's a large part of why I added that feature to Flatpak.

@eszlari
Copy link
Contributor

eszlari commented Oct 17, 2020

If this feature is not ready yet, why not make it opt-in?

@TheGreatestJannet
Copy link

What access does --filesystem=host-os grant? Is it access to all files on the system?

@nanonyme
Copy link
Collaborator

Make sure to at maximum give host-os:ro. It is not a good idea to give unlimited write access to things.

@TheGreatestJannet
Copy link

Thanks I was more wondering what it allowed the application to see if I enable that. Is it just system directories such as /usr /etc or is it everything?

@smcv
Copy link
Contributor

smcv commented Oct 17, 2020

If this feature is not ready yet, why not make it opt-in?

Sorry, how Valve deploy Proton 5.13 is not my decision.

Proton 5.13 was compiled with a newer library stack than the standard Steam Runtime 1 'scout' (which is mostly from 2012 and is really showing its age), so it needs to be run using a newer runtime. The newer Steam Runtime 2 'soldier' is only available as a container, partly because otherwise it would not be possible to run it on systems with older glibc, and partly because continuing to patch random libraries to look at $STEAM_RUNTIME is not sustainable.

If people want to do unofficial builds like https://github.com/gasinvein/proton-flatpak against the freedesktop.org SDK instead of against soldier, you're welcome to do so, but Valve are not going to support the result. The only runtime environments they intend to support are scout and soldier (and to some extent also Steam Runtime 1½ 'heavy', which was a stopgap for Steam's embedded web browser, but heavy is not a full runtime environment and honestly I'm surprised it works as well as it does).

@smcv
Copy link
Contributor

smcv commented Oct 17, 2020

What access does --filesystem=host-os grant?

host-os shares static files that come from your operating system: /usr, /lib*, /bin, /sbin and a few files in /etc (/etc/ld.so.cache, /etc/alternatives for OSs like Debian that use it, and maybe a few more in future as needed to support more exotic OS filesystem layouts like Exherbo).

Make sure to at maximum give host-os:ro

In principle, yes, this is good advice. In practice there's usually no difference, because none of the files selected by host-os should be writeable by anyone other than root anyway.

@smcv
Copy link
Contributor

smcv commented Oct 19, 2020

For people who don't care whether there is a sandbox bypass going on, I think there are some environment variables we can set to tell pressure-vessel to put its sockets in a directory that is shared by the host and the Flatpak sandbox, which might make this work.

For people who don't care about the sandbox security boundary and want to experiment with this, you can try this procedure:

  • You will need Flatpak 1.8, a recent Steam Flatpak app (on the 20.08 runtime), the Steam client beta, Proton 5.13, and a Windows-only game. I used Soldat (game ID 638490) which is free-to-play and conveniently small.
  • Create a directory owned by your uid on the host system, to hold rendezvous sockets and lock files
    • its name must be quite short due to kernel limits: creating a directory with mkdir "$XDG_RUNTIME_DIR/pv" or mktemp -d should be OK, creating a directory in ~/misc/other/games/Steam/workarounds/proton probably won't work
    • I don't think you can cheat the length limit with symbolic links either - the realpath of the directory probably needs to be short enough
  • Set the environment variable PRESSURE_VESSEL_SOCKET_DIR to the absolute path to that directory
  • Run the Steam Flatpak app with flatpak run --filesystem="$PRESSURE_VESSEL_SOCKET_DIR", as well as having that environment variable set
  • You will also need --filesystem=host-os:ro as noted above, so that pressure-vessel can borrow graphics drivers from the host
  • You will also need to give flatpak-spawn arbitrary code execution on the host, which is a complete sandbox bypass (it completely destroys the security boundary between host and Steam). I'm deliberately not repeating how to do this: if it isn't obvious how, then these instructions are not for you.
  • For some Steam features you will likely also need --filesystem=/tmp (which is also a security risk, but compared with arbitrary code execution on the host it's relatively minor).

As I said above, this is very early development code. It currently requires opening big enough holes in the security boundary to drive a tank through, and it's completely unsupported.

The plan is that new code in both pressure-vessel and Flatpak will make all those workarounds and security holes unnecessary, by making everything work automatically - but that hasn't been implemented yet. It's in the queue...

@nanonyme
Copy link
Collaborator

Thanks, that's in the ballpark of an explanation I was hoping to see by pinging you. :)

@tim77
Copy link
Author

tim77 commented Oct 26, 2020

Latest Proton 5.13 community build packaged and available on Flathub now. 🎉 You can install it via GNOME Software/Discover (KDE) or via CLI:

flatpak install com.valvesoftware.Steam.CompatibilityTool.Proton

and select Proton community build in Steam:
image

Thanks @gasinvein and flathub community for their work. ❤️

@TheGreatestJannet
Copy link

Thank you! I assume this doesn’t use pressure-vessel right?

@gasinvein
Copy link
Member

@TheGreatestJannet Yes, it's built against freedesktop-sdk instead of steam runtime.

@TLATER
Copy link

TLATER commented Oct 9, 2021

Personally, I find flatpak nicer to use for proton purposes because of the separately packaged protons. Means I don't have to manually chase updates for third party versions or wait for steam to download them outside my regular update schedule. The packaged proton versions, especially the gloriouseggroll one, are well worth mentioning externally, even if they aren't required anymore.

@nanonyme
Copy link
Collaborator

nanonyme commented Oct 9, 2021

Sure, why not. This issue anyway is more about making the official Proton runtime work since that gets picked up automatically.

@gasinvein
Copy link
Member

While resolved, I think this issue should stay pinned for visibility. Maybe even edit @tim77's original post again to indicate the resolution (i.e. you need flatpak 1.12+ to run Proton).

@minikN
Copy link

minikN commented Oct 9, 2021

Hello,

Unfortunately, I still can't get this to work. I'm on Guix using flatpak version 1.12.0 and Wayland. I can start steam just fine, when trying to launch a game with proton this happens:

With proton version 6.3-7:

GameAction [AppID 312060, ActionID 1] : LaunchApp changed task to ProcessingInstallScript with ""
GameAction [AppID 312060, ActionID 1] : LaunchApp changed task to SiteLicenseSeatCheckout with ""
GameAction [AppID 312060, ActionID 1] : LaunchApp changed task to CreatingProcess with ""
GameAction [AppID 312060, ActionID 1] : LaunchApp waiting for user response to CreatingProcess ""
GameAction [AppID 312060, ActionID 1] : LaunchApp continues with user response "CreatingProcess"
Opted-in Controller Mask for AppId 312060: 0
/bin/sh\0-c\0/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=312060 -- '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/Proton 6.3'/proton waitforexitandrun  '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/FINAL FANTASY XIV Online/boot/ffxivboot.exe' -issteamfreetrial\0
Game process added : AppID 312060 "/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=312060 -- '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/Proton 6.3'/proton waitforexitandrun  '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/FINAL FANTASY XIV Online/boot/ffxivboot.exe' -issteamfreetrial", ProcID 1642, IP 0.0.0.0:0
ERROR: ld.so: object '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
GameAction [AppID 312060, ActionID 1] : LaunchApp changed task to WaitingGameWindow with ""
ERROR: ld.so: object '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
GameAction [AppID 312060, ActionID 1] : LaunchApp changed task to Completed with ""
ERROR: ld.so: object '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
pid 1646 != 1643, skipping destruction (fork without exec?)
pressure-vessel-wrap[1643]: W: Using experimental Flatpak sub-sandboxing (requires Flatpak 1.11.x commit 1.10.1-80-gcb47d83b or later)
--app-path not supported by host portal version (need version 6, has 0)
Game process removed: AppID 312060 "/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=312060 -- '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/Proton 6.3'/proton waitforexitandrun  '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/FINAL FANTASY XIV Online/boot/ffxivboot.exe' -issteamfreetrial", ProcID 1642
Uploaded AppInterfaceStats to Steam
No cached sticky mapping in ActivateActionSet.

With Proton version 6.3-7 (community build 1633097750)

GameAction [AppID 312060, ActionID 4] : LaunchApp changed task to ProcessingInstallScript with ""
GameAction [AppID 312060, ActionID 4] : LaunchApp changed task to SiteLicenseSeatCheckout with ""
GameAction [AppID 312060, ActionID 4] : LaunchApp changed task to CreatingProcess with ""
GameAction [AppID 312060, ActionID 4] : LaunchApp waiting for user response to CreatingProcess ""
GameAction [AppID 312060, ActionID 4] : LaunchApp continues with user response "CreatingProcess"
Opted-in Controller Mask for AppId 312060: 0
/bin/sh\0-c\0/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=312060 -- '/app/share/steam/compatibilitytools.d/Proton'/proton waitforexitandrun  '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/FINAL FANTASY XIV Online/boot/ffxivboot.exe' -issteamfreetrial\0
Game process added : AppID 312060 "/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=312060 -- '/app/share/steam/compatibilitytools.d/Proton'/proton waitforexitandrun  '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/FINAL FANTASY XIV Online/boot/ffxivboot.exe' -issteamfreetrial", ProcID 1915, IP 0.0.0.0:0
ERROR: ld.so: object '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
GameAction [AppID 312060, ActionID 4] : LaunchApp changed task to WaitingGameWindow with ""
GameAction [AppID 312060, ActionID 4] : LaunchApp changed task to Completed with ""
ERROR: ld.so: object '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Proton: Upgrading prefix from 5.0-1 to 6.3-3 (/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/compatdata/312060/)
Proton: Removing ShellExecute DDE registry entries.
Traceback (most recent call last):
  File "/app/share/steam/compatibilitytools.d/Proton/proton", line 1218, in <module>
    g_session.init_session(sys.argv[1] != "runinprefix")
  File "/app/share/steam/compatibilitytools.d/Proton/proton", line 1038, in init_session
    g_compatdata.setup_prefix()
  File "/app/share/steam/compatibilitytools.d/Proton/proton", line 676, in setup_prefix
    self.update_builtin_libs(builtin_dll_copy)
  File "/app/share/steam/compatibilitytools.d/Proton/proton", line 502, in update_builtin_libs
    with open(self.tracked_files_file, "r") as tracked_files:
FileNotFoundError: [Errno 2] No such file or directory: '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/compatdata/312060/tracked_files'
Game process removed: AppID 312060 "/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=312060 -- '/app/share/steam/compatibilitytools.d/Proton'/proton waitforexitandrun  '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/FINAL FANTASY XIV Online/boot/ffxivboot.exe' -issteamfreetrial", ProcID 1915
Uploaded AppInterfaceStats to Steam
No cached sticky mapping in ActivateActionSet.

xdg-desktop-portal version: 1.8.1
xdg-desktop-portal-gtk version: 1.7.1
xdg-desktop-portal-wlr version: 0.4.0

I'd appreciate any help. Thanks.

@gasinvein
Copy link
Member

@minikN Did you just update flatpak? If so, reboot or manually restart flatpak-portal.

@tim77
Copy link
Author

tim77 commented Oct 9, 2021

Flatpak 1.12.1 update broke Steam entirely for me. 1.11.3 version worked fine. Fedora 35. When starting Steam:

error: Failed to block syscall 442

EDIT: with 1.12.0 Steam doesn't work. 1.12.1 is a minimal version which required.

@minikN
Copy link

minikN commented Oct 9, 2021

@minikN Did you just update flatpak? If so, reboot or manually restart flatpak-portal.

Guess I'm misunderstanding something in generel (sorry I'm new to flatpak), because I don't have an flatpak-portal executable.

@gasinvein
Copy link
Member

@minikN Did you just update flatpak? If so, reboot or manually restart flatpak-portal.

Guess I'm misunderstanding something in generel (sorry I'm new to flatpak), because I don't have an flatpak-portal executable.

It's usually installed in /usr/libexec/flatpak-portal, but I guess on Guix the path would be different. You can terminate the process manually (it's started by dbus on demand), restart flatpak-portal.service systemd unit, or just reboot.

@gasinvein
Copy link
Member

gasinvein commented Oct 9, 2021

Flatpak 1.12.1 update broke Steam entirely for me. 1.11.3 version worked fine. Fedora 35. When starting Steam:

error: Failed to block syscall 442

EDIT: with 1.12.0 Steam doesn't work. 1.12.1 is a minimal version which required.

1.12.0 was broken in general, it's not specific to Steam.

@minikN
Copy link

minikN commented Oct 9, 2021

@minikN Did you just update flatpak? If so, reboot or manually restart flatpak-portal.

Guess I'm misunderstanding something in generel (sorry I'm new to flatpak), because I don't have an flatpak-portal executable.

It's usually installed in /usr/libexec/flatpak-portal, but I guess on Guix the path would be different. You can terminate the process manually (it's started by dbus on demand), restart flatpak-portal.service systemd unit, or just reboot.

Reboot didn't help unfortunately.

Is this relevant?
--app-path not supported by host portal version (need version 6, has 0)

@gasinvein
Copy link
Member

Reboot didn't help unfortunately.

Is this relevant? --app-path not supported by host portal version (need version 6, has 0)

Yes, it is. It's exactly why I suspected that the old flatpak-portal is still running.

@minikN
Copy link

minikN commented Oct 9, 2021

Reboot didn't help unfortunately.
Is this relevant? --app-path not supported by host portal version (need version 6, has 0)

Yes, it is. It's exactly why I suspected that the old flatpak-portal is still running.

No idea if I have it set up already. I'm not able to find any information specific to Guix apart from just installing the packages.

The only processes that seem to be related are

db        1435  0.0  0.0   2468   252 pts/0    S+   13:21   0:00 /gnu/store/x2zpw6hfqqcfd0d5q9c2iza1x7sqp3zh-bubblewrap-0.4.1/bin/bwrap --args 34 /gnu/store/a4qx1g7qm43lh1i83k9j5qs5fcw9sii5-xdg-dbus-proxy-0.1.2/bin/xdg-dbus-proxy --args=36
db        1436  0.0  0.0 155488  5420 pts/0    Sl+  13:21   0:00 /gnu/store/a4qx1g7qm43lh1i83k9j5qs5fcw9sii5-xdg-dbus-proxy-0.1.2/bin/xdg-dbus-proxy --args=36
db       14251  0.0  0.0   3852  1708 pts/1    S+   13:49   0:00 grep xdg

@gasinvein
Copy link
Member

gasinvein commented Oct 9, 2021

The only processes that seem to be related are

db        1435  0.0  0.0   2468   252 pts/0    S+   13:21   0:00 /gnu/store/x2zpw6hfqqcfd0d5q9c2iza1x7sqp3zh-bubblewrap-0.4.1/bin/bwrap --args 34 /gnu/store/a4qx1g7qm43lh1i83k9j5qs5fcw9sii5-xdg-dbus-proxy-0.1.2/bin/xdg-dbus-proxy --args=36
db        1436  0.0  0.0 155488  5420 pts/0    Sl+  13:21   0:00 /gnu/store/a4qx1g7qm43lh1i83k9j5qs5fcw9sii5-xdg-dbus-proxy-0.1.2/bin/xdg-dbus-proxy --args=36
db       14251  0.0  0.0   3852  1708 pts/1    S+   13:49   0:00 grep xdg

Don't confuse flatpak-portal with xdg-desktop-portal, those are different processes. The one in question is the former.

@minikN
Copy link

minikN commented Oct 9, 2021

@gasinvein So after some digging around I found the flatpak-portal executable. It conains

#!/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/bash
export XDG_DATA_DIRS="/gnu/store/py9ak4g4cvikpcblj2ksw8l9agsjpn1m-shared-mime-info-1.15/share:/gnu/store/3374zddwfb0m8711k2jrvhwr1s2fkvq3-glib-2.62.6/share:/gnu/store/kksi41cjrrabsxsmpk8asj5grinlnd23-gsettings-desktop-schemas-3.34.0/share${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS"
export GIO_EXTRA_MODULES="/gnu/store/yi78ngl21120hzm9vivdj0mmx57sxr02-glib-networking-2.62.2/lib/gio/modules:/gnu/store/w6cb40sia4cfb9glmilcqpig8qysik5y-dconf-0.36.0/lib/gio/modules${GIO_EXTRA_MODULES:+:}$GIO_EXTRA_MODULES"
exec -a "$0" "/gnu/store/gffkm7yimvkdn4spzw0lgrz62l15nzv6-flatpak-1.12.1/libexec/.flatpak-portal-real" "$@"

So i started it manually via ./flatpak-portal & and then started Steam. When using Proton 6.3-7 the error changed now:

Installing breakpad exception handler for appid(steam)/version(1633666232)
[39210]Non-Steam Controller Configs Enabled: 1
GameAction [AppID 312060, ActionID 1] : LaunchApp changed task to ProcessingInstallScript with ""
GameAction [AppID 312060, ActionID 1] : LaunchApp changed task to SiteLicenseSeatCheckout with ""
GameAction [AppID 312060, ActionID 1] : LaunchApp changed task to CreatingProcess with ""
GameAction [AppID 312060, ActionID 1] : LaunchApp waiting for user response to CreatingProcess ""
GameAction [AppID 312060, ActionID 1] : LaunchApp continues with user response "CreatingProcess"
Opted-in Controller Mask for AppId 312060: 0
/bin/sh\0-c\0/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=312060 -- '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/Proton 6.3'/proton waitforexitandrun  '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/FINAL FANTASY XIV Online/boot/ffxivboot.exe' -issteamfreetrial\0
Game process added : AppID 312060 "/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=312060 -- '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/Proton 6.3'/proton waitforexitandrun  '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/FINAL FANTASY XIV Online/boot/ffxivboot.exe' -issteamfreetrial", ProcID 924, IP 0.0.0.0:0
ERROR: ld.so: object '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
GameAction [AppID 312060, ActionID 1] : LaunchApp changed task to WaitingGameWindow with ""
ERROR: ld.so: object '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
GameAction [AppID 312060, ActionID 1] : LaunchApp changed task to Completed with ""
pid 929 != 925, skipping destruction (fork without exec?)
pressure-vessel-wrap[925]: W: Using experimental Flatpak sub-sandboxing (requires Flatpak 1.11.x commit 1.10.1-80-gcb47d83b or later)
CAPIJobRequestUserStats - Server response failed 2

Note that the directories

'/var/lib/flatpak/exports/share'
'/home/db/.local/share/flatpak/exports/share'

are not in the search path set by the XDG_DATA_DIRS environment variable, so
applications installed by Flatpak may not appear on your desktop until the
session is restarted.

Proton: Upgrading prefix from 5.0-1 to 6.3-3 (/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/compatdata/312060/)
Proton: Removing ShellExecute DDE registry entries.
Traceback (most recent call last):
  File "/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/Proton 6.3/proton", line 1262, in <module>
    g_session.init_session(sys.argv[1] != "runinprefix")
  File "/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/Proton 6.3/proton", line 1076, in init_session
    g_compatdata.setup_prefix()
  File "/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/Proton 6.3/proton", line 714, in setup_prefix
    self.update_builtin_libs(builtin_dll_copy)
  File "/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/Proton 6.3/proton", line 540, in update_builtin_libs
    with open(self.tracked_files_file, "r") as tracked_files:
FileNotFoundError: [Errno 2] No such file or directory: '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/compatdata/312060/tracked_files'
Game process removed: AppID 312060 "/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=312060 -- '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/Proton 6.3'/proton waitforexitandrun  '/home/db/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/FINAL FANTASY XIV Online/boot/ffxivboot.exe' -issteamfreetrial", ProcID 924
Uploaded AppInterfaceStats to Steam
No cached sticky mapping in ActivateActionSet.Installing breakpad exception handler for appid(steam)/version(1633666232)

It's the same error now with the community version of Proton.

@gasinvein
Copy link
Member

It's the same error now with the community version of Proton.

This error is unrelated: prefix upgrade has failed due to missing tracked_files file. If you don't feel like fixing it right away - try another game.

@minikN
Copy link

minikN commented Oct 9, 2021

It's the same error now with the community version of Proton.

This error is unrelated: prefix upgrade has failed due to missing tracked_files file. If you don't feel like fixing it right away - try another game.

Actually I'd love to fix it right away :)

@gasinvein
Copy link
Member

Actually I'd love to fix it right away :)

Well, if this games' wine prefix is expendable, just remove or rename the ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/compatdata/312060 directory.

@minikN
Copy link

minikN commented Oct 9, 2021

@gasinvein Everything works now. Testes with 2 games. Thanks!

@gasinvein
Copy link
Member

@gasinvein Everything works now. Testes with 2 games. Thanks!

Consider reporting this to you distribution. If flatpak and flatpak-portal binaries are inconsistent and you have to run the later manually, this clearly indicates that something is wrong with either your installation or Nix/Guix package.

@stacyharper
Copy link

stacyharper commented Feb 5, 2023

I am really sorry to amend to this already too long discussion but, time has passed, and I still can't run Steam embedded Protons versions. Flatpak community builds works but not the defaults versions.

Steam run with: flatpak --user run com.valvesoftware.Steam

Here the full log: https://paste.sr.ht/~stacyharper/130066d6a9ad8db61e71466759b322ee8992dac4

I am trying to use Proton Experimental here but other version fails with similar logs.

This is from Alpine Linux Edge.

Someone could help me on that ?

@smcv
Copy link
Contributor

smcv commented Feb 6, 2023

@stacyharper:

I am really sorry to amend to this already too long discussion

This is an issue tracker, not a support forum, and the issue that is tracked here was resolved in Flatpak 1.12.x. If you are already using Flatpak 1.12.x, please open a separate issue with details of how your system is set up.

The key line from your log is probably this one:

error: While opening repository /var/lib/flatpak/repo: opening repo: opendir(/var/lib/flatpak/repo): No such file or directory

This is from Alpine Linux Edge

If I understand correctly, Alpine Linux is a musl-based distribution? Flatpak and Steam are both designed with glibc in mind, so it is not necessarily surprising if not everything is working as you would expect on musl.

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

Successfully merging a pull request may close this issue.