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

Attachment: ray_debian.debdiff
Description: Binary data

Reply via email to