Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux launch script should not set LD_LIBRARY_PATH #1682

Closed
mash-graz opened this issue Oct 10, 2017 · 3 comments
Closed

Linux launch script should not set LD_LIBRARY_PATH #1682

mash-graz opened this issue Oct 10, 2017 · 3 comments

Comments

@mash-graz
Copy link

mash-graz commented Oct 10, 2017

Original issue title: incompatibility of included glib (undefined symbol: g_log_structured)

the libglib-2.0.so.0 packed into natrons downloadable debian packages shows some nasty incompatibilities affecting self compiled ofx-plugins resp. their dependencies.

you can reproduce this behavior by installing the CI generated binaries, which i created for the PARP pugins using a debian:testing build context. natron will report:

couldn't open library /usr/OFX/Plugins/RemoveScratches.ofx.bundle/Contents/Linux-x86-64/RemoveScratches.ofx because /usr/lib/x86_64-linux-gnu/libatk-1.0.so.0: undefined symbol: g_log_structured
couldn't open library /usr/OFX/Plugins/ShotCutDetection.ofx.bundle/Contents/Linux-x86-64/ShotCutDetection.ofx because /usr/lib/x86_64-linux-gnu/libatk-1.0.so.0: undefined symbol: g_log_structured
couldn't open library /usr/OFX/Plugins/Deflicker.ofx.bundle/Contents/Linux-x86-64/Deflicker.ofx because /usr/lib/x86_64-linux-gnu/libatk-1.0.so.0: undefined symbol: g_log_structured

this undefined symbol: g_log_structured error seems to be related to an incompatibility affecting all newer linux distributions. in the meanwhile they all have enabled G_LOG_USE_STRUCTURED=1 in their system glib and all depending libraries are incompatible to older versions without this setting.

as a simple temporary workaround users are able to manually remove/rename the glib installed by natron (/opt/Natron2/lib/libglib-2.0.so.0), but that's just a questionable hack...

@devernay
Copy link
Collaborator

the Natron launch script sets the LD_LIBRARY_PATH to /opt/Natron2/lib, which is a bad thing (LD_LIBRARY_PATHshould never be set in linux). The Natron install script should instead modify all the natron binaries (executables and libraries) using patchelf --set-rpath --force-rpath to point to the natron library. That way, dynamic libraries loaded by the plugins may have the same name as the libraries bundled with natron.

We do that on macOS (using install_name_tool), but the linux stuff was written by someone else who wasn't aware of these issues.

@devernay devernay changed the title incompatibility of included glib (undefined symbol: g_log_structured) Linux launch script should not set LD_LIBRARY_PATH Oct 10, 2017
@devernay
Copy link
Collaborator

devernay commented Nov 8, 2017

should be fixed in the snapshots, can you please test?

@devernay devernay added this to the 3.0 milestone Nov 8, 2017
@devernay devernay self-assigned this Nov 8, 2017
@devernay
Copy link
Collaborator

fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants