odb-api includes mpi-default-dev, which defaults to libopenmpi-dev.
This may be failing if another mpi (mpich-dev) is installed instead. I agree hard-coding including libopenmpi-dev is needed for the moment.
The CMake code in the ECMWF stack (eccodes, magics++, metview, ...) is brittle, and leaks dependencies. Adding a dependency lower down the chain (eg odb-api) breaks packages up the chain (metview) unless they include all dev libraries, etc. which in turn is bad for transitions.
I've recently packaged the underlying build cmake code (ecbuild, currently bundled into the ECMWF tarballs), and will start patching it to fix this brittleness; if eg libodb-api.so is built with libssl.so, libssl-dev should not be needed for metview to build.
Secondly, i'm refactoring some of the components. eckit, fckit, atlas are available independently at github so I'm packaging them separately from odb-api.
regards Alastair On 29/08/2019 13:35, Gianfranco Costamagna wrote:
Source: odb-api Version: 0.18.1-6 Severity: serious tags: patch Hello, looks like for some reasons eckit in Ubuntu fails to see the include directory for openmpi, because it simply doesn't exist adding libopenmpi-dev dependency to odb-api should fix the issue, bringing the directory back when cmake tries to find header files /usr/lib/x86_64-linux-gnu/pkgconfig/odb.pc:ODB_CC=/usr/bin/cc -pthread -I/usr/lib/x86_64-linux-gnu/openmpi/include -I/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi -Wdate-time -D_FORTIFY_SOURCE=2 -pipe -fopenmp -fPIC -I${prefix}/include /usr/lib/x86_64-linux-gnu/cmake/odb/odb-import.cmake:set(ODB_ENVIRONMENT "ODB_ROOT=/usr;ODB_SYSPATH=/usr/include;ODB_BINPATH=/usr/bin;ODB_BEBINPATH=/usr/bin;ODB_FEBINPATH=/usr/bin;ODB_LIBPATH=/usr/lib;ODB_RTABLE_PATH=/usr/share/odb;ODB_SYSDBPATH=/usr/share/odb;ODB_CC=/usr/bin/cc -pthread -I/usr/lib/x86_64-linux-gnu/openmpi/include -I/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi -Wdate-time -D_FORTIFY_SOURCE=2 -pipe -fopenmp -fPIC -I/usr/include;ODB_F90=/usr/bin/gfortran -g -O2 -fdebug-prefix-map=/build/odb-api=. -fstack-protector-strong -fopenmp -fPIC -ffree-line-length-none -I/usr/include -I/usr/module -I/usr/odb/module;ODB_COMPILER=/usr/bin/odb98.x -V -O3;ODB_COMPILER_FLAGS=/usr/share/odb/odb98.flags;ODB_STATIC_LINKING=1;ODB_LD_SHARED=none;ODB_LD_SHARED_SFX=.so;ODB_IOASSIGN_MAXPROC=32;ODB_IOASSIGN_PARAMS=-r 1m -w 1m;ODB_AR=/usr/bin/ar;ODB_GZIP=/bin/gzip;ODB_GUNZIP=/bin/gunzip;ODB_SETUP_SHELL=/bin/sh") it looks like used and needed snip of the failing log: -- The following OPTIONAL packages have not been found: * Git * fckit (required version >= 0.6.2) * transi (required version >= 0.4.4) * CGAL * gridtools_storage -- ENABLE_EXPOSE_SUBPACKAGES is On: -- All packages in the bundle will be installed at the same level into: -- /usr -- Configuring done CMake Error in atlas/src/atlas/CMakeLists.txt: Imported target "eckit_mpi" includes non-existent path "/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi" in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include: * The path was deleted, renamed, or moved to another location. * An install or uninstall procedure did not complete successfully. * The installation package was faulty and references files it does not provide. CMake Error in atlas/src/atlas/CMakeLists.txt: Imported target "eckit_mpi" includes non-existent path "/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi" in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include: * The path was deleted, renamed, or moved to another location. * An install or uninstall procedure did not complete successfully. * The installation package was faulty and references files it does not provide. trivial patch here: https://launchpad.net/ubuntu/+source/odb-api/0.18.1-6ubuntu1 Gianfranco
-- Alastair McKinstry, email: alast...@sceal.ie, matrix: @alastair:sceal.ie, phone: 087-6847928 Green Party Councillor, Galway County Council