protonscr

[beta] last update broke custom compat tools (vanilla wine) because of dbus

steamclosed
ValveSoftware/steam-for-linux#9996 · opened 2023-08-17 by sylware · updated 2023-08-25 · 6 comments · github
Ssylware 2023-08-17 github

Now when I try to start a game via a custom compat tools (vanilla wine), I get:
steam-runtime-launcher-service[26937]: E: Can't find session bus: Error spawning command line `dbus-launch --autolaunch=715679d3181bd6c2d481bf825adb1009 --binary-syntax --close-stderr': Failed to execute child process "dbus-launch" (No such file or directory)

It was working prefectly fine right before. A new option to disable dbus spawning from the compat tools?

Ssylware 2023-08-18 github

It is missing the "no dbus" fallback code or this is a bug.

Ssmcv 2023-08-21 github

Please be specific when reporting bugs: more information makes it more likely that a bug can be solved. You haven't provided Steam's output (other than that one line), Help -> System Information, Help -> Steam Runtime Diagnostics, the Steam version number in use, or even whether you are using the beta or stable branch. If you are using a customized/personal Linux distribution that nobody else can test on, then that makes it even more important to provide this sort of information.

In general, having a D-Bus session bus is expected functionality for a normal Linux desktop environment, and some Steam features will not work without it.

It is missing the "no dbus" fallback code

You haven't provided enough context for it to be completely clear which code path or component you are referring to, but my best guess is that the code path you are referring to is one where the use of D-Bus is non-essential (as a mechanism for developers to insert external commands into a compatibility tool's container). What is meant to happen there is that if the steam-runtime-launcher-service fails in any way (whether that's while it is connecting to D-Bus, or any similar failure mode) then it will fall back, with output similar to this:

steam-runtime-launcher-service[26937]: E: Can't find session bus: (etc.)
steam-runtime-launcher-service[26937]: W: Failed to start IPC server, running wrapped command instead

and launch the game or compat tool directly. It's possible that something is going wrong with that mechanism (a crash?) but you haven't provided enough information for me to know.

If you run Steam with SRT_LOG=debug in the environment and copy/paste its output, that will probably provide more context.

via a custom compat tools (vanilla wine)

"Vanilla wine" is not a product that is supported by Valve. What compatibility tool is that, obtained from where? Does it run under the soldier container runtime, the sniper container runtime, or neither?

The reason I ask is that if I knew what compatibility tool, I would be able to give you a command to try that would confirm what is happening.

Alternatively: Are official Valve compatibility tools (Proton 7, 8 or experimental, the sniper container used by Dota 2, or the "Steam Linux Runtime" compatibility tool that is available as a non-default option for other native Linux games) working as expected on this system? If yes, that is a useful data point. If no, please provide logs.

Ssmcv 2023-08-21 github

You haven't provided enough context for it to be completely clear which code path or component you are referring to, but my best guess is...

Another possibility is that the error message from steam-runtime-launcher-service, and your custom compatibility tool not working, could be entirely unrelated. There is not yet enough information here to say anything either way.

Ssylware 2023-08-24 github

You are expecting all the kludge of massive and mainstream elf/linux distros to be there: any sane and serious proprietary software running on elf/linux will query at runtime if some features are available and use proper fallback code paths if they don't. It is like wayland->x11 fallback code paths, or vulkan->GL fallback code paths.

I note you are using D-Bus IPC to exchange data between the host and the container. This is a private matter of pressure-vessel. You are expecting the specific commands from the libdbus D-Bus implementation which you should not, see wikipedia page about D-Bus: https://en.wikipedia.org/wiki/D-Bus#Implementations
Basically, elf/linux distros can run other implementations of D-Bus with different commands... or no D-Bus implementation at all: I remember that the "no libdbus D-Bus on user distro" fallback code paths for the steam client were added a long time ago, namely they made the same mistake but fixed it.

It means you would have to package and distribute the D-Bus implementation you want pressure-vessel to use for its IPCs:commands and libraries (probably statically linked though).

I don't believe you don't know what is wine and vkd3d.

Ssmcv 2023-08-24 github

If you want support, you need to show me more information. I cannot provide support without information, however much I might want to. Making assertions about what should happen is not useful here: if you are experiencing a bug, then clearly whatever was meant to happen is not happening, and the way to solve it is to figure out why.

You are making it very difficult for me to help you. I do not have an unlimited amount of time available, so if you want my help, please don't waste it.

You are expecting the specific commands from the libdbus D-Bus implementation

steam-runtime-launcher-service does not hard-code any specific commands at all: it's calling into the library implementation of the D-Bus protocol in GLib, which uses whatever mechanisms it uses. But, regardless of what those mechanisms are, it is not meant to matter, because the fallback behaviour is to not use D-Bus, not provide the specific feature that relies on D-Bus, and carry on without it.

Apparently, in your case, that fallback is not working. I cannot read your mind, and I cannot access your computer, so the only way I can make that fallback work is to see more information.

Ssylware 2023-08-25 github

Well, I have been playing "outside" of steam for a while, and I retested today: I cannot reproduce, it seems fixed.

BTW, I managed to make work alsa-lib dmix IPC in pressure vessel (dota2), but some fixes seems required (environment variables and the glibc 2.33 nss libs are not imported in sniper), see the related issue the last post.

Nothing extracted yet.