ricochet-im / ricochet

Anonymous peer-to-peer instant messaging
https://ricochet.im/
Other
3.73k stars 401 forks source link

1.1.4 binary doesn't run under Ubuntu 14.04, regression from 1.1.2 #530

Open special opened 7 years ago

special commented 7 years ago

A user reports that the 1.1.4 binaries don't run under Ubuntu 14.04:

./ricochet: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./ricochet)
./ricochet: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./ricochet)

Off the top of my head, I don't remember intentionally breaking that compatibility. It's worth looking back at how the build environment changed and to see if this is easily resolved. It's difficult to build from scratch under 14.04, because they don't package a sufficiently new Qt5.

I also wonder whether doing a little more aggressive static linking, possibly including the STL, would be worthwhile.

rburchell commented 7 years ago

libstdc++ broke ABI for C++11 support — see https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html. Could be related?

wfr commented 7 years ago

The program Subsurface Divelog, also written in C++/Qt, solves the backwards compatibility issue with an "AppImage" package. AppImages are ELF files with embedded ISO9660 file systems that contain all the necessary libraries.

http://appimage.org/ https://github.com/probonopd/AppImageKit/blob/master/README.md

Can also run in a sandbox like Firejail. Firejail is a low-overhead sandbox that provides native support for the AppImage format

The AppImage could be provided in addition to the existing binary, as a fallback solution for ancient or otherwise unusual distributions.

hoijui commented 7 years ago

i built and am running latest (git 4294b6b2b21c907ba87041bcd9c2a1ddb6361080) ricochet on trisquel, which is based on ubuntu 14.04 i think, and it works here now (mid july 2017). from the ubuntu buildd instructions, i had to replace this line:

apt-get install qml-module-qtquick-controls qml-module-qtquick-dialogs qml-module-qtmultimedia

with this one:

apt-get install qtdeclarative5-qtquick2-plugin qtdeclarative5-window-plugin qtdeclarative5-dialogs-plugin