<div dir="ltr"><div>Source: ray<br>Version: 2.3.1-9<br>Severity: serious<br>Tags: ftbfs patch<br>Justification: fails to build from source<br><br></div><div>Hi,</div><br>ray fails to build on the architectures where the default MPI is now<br>MPICH (armhf, i386). The current armhf and i386 binaries are older than<br>that switch. Reproduced in a sid i386 chroot with libmpich-dev 5.0.2-2:<br><br>  Package mpi-c was not found in the pkg-config search path.<br>  Perhaps you should add the directory containing `mpi-c.pc'<br>  ...<br>  RayPlatform/RayPlatform/memory/DirtyBuffer.h:27:10: fatal error: mpi.h: No such file or directory<br><br>d/rules gets the MPI flags from "pkg-config mpi-c". Only OpenMPI<br>registers the mpi-c.pc alternative. MPICH only registers mpi.pc (the<br>mpi-c/mpi-cxx/mpi-fort slaves are commented out in libmpich-dev.postinst).<br>Both register mpi.pc and the libmpi.so alternative.<br><br>The attached debdiff:<br><br> - uses "pkg-config --cflags mpi" for the include path<br> - links with -lmpi (the libmpi.so alternative) instead of<br>   "pkg-config --libs". mpich.pc's Libs: leaks MPICH's own build<br>   LDFLAGS. On Ubuntu, for example, that includes<br>   -Wl,--package-metadata for mpich, and the Ray binary ended up with<br>   mpich's package metadata note. On some architectures it also adds<br>   -lucc/-lze_loader/-lucp, which are not needed for linking ray.<br><br>Tested:<br> - sid i386 (MPICH 5.0.2, ch3:nemesis): 2.3.1-9 FTBFS. With the patch<br>   it builds, Ray links libmpich.so.12, and the autopkgtest passes,<br>   including the "mpiexec -n 2" run.<br> - Ubuntu (OpenMPI default on amd64): builds, links libmpi.so.40,<br>   autopkgtest passes. It also builds with the mpi alternative switched<br>   to MPICH.<br><br>The same change is being uploaded to Ubuntu, where the armhf build<br>failure blocks ray in -proposed.<br><br>Regards,<br>Sebastien<br><br></div>