From adaaba7b85d075db62cb790d0a5d2fe4b86bc366 Mon Sep 17 00:00:00 2001 From: Markus Kowalewski Date: Tue, 29 Oct 2024 11:34:51 +0100 Subject: [PATCH 1/4] openmolcas: properly build shared libs. Remove unneeded static libs when build as static build. --- pkgs/applications/science/chemistry/openmolcas/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/applications/science/chemistry/openmolcas/default.nix b/pkgs/applications/science/chemistry/openmolcas/default.nix index 76192e4d4de9..d67ecf21d7f1 100644 --- a/pkgs/applications/science/chemistry/openmolcas/default.nix +++ b/pkgs/applications/science/chemistry/openmolcas/default.nix @@ -109,6 +109,8 @@ stdenv.mkDerivation rec { (lib.strings.cmakeBool "DMRG" enableQcmaquis) (lib.strings.cmakeBool "NEVPT2" enableQcmaquis) "-DCMAKE_SKIP_BUILD_RPATH=ON" + (lib.strings.cmakeBool "BUILD_STATIC_LIBS" stdenv.hostPlatform.isStatic) + (lib.strings.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic)) ] ++ lib.optionals (blas-ilp64.passthru.implementation == "openblas") [ "-DOPENBLASROOT=${blas-ilp64.passthru.provider.dev}" "-DLINALG=OpenBLAS" From 00e7e7f70b49daec95b5259dacb0a499cff49fdb Mon Sep 17 00:00:00 2001 From: Markus Kowalewski Date: Tue, 29 Oct 2024 22:50:14 +0100 Subject: [PATCH 2/4] openmolcas: remove superflous cmakeFlag for openblas --- pkgs/applications/science/chemistry/openmolcas/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/applications/science/chemistry/openmolcas/default.nix b/pkgs/applications/science/chemistry/openmolcas/default.nix index d67ecf21d7f1..2b17fb368364 100644 --- a/pkgs/applications/science/chemistry/openmolcas/default.nix +++ b/pkgs/applications/science/chemistry/openmolcas/default.nix @@ -101,7 +101,6 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DOPENMP=ON" - "-DLINALG=OpenBLAS" "-DTOOLS=ON" "-DHDF5=ON" "-DFDE=ON" From 356e7ac19ca817e958bc12595776c234a3c38904 Mon Sep 17 00:00:00 2001 From: Markus Kowalewski Date: Wed, 30 Oct 2024 10:34:53 +0100 Subject: [PATCH 3/4] openmolcas: remove nested with in meta --- pkgs/applications/science/chemistry/openmolcas/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/science/chemistry/openmolcas/default.nix b/pkgs/applications/science/chemistry/openmolcas/default.nix index 2b17fb368364..d835bccf18bf 100644 --- a/pkgs/applications/science/chemistry/openmolcas/default.nix +++ b/pkgs/applications/science/chemistry/openmolcas/default.nix @@ -149,11 +149,11 @@ stdenv.mkDerivation rec { wrapProgram $out/bin/pymolcas --set MOLCAS $out ''; - meta = with lib; { + meta = { description = "Advanced quantum chemistry software package"; homepage = "https://gitlab.com/Molcas/OpenMolcas"; - maintainers = [ maintainers.markuskowa ]; - license = with licenses; [ lgpl21Only bsd3 ]; + maintainers = [ lib.maintainers.markuskowa ]; + license = with lib.licenses; [ lgpl21Only bsd3 ]; platforms = [ "aarch64-linux" "x86_64-linux" ]; mainProgram = "pymolcas"; }; From 5ad947701f1d3723305c0ccec19ae88df96593d2 Mon Sep 17 00:00:00 2001 From: Markus Kowalewski Date: Wed, 30 Oct 2024 10:36:17 +0100 Subject: [PATCH 4/4] openmolcas: apply nixfmt --- .../science/chemistry/openmolcas/default.nix | 140 ++++++++++-------- 1 file changed, 81 insertions(+), 59 deletions(-) diff --git a/pkgs/applications/science/chemistry/openmolcas/default.nix b/pkgs/applications/science/chemistry/openmolcas/default.nix index d835bccf18bf..f3687a64d599 100644 --- a/pkgs/applications/science/chemistry/openmolcas/default.nix +++ b/pkgs/applications/science/chemistry/openmolcas/default.nix @@ -1,34 +1,45 @@ -{ lib -, stdenv -, fetchFromGitLab -, fetchFromGitHub -, cmake -, gfortran -, perl -, blas-ilp64 -, hdf5-cpp -, python3 -, texliveMinimal -, armadillo -, libxc -, makeWrapper -, gsl -, boost180 -, autoPatchelfHook -, enableQcmaquis ? false +{ + lib, + stdenv, + fetchFromGitLab, + fetchFromGitHub, + cmake, + gfortran, + perl, + blas-ilp64, + hdf5-cpp, + python3, + texliveMinimal, + armadillo, + libxc, + makeWrapper, + gsl, + boost180, + autoPatchelfHook, + enableQcmaquis ? false, # Note that the CASPT2 module is broken with MPI # See https://gitlab.com/Molcas/OpenMolcas/-/issues/169 -, enableMpi ? false -, mpi -, globalarrays + enableMpi ? false, + mpi, + globalarrays, }: assert blas-ilp64.isILP64; -assert lib.elem blas-ilp64.passthru.implementation [ "openblas" "mkl" ]; +assert lib.elem blas-ilp64.passthru.implementation [ + "openblas" + "mkl" +]; assert enableQcmaquis -> lib.elem blas-ilp64.passthru.implementation "mkl"; let - python = python3.withPackages (ps: with ps; [ six pyparsing numpy h5py ]); + python = python3.withPackages ( + ps: with ps; [ + six + pyparsing + numpy + h5py + ] + ); qcmaquisSrc = fetchFromGitHub { owner = "qcscine"; repo = "qcmaquis"; @@ -84,42 +95,48 @@ stdenv.mkDerivation rec { autoPatchelfHook ]; - buildInputs = [ - blas-ilp64.passthru.provider - hdf5-cpp - python - armadillo - libxc - gsl.dev - boost180 - ] ++ lib.optionals enableMpi [ - mpi - globalarrays - ]; + buildInputs = + [ + blas-ilp64.passthru.provider + hdf5-cpp + python + armadillo + libxc + gsl.dev + boost180 + ] + ++ lib.optionals enableMpi [ + mpi + globalarrays + ]; passthru = lib.optionalAttrs enableMpi { inherit mpi; }; - cmakeFlags = [ - "-DOPENMP=ON" - "-DTOOLS=ON" - "-DHDF5=ON" - "-DFDE=ON" - "-DEXTERNAL_LIBXC=${lib.getDev libxc}" - (lib.strings.cmakeBool "DMRG" enableQcmaquis) - (lib.strings.cmakeBool "NEVPT2" enableQcmaquis) - "-DCMAKE_SKIP_BUILD_RPATH=ON" - (lib.strings.cmakeBool "BUILD_STATIC_LIBS" stdenv.hostPlatform.isStatic) - (lib.strings.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic)) - ] ++ lib.optionals (blas-ilp64.passthru.implementation == "openblas") [ - "-DOPENBLASROOT=${blas-ilp64.passthru.provider.dev}" - "-DLINALG=OpenBLAS" - ] ++ lib.optionals (blas-ilp64.passthru.implementation == "mkl") [ - "-DMKLROOT=${blas-ilp64.passthru.provider}" - "-DLINALG=MKL" - ] ++ lib.optionals enableMpi [ - "-DGA=ON" - "-DMPI=ON" - ]; + cmakeFlags = + [ + "-DOPENMP=ON" + "-DTOOLS=ON" + "-DHDF5=ON" + "-DFDE=ON" + "-DEXTERNAL_LIBXC=${lib.getDev libxc}" + (lib.strings.cmakeBool "DMRG" enableQcmaquis) + (lib.strings.cmakeBool "NEVPT2" enableQcmaquis) + "-DCMAKE_SKIP_BUILD_RPATH=ON" + (lib.strings.cmakeBool "BUILD_STATIC_LIBS" stdenv.hostPlatform.isStatic) + (lib.strings.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic)) + ] + ++ lib.optionals (blas-ilp64.passthru.implementation == "openblas") [ + "-DOPENBLASROOT=${blas-ilp64.passthru.provider.dev}" + "-DLINALG=OpenBLAS" + ] + ++ lib.optionals (blas-ilp64.passthru.implementation == "mkl") [ + "-DMKLROOT=${blas-ilp64.passthru.provider}" + "-DLINALG=MKL" + ] + ++ lib.optionals enableMpi [ + "-DGA=ON" + "-DMPI=ON" + ]; preConfigure = lib.optionalString enableMpi '' export GAROOT=${globalarrays}; @@ -153,9 +170,14 @@ stdenv.mkDerivation rec { description = "Advanced quantum chemistry software package"; homepage = "https://gitlab.com/Molcas/OpenMolcas"; maintainers = [ lib.maintainers.markuskowa ]; - license = with lib.licenses; [ lgpl21Only bsd3 ]; - platforms = [ "aarch64-linux" "x86_64-linux" ]; + license = with lib.licenses; [ + lgpl21Only + bsd3 + ]; + platforms = [ + "aarch64-linux" + "x86_64-linux" + ]; mainProgram = "pymolcas"; }; } -