-
Notifications
You must be signed in to change notification settings - Fork 89
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
simple optional path to download HDF5 from conda and statically link #138
base: master
Are you sure you want to change the base?
Conversation
|
||
#[cfg(target_os = "windows")] | ||
{ | ||
println!("cargo:rustc-link-lib=static=zlibstatic"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will this clash with zlib-sys
?
This is a whole lot of (optional) dependencies to add to the project to solve something package managers should be able to do. We also have the If we go ahead with a pure conda option we should add a new crate ( |
Ok, given this is the last of the old hanging PRs, what's the deal with this? |
A build time installation of a package only supporting x64 seems a bit backwards to me. Building from source remains a viable option which works on most platforms, and is very easy to configure, although expensive to compile and hard to use for other packages. Half of the problem could be solved with #106. @pmarks or @luiz10x Is this used by you in the current form? |
Yes, we're still using this mode -- it's been the best way for us to make tools that use hdf5 'just work', without requiring the user to install anything (including
It doesn't actually install the package, it just downloads it and extracts the static library & instructs cargo to link to it. |
@pmarks I think if we're to include it in the base distribution, we better make it flexible enough. Few questions:
|
Regardless, I think this is too long of a discussion and there's too many unknowns at the moment to resolve it quickly, so let's consider it for 0.9 so it doesn't hold off releasing the 0.8 which is already a humongous release. (The questions listed above need to be answered first anyhow - and then we can think of how to proceed if we all agree on something) |
Agreed, it needs more thought so shouldn't be considered for 0.8.
We probably can, I'll try. I probably didn't know how to do this when I originally made the patch.
I don't have a strong opinion. I thought anaconda was more 'official', but I don't really know the difference.
It's hardcoded right now, but easy enough to support more versions. Do people think it's valuable to be able to select a version in the
conda has all these, so maybe it's possible? There's a note in the readme saying mpi isn't support in static mode - is that still true? Would that preclude using mpi in this case?
I thought |
I've had a go at this which resulted in the following branch. This moves the extraction to a helper crate, decreasing dev-dependencies. It seems dependencies for hdf5-c must also be downloaded and linked appropriately (on non-linux), which might conflict badly with libraries installed from elsewhere. Is support for macos and windows necessary, or could somebody with experience maybe try to fix this for these platforms? |
We've been maintaining this as separate branch for a while: it works really well for us to get reliable builds on diverse machines without requiring an HDF5 installation & to have unit test in downstream crates work seamlessly.
Is this something you'd be open to? Any suggestions on how you'd like to approach it differently?