From 2396201a35276b40cacce65fbf683bec748f162d Mon Sep 17 00:00:00 2001 From: Markus Kowalewski Date: Thu, 3 Nov 2022 11:46:00 +0100 Subject: [PATCH 1/5] arpack: add optional MPI support --- .../libraries/science/math/arpack/default.nix | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/science/math/arpack/default.nix b/pkgs/development/libraries/science/math/arpack/default.nix index 9d96368a4cda..a1152598aa62 100644 --- a/pkgs/development/libraries/science/math/arpack/default.nix +++ b/pkgs/development/libraries/science/math/arpack/default.nix @@ -1,5 +1,13 @@ { lib, stdenv, fetchFromGitHub, fetchpatch, cmake -, gfortran, blas, lapack, eigen }: +, gfortran, blas, lapack, eigen +, useMpi ? false +, mpi +, openssh +}: + +# MPI version can only be built with LP64 interface. +# See https://github.com/opencollab/arpack-ng#readme +assert useMpi -> !blas.isILP64; stdenv.mkDerivation rec { pname = "arpack"; @@ -27,13 +35,16 @@ stdenv.mkDerivation rec { blas lapack eigen - ]; + ] ++ lib.optional useMpi mpi; + + checkInputs = lib.optional useMpi openssh; doCheck = true; cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" "-DINTERFACE64=${if blas.isILP64 then "1" else "0"}" + "-DMPI=${if useMpi then "ON" else "OFF"}" ]; preCheck = '' From df19353be30798911efe0189a3dd478e62ee74b0 Mon Sep 17 00:00:00 2001 From: Markus Kowalewski Date: Thu, 3 Nov 2022 12:29:50 +0100 Subject: [PATCH 2/5] arpack: propagate isILP64 flag from BLAS --- pkgs/development/libraries/science/math/arpack/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/libraries/science/math/arpack/default.nix b/pkgs/development/libraries/science/math/arpack/default.nix index a1152598aa62..bdb386b9fe5c 100644 --- a/pkgs/development/libraries/science/math/arpack/default.nix +++ b/pkgs/development/libraries/science/math/arpack/default.nix @@ -56,6 +56,8 @@ stdenv.mkDerivation rec { install_name_tool -change libblas.dylib ${blas}/lib/libblas.dylib $out/lib/libarpack.dylib ''; + passthru = { inherit (blas) isILP64; }; + meta = { homepage = "https://github.com/opencollab/arpack-ng"; description = '' From b931e2bb82cd268991cdd062e9c689981a9cb9cd Mon Sep 17 00:00:00 2001 From: Markus Kowalewski Date: Thu, 3 Nov 2022 12:50:08 +0100 Subject: [PATCH 3/5] octopus: add arpack ILP64 check --- pkgs/applications/science/chemistry/octopus/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/applications/science/chemistry/octopus/default.nix b/pkgs/applications/science/chemistry/octopus/default.nix index 8a97dc5f0c33..d0058c8650d8 100644 --- a/pkgs/applications/science/chemistry/octopus/default.nix +++ b/pkgs/applications/science/chemistry/octopus/default.nix @@ -8,6 +8,7 @@ }: assert (!blas.isILP64) && (!lapack.isILP64); +assert (blas.isILP64 == arpack.isILP64); stdenv.mkDerivation rec { pname = "octopus"; From 8c3d2bab83369227d810f9fd49be36765e2b8b2c Mon Sep 17 00:00:00 2001 From: Markus Kowalewski Date: Thu, 3 Nov 2022 12:50:25 +0100 Subject: [PATCH 4/5] calculix: add blas, lapack, arpack ILP64 checks --- pkgs/applications/science/math/calculix/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/applications/science/math/calculix/default.nix b/pkgs/applications/science/math/calculix/default.nix index df943277a627..4b0ae6f8ac9d 100644 --- a/pkgs/applications/science/math/calculix/default.nix +++ b/pkgs/applications/science/math/calculix/default.nix @@ -1,5 +1,9 @@ { lib, stdenv, fetchurl, gfortran, arpack, spooles, blas, lapack }: +assert (blas.isILP64 == lapack.isILP64 && + blas.isILP64 == arpack.isILP64 && + !blas.isILP64); + stdenv.mkDerivation rec { pname = "calculix"; version = "2.19"; From 09a60c860b16b83649c4970149504d8db4cd737b Mon Sep 17 00:00:00 2001 From: Markus Kowalewski Date: Thu, 3 Nov 2022 12:54:12 +0100 Subject: [PATCH 5/5] igraph: add blas, lapack, arpack ILP64 checks --- pkgs/development/libraries/igraph/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/igraph/default.nix b/pkgs/development/libraries/igraph/default.nix index 69778f034829..9381f1b9ea30 100644 --- a/pkgs/development/libraries/igraph/default.nix +++ b/pkgs/development/libraries/igraph/default.nix @@ -21,6 +21,10 @@ , xmlto }: +assert (blas.isILP64 == lapack.isILP64 && + blas.isILP64 == arpack.isILP64 && + !blas.isILP64); + stdenv.mkDerivation rec { pname = "igraph"; version = "0.9.10";