-
-
Notifications
You must be signed in to change notification settings - Fork 12.5k
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
hdf5: use CMake #159165
hdf5: use CMake #159165
Conversation
Thanks for contributing to Homebrew! 🎉 It looks like you're having trouble with a CI failure. See our contribution guide for help. You may be most interested in the section on dealing with CI failures. You can find the CI logs in the Checks tab of your pull request. |
I'm not an expert but the dep failures seem unrelated. |
99131a4
to
10a6af1
Compare
Yes, failures seem unrelated; see also: https://github.com/Homebrew/homebrew-core/pulls?q=is%3Apr+shmget |
10a6af1
to
2f87418
Compare
Co-authored-by: Julianus Pfeuffer <julianus.pfeuffer@pfizer.com> Co-authored-by: Ruoyu Zhong <zhongruoyu@outlook.com>
2f87418
to
496ce0a
Compare
Does it really need linux self-hosted runners? Slightly more than 1H15 on it seems pretty short and could probably fit within 6H of GitHub runners, right? |
I think it did time out while testing dependents in #140211. |
Mmmmh, maybe also because there were two formulas there vs. only one here. |
Speaking of which: we could add the changes for the hdf5-mpi formula as well. Could benefit from the Cmake- and pkg-config files for easier discoverability as well. |
Let's merge this, and then please make a new PR for |
This is causing universal CI failures for attempting to detect and compile against hdf5 in the Meson CI. hdf5 cannot and must not ever be built with cmake. Using broken build files that upstream doesn't seriously support, just to make cmake's find_package() detect hdf5, is not a real solution. There's a reason that every linux distro I'm aware of builds hdf5 with autotools -- sometimes with comments about how the cmake support is utterly broken, sometimes without comment. |
EDIT: Ignore. I thought you were saying the config files are broken. Can't you just search in "MODULE" mode then? No one forces someone to use those config files. |
Ok it looks like you're saying the build itself is broken with CMake. That is hard for me to judge and I would be interested in some of the bug reports of the distros. |
It appears that this change has broken cmake's The module works by calling
However with these changes
This appears to be because the script is now a very thin wrapper missing a lot of functionality: compare the arg handling in the version that used to be provided https://github.com/HDFGroup/hdf5/blob/develop/bin/h5cc.in with the version now provided https://github.com/HDFGroup/hdf5/blob/develop/config/cmake/libh5cc.in. Also it surprises me that this change has more than tripled the size of the package from 21.4MB to 77.7MB according to |
Ok sorry, let's revert. Unfortunately I do not have the resources to debug this. |
I will forward this to the HDF forum though. |
Sure. Just tell me how to do that from an autotools Makefile and I will get right on that immediately. Considering that hdf5 has been pretty apathetic about delivering pkg-config files even after delivering them for cmake, there's lots of code out in the wild that uses h5cc -show.
And at minimum, the missing -lhdf5 is because of the well known problem that cmake's version of h5cc heard about the idea of "compatibility" and said "what's that, some kind of boring Linux thing?" and implemented the absolute minimum scaffolding needed to be invoked internally by their cmake config file, and absolutely nothing for existing users. If for no other reason, distributors have to ship an autotools build because they need to support existing software that relies on h5cc working. That software cannot use pkg-config because distributors ship an autotools build. This recursive logic will be fixed exactly no sooner than whenever upstream hdf5 accepts that the request to ship a pkg-config file for autotools isn't a request that should be ignored and closed every time someone offers one, then left to rot forever. Admittedly it was some time ago that I was aware of the general brokenness of the cmake build. It is possible that at the time the cmake build was still windows-only despite advertising itself for Linux use, but I don't remember. Maybe it's gotten better. Given the overall disaster that is hdf5 and build systems, I'm not hopeful. They responded to the issue of h5cc being broken with "we have documented in the release.txt that h5cc has changed. Closing this bug report as solved". |
This is because, even for a project notable for lacking expertise at build systems, they have orders of magnitude less expertise in cmake than they have in autotools. But some of it is just cmake's fault, because CMake Is That Way™. |
### Description The macOS GitHub runner is broken once again due to broken Homebrew packages. We fix this by installing a specific version of Python using `actions/setup-python` instead of `brew install python3` and by specifying `brew install hdf5@1.10` (since the Homebrew `hdf5@1.14` package is broken due to Homebrew/homebrew-core#159165). ### Checklist _Before this pull request can be reviewed, all of these tasks should be completed. Denote completed tasks with an `x` inside the square brackets `[ ]` in the Markdown source below:_ - [x] I have added a description (see above). - [ ] I have added a link to any related issues see (see above). - [x] I have read the [Contributing Guide](https://github.com/quokka-astro/quokka/blob/development/CONTRIBUTING.md). - [ ] I have added tests for any new physics that this PR adds to the code. - [ ] I have tested this PR on my local computer and all tests pass. - [ ] I have manually triggered the GPU tests with the magic comment `/azp run`. - [ ] I have requested a reviewer for this PR.
closes #157329 (supersedes it)
closes #157078
tagging @SMillerDev
HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>
, where<formula>
is the name of the formula you're submitting?brew test <formula>
, where<formula>
is the name of the formula you're submitting?brew audit --strict <formula>
(after doingHOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>
)? If this is a new formula, does it passbrew audit --new <formula>
?