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"; 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"; 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"; diff --git a/pkgs/development/libraries/science/math/arpack/default.nix b/pkgs/development/libraries/science/math/arpack/default.nix index 9d96368a4cda..bdb386b9fe5c 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 = '' @@ -45,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 = ''