-
Notifications
You must be signed in to change notification settings - Fork 86
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 Deck Flatpak can no longer be launched within overriden Launch Options command string from a game due to pinned_libs_64/libcurl.so.4 #551
Comments
When you set a game to be launched via Proton, the whole process will be wrapped inside a pressure-vessel container with the Soldier runtime. Only games and tools (e.g. Proton) compiled against the runtime are expected to work. I guess that the easier and cleaner way to achieve what you are trying to do is to use the multitasking capability of the Steam Deck. You can do it by adding Qsynth as a standalone non-Steam game. Then you can execute Qsynth, press the |
Actually, everything in the Launch Options runs in the scout (If you tried to run In the case of Proton games, the scout is mostly compatible with arbitrary commands from the host system, but a few libraries need to be "pinned" (forcing the use of the scout version) because of incompatibilities that happened several years ago, and unfortunately libcurl is one of those. There are three ways to avoid the libcurl incompatibility, all of them imperfect:
[edited to add the |
@bangstk thank you for posting this and @smcv thanks for the explanation. I developed a Steam compatibility tool for my Steam Deck which relies on launching a flatpak. Near the end of December it suddenly completely stopped working. Any other application I can still seem to get to launch, but not flatpaks specifically anymore. |
@kisak-valve Is this being looked to be resolved for SteamOS 3.5?? Some older games are completely broken or don't work well at all with Proton. I have been using dosbox-staging and boxtron from flatpak but this library incompatibility broke it. Ok, we can use workarounds by using the LD_PRELOAD option as above but its far from a perfect solution. Ideally I would like to see Valve work with the creators of Dosbox/boxtron/Luxtorpeda/ScummVM etc so that Linux native versions of these tools are automatically used and no need to do extensive tinkering. |
If you are writing your own Steam compatibility tool, you will need to be aware that for historical compatibility reasons, Steam compatibility tools wrapping a native Linux Steam game will generally start up in the Meanwhile, if the compatibility tool is running the scripts or binaries shipped by a native Linux Steam game, then you will also need to be aware that native Linux Steam games generally expect to be run from the Compatibility tools are all about swapping between different execution environments, so the authors of compatibility tools need to keep track of which one of the various possible environments is needed for which commands, and make sure that each command happens in the right environment - there's no avoiding that. It is not possible to make the There is more information about the compatibility tool interface in https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/blob/main/docs/steam-compat-tool-interface.md. I am not a Valve developer and do not have access to Steam source code, so that document is not authoritative, but it should be reasonably accurate. [edited to add the |
@smcv Thanks for the informative reply! That was indeed my issue and the solution. To add to smcv's response, in my case this ended up being a more complete solution:
Reference: https://unix.stackexchange.com/a/11382 |
Yes, for a fully general command, you should pass This is a per-tool thing, rather than a shell thing: each "adverb" tool that wraps another command needs to decide whether/how it will implement |
This might be a more niche case but here it is.
For some time, 'flatpak' that comes on Steam Deck can no longer be executed within an overridden Steam game properties Launch Options command string (one with %command% in it).
An example of this use case is to launch a flatpak MIDI synth before launching a game under Proton, so that MIDI music would work on Steam Deck for that game, by pasting this in the game launch options:
flatpak run org.rncbc.qsynth & %command% ; killall -9 qsynth
Doing so used to work a few months ago but now results in this error, seen if output is redirected to a log:
flatpak: /home/deck/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_64/libcurl.so.4: version 'CURL_OPENSSL_4' not found (required by /usr/lib/libappstream-glib.so.8)
This is fixable by adding LD_PRELOAD=/usr/lib/libcurl.so.4 at the start of the launch option command string but I wanted to report this in case it is something unintended.
So most likely either the Deck version of flatpak or the pinned_libs_64 libcurl.so.4 has been updated to a version the other is incompatible with.
Steam OS Version 3.4
Steam OS Build 20221214.100
Kernel Version 5.13.0-valve35-1-neptune
Steam Version 1671501168
The text was updated successfully, but these errors were encountered: