HDF5 errors when attempting install from source

I have made numerous attempts at installing openmc from source on Ubuntu 20.04 and each time it fails with error messages:
CMake Error at /usr/share/cmake-3.16/Modules/FindHDF5.cmake:534 (get_target_property):
get_target_property() called with non-existent target “hdf5_hl”.
‘Could NOT find HDF5 (missing: HL) (found version “1.8.13”)’

Seems I have an elusive hdf5_hf file. I tried the suggestions in similar posts including setting the HDF5_ROOT env. I’m out of ideas, any help would be appreciated. The output from h5cc -showconfig is listed below.

The reason I’m even bothering to build from source is for the particle track file upgrade discussed elsewhere. Is there an estimate as to when the the next release will be available?


General Information:
                   HDF5 Version: 1.10.6
                  Configured on: Fri Jan  8 22:51:14 UTC 2021
                  Configured by: conda@7e850037a917
                    Host system: x86_64-conda-linux-gnu
              Uname information: Linux 7e850037a917 4.15.0-1100-azure #111~16.04.1-Ubuntu SMP Thu Nov 19 06:49:21 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
                       Byte sex: little-endian
             Installation point: /home/brian/miniconda3/envs/test4

Compiling Options:
                     Build Mode: production
              Debugging Symbols: no
                        Asserts: no
                      Profiling: no
             Optimization Level: high

Linking Options:
                      Libraries: static, shared
  Statically Linked Executables: 
                        LDFLAGS: -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,-rpath,/home/brian/miniconda3/envs/test4/lib -Wl,-rpath-link,/home/brian/miniconda3/envs/test4/lib -L/home/brian/miniconda3/envs/test4/lib
                     AM_LDFLAGS:  -L/home/brian/miniconda3/envs/test4/lib
                Extra libraries: -lcrypto -lcurl -lrt -lpthread -lz -ldl -lm 
                       Archiver: /home/conda/feedstock_root/build_artifacts/hdf5_split_1610146090360/_build_env/bin/x86_64-conda-linux-gnu-ar
                       AR_FLAGS: cr
                         Ranlib: /home/conda/feedstock_root/build_artifacts/hdf5_split_1610146090360/_build_env/bin/x86_64-conda-linux-gnu-ranlib

                              C: yes
                     C Compiler: /home/conda/feedstock_root/build_artifacts/hdf5_split_1610146090360/_build_env/bin/x86_64-conda-linux-gnu-cc
                       CPPFLAGS: -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /home/brian/miniconda3/envs/test4/include
                    AM_CPPFLAGS:  -I/home/brian/miniconda3/envs/test4/include
                        C Flags: -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/brian/miniconda3/envs/test4/include -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/hdf5_split_1610146090360/work=/usr/local/src/conda/hdf5_split-1.10.6 -fdebug-prefix-map=/home/brian/miniconda3/envs/test4=/usr/local/src/conda-prefix
                     H5 C Flags:  -std=c99  -pedantic -Wall -Wextra -Wbad-function-cast -Wc++-compat -Wcast-align -Wcast-qual -Wconversion -Wdeclaration-after-statement -Wdisabled-optimization -Wfloat-equal -Wformat=2 -Wno-format-nonliteral -Winit-self -Winvalid-pch -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpacked -Wredundant-decls -Wshadow -Wstrict-prototypes -Wswitch-enum -Wswitch-default -Wundef -Wunused-macros -Wunsafe-loop-optimizations -Wwrite-strings -Wlogical-op -Wlarger-than=2560 -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants -Wdouble-promotion -Wtrampolines -Wstack-usage=8192 -Wvector-operation-performance -Wdate-time -Warray-bounds=2 -Wc99-c11-compat -Wnull-dereference -Wunused-const-variable -Wduplicated-cond -Whsa -Wnormalized -Walloc-zero -Walloca -Wduplicated-branches -Wformat-overflow=2 -Wformat-truncation=2 -Wimplicit-fallthrough=5 -Wrestrict -Wattribute-alias -Wcast-align=strict -Wshift-overflow=2 -Wattribute-alias=2 -Wmissing-profile -fstdarg-opt -s -Wno-inline -Wno-aggregate-return -Wno-missing-format-attribute -Wno-missing-noreturn -Wno-suggest-attribute=const -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn -Wno-suggest-attribute=format -Wno-suggest-attribute=cold -Wno-suggest-attribute=malloc -O3
                     AM C Flags: 
               Shared C Library: yes
               Static C Library: yes

                        Fortran: yes
               Fortran Compiler: /home/conda/feedstock_root/build_artifacts/hdf5_split_1610146090360/_build_env/bin/x86_64-conda-linux-gnu-gfortran
                  Fortran Flags: 
               H5 Fortran Flags:  -pedantic -Wall -Wextra -Wunderflow -Wimplicit-interface -Wsurprising -Wno-c-binding-type  -s -O2
               AM Fortran Flags: 
         Shared Fortran Library: yes
         Static Fortran Library: yes

                            C++: yes
                   C++ Compiler: /home/conda/feedstock_root/build_artifacts/hdf5_split_1610146090360/_build_env/bin/x86_64-conda-linux-gnu-c++
                      C++ Flags: -fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/brian/miniconda3/envs/test4/include -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/hdf5_split_1610146090360/work=/usr/local/src/conda/hdf5_split-1.10.6 -fdebug-prefix-map=/home/brian/miniconda3/envs/test4=/usr/local/src/conda-prefix
                   H5 C++ Flags:   -pedantic -Wall -W -Wundef -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wredundant-decls -Winline -Wsign-promo -Woverloaded-virtual -Wold-style-cast -Weffc++ -Wreorder -Wnon-virtual-dtor -Wctor-dtor-privacy -Wabi -finline-functions -s -O
                   AM C++ Flags: 
             Shared C++ Library: yes
             Static C++ Library: yes

                           Java: no

                   Parallel HDF5: no
Parallel Filtered Dataset Writes: no
              Large Parallel I/O: no
              High-level library: yes
                Build HDF5 Tests: yes
                Build HDF5 Tools: yes
                    Threadsafety: yes
             Default API mapping: v110
  With deprecated public symbols: yes
          I/O filters (external): deflate(zlib)
                             MPE: no
                      Direct VFD: no
              (Read-Only) S3 VFD: yes
            (Read-Only) HDFS VFD: no
                         dmalloc: no
  Packages w/ extra debug output: none
                     API tracing: no
            Using memory checker: yes
 Memory allocation sanity checks: no
          Function stack tracing: no
       Strict file format checks: no
    Optimization instrumentation: no

Usually if I’m trying to build using an HDF5 installation from conda, I would set HDF5_ROOT=$CONDA_PREFIX. But, it sounds like you may have already tried that. Beyond that, I’m not sure what to suggest. Perhaps you can try updating the HDF5 package, or change the conda channel you’re using for HDF5 (namely, try conda-forge).

Paul, the problem was using apt to install the prerequisites within a conda environment. The conda documentation has a warning about using pip within a conda environment but it appears similar problems arise when using the apt package manager. It suggests using pip (apt?) only after all conda installs are completed, which is problematic when installing prerequisites. I made the following substitutions:
“conda install hdf5=1.12.1=nompi_h4df4325_104 -c conda-forge”
for “sudo apt install libhdf5-dev”

“conda install libpng-devel-cos7-x86_64=1.5.13=h9b0a68f_1105 -c conda-forge”
for “sudo apt install libpng-dev”

“conda install cmake=3.23.2=h5432695_0 -c conda-forge”
for “sudo apt install cmake”

then pointed to the local g++ compiler and it worked. It seems that Conda containers can get somewhat leaky.

I was able to convert the new “track.h5” file to a vtp format with the openmc-track-to-vtk script. However, I can’t seem to find the new TrackFile Python class mentioned in pull request #2071 to work with the data within openmc.

I tried accessing the track file with openmc.Track(‘tracks.h5’) but errored out with the message … “TypeError: string indices must be integers.” Any guidance would be appreciated.