-
-
Notifications
You must be signed in to change notification settings - Fork 5.1k
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
Add recipe for libpnetcdf #21797
Add recipe for libpnetcdf #21797
Conversation
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( I do have some suggestions for making it better though... For recipes/libpnetcdf:
Documentation on acceptable licenses can be found here. |
recipe-maintainers: | ||
- xylar |
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.
@zklaus, would you be willing to be a maintainer of the PNetCDF library? It seems like it would make sense since you're a maintainer (and a very helpful one!) for parallelio.
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.
Sure, can do 👍
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.
Great, thank you! Feel free to review and recommend changes.
@conda-forge/help-c-cpp, this is ready for your review. |
recipes/libpnetcdf/meta.yaml
Outdated
ignore_run_exports_from: | ||
- netcdf-fortran |
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.
We have had trouble with run_exports
from netcdf-fortran in the parallellio
feedstock, so I'm assuming that might be an issue here, too.
https://github.com/conda-forge/parallelio-feedstock/blob/main/recipe/meta.yaml#L33-L34
@conda-forge/help-c-cpp, I'm sure you have a giant backlog but just wanting to check in about when you might be able to review this. |
recipes/libpnetcdf/meta.yaml
Outdated
commands: | ||
- pnetcdf-config --all | ||
- test ! -f ${PREFIX}/lib/libpnetcdf.a | ||
- test -f ${PREFIX}/lib/libpnetcdf${SHLIB_EXT} | ||
- pnetcdf-config --has-c++ | grep -q yes | ||
- pnetcdf-config --has-fortran | grep -q yes | ||
- pnetcdf-config --netcdf4 | grep -q enabled |
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.
This recipe has a run_export which means there should be some existence tests for header files and package config files?
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.
Again, good call. I've added these. Let's see how the testing goes.
@carterbox, thank you for your review and your patience with my inexperience at this. This is ready for you to re-reveiw when you get a chance. |
@conda-forge/help-c-cpp, ready for review! |
recipes/libpnetcdf/meta.yaml
Outdated
host: | ||
- {{ mpi }} | ||
# these need to be listed twice so conda build picks up the pins | ||
- libnetcdf |
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.
There is an overlinking warning on OSX for libnetcdf. Please check that you're not static linking.
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.
Is this the issue holding up this PR? The build link is no longer there, can you re trigger? And if possible give more detail as to the issue - the configure line above clearly specifies shared and not static libraries.
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.
@jedwards4b, I reran the CI yesterday. I believe this is the equivalent line in the latest run:
https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=722946&view=logs&j=e35d4f76-8ff2-5536-d795-df91e63eb9f7&t=fa7b4b17-b6ff-5c9c-8cfc-15f888c92310&l=4270
WARNING (libpnetcdf): run-exports library package conda-forge::libnetcdf-4.8.1-mpi_openmpi_hb9a5949_6 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to `build/ignore_run_exports`)
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.
Here is the same but for mpich instead of openmpi:
https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=722946&view=logs&j=e35d4f76-8ff2-5536-d795-df91e63eb9f7&t=fa7b4b17-b6ff-5c9c-8cfc-15f888c92310&l=7598
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.
@carterbox, I believe the issue is that static libraries were shipped with libnetcdf
until v4.9.0: conda-forge/libnetcdf-feedstock#140.
It seems like the easiest option might be to migrate straight to a later libnetcdf
. Is the best way to do that just to add a conda_build_config.yaml
with the desired pin? Or is there a way to bring in the migrator into the recipe somehow?
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.
@jedwards4b, is there any way that my recipe could be misconfigured (for OSX in particular) and not be linking libpnetcdf
with libnetcdf
at all?
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.
Linking pnetcdf to netcdf is a new feature and one that I haven't used. Do you need it? What if we just remove the netcdf dependancy?
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.
I see, I assumed it was required. We can remove it.
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.
What about netcdf-fortran
? I guess it can't need that either if it doesn't need netcdf-c
?
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.
@jedwards4b, I think I'm starting to understand. I have --with-netcdf4=${PREFIX}
in the build and I will need to remove that if we're not using libnetcdf
. Otherwise, I see (predictably):
------------------------------------------------------------
Missing NetCDF-4 header files 'netcdf.h' or 'netcdf_meta.h'
required to build PnetCDF with NetCDF-4 support. Use option
--with-netcdf4=/path/to/implementation
to specify the location of NetCDF-4 installation. In addition,
please make sure the MPI C compiler is compatible with the one
used to build NetCDF-4. Check 'config.log' for more information.
Stopping ...
------------------------------------------------------------
Would that be your suggestion to begin with? Build without the --with-netcdf4
flag?
Assuming that's the case, I'll try removing it.
Will replace this with a migrators once we have a feedstock.
recipe-maintainers: | ||
- xylar | ||
- zklaus | ||
- jedwards4b |
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.
@jedwards4b, are you also interested in being a maintainer? If so, your help would be quite valuable.
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.
Sure, please add me as a maintainer. Thanks
@conda-forge/help-c-cpp, ready for review! |
@conda-forge/help-c-cpp and @carterbox, I have removed |
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.
In the interest of getting this merged :)
Thanks a bunch @carterbox. I know this was a slog. |
Checklist
url
) rather than a repo (e.g.git_url
) is used in your recipe (see here for more details).