ptitSeb / box64

Box64 - Linux Userspace x86_64 Emulator with a twist, targeted at ARM64 Linux devices
https://box86.org
MIT License
3.81k stars 274 forks source link

Error loading needed lib libxshmfence.so.1 #273

Open hack-wizard opened 2 years ago

hack-wizard commented 2 years ago

So I just compiled and installed Box64 on my 64-bit Raspberry Pi OS [bullseye] install

I try to install Joplin - a cloud note-taking app that is critical for my usage case, from the AppImage and I get this:

pi@raspberrypi:~ $ box64 Joplin-2.7.15.AppImage 
Dynarec for ARM64, with extension: ASIMD CRC32 PageSize:4096
Box64 with Dynarec v0.1.7 f779d4f built on Apr  9 2022 10:22:32
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 49 Env var
Looking for Joplin-2.7.15.AppImage
Using native(wrapped) libdl.so.2
Using native(wrapped) libpthread.so.0
Using native(wrapped) libz.so.1
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux-x86-64.so.2
Using native(wrapped) librt.so.1
Error loading needed lib libfuse.so.2
Warning: Cannot dlopen("libfuse.so.2"/0x421ac2, 1)
dlopen(): error loading libfuse.so.2

AppImages require FUSE to run. 
You might still be able to extract the contents of this AppImage 
if you run it with the --appimage-extract option. 
See https://github.com/AppImage/AppImageKit/wiki/FUSE 
for more information

Ok, no biggie, I extract the appimage as suggested, and get this when trying to run ./AppRun:

pi@raspberrypi:~/squashfs-root $ ./AppRun 
Dynarec for ARM64, with extension: ASIMD CRC32 PageSize:4096
Box64 with Dynarec v0.1.7 f779d4f built on Apr  9 2022 10:22:32
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 50 Env var
Looking for /home/pi/squashfs-root/@joplinapp-desktop
Using emulated libffmpeg.so
Using native(wrapped) libdl.so.2
Using native(wrapped) libpthread.so.0
Using native(wrapped) libgmodule-2.0.so.0
Using native(wrapped) libglib-2.0.so.0
Using native(wrapped) libgobject-2.0.so.0
Error loading needed lib libxshmfence.so.1
Error loading one of needed lib
Error: loading needed libs in elf /home/pi/squashfs-root/@joplinapp-desktop

To confirm, libxshfence.so and it's dev files are installed on this system. Is there a way to force Box64 to use it? Do I need to recompile with some esoteric option? As I said, this app is critical to my usage case and sadly the dev refuses to support it on ARM so any help at all would be extremely welcome.

ptitSeb commented 2 years ago

AppImage are not supported for now on box64 (libfuse is not wrapped, and it's tricky to do).

As for libshmfence, it's not wrapped yet on, I'll check if it's easy or not to do. In the mean time, just grab an x86_64 version of it and put the file it the binary folder.

hack-wizard commented 2 years ago

That's the only way this is provided other than in source, I extracted but is there another way to manually move it from the squashfs folder to where it needs to go?