-
Notifications
You must be signed in to change notification settings - Fork 9
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
Failed to launch game due to missing libraries #19
Comments
More than a month and yet no reply. Am I asking the question wrong or something (not sarcasm) |
Have you tried to refresh the snap? Also, when are those messages shown? When launching the snap? When launching the game? |
@sergio-costas I'm answering you from my work git acc. Sorry for this confusion.
Yes, I also tried both beta and edge snap versions. Didn't work for any of them. Note, the game runs flawlessly on native steam .deb installation
|
Yes, but I mean: does the "Missing library..." messages appear as soon as you launch steam snap from the terminal, or do they appear when you try to launch the game? What about "FATAL ERROR : Failed to load library sdl.hdll"? Does it appear immediately after launching Steam, or when you press the button to launch the game? |
@sergio-costas Just as I try to launch the game. Not during launching steam. |
Just for testing purposes, could you try Also, is this only for Northgard or does it happen for every game? |
@ashuntu I tested it with The only other game I tested was DoTA, which runs flawlessly. I don't play any other games than DoTA and Northgard, but I can maybe test with some free games on steam in the weekend. |
@SJSalekin: I suspect that the game you're running is 32-bit. We've got 64-bit versions of those libraries in the snap, but not the 32-bit equivalents. To help verify, could you run the following on your system:
I would have thought the libraries from the steam-runtime tarball Steam downloads would have provided all these, but perhaps we need to include them in the snap too. @ashuntu: if this turns out to be the case, do you need any help to try adding these? |
@jhenstridge After running your command northgard executable is called find hl -type f -executable -exec file {} +
hl: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=bbc0c516ac6c8be4f605cda6a209b55b06da46f8, not stripped objdump -f hl | grep ^architecture
architecture: i386:x86-64, flags 0x00000112: @ashuntu 🙇 |
Okay. Then my guess that it is a 32-bit executable was incorrect. We should already have copies of at least some of the libraries it is complaining about. Could you provide a copy of |
@jhenstridge Just 2 lines inside
LD_PRELOAD= LD_LIBRARY_PATH=linux ./linux/hl linux/detect.hl
LD_PRELOAD= LD_LIBRARY_PATH=linux ./linux/hl sdlboot.dat "$@" So, it's preloading the contents of List of the files:detect.hl libmbedtls.so libturbojpeg.so.0
fmt.hdll libmbedtls.so.10 libuv.so.1
hl libmbedtls.so.2.2.1 libvorbis.so.0
libSDL2-2.0.so libmbedx509.so libvorbisfile.so.3
libSDL2-2.0.so.0 libmbedx509.so.0 mysql.hdll
libSDL2-2.0.so.0.4.0 libmbedx509.so.2.2.1 openal.hdll
libSDL2.so libogg.so.0 run.sh
libbsd.so.0 libopenal.so.1 sdl.hdll
libhl.so libpng16.so.16 ssl.hdll
libmbedcrypto.so libsndio.so steam.hdll
libmbedcrypto.so.0 libsndio.so.6.1 ui.hdll
libmbedcrypto.so.2.2.1 libsteam_api.so uv.hdll
|
These two lines: LD_PRELOAD= LD_LIBRARY_PATH=linux ./linux/hl linux/detect.hl
LD_PRELOAD= LD_LIBRARY_PATH=linux ./linux/hl sdlboot.dat "$@" are explicitly removing any preload configuration and explicitly setting the library search path to only the Aside: The |
@diddledani So, there is no fix for this unless the Northgard devs change their I am noob to this, so would you please suggest an edited version of the file which won't exclude the libraries provided by snap 🙇 Thanks for letting me know about the Haxe programming language, I never heard of it before |
Okay, so it is overriding the LD_LIBRARY_PATH rather than adding new directories to it. That means it sees neither the libraries provided by the snap, or those provided by the steam runtime. I've got some ideas about how we can handle this, but it needs a bit more experimentation. |
In that case, shouldn't it also fail for the .deb version of steam ? @everyone Thank you so much for your time and the helps. I really appreciate your support 🙇 |
No. At the core of it, there are two ways that an executable finds its libraries:
Both the Steam snap and Steam's own steam-runtime download are using LD_LIBRARY_PATH to make the libraries available. This particular game's launcher shell script resets the environment variable though, so only libraries in In the .deb case this is fine, because the libraries in question can be found that way (assuming they're actually installed). In the snap case, we're running in a clean environment (in essence, the contents of My idea of how to solve this problem is to have the snap build its own copy of |
I see the PR has been merged, when can I test it ? I've the Again, thank you so much 🙇 |
@SJSalekin: it should be available on edge now (rev 32). There is a bit of a delay between the PR being merged to main and the snap being built and published to edge. If you're still getting the same missing libraries error, please reopen this issue. If you run into an entirely different problem with the game, please file a new one. |
How to reproduce
sudo snap refresh snapd --beta
sudo snap install steam --beta
os: freshly installed ubuntu 22.04
game: Northgard (native linux build)
the game crashes at launch, running from the terminal shows this error
How do I add those missing libraries ? thanks 🙇
Edit
Here are the connections for snap
The text was updated successfully, but these errors were encountered: