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

