AlmasB / FXGLGames

This repo contains sample games built with FXGL
http://almasb.github.io/FXGLGames/
MIT License
824 stars 327 forks source link

Game crashes as libsndio.so.6.1 is missing #11

Open rkraneis opened 3 years ago

rkraneis commented 3 years ago

Message: /home/rene/.openjfx/cache/fxgl-11/libSDL2.so: libsndio.so.6.1: cannot open shared object file: No such file or directory Type: UnsatisfiedLinkError

Line:  Native Method

java.lang.UnsatisfiedLinkError: /home/$user/.openjfx/cache/fxgl-11/libSDL2.so: libsndio.so.6.1: cannot open shared object file: No such file or directory
    at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
    at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:383)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:227)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:169)
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2407)
    at java.base/java.lang.Runtime.load0(Runtime.java:747)
    at java.base/java.lang.System.load(System.java:1857)
    at com.almasb.fxgl.controllerinput.ControllerInputService.onInit(ControllerInputService.kt:81)
    at com.almasb.fxgl.app.Engine.initServices(Engine.kt:84)
    at com.almasb.fxgl.app.FXGLApplication$start$task$1.run(FXGLApplication.kt:120)
    at com.almasb.fxgl.core.concurrent.IOTask.lambda$ofVoid$5(IOTask.java:138)
    at com.almasb.fxgl.core.concurrent.IOTask$2.onExecute(IOTask.java:151)
    at com.almasb.fxgl.core.concurrent.IOTask$1.call(IOTask.java:107)
    at javafx.concurrent.Task$TaskCallable.call(Task.java:1425)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    at java.base/java.lang.Thread.run(Thread.java:832)

Not much to add ... this happens on Fedora 33.

ldd /home/$user/.openjfx/cache/fxgl-11/libSDL2.so
ldd: warning: you do not have execution permission for `/home/$user/.openjfx/cache/fxgl-11/libSDL2.so'
    linux-vdso.so.1 (0x00007ffd163cb000)
    libasound.so.2 => /lib64/libasound.so.2 (0x00007f59c6709000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f59c65c3000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f59c65bc000)
    libpulse.so.0 => /lib64/libpulse.so.0 (0x00007f59c6566000)
    libsndio.so.6.1 => not found
    libX11.so.6 => /lib64/libX11.so.6 (0x00007f59c641f000)
    libXext.so.6 => /lib64/libXext.so.6 (0x00007f59c6408000)
    libXcursor.so.1 => /lib64/libXcursor.so.1 (0x00007f59c63fb000)
    libXinerama.so.1 => /lib64/libXinerama.so.1 (0x00007f59c63f6000)
    libXi.so.6 => /lib64/libXi.so.6 (0x00007f59c63e4000)
    libXrandr.so.2 => /lib64/libXrandr.so.2 (0x00007f59c63d7000)
    libXss.so.1 => /lib64/libXss.so.1 (0x00007f59c63d2000)
    libXxf86vm.so.1 => /lib64/libXxf86vm.so.1 (0x00007f59c63c9000)
    libwayland-egl.so.1 => /lib64/libwayland-egl.so.1 (0x00007f59c63c4000)
    libwayland-client.so.0 => /lib64/libwayland-client.so.0 (0x00007f59c63b4000)
    libwayland-cursor.so.0 => /lib64/libwayland-cursor.so.0 (0x00007f59c63aa000)
    libxkbcommon.so.0 => /lib64/libxkbcommon.so.0 (0x00007f59c6365000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f59c6343000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f59c6336000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f59c616b000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f59c6b2f000)
    libpulsecommon-14.0.so => /usr/lib64/pulseaudio/libpulsecommon-14.0.so (0x00007f59c60e3000)
    libX11-xcb.so.1 => /lib64/libX11-xcb.so.1 (0x00007f59c60de000)
    libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f59c60b4000)
    libICE.so.6 => /lib64/libICE.so.6 (0x00007f59c6097000)
    libSM.so.6 => /lib64/libSM.so.6 (0x00007f59c608a000)
    libXtst.so.6 => /lib64/libXtst.so.6 (0x00007f59c6081000)
    libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007f59c5fc1000)
    libsndfile.so.1 => /lib64/libsndfile.so.1 (0x00007f59c5f4f000)
    libasyncns.so.0 => /lib64/libasyncns.so.0 (0x00007f59c5f47000)
    libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007f59c5ef6000)
    libcap.so.2 => /lib64/libcap.so.2 (0x00007f59c5eed000)
    libXrender.so.1 => /lib64/libXrender.so.1 (0x00007f59c5ee0000)
    libXfixes.so.3 => /lib64/libXfixes.so.3 (0x00007f59c5ed7000)
    libffi.so.6 => /lib64/libffi.so.6 (0x00007f59c5ecc000)
    libXau.so.6 => /lib64/libXau.so.6 (0x00007f59c5ec7000)
    libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f59c5ebc000)
    liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f59c5e90000)
    libzstd.so.1 => /lib64/libzstd.so.1 (0x00007f59c5dbb000)
    liblz4.so.1 => /lib64/liblz4.so.1 (0x00007f59c5d9d000)
    libgcrypt.so.20 => /lib64/libgcrypt.so.20 (0x00007f59c5c78000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f59c5c5d000)
    libgsm.so.1 => /lib64/libgsm.so.1 (0x00007f59c5c4c000)
    libFLAC.so.8 => /lib64/libFLAC.so.8 (0x00007f59c5bf1000)
    libogg.so.0 => /lib64/libogg.so.0 (0x00007f59c5be6000)
    libvorbis.so.0 => /lib64/libvorbis.so.0 (0x00007f59c5bb7000)
    libvorbisenc.so.2 => /lib64/libvorbisenc.so.2 (0x00007f59c5b0c000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f59c5af2000)
    libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007f59c5acb000)
rkraneis commented 3 years ago

As a workaround I copied my local libSDL over this file.

AlmasB commented 3 years ago

Thanks, did copying your local file work? Also what game is this?

On Thu, 14 Jan 2021, 8:35 pm René Kraneis, notifications@github.com wrote:

As a workaround I copied my local libSDL over this file.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/AlmasB/FXGLGames/issues/11#issuecomment-760460531, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA3NT5TZSW4SDTDWFRRVSEDSZ5IRNANCNFSM4WDA2Z7Q .

rkraneis commented 3 years ago

Oh, sorry, this is for GeometryWars. Yes, copying and using local file did work. Game did not crash.

AlmasB commented 3 years ago

Thanks, I've just updated the GeometryWars sample to not initialize controllers, which are not being used by the game anyway.

In the future, when the game does support controllers, I will need to write down all SDL2 dependencies or specific versions that may not be present on the system. I wonder what ldd gives for your local SDL2 copy.

rkraneis commented 3 years ago

Quite some difference there:

ldd /lib64/libSDL2-2.0.so.0
    linux-vdso.so.1 (0x00007ffe64ffc000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f08b5eb7000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f08b5eb0000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f08b5e8e000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f08b5e83000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f08b5cb8000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f08b6170000)

Ragarding sndio: it seems not that well supported by distributions.