steamworks-defold icon indicating copy to clipboard operation
steamworks-defold copied to clipboard

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

Open subsoap opened this issue 6 years ago • 14 comments
trafficstars

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 avatar Feb 23 '19 04:02 subsoap

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

subsoap avatar Feb 25 '19 22:02 subsoap

I'm away on vacation. Maybe @jcash has an idea?

On Mon, 25 Feb 2019, 23:10 Brian, [email protected] wrote:

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

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/britzl/steamworks-defold/issues/8#issuecomment-467204161, or mute the thread https://github.com/notifications/unsubscribe-auth/ABPY0Adro3OmqfMfz9_ng_MwUk1TzsCAks5vRF87gaJpZM4bNuqY .

britzl avatar Feb 26 '19 05:02 britzl

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

subsoap avatar Feb 26 '19 07:02 subsoap

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

mathiaswking avatar Feb 26 '19 08:02 mathiaswking

So path needs to be exported somehow?

subsoap avatar Feb 26 '19 08:02 subsoap

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 avatar Feb 26 '19 09:02 mathiaswking

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

mathiaswking avatar Feb 26 '19 09:02 mathiaswking

I'll wait for proper fix! 😊

subsoap avatar Feb 26 '19 11:02 subsoap

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

mathiaswking avatar Feb 26 '19 12:02 mathiaswking

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

subsoap avatar Apr 03 '19 01:04 subsoap

The last version I tested with was 1.2.150

subsoap avatar Apr 03 '19 01:04 subsoap

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.

subsoap avatar Apr 23 '19 01:04 subsoap

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

whiteboxdev avatar Feb 18 '23 15:02 whiteboxdev

Still occurring for me. What is the fix?

XWILKINX avatar Jul 28 '23 20:07 XWILKINX