robotology / blockfactory

A tiny framework to wrap algorithms for dataflow programming
https://robotology.github.io/blockfactory
GNU Lesser General Public License v2.1
40 stars 16 forks source link

When installing the blockfactory and any blockfactory-based plugin in the `/usr` prefix ideally no enviromental variable would need to be set to find the plugins #34

Open traversaro opened 5 years ago

traversaro commented 5 years ago

@traversaro wrote:

Additionally, w.r.t. to debian packaging, it would be good if the default installation prefix was in the search path even without the need to define BLOCKFACTORY_PLUGIN_PATH, so that if in the future we have deb package of BlockFactory + WB-Toolbox, they will just work out of the box without the need to define any env variable.

@diegoferigo replied:

This is more complicated. If we install plugins in one of the default linker folder, we get the same problems due to LD_LIBRARY_PATH we recently discussed in https://github.com/robotology/ycm/issues/199 and https://github.com/robotology/robotology-superbuild/issues/97.

traversaro commented 5 years ago

This is more complicated. If we install plugins in one of the default linker folder, we get the same problems due to LD_LIBRARY_PATH we recently discussed in https://github.com/robotology/ycm/issues/199 and https://github.com/robotology/robotology-superbuild/issues/97.

I am a bit confused. If when installing in /usr on Ubuntu the default installation folder for blockfactory plugins is /usr/lib/x86_64-linux-gnu/blockfactory , why searching it this directory by default there will create any LD_LIBRARY_PATH related problem?

traversaro commented 5 years ago

Anyhow, until we address packaging this is not really important.

traversaro commented 5 years ago

Now I perhaps remember that in YARP we discussed in the past to add some kind of logic "search in the same prefix in which YARP it is installed", but we had problems related to how to implement this in a relocatable way, and you needed to obtained the path to the YARP libraries, and this was not possible/easy on Windows.

diegoferigo commented 5 years ago

Considering that I never had yet direct experience of packaging archives for debian-based distros, I drop here few links that might be useful in the future:

Probably I didn't explain myself good enough, and probably I might have been wrong. Assuming we are installing the library in /usr/lib/x86_64-linux-gnu/blockfactory, I do not honestly know if the linker checks by default all the subfolders inside /usr/lib/x86_64-linux-gnu. However, also in this case, including in the deb package a proper conf file installed inside /etc/ld.so.conf.d/ might suffice.

I'm not sure, but in light of this maybe also with the current situation installing in the system lib directory would not need any edit to the environment variables.