blupi-games / planetblupi-dev

Planet Blupi development bundle (main repository)
https://www.blupi.org
GNU General Public License v3.0
51 stars 9 forks source link

AppImage does not run without libsndio #1

Closed probonopd closed 7 years ago

probonopd commented 7 years ago

On Ubuntu 17.10 (Artful Aardvark):

me@host:~$ /home/me/Downloads/planetblupi.AppImage 
planetblupi: error while loading shared libraries: libsndio.so.6.1: cannot open shared object file: No such file or directory

Please bundle libsndio and similar libraries inside the AppImage. Possibly use linuxdeployqt to facilitate the bundling process.

Reference: https://github.com/blupi-games/planetblupi-dev/releases/download/v1.9.0/planetblupi.AppImage

Skywalker13 commented 7 years ago

I can't link statically libsndio (I've tried without success) and I don't want shared libs in the AppImage. But I think that I can remove this dep, it's not mandatory.

Thanks for the report

probonopd commented 7 years ago

I don't want shared libs in the AppImage

Why is that?

Skywalker13 commented 7 years ago

I like static linking and reduce as much as possible all dynamic linkings (I build all (most) dependencies with the CMakeList.txt of this repository (I want to have a reproducible build) and now I'm adding libasound, libpulse, etc, ... in order to build myself in static these libs).

I like golang too :-) Just one binary and nothing else (excepted for assets); it just works.

I do the same for macOS (only base OSX dylibs) and Windows (I avoid as much as possible all DLLs), I want just the .exe but I've at least still one lib in the installer (libwinpthread because I've some major problems when linking statically this one).

Skywalker13 commented 7 years ago

Done, no more dynamic linking with sound libs

$ ldd bin/planetblupi 
        linux-vdso.so.1 (0x00007ffebbb72000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7bc0c88000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7bc0984000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7bc0767000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f7bc055f000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7bc01c0000)
        /lib64/ld-linux-x86-64.so.2 (0x0000561dab6fd000)

I've added libasound and libpulse (static); libsndio is not very useful on Linux.

Then I close this issue, it's done for the next release (v1.9.1), this weekend.

Skywalker13 commented 7 years ago

v1.9.1 published with the fix