From aa83877cf874f38d998262e25e5cf1e547181e2f Mon Sep 17 00:00:00 2001 From: Markus Kowalewski Date: Fri, 26 Jan 2018 18:26:22 -0800 Subject: [PATCH] mpi4py/h5py: fix test to run reliably with openmpi-3 --- pkgs/development/python-modules/h5py/default.nix | 8 ++++++-- pkgs/development/python-modules/mpi4py/default.nix | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/h5py/default.nix b/pkgs/development/python-modules/h5py/default.nix index e9bae3f82060..bdbdcdcc2e74 100644 --- a/pkgs/development/python-modules/h5py/default.nix +++ b/pkgs/development/python-modules/h5py/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, python, buildPythonPackage , numpy, hdf5, cython, six, pkgconfig -, mpi4py ? null }: +, mpi4py ? null, openssh }: assert hdf5.mpiSupport -> mpi4py != null && hdf5.mpi == mpi4py.mpi; @@ -24,6 +24,10 @@ in buildPythonPackage rec { postConfigure = '' ${python.executable} setup.py configure ${configure_flags} + + # Needed to run the tests reliably. See: + # https://bitbucket.org/mpi4py/mpi4py/issues/87/multiple-test-errors-with-openmpi-30 + ${optionalString mpiSupport "export OMPI_MCA_rmaps_base_oversubscribe=yes"} ''; preBuild = if mpiSupport then "export CC=${mpi}/bin/mpicc" else ""; @@ -33,7 +37,7 @@ in buildPythonPackage rec { ++ optional mpiSupport mpi ; propagatedBuildInputs = [ numpy six] - ++ optional mpiSupport mpi4py + ++ optionals mpiSupport [ mpi4py openssh ] ; meta = { diff --git a/pkgs/development/python-modules/mpi4py/default.nix b/pkgs/development/python-modules/mpi4py/default.nix index fcbca62ff9df..9329d386099c 100644 --- a/pkgs/development/python-modules/mpi4py/default.nix +++ b/pkgs/development/python-modules/mpi4py/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchPypi, python, buildPythonPackage, mpi }: +{ stdenv, fetchPypi, python, buildPythonPackage, mpi, openssh }: buildPythonPackage rec { pname = "mpi4py"; @@ -28,11 +28,15 @@ buildPythonPackage rec { # sometimes packages specify where files should be installed outside the usual # python lib prefix, we override that back so all infrastructure (setup hooks) # work as expected + + # Needed to run the tests reliably. See: + # https://bitbucket.org/mpi4py/mpi4py/issues/87/multiple-test-errors-with-openmpi-30 + export OMPI_MCA_rmaps_base_oversubscribe=yes ''; setupPyBuildFlags = ["--mpicc=${mpi}/bin/mpicc"]; - buildInputs = [ mpi ]; + buildInputs = [ mpi openssh ]; meta = { description =