diff --git a/pkgs/development/python-modules/h5py/default.nix b/pkgs/development/python-modules/h5py/default.nix index e9bae3f8206..bdbdcdcc2e7 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 fcbca62ff9d..9329d386099 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 =