-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Conda not properly updating library linking #10335
Comments
The shared library (.so) versions are determined at link-time when the package is built, and it would be a really bad idea for conda to modify the "needed libraries" data of the executables & libraries at package install time; such SONAME changes often indicate API and/or ABI incompatibilities, so having conda change the required versions would very likely lead to broken applications. As you noted in the ticket, the correct way of handling this is to write your recipe so that your package properly states the versions of the libraries it needs. Note that if you are using conda-build >=3.0 and conda-forge/defaults channel packages, this should (largely) be handled automatically via the
|
Hi there, thank you for your contribution to Conda! This issue has been automatically locked since it has not had recent activity after it was closed. Please open a new issue if needed. |
Current Behavior
Some of our users attempted to install our package via Conda and had a issues with Anaconda not properly updating the linking on a dynamic library file. Conda solved for Armadillo 8, but the main library seemed to be trying to link Armadillo 9 after it was installed. You can see their bug reports here:
I wasn't able to reproduce their exact solves, but by first installing Armadillo8.200.0 I was able to reproduce their environments.
From there ldd showed that libisis was linking against libarmadillo9 instead of libarmadillo8:
Attempting to run an executable that linked against libisis resulted in a library not found error for libaramadillo9:
Manually installing armadillo 9.200 from conda-forge (
conda install -c conda-forge armadillo=9.200
) solved the libarmadillo error but revealed a similar issue with gsl:Manually installing gsl 2.6 (
conda install gsl=2.6
) solve this and finally allowed the executable to run:Steps to Reproduce
Commands are for bash on Linux
Expected Behavior
I would expect Anaconda to update the linking on libisis so that it links the versions of armadillo and gsl that were installed.
The ldd command should properly show libisis linking against libarmadillo8:
The fx application should properly return its arguments
Is this too much to ask Anaconda to do? Do we need to pin the major version on armadillo in our conda-build recipe?
Environment Information
`conda info`
`conda config --show-sources`
`conda list --show-channel-urls`
The text was updated successfully, but these errors were encountered: