netcdf-fortran: fix netcdf-c dependency when ~mpi#16671
netcdf-fortran: fix netcdf-c dependency when ~mpi#16671becker33 merged 1 commit intospack:developfrom nicholas-sly:develop
Conversation
|
@skosukhin @WardF do y'all have any problem with this? |
becker33
left a comment
There was a problem hiding this comment.
LGTM, waiting on maintainers to approve.
|
I don't really like that we have Regarding this PR. If we say that
|
|
@skosukhin are you sure it's possible to build |
|
@becker33 I am not saying that it's possible to build |
|
So a conflict statement needs to exist in A member of my team that builds these products for our deployments pre-Spack has expressed interest in having all of the netcdf packages merged into a single package with each instance being a variant. I believe he's working on an example |
|
Hi, I support the netcdf package at LANL. I build all the languages in the same prefix one after the other, and we've been doing it like this since before I took over the package. That is, there is no netcdf-fortran path or modulefile, there is only netcdf and I build netcdf-fortran and netcdf-cxx into it. It's more convenient to consider netcdf a single package so the user only has to load a single module even if they need c, cxx, and fortran libraries to compile an application. It's also more in line with the way similar software is built, in spack hdf5 has options for fortran and cxx. So in my opinion, if possible within the spack api, netcdf should be provided as a package with fortran and cxx options. It would have to run configure, make, make install 3 times during the installation if both options are set. |
|
@nicholas-sly it is possible (not in Spack but in principle) to build spack/var/spack/repos/builtin/packages/netcdf-c/package.py Lines 102 to 110 in 31ccf80 #10788 ignored this and made the conflict redundant because now we have: spack/var/spack/repos/builtin/packages/netcdf-c/package.py Lines 99 to 100 in 31ccf80 There is also a long-pending #15950, which fixes some related issues plus cleans up the conflicts and the comments. However, it is possible that we allow for Also, as I have already mentioned, Personally, I don't like that we started putting conflicts and introduce redundant variants just to improve the usability. I like Spack for its flexibility. I have created #16719 that demonstrates how @dmageeLANL I agree that most likely the end-users will be more comfortable with having one module in one installation directory. However, I guess this should be possible with Spack environments and/or Spack views (I am not really familiar with those features yet). If that is not the case, it should become a feature request. One way of merging
|
|
@skosukhin I think you're right that we should re-work the integration between netcdf-c and netcdf-fortran. But that's a bigger project, and I don't think we should hold up this bugfix over it, as this will allow people to avoid broken builds right now and the PR you outlined will take more time. |
Add netcdf-c
parallel-netcdf variant specification to netcdf-fortranmpi.Having
netcdf-c+parallel-netcdfas the dependency will result in an error when buildingnetcdf-fortran~mpiwherenetcdf-cis trying to use MPI symbols that the serial compiler buildingnetcdf-fortrancan't handle.