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