Set HDF5_DIR as environment variable during YODA build#5942
Set HDF5_DIR as environment variable during YODA build#5942jackal1-66 wants to merge 1 commit intoalisw:masterfrom
Conversation
|
This will not do what you claim it does. It will set HDF5_DIR for all the yoda dependencies, not for yoda itself. What should be done to properly handle relocation is that Rivet finds out about HDF5 by itself, not by relying on YODA. Not doing so will break dependencies whenever YODA and HDF5 are built separately. |
|
From what I saw in the source code of YODA the main issue is that HDF5_CPPFLAGS is replaced in yoda-config with the output of |
|
Yes, everything works fine as long as YODA and HDF5 are built at the same time. The recent PR #5941 triggered a rebuild of YODA, but not HDF5, exposing the issue. The bottomline is that for being properly relocatable and able to build independently, packages should not cache the paths of their dependencies. The correct fix is to get --with-h5df work in Rivet. All the other changes to YODA will break next time we touch GMP or similar. |
|
Can't we simply set H5DF_DIR inside the rivet recipe? |
|
Unfortunately this won't work. Because the include path is generated from the yoda-config executable: |
|
Can't we set CPPFLAGS like we do for LDFLAGS? |
h5cc sets the include directory in yoda-config which is used later to set cppflags in Rivet. the dailytag is wrongly taken when building in docker/CI, so the folder must be correctly set at building time.
Not clear why this was working before. An update somewhere must have had an effect here (no updates since a month on Rivet, hdf5, Yoda and GMP).