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: [email protected], matrix: @alastair:sceal.ie,
phone: 087-6847928
Green Party Councillor, Galway County Council