WIP: Include support for cross-platform deps.jl #130
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Given two machines
Mac
andLinux
with the respective OSes, the following currently does not work:addproc({"Linux"})
on theMac
using HDF5
The problem is that the auto-generated
deps.jl
file, which is included byHDF5/src/plain.jl
on PID1
, has the path to the dynamic library hard-coded, and every worker sees exactly that string, not the one which corresponds to the worker's machine.(HDF5 is just used as an example here, and any OS/package-manager mismatch where workers have their libraries at different paths would fail as well)
This PR includes 2 changes:
deps.jl
cannot load the hard-coded path, it looks for the local installation of the package and uses itsdeps.jl
include_deps(pkgname)
which can be used by HDF5 to load its library (see update for cross platform bindeps JuliaIO/HDF5.jl#221), which make sure to use the localdeps.jl
Only drawback I found so far is that existing
build.jl
scripts need to be updated to include the package name when calling@BinDeps.install
- any ideas how to get around this?