Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / python-modules / mpi4py / default.nix
blobeaf7d30efb5d9a1bdb4742e2fdbc6ef81a4b02b5
1 { lib, fetchPypi, fetchpatch, python, buildPythonPackage
2 , mpi, mpiCheckPhaseHook, openssh
3 }:
5 buildPythonPackage rec {
6   pname = "mpi4py";
7   version = "3.1.5";
9   src = fetchPypi {
10     inherit pname version;
11     hash = "sha256-pwbnbbklUTXC+10e9Uy097DkrZ4zy62n3idiYgXyoVM=";
12   };
14   passthru = {
15     inherit mpi;
16   };
18   postPatch = ''
19     substituteInPlace test/test_spawn.py --replace \
20                       "unittest.skipMPI('openmpi(<3.0.0)')" \
21                       "unittest.skipMPI('openmpi')"
22   '';
24   configurePhase = "";
26   installPhase = ''
27     mkdir -p "$out/lib/${python.libPrefix}/site-packages"
28     export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
30     ${python}/bin/${python.executable} setup.py install \
31       --install-lib=$out/lib/${python.libPrefix}/site-packages \
32       --prefix="$out"
34     # --install-lib:
35     # sometimes packages specify where files should be installed outside the usual
36     # python lib prefix, we override that back so all infrastructure (setup hooks)
37     # work as expected
38   '';
40   setupPyBuildFlags = ["--mpicc=${mpi}/bin/mpicc"];
42   nativeBuildInputs = [ mpi ];
44   __darwinAllowLocalNetworking = true;
46   nativeCheckInputs = [ openssh mpiCheckPhaseHook ];
48   meta = with lib; {
49     description = "Python bindings for the Message Passing Interface standard";
50     homepage = "https://github.com/mpi4py/mpi4py";
51     license = licenses.bsd2;
52   };