ttalvitie / browservice

Browservice: Browse the modern web on historical browsers
MIT License
1.11k stars 32 forks source link

./browservice-v0.9.6.0-x86_64.AppImage: error while loading shared libraries: libidn2.so.0: cannot open shared object file: No such file or directory #89

Open jarreboum opened 1 year ago

jarreboum commented 1 year ago

This is on a Synology NAS (a DS620slim, with kernel 4.4.180+) I'm unfamiliar with appimages, but I thought all dependencies were bundled?

ttalvitie commented 1 year ago

AppImages typically need to compromise between self-containedness and compatibility with the system. Bundling very basic system libraries (like libc) often causes compatibility problems; setting the boundary at which we switch from host system libraries to bundled libraries is not straightforward and is often done through trial and error. The AppImage community typically uses the list https://github.com/AppImageCommunity/pkg2appimage/blob/master/excludelist for choosing which dependencies to exclude from the AppImage. The Browservice AppImage does not use the usual AppImage tooling; instead, I have manually picked the excluded libraries to try to maximize compatibility (I did this because I wanted the AppImage to run on non-graphical systems even though it embeds a browser and thus needs a lot of the libraries only present on graphical systems).

It seems that previously, I decided to explicitly exclude libidn2.so.0, but I don't remember why exactly I did that. I will try to check if I could include it in the next release without breaking anything. However, the OS in Synology NAS is probably quite unusual in other ways as well, so I wouldn't expect problems to end here.

jarreboum commented 1 year ago

Thanks for your reply. I would enjoy running browservice on this server of a nas, I'll report any other bug I may find.

ttalvitie commented 1 year ago

Please test the newest release https://github.com/ttalvitie/browservice/releases/tag/v0.9.6.1 and let me know whether it works. The AppImage now includes libidn2.so.0 as it seems that including it doesn't break anything.

jarreboum commented 1 year ago

/volume1/downloads$ ./browservice-v0.9.6.1-x86_64.AppImage ./browservice-v0.9.6.1-x86_64.AppImage: /lib64/libstdc++.so.6: version GLIBCXX_3.4.26' not found (required by ./browservice-v0.9.6.1-x86_64.AppImage) ./browservice-v0.9.6.1-x86_64.AppImage: /lib64/libc.so.6: versionGLIBC_2.28' not found (required by /tmp/.mount_browsepOEwhw/opt/browservice/../../usr/lib/libglib-2.0.so.0) ./browservice-v0.9.6.1-x86_64.AppImage: /lib64/libc.so.6: version GLIBC_2.30' not found (required by /tmp/.mount_browsepOEwhw/opt/browservice/../../usr/lib/libnspr4.so) ./browservice-v0.9.6.1-x86_64.AppImage: /lib64/libc.so.6: versionGLIBC_2.28' not found (required by /tmp/.mount_browsepOEwhw/opt/browservice/../../usr/lib/libgio-2.0.so.0) ./browservice-v0.9.6.1-x86_64.AppImage: /lib64/libm.so.6: version GLIBC_2.29' not found (required by /tmp/.mount_browsepOEwhw/opt/browservice/../../usr/lib/libgbm.so.1) ./browservice-v0.9.6.1-x86_64.AppImage: /lib64/libm.so.6: versionGLIBC_2.29' not found (required by /tmp/.mount_browsepOEwhw/opt/browservice/../../usr/lib/libcairo.so.2) ./browservice-v0.9.6.1-x86_64.AppImage: /lib64/libm.so.6: version GLIBC_2.29' not found (required by /tmp/.mount_browsepOEwhw/opt/browservice/../../usr/lib/libasound.so.2) ./browservice-v0.9.6.1-x86_64.AppImage: /lib64/libc.so.6: versionGLIBC_2.27' not found (required by /tmp/.mount_browsepOEwhw/opt/browservice/../../usr/lib/libgssapi_krb5.so.2) ./browservice-v0.9.6.1-x86_64.AppImage: /lib64/libc.so.6: version GLIBC_2.30' not found (required by /tmp/.mount_browsepOEwhw/opt/browservice/../../usr/lib/libselinux.so.1) ./browservice-v0.9.6.1-x86_64.AppImage: /lib64/libc.so.6: versionGLIBC_2.28' not found (required by /tmp/.mount_browsepOEwhw/opt/browservice/../../usr/lib/libsystemd.so.0) ./browservice-v0.9.6.1-x86_64.AppImage: /lib64/libc.so.6: version GLIBC_2.30' not found (required by /tmp/.mount_browsepOEwhw/opt/browservice/../../usr/lib/libsystemd.so.0) ./browservice-v0.9.6.1-x86_64.AppImage: /lib64/libc.so.6: versionGLIBC_2.27' not found (required by /tmp/.mount_browsepOEwhw/opt/browservice/../../usr/lib/libsystemd.so.0) ./browservice-v0.9.6.1-x86_64.AppImage: /lib64/libm.so.6: version GLIBC_2.29' not found (required by /tmp/.mount_browsepOEwhw/opt/browservice/../../usr/lib/libpixman-1.so.0) ./browservice-v0.9.6.1-x86_64.AppImage: /lib64/libm.so.6: versionGLIBC_2.29' not found (required by /tmp/.mount_browsepOEwhw/opt/browservice/../../usr/lib/libpng16.so.16)

ttalvitie commented 1 year ago

These errors all come from the fact that the glibc in the Synology NAS is too old (similar errors happen if you run the AppImage on an old mainstream Linux distro like Debian 10 or Ubuntu 18.04). I won't add these libraries to the AppImage due to the risk of breaking compatibility with newer distros. If there is a newer version of the Synology NAS operating system you could install, then it might fix these errors (if the glibc version is new enough in the updated OS).