Trying to understand jll dependency version

This comes up in my testing of the current nightly, v1.7, where using DifferentialEquations fails due to one of its dependencies (Sundials). This has been reported by someone here

The gist might be:

  • The current Sundials_jll depends on SuiteSparse_jll. The version of SuiteSparse is not specified in the build script, but defaults to 5.4.0, same as the current libsuitesparse that comes with julia 1.6
    [otool -L shows the offending sundials library libsundials_sunlinsolklu.3.2.0.dylib depends on a hard-coded suitesparse version @rpath/libsuitesparseconfig.5.4.0.dylib]

  • In julia v1.7 the suitesparse library is updated to 5.8.1 here, and the hard-coded dependency SuiteSparse 5.4.0 is not present. Then, using DifferentialEquations fails with

julia> using DifferentialEquations
[ Info: Precompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]
ERROR: LoadError: InitError: could not load library 
[...]
dlopen([...]/libsundials_sunlinsolklu.3.2.0.dylib, 1): 
Library not loaded: @rpath/libsuitesparseconfig.5.4.0.dylib
  Referenced from: [...]/libsundials_sunlinsolklu.3.2.0.dylib
  Reason: image not found

Maybe this change affects other packages that depends on SuiteSparse too? What might be a good fix for this?

If I understand the problem correctly, a new version of Sundial should be build against the new SuiteSparse

1 Like