Package: libopenmpi-dev
Version: 4.1.6-2
Severity: serious
Justification: ftbfs (other)

openmpi 4.1.6-2 moved the fortran mod files from /usr/lib to
/usr/include.  This is probably correct, but has some consequences we
need to sort out. Applications using cmake for configuration are still
looking for the mod files in /usr/lib, so their builds now fail.

An example is adios2, with error message:

[384/1029] /usr/bin/gfortran 
-I/build/adios2-2.9.2+dfsg1/examples/hello/bpWriter 
-I/build/adios2-2.9.2+dfsg1/build-mpi/bindings/Fortran 
-I/usr/lib/x86_64-linux-gnu/fortran/gfortran-mod-15/openmpi -I/usr/lib/x86_
64-linux-gnu/openmpi/lib -g -O2 -ffile-prefix-map=/build/adios2-2.9.2+dfsg1=. 
-fstack-protector-strong -fstack-clash-protection -fcf-protection 
-Jexamples/hello/bpWriter -fpreprocessed -c examples/hello/bpWriter
/CMakeFiles/hello_bpWriter_f_mpi.dir/helloBPWriter.F90-pp.f90 -o 
examples/hello/bpWriter/CMakeFiles/hello_bpWriter_f_mpi.dir/helloBPWriter.F90.o
FAILED: 
examples/hello/bpWriter/CMakeFiles/hello_bpWriter_f_mpi.dir/helloBPWriter.F90.o 
/usr/bin/gfortran -I/build/adios2-2.9.2+dfsg1/examples/hello/bpWriter 
-I/build/adios2-2.9.2+dfsg1/build-mpi/bindings/Fortran 
-I/usr/lib/x86_64-linux-gnu/fortran/gfortran-mod-15/openmpi 
-I/usr/lib/x86_64-linux-gn
u/openmpi/lib -g -O2 -ffile-prefix-map=/build/adios2-2.9.2+dfsg1=. 
-fstack-protector-strong -fstack-clash-protection -fcf-protection 
-Jexamples/hello/bpWriter -fpreprocessed -c examples/hello/bpWriter/CMakeFiles
/hello_bpWriter_f_mpi.dir/helloBPWriter.F90-pp.f90 -o 
examples/hello/bpWriter/CMakeFiles/hello_bpWriter_f_mpi.dir/helloBPWriter.F90.o
/build/adios2-2.9.2+dfsg1/examples/hello/bpWriter/helloBPWriter.F90:3:9:

    3 |     use mpi
      |         1
Fatal Error: Cannot open module file ‘mpi.mod’ for reading at (1): No such file 
or directory
compilation terminated.

We can see that the compilation got configured to use
-I/usr/lib/x86_64-linux-gnu/fortran/gfortran-mod-15/openmpi
which would be why it can't find mpi.mod in /usr/include

As far as I can tell, adios2 is not making assumptions itself about
the location of the mod files.  I suspect the configuration is coming
from cmake's FindMPI.cmake

I guess we don't want openmpi 4.1.6-2 to migrate to testing until this
issue is resolved, which is why I've marked Severity: serious.

There are openmpi's pkgconfig files.
$ pkg-config --cflags mpi-fort
-I/usr/lib/x86_64-linux-gnu/openmpi/include 
-I/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi 
-I/usr/lib/x86_64-linux-gnu/openmpi/lib 

The fortrandir variable set in ompi-fort.pc is also located in
/usr/lib (perhaps it should be so)

So /usr/include is not used in the include path flags. But /usr/lib is.
This must be the origin of the problem.  cmake's FindMPI.cmake does
indeed use pkgconfig to extract the paths:
"if(_MPI_PKG AND PKG_CONFIG_FOUND)"



-- System Information:
Debian Release: trixie/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.5.0-5-amd64 (SMP w/8 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_AU:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages libopenmpi-dev depends on:
ii  gfortran [gfortran-mod-15]     4:13.2.0-2
ii  gfortran-11 [gfortran-mod-15]  11.4.0-7
ii  gfortran-12 [gfortran-mod-15]  12.3.0-13
ii  gfortran-13 [gfortran-mod-15]  13.2.0-9
ii  libevent-dev                   2.1.12-stable-8
ii  libhwloc-dev                   2.10.0-1
ii  libibverbs-dev                 48.0-1
ii  libjs-jquery                   3.6.1+dfsg+~3.5.14-1
ii  libjs-jquery-ui                1.13.2+dfsg-1
ii  libopenmpi3                    4.1.6-2
ii  libpmix-dev                    5.0.1-4
ii  openmpi-bin                    4.1.6-2
ii  openmpi-common                 4.1.6-2
ii  zlib1g-dev                     1:1.3.dfsg-3

Versions of packages libopenmpi-dev recommends:
ii  libcoarrays-openmpi-dev  2.10.1-1+b1

Versions of packages libopenmpi-dev suggests:
pn  openmpi-doc  <none>

-- no debconf information

Reply via email to