Skip to content

Unsatisfied libsdl2 dependency on linux/ARM #117

Description

@robisaacnz

The current release build for linux ARM64 has a dependency on SDL2 that is not satisfied by the installed system libsdl2 package. The binary appears to have a hard-coded path that looks for an SDL2.so file in the current directory, and dumps core if that specific file is not found, even if SDL2 is installed. Tested on Ubuntu, but behaves similarly elsewhere.

Core dump on first run:

user@vm-ubuntu:~/Downloads/GitHubLauncher-v1.73-Linux-ARM64$ ./GithubLauncher 
Unhandled exception. System.DllNotFoundException: Unable to load shared library 'SDL2' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable: 
/home/user/Downloads/GitHubLauncher-v1.73-Linux-ARM64/SDL2.so: cannot open shared object file: No such file or directory
/home/user/Downloads/GitHubLauncher-v1.73-Linux-ARM64/libSDL2.so: cannot open shared object file: No such file or directory
/home/user/Downloads/GitHubLauncher-v1.73-Linux-ARM64/SDL2: cannot open shared object file: No such file or directory
/home/user/Downloads/GitHubLauncher-v1.73-Linux-ARM64/libSDL2: cannot open shared object file: No such file or directory

Local package manager output, showing an installed and available SDL2:

user@vm-ubuntu:~/Downloads/GitHubLauncher-v1.73-Linux-ARM64$ apt list | grep sdl | grep installed
libsdl2-2.0-0/resolute,now 2.32.10+dfsg-6 arm64 [installed]
libsdl2-classic/resolute,now 2.32.10+dfsg-6 arm64 [installed,automatic]

Copy the shared library into the current directory:

user@vm-ubuntu:~/Downloads/GitHubLauncher-v1.73-Linux-ARM64$ cp /usr/lib/aarch64-linux-gnu/libSDL2-2.0.so.0 ./SDL2.so

App now launches and runs without errors:

user@vm-ubuntu:~/Downloads/GitHubLauncher-v1.73-Linux-ARM64$ ./GithubLauncher 
GithubLauncher Updater - Version v1.73

I don't know enough about the .NET build environment to suggest how to convince it not to do this, but I think the license status of the SDL2 library allows you to just bundle it with the release, which might be easier. This app is a brilliant idea, btw.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions