Conversation
|
Hi @johnwparent! I noticed that the following package(s) don't yet have maintainers:
Are you interested in adopting any of these package(s)? If so, simply add the following to the package class: maintainers = ["johnwparent"]If not, could you contact the developers of this package and see if they are interested? You can quickly see who has worked on a package with $ spack blame netcdf-cxxThank you for your help! Please don't add maintainers without their consent. You don't have to be a Spack expert or package developer in order to be a "maintainer," it just gives us a list of users willing to review PRs or debug issues relating to this package. A package can have multiple maintainers; just add a list of GitHub handles of anyone who wants to volunteer. |
|
I guess it makes sense to reference #33564 here. |
|
@spackbot run pipeline |
|
I've started that pipeline for you! |
|
@spackbot run pipeline |
|
I've started that pipeline for you! |
scheibelp
left a comment
There was a problem hiding this comment.
I have one question and one request
|
|
||
| IF(MPI_C_INCLUDE_PATH) | ||
| target_include_directories(netcdf PUBLIC ${MPI_C_INCLUDE_PATH}) | ||
| + target_link_libraries(netcdf MPI::MPI_C) |
There was a problem hiding this comment.
These patches appear to be fundamental - do you know if there are any PRs for netcdf-c adding this functionality?
There was a problem hiding this comment.
Sorry, I must have missed this comment last week. Yes, there are, I made a PR implementing the relevant changes in netcdf around when I made this PR. FWIW the include change was not included in my changes as it seems as if there is some debate as to that point between netcdfc and hdf5.
|
Interestingly, the CI appears to fail legitimately here too, but for Paraview depends on |
|
@scheibelp I have determined the origin of the error (Netcdfc's cmake is the culprit) and am in the process of creating yet another patch and upstream PR to netcdfc to fix this. |
66b7539 to
bc079e6
Compare
| depends_on("autoconf", type="build", when="@4.7.0,main") | ||
| depends_on("automake", type="build", when="@4.7.0,main") | ||
| depends_on("libtool", type="build", when="@4.7.0,main") | ||
| depends_on("m4", type="build") |
There was a problem hiding this comment.
Are you sure, we don't need m4 when building with cmake (e.g. here)?
There was a problem hiding this comment.
netcdf-c master (and any subsequent releases post 4.9.0) will likely need this enabled yes, however for the time being netcdf-c builds perfectly fine without it as the files m4 is looking to generate are checked into source. I'll add the dep back for linux platforms, but as Spack does not currently support installing m4 for Windows, we won't add it as a dep for Windows.
NetCDF-C patches Fixup netcdf HDF5+zlib detection Netcdf's cmake is unable to detect that HDF5 was compiled with zlib Add a patch that allows for said detection netcdf-c patch ill formed cmakelists Add netcdf linker patch
d9c8cf6 to
a7ba778
Compare
| # need to know whether to add "-lz" to the symbol | ||
| # tests below. | ||
| - CHECK_C_SOURCE_COMPILES("#include <H5public.h> | ||
| + CHECK_C_SOURCE_COMPILES("#include <H5pubconf.h> |
There was a problem hiding this comment.
@johnwparent This patch reverts Unidata/netcdf-c#1731 and H5public.h does include H5pubconf.h. So, why is it needed on Windows?
I am asking because I am refactoring the netcdf-c package now and figuring out whether we need all the patches we apply.
| class BackupStep: | ||
| @property | ||
| def _nc_config_backup_dir(self): | ||
| return join_path(self.pkg.metadata_dir, "spack-nc-config") | ||
|
|
||
| @run_after("install") | ||
| def backup_nc_config(self): | ||
| # We expect this to be run before filter_compiler_wrappers: | ||
| nc_config_file = self.prefix.bin.join("nc-config") | ||
| if os.path.exists(nc_config_file): | ||
| mkdirp(self._nc_config_backup_dir) | ||
| install(nc_config_file, self._nc_config_backup_dir) |
There was a problem hiding this comment.
If we want to decorate with run_after a method from a class that is not a builder, we need to set explicitly the correct metaclass:
class BackupStep(metaclass=spack.builder.PhaseCallbacksMeta):
...There was a problem hiding this comment.
Is this or any of the other several multi build gotchas documented anywhere that I seem to be missing?
Edit: This is clearly a python language thing rather than a spack thing, but could still use a more obvious callout.
Ports of Netcdf-c to be compatible with Windows - end goal of supporting Paraview on Windows.