From 3470c9a48b800fd760c0ad34d25451d8215890b2 Mon Sep 17 00:00:00 2001 From: Markus Kowalewski Date: Thu, 4 Sep 2025 14:58:19 +0200 Subject: [PATCH 1/2] cp2k: move grimmeCmake packages in cp2k package file --- .../science/chemistry/cp2k/default.nix | 79 +++++++++++++++++-- pkgs/top-level/all-packages.nix | 71 +---------------- 2 files changed, 77 insertions(+), 73 deletions(-) diff --git a/pkgs/applications/science/chemistry/cp2k/default.nix b/pkgs/applications/science/chemistry/cp2k/default.nix index 9a4b913e29a5..470d32ffd653 100644 --- a/pkgs/applications/science/chemistry/cp2k/default.nix +++ b/pkgs/applications/science/chemistry/cp2k/default.nix @@ -39,6 +39,12 @@ elpa, cudaPackages, rocmPackages, + newScope, + mctc-lib, + jonquil, + multicharge, + mstore, + test-drive, config, gpuBackend ? ( if config.cudaSupport then @@ -60,6 +66,69 @@ assert builtins.elem gpuBackend [ "rocm" ]; +let + grimmeCmake = lib.makeScope newScope (self: { + mctc-lib = mctc-lib.override { + buildType = "cmake"; + inherit (self) jonquil toml-f; + }; + + toml-f = toml-f.override { + buildType = "cmake"; + inherit (self) test-drive; + }; + + dftd4 = dftd4.override { + buildType = "cmake"; + inherit (self) mstore mctc-lib multicharge; + }; + + jonquil = jonquil.override { + buildType = "cmake"; + inherit (self) toml-f test-drive; + }; + + mstore = mstore.override { + buildType = "cmake"; + inherit (self) mctc-lib; + }; + + multicharge = multicharge.override { + buildType = "cmake"; + inherit (self) mctc-lib mstore; + }; + + test-drive = test-drive.override { buildType = "cmake"; }; + + simple-dftd3 = simple-dftd3.override { + buildType = "cmake"; + inherit (self) mctc-lib mstore toml-f; + }; + + tblite = tblite.override { + buildType = "cmake"; + inherit (self) + mctc-lib + mstore + toml-f + multicharge + dftd4 + simple-dftd3 + ; + }; + + sirius = sirius.override { + inherit (self) + mctc-lib + toml-f + multicharge + dftd4 + simple-dftd3 + ; + }; + }); + +in stdenv.mkDerivation rec { pname = "cp2k"; version = "2025.2"; @@ -97,9 +166,6 @@ stdenv.mkDerivation rec { libint libvori libxc - dftd4 - simple-dftd3 - tblite libxsmm mpi spglib @@ -110,14 +176,17 @@ stdenv.mkDerivation rec { plumed zlib hdf5-fortran - sirius spla spfft libvdwxc trexio - toml-f greenx gmp + grimmeCmake.dftd4 + grimmeCmake.simple-dftd3 + grimmeCmake.tblite + grimmeCmake.sirius + grimmeCmake.toml-f ] ++ lib.optional enableElpa elpa ++ lib.optionals (gpuBackend == "cuda") [ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 208928012475..b24022375a7d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14446,74 +14446,9 @@ with pkgs; siesta-mpi = callPackage ../applications/science/chemistry/siesta { useMpi = true; }; - cp2k = - # CP2K requires all dependencies from the Grimme ecosystem to be build with - # CMake instead of Meson. Unfortunately most other consumers require meson - let - grimmeCmake = lib.makeScope pkgs.newScope (self: { - mctc-lib = pkgs.mctc-lib.override { - buildType = "cmake"; - inherit (self) jonquil toml-f; - }; - - toml-f = pkgs.toml-f.override { - buildType = "cmake"; - inherit (self) test-drive; - }; - - dftd4 = pkgs.dftd4.override { - buildType = "cmake"; - inherit (self) mstore mctc-lib multicharge; - }; - - jonquil = pkgs.jonquil.override { - buildType = "cmake"; - inherit (self) toml-f test-drive; - }; - - mstore = pkgs.mstore.override { - buildType = "cmake"; - inherit (self) mctc-lib; - }; - - multicharge = pkgs.multicharge.override { - buildType = "cmake"; - inherit (self) mctc-lib mstore; - }; - - test-drive = pkgs.test-drive.override { buildType = "cmake"; }; - - simple-dftd3 = pkgs.simple-dftd3.override { - buildType = "cmake"; - inherit (self) mctc-lib mstore toml-f; - }; - - tblite = pkgs.tblite.override { - buildType = "cmake"; - inherit (self) - mctc-lib - mstore - toml-f - multicharge - dftd4 - simple-dftd3 - ; - }; - - sirius = pkgs.sirius.override { - inherit (self) - mctc-lib - toml-f - multicharge - dftd4 - simple-dftd3 - ; - }; - }); - in - grimmeCmake.callPackage ../applications/science/chemistry/cp2k/default.nix { - libxc = pkgs.libxc_7; - }; + cp2k = callPackage ../by-name/cp/cp2k/package.nix { + libxc = pkgs.libxc_7; + }; ### SCIENCE/GEOMETRY From fbad420db279f7111de690f2da6cccc73aab8aee Mon Sep 17 00:00:00 2001 From: Markus Kowalewski Date: Thu, 4 Sep 2025 14:57:40 +0200 Subject: [PATCH 2/2] cp2k: move gfortran to nativeBuildInputs --- .../chemistry/cp2k/default.nix => by-name/cp/cp2k/package.nix} | 2 +- .../science/chemistry => by-name/cp}/cp2k/pkgconfig.patch | 0 .../chemistry => by-name/cp}/cp2k/remove-compiler-options.patch | 0 3 files changed, 1 insertion(+), 1 deletion(-) rename pkgs/{applications/science/chemistry/cp2k/default.nix => by-name/cp/cp2k/package.nix} (100%) rename pkgs/{applications/science/chemistry => by-name/cp}/cp2k/pkgconfig.patch (100%) rename pkgs/{applications/science/chemistry => by-name/cp}/cp2k/remove-compiler-options.patch (100%) diff --git a/pkgs/applications/science/chemistry/cp2k/default.nix b/pkgs/by-name/cp/cp2k/package.nix similarity index 100% rename from pkgs/applications/science/chemistry/cp2k/default.nix rename to pkgs/by-name/cp/cp2k/package.nix index 470d32ffd653..91260843c442 100644 --- a/pkgs/applications/science/chemistry/cp2k/default.nix +++ b/pkgs/by-name/cp/cp2k/package.nix @@ -156,11 +156,11 @@ stdenv.mkDerivation rec { which makeWrapper pkg-config + gfortran ] ++ lib.optional (gpuBackend == "cuda") cudaPackages.cuda_nvcc; buildInputs = [ - gfortran fftw gsl libint diff --git a/pkgs/applications/science/chemistry/cp2k/pkgconfig.patch b/pkgs/by-name/cp/cp2k/pkgconfig.patch similarity index 100% rename from pkgs/applications/science/chemistry/cp2k/pkgconfig.patch rename to pkgs/by-name/cp/cp2k/pkgconfig.patch diff --git a/pkgs/applications/science/chemistry/cp2k/remove-compiler-options.patch b/pkgs/by-name/cp/cp2k/remove-compiler-options.patch similarity index 100% rename from pkgs/applications/science/chemistry/cp2k/remove-compiler-options.patch rename to pkgs/by-name/cp/cp2k/remove-compiler-options.patch