Ripcord Dev Logo Ripcord Development — View Ticket Login or Create Account
Ticket UUID: 365f94afd1f182ed03abec291e1c86cabaacca75
Title: `LD_LIBRARY_PATH` conflicts with Ripcord's AppImage because of `runpath`
Status: Open Type: Bug
Severity: Minor Priority: Low
Subsystem: Linux Resolution: Open
Last Modified: 2020-09-24 22:23:07
Version Found In: 0.4.26
mori2020-09-23 21:33:02

Running the Ripcord AppImage naively on a system with incompatible Qt5 libraries installed produces this error:

./Ripcord-0.4.26-x86_64.AppImage: symbol lookup error: /tmp/.mount_RipcorpHZPq2/plugins/bearer/libqconnmanbearer.so: undefined symbol: _ZdlPvm, version Qt_5

This happens because the Ripcord executable inside the AppImage uses the RUNPATH attribute instead of RPATH for specifying dynamic library lookup directory (./lib).

This causes conflicts if a system has a custom LD_LIBRARY_PATH set which points to system libraries, because RUNPATH has lower priority than LD_LIBRARY_PATH, and causing system Qt5 libs to be loaded instead of the ones bundled in the AppImage.

The solution would be to use RPATH instead as it takes precedence over LD_LIBRARY_PATH, or to use a wrapper script for AppRun which overrides LD_LIBRARY_PATH to point to ./libs

cancel2020-09-24 22:23:07

Thanks. I'll look into this. It may be because I'm using an older version of the AppImage creation tool.