Reputation: 38744
The application is a Firefox plugin (loaded from $HOME/.mozilla/plugins), so wrapper script that sets LD_LIBRARY_PATH is not an easy option.
RPATH, as far as I know, cannot refer to $HOME and can be only absolue path.
Firefox tries to dlopen it's plugin from ~/.mozilla/plugins but fails (because it depends on shared libraries installed somewhere in the user home directory).
Modifying Firefox menu item to provide a wrapper (with LD_LIBRARY_PATH) around Firefox is too hacky.
What should installer script do (without root access) to make standard firefox load plug-ins that depends on out shared library?
Upvotes: 4
Views: 1325
Reputation: 38744
Set RPATH to $ORIGIN/lib
so the loader will look for libraries relative to the my file.
Script just unpacks the plugin to $HOME/.mozilla/plugins/myplugin.so
and libraries to $HOME/.mozilla/plugins/lib/
rpath can be specified to linker though the gcc by adding Wl,-rpath,'$ORIGIN/lib'
($
should be doubled in a Makefile) and can also be changed after compilation by patchelf
.
Upvotes: 4