Skip to content

Use a dedicated plugin directory instead of relying on LD_LIBRARY_PATH

  • Plugins are not general purpose libraries but should instead be installed in a dedicated, version-specific directory.

  • We should support a PDI_PLUGIN_PATH environment variable containing a :-separated list of directories and look in these for the plugins to dlopen(). The variable should support escaping : with \: to represent a raw : instead of a list separator and \\ to represent a single \.

  • We should add a new key at the root of the configuration plugin_path containing a list of additional directories to look in.

  • A default path set at compile time (using CMake configure_file) should be used if none of these work. Ideally this path should be relative to the pdi library path, maybe the path to the library can be extracted using dladdr.

All of these should be handled in the get_plugin_ctr function of global_context.cxx, maybe this should be externalized in a new dedicated file.

Edited by Karol Sierocinski
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information