about summary refs log tree commit diff
path: root/pkgs/development/libraries/mpich/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/mpich/default.nix')
-rw-r--r--pkgs/development/libraries/mpich/default.nix105
1 files changed, 71 insertions, 34 deletions
diff --git a/pkgs/development/libraries/mpich/default.nix b/pkgs/development/libraries/mpich/default.nix
index bb7f9f5807d69..a01cc726f2235 100644
--- a/pkgs/development/libraries/mpich/default.nix
+++ b/pkgs/development/libraries/mpich/default.nix
@@ -1,17 +1,29 @@
-{ stdenv, lib, fetchurl, perl, gfortran
-, openssh, hwloc, python3
-, darwin
-# either libfabric or ucx work for ch4backend on linux. On darwin, neither of
-# these libraries currently build so this argument is ignored on Darwin.
-, ch4backend
-# Process managers to build (`--with-pm`),
-# cf. https://github.com/pmodels/mpich/blob/b80a6d7c24defe7cdf6c57c52430f8075a0a41d6/README.vin#L562-L586
-, withPm ? [ "hydra" "gforker" ]
-, pmix
-# PMIX support is likely incompatible with process managers (`--with-pm`)
-# https://github.com/NixOS/nixpkgs/pull/274804#discussion_r1432601476
-, pmixSupport ? false
-} :
+{
+  stdenv,
+  lib,
+  fetchurl,
+  perl,
+  gfortran,
+  automake,
+  autoconf,
+  openssh,
+  hwloc,
+  python3,
+  darwin,
+  # either libfabric or ucx work for ch4backend on linux. On darwin, neither of
+  # these libraries currently build so this argument is ignored on Darwin.
+  ch4backend,
+  # Process managers to build (`--with-pm`),
+  # cf. https://github.com/pmodels/mpich/blob/b80a6d7c24defe7cdf6c57c52430f8075a0a41d6/README.vin#L562-L586
+  withPm ? [
+    "hydra"
+    "gforker"
+  ],
+  pmix,
+  # PMIX support is likely incompatible with process managers (`--with-pm`)
+  # https://github.com/NixOS/nixpkgs/pull/274804#discussion_r1432601476
+  pmixSupport ? false,
+}:
 
 let
   withPmStr = if withPm != [ ] then builtins.concatStringsSep ":" withPm else "no";
@@ -19,37 +31,62 @@ in
 
 assert (ch4backend.pname == "ucx" || ch4backend.pname == "libfabric");
 
-stdenv.mkDerivation  rec {
+stdenv.mkDerivation rec {
   pname = "mpich";
-  version = "4.2.1";
+  version = "4.2.3";
 
   src = fetchurl {
     url = "https://www.mpich.org/static/downloads/${version}/mpich-${version}.tar.gz";
-    sha256 = "sha256-IzMbIpnyh8NBlyftwt+JItfnq7uf0Kx04DuZZvmtQtc=";
+    hash = "sha256-egGRgMUdFzitnF2NRSMU3mXoKO4kC8stH4DemmW+iKg=";
   };
 
-  outputs = [ "out" "doc" "man" ];
+  patches = [
+    # Disables ROMIO test which was enabled in
+    # https://github.com/pmodels/mpich/commit/09686f45d77b7739f7aef4c2c6ef4c3060946595
+    # The test searches for mpicc in $out/bin, which is not yet present in the checkPhase
+    # Moreover it fails one test.
+    ./disable-romio-tests.patch
+  ];
 
-  configureFlags = [
-    "--enable-shared"
-    "--with-pm=${withPmStr}"
-  ] ++ lib.optionals (lib.versionAtLeast gfortran.version "10") [
-    "FFLAGS=-fallow-argument-mismatch" # https://github.com/pmodels/mpich/issues/4300
-    "FCFLAGS=-fallow-argument-mismatch"
-  ] ++ lib.optionals pmixSupport [
-    "--with-pmix"
+  outputs = [
+    "out"
+    "doc"
+    "man"
   ];
 
+  configureFlags =
+    [
+      "--enable-shared"
+      "--with-pm=${withPmStr}"
+    ]
+    ++ lib.optionals (lib.versionAtLeast gfortran.version "10") [
+      "FFLAGS=-fallow-argument-mismatch" # https://github.com/pmodels/mpich/issues/4300
+      "FCFLAGS=-fallow-argument-mismatch"
+    ]
+    ++ lib.optionals pmixSupport [
+      "--with-pmix"
+    ];
+
   enableParallelBuilding = true;
 
-  nativeBuildInputs = [ gfortran python3 ];
-  buildInputs = [ perl openssh hwloc ]
-    ++ lib.optional (!stdenv.isDarwin) ch4backend
+  nativeBuildInputs = [
+    gfortran
+    python3
+    autoconf
+    automake
+  ];
+  buildInputs =
+    [
+      perl
+      openssh
+      hwloc
+    ]
+    ++ lib.optional (!stdenv.hostPlatform.isDarwin) ch4backend
     ++ lib.optional pmixSupport pmix
-    ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Foundation;
+    ++ lib.optional stdenv.hostPlatform.isDarwin darwin.apple_sdk.frameworks.Foundation;
 
   # test_double_serializer.test fails on darwin
-  doCheck = !stdenv.isDarwin;
+  doCheck = !stdenv.hostPlatform.isDarwin;
 
   preFixup = ''
     # Ensure the default compilers are the ones mpich was built with
@@ -58,7 +95,7 @@ stdenv.mkDerivation  rec {
     sed -i 's:FC="gfortran":FC=${gfortran}/bin/gfortran:' $out/bin/mpifort
   '';
 
-  meta = with lib; {
+  meta = {
     # As far as we know, --with-pmix silently disables all of `--with-pm`
     broken = pmixSupport && withPm != [ ];
 
@@ -74,7 +111,7 @@ stdenv.mkDerivation  rec {
       url = "http://git.mpich.org/mpich.git/blob/a385d6d0d55e83c3709ae851967ce613e892cd21:/COPYRIGHT";
       fullName = "MPICH license (permissive)";
     };
-    maintainers = [ maintainers.markuskowa ];
-    platforms = platforms.linux ++ platforms.darwin;
+    maintainers = [ lib.maintainers.markuskowa ];
+    platforms = lib.platforms.linux ++ lib.platforms.darwin;
   };
 }