Skip to content
This repository has been archived by the owner on Nov 23, 2023. It is now read-only.

Linux mint: ./dmengine: error while loading shared libraries: libsdkencryptedappticket.so: cannot open shared object file: No such file or directory #8

Open
subsoap opened this issue Feb 23, 2019 · 14 comments

Comments

@subsoap
Copy link
Collaborator

subsoap commented Feb 23, 2019

Trying to build for Linux, using the sh included to run, get this error? What do I need to do for Linux building to work?

@subsoap
Copy link
Collaborator Author

subsoap commented Feb 25, 2019

Any idea about this? Bundling also has same issue. Also tested bundling from Windows host and running on Linux but same issue.

@britzl
Copy link
Owner

britzl commented Feb 26, 2019 via email

@subsoap
Copy link
Collaborator Author

subsoap commented Feb 26, 2019

Not super urgent as our release date is still 54 days away. Hope you are enjoying your vacation!

@mathiaswking
Copy link

mathiaswking commented Feb 26, 2019

Well, shared libraries on Unix can be a tricky.
I find it

parallels@vm:~/defold/Steamworks$ ldd Steamworks.x86_64 
	linux-vdso.so.1 (0x00007fff189f5000)
	libsdkencryptedappticket.so => not found
	libsteam_api.so => not found
	libopenal.so.1 => /usr/lib/x86_64-linux-gnu/libopenal.so.1 (0x00007f96b9abd000)
	libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f96b9785000)
	libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1 (0x00007f96b9438000)
	libGLU.so.1 => /usr/lib/x86_64-linux-gnu/libGLU.so.1 (0x00007f96b91c9000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f96b8faa000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f96b8da6000)
	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f96b8a1d000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f96b867f000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f96b8467000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f96b8076000)
	libsndio.so.6.1 => /usr/lib/x86_64-linux-gnu/libsndio.so.6.1 (0x00007f96b7e66000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f96b7c5e000)
	libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f96b7a36000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f96b9d5c000)
	libasound.so.2 => /usr/lib/x86_64-linux-gnu/libasound.so.2 (0x00007f96b7730000)
	libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f96b751b000)
	libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f96b7317000)
	libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f96b7111000)
parallels@vm:~/defold/Steamworks$ ls -la
total 0
drwxr-xr-x 1 parallels parallels      320 Feb 26 08:54 .
drwxr-xr-x 1 parallels parallels     1600 Feb 26 08:56 ..
-rw-r--r-- 1 parallels parallels   109129 Feb 26 08:54 game.arcd
-rw-r--r-- 1 parallels parallels     7408 Feb 26 08:54 game.arci
-rw-r--r-- 1 parallels parallels    33761 Feb 26 08:54 game.dmanifest
-rw-r--r-- 1 parallels parallels     2392 Feb 26 08:54 game.projectc
-rw-r--r-- 1 parallels parallels      162 Feb 26 08:54 game.public.der
-rw-r--r-- 1 parallels parallels   961011 Feb 26 08:54 libsdkencryptedappticket.so
-rw-r--r-- 1 parallels parallels   370330 Feb 26 08:54 libsteam_api.so
-rwxr--r-- 1 parallels parallels 21264304 Feb 26 08:54 Steamworks.x86_64

It seems to find it when using LD_LIBRARY_PATH:

LD_LIBRARY_PATH=. ./Steamworks.x86_64

@subsoap
Copy link
Collaborator Author

subsoap commented Feb 26, 2019

So path needs to be exported somehow?

@mathiaswking
Copy link

The easiest workaround for you right now, is to set RPATH yourself:

$ patchelf --set-rpath '$ORIGIN' Steamworks.x86_64

You can verify that it's been set:

$ readelf -d Steamworks.x86_64 | grep 'R.*PATH'
0x000000000000001d (RUNPATH)            Library runpath: [$ORIGIN]

And also with ldd:

$ ldd Steamworks.x86_64
linux-vdso.so.1 (0x00007ffc79df3000)
libsdkencryptedappticket.so => /media/psf/defold/Steamworks/./libsdkencryptedappticket.so (0x00007ff1d9121000)
libsteam_api.so => /media/psf/defold/Steamworks/./libsteam_api.so (0x00007ff1d8ec5000)
    ...

@mathiaswking
Copy link

The proper fix lies on our end, needing to add a missing compile flag: -Wl,-rpath='$ORIGIN'

@subsoap
Copy link
Collaborator Author

subsoap commented Feb 26, 2019

I'll wait for proper fix! 😊

@mathiaswking
Copy link

DEF-3805, should be in on monday (1.2.148)

@subsoap
Copy link
Collaborator Author

subsoap commented Apr 3, 2019

Just noting here still an issue. Runs fine when ran from Steam launcher but not directly without the user modifying path stuff.

@subsoap
Copy link
Collaborator Author

subsoap commented Apr 3, 2019

The last version I tested with was 1.2.150

@subsoap
Copy link
Collaborator Author

subsoap commented Apr 23, 2019

Strangely when bundling on Windows for Linux this is not an issue, only when bundling on Linux.

I still have to take the bundle to a Linux VM to fix the permissions though.

@whiteboxdev
Copy link

Noting that this is still an issue and renders a game untestable on Linux machines.

@XWILKINX
Copy link

Still occurring for me. What is the fix?

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

No branches or pull requests

5 participants