about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMarkus Kowalewski <markus.kowalewski@gmail.com>2024-05-17 18:46:32 +0000
committerGitHub <noreply@github.com>2024-05-17 18:46:32 +0000
commit7785bc313f8494ca2c52c1ebe369c0c9eaf2d425 (patch)
tree23b58459d537532ec4832d1428057dc3fcaab95c
parentd8bf28208e331f929cd2c5a6d133b26181167bb4 (diff)
parente3df5db4604515706d44a662cfe0499838baf5a1 (diff)
Merge pull request #312164 from markuskowa/fix-closure-cp2k
cp2k, pythonPackages.gpaw: improve closure size
-rw-r--r--pkgs/applications/science/chemistry/cp2k/default.nix17
-rw-r--r--pkgs/applications/science/chemistry/cp2k/remove-compiler-options.patch37
-rw-r--r--pkgs/by-name/si/sirius/package.nix6
-rw-r--r--pkgs/by-name/sp/spfft/package.nix3
-rw-r--r--pkgs/by-name/sp/spla/package.nix12
-rw-r--r--pkgs/development/libraries/science/chemistry/libvdwxc/default.nix2
-rw-r--r--pkgs/development/python-modules/gpaw/default.nix5
7 files changed, 69 insertions, 13 deletions
diff --git a/pkgs/applications/science/chemistry/cp2k/default.nix b/pkgs/applications/science/chemistry/cp2k/default.nix
index 42bfc6ffe32e3..8a831fe23b742 100644
--- a/pkgs/applications/science/chemistry/cp2k/default.nix
+++ b/pkgs/applications/science/chemistry/cp2k/default.nix
@@ -64,6 +64,12 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
+  patches = [
+    # Remove the build command line from the source.
+    # This avoids dependencies to .dev inputs
+    ./remove-compiler-options.patch
+  ];
+
   nativeBuildInputs = [ python3 which openssh makeWrapper pkg-config ]
     ++ lib.optional (gpuBackend == "cuda") cudaPackages.cuda_nvcc;
 
@@ -75,6 +81,7 @@ stdenv.mkDerivation rec {
     libvori
     libxc
     libxsmm
+    mpi
     spglib
     scalapack
     blas
@@ -101,7 +108,7 @@ stdenv.mkDerivation rec {
   ]
   ;
 
-  propagatedBuildInputs = [ mpi ];
+  propagatedBuildInputs = [ (lib.getBin mpi) ];
   propagatedUserEnvPkgs = [ mpi ];
 
   makeFlags = [
@@ -149,14 +156,16 @@ stdenv.mkDerivation rec {
                  -D__PLUMED2 -D__HDF5 -D__GSL -D__SIRIUS -D__LIBVDWXC -D__SPFFT -D__SPLA \
                  ${lib.strings.optionalString (gpuBackend == "cuda") "-D__OFFLOAD_CUDA -D__ACC -D__DBCSR_ACC -D__NO_OFFLOAD_PW"} \
                  ${lib.strings.optionalString (gpuBackend == "rocm") "-D__OFFLOAD_HIP -D__DBCSR_ACC -D__NO_OFFLOAD_PW"}
-    CFLAGS    = -fopenmp -I${lib.getDev hdf5-fortran}/include -I${lib.getDev gsl}/include
+    CFLAGS    = -fopenmp
     FCFLAGS    = \$(DFLAGS) -O2 -ffree-form -ffree-line-length-none \
                  -ftree-vectorize -funroll-loops -msse2 \
                  -std=f2008 \
                  -fopenmp -ftree-vectorize -funroll-loops \
-                 -I${lib.getDev libint}/include ${lib.optionalString enableElpa "$(pkg-config --variable=fcflags elpa)"} \
+                   ${lib.optionalString enableElpa "$(pkg-config --variable=fcflags elpa)"} \
+                 -I${lib.getDev libint}/include  \
                  -I${lib.getDev sirius}/include/sirius \
-                 -I${lib.getDev libxc}/include -I${lib.getDev libxsmm}/include \
+                 -I${lib.getDev libxc}/include \
+                 -I${lib.getDev libxsmm}/include \
                  -I${lib.getDev hdf5-fortran}/include \
                  -fallow-argument-mismatch
     LIBS       = -lfftw3 -lfftw3_threads \
diff --git a/pkgs/applications/science/chemistry/cp2k/remove-compiler-options.patch b/pkgs/applications/science/chemistry/cp2k/remove-compiler-options.patch
new file mode 100644
index 0000000000000..e6cf81494aa33
--- /dev/null
+++ b/pkgs/applications/science/chemistry/cp2k/remove-compiler-options.patch
@@ -0,0 +1,37 @@
+diff --git a/src/start/cp2k.F b/src/start/cp2k.F
+index f69146ea3..a195f0620 100644
+--- a/src/start/cp2k.F
++++ b/src/start/cp2k.F
+@@ -58,8 +58,7 @@ PROGRAM cp2k
+    USE input_cp2k,                      ONLY: create_cp2k_root_section
+    USE input_section_types,             ONLY: section_release,&
+                                               section_type
+-   USE iso_fortran_env,                 ONLY: compiler_options,&
+-                                              compiler_version
++   USE iso_fortran_env,                 ONLY: compiler_version
+    USE kinds,                           ONLY: default_path_length
+    USE machine,                         ONLY: default_output_unit
+ #include "../base/base_uses.f90"
+@@ -70,7 +69,6 @@ PROGRAM cp2k
+                                            arg_att, command
+    CHARACTER(LEN=default_path_length), &
+       DIMENSION(:, :), ALLOCATABLE      :: initial_variables, initial_variables_tmp
+-   CHARACTER(LEN=:), ALLOCATABLE        :: compiler_options_string
+    INTEGER                              :: output_unit, l, i, var_set_sep, inp_var_idx
+    INTEGER                              :: ierr, i_arg
+    LOGICAL                              :: check, usage, echo_input, command_line_error
+@@ -328,14 +326,6 @@ PROGRAM cp2k
+                WRITE (output_unit, "(T2,A)") cp2k_version, &
+                   "Source code revision "//TRIM(compile_revision), &
+                   TRIM(cp2k_flags())
+-               compiler_options_string = compiler_options()
+-               WRITE (output_unit, "(T2,A,A)") "compiler: ", compiler_version()
+-               WRITE (output_unit, "(T2,A)") "compiler options:"
+-               DO i = 0, (LEN(compiler_options_string) - 1)/68
+-                  WRITE (output_unit, "(T4,A)") &
+-                     compiler_options_string(i*68 + 1:MIN(LEN(compiler_options_string), (i + 1)*68))
+-               END DO
+-               DEALLOCATE (compiler_options_string)
+             END IF
+          END IF
+ 
diff --git a/pkgs/by-name/si/sirius/package.nix b/pkgs/by-name/si/sirius/package.nix
index c8e42ff72fc87..c4d4d05065101 100644
--- a/pkgs/by-name/si/sirius/package.nix
+++ b/pkgs/by-name/si/sirius/package.nix
@@ -47,6 +47,9 @@ stdenv.mkDerivation rec {
     hash = "sha256-DYie6ufgZNqg7ohlIed3Bo+sqLKHOxWXTwAkea2guLk=";
   };
 
+
+  outputs = [ "out" "dev" ];
+
   nativeBuildInputs = [
     cmake
     gfortran
@@ -60,6 +63,7 @@ stdenv.mkDerivation rec {
     libxc
     hdf5
     umpire
+    mpi
     spglib
     spfft
     spla
@@ -80,7 +84,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optional stdenv.isDarwin llvmPackages.openmp
   ;
 
-  propagatedBuildInputs = [ mpi ];
+  propagatedBuildInputs = [ (lib.getBin mpi) ];
 
   CXXFLAGS = [
     # GCC 13: error: 'uintptr_t' in namespace 'std' does not name a type
diff --git a/pkgs/by-name/sp/spfft/package.nix b/pkgs/by-name/sp/spfft/package.nix
index f7e8b37425816..65e98b92b4f2f 100644
--- a/pkgs/by-name/sp/spfft/package.nix
+++ b/pkgs/by-name/sp/spfft/package.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     fftw
+    mpi
   ] ++ lib.optionals (gpuBackend == "cuda") [
     cudaPackages.libcufft
     cudaPackages.cuda_cudart
@@ -48,8 +49,6 @@ stdenv.mkDerivation rec {
   ] ++ lib.optional stdenv.isDarwin llvmPackages.openmp
   ;
 
-  propagatedBuildInputs = [ mpi ];
-
   cmakeFlags = [
     "-DSPFFT_OMP=ON"
     "-DSPFFT_MPI=ON"
diff --git a/pkgs/by-name/sp/spla/package.nix b/pkgs/by-name/sp/spla/package.nix
index 210fb04af9b80..98222aa7c1f58 100644
--- a/pkgs/by-name/sp/spla/package.nix
+++ b/pkgs/by-name/sp/spla/package.nix
@@ -31,6 +31,8 @@ stdenv.mkDerivation rec {
     hash = "sha256-71QpwTsRogH+6Bik9DKwezl9SqwoLxQt4SZ7zw5X6DE=";
   };
 
+  outputs = [ "out" "dev" ];
+
   postPatch = ''
     substituteInPlace src/gpu_util/gpu_blas_api.hpp \
       --replace '#include <rocblas.h>' '#include <rocblas/rocblas.h>'
@@ -43,6 +45,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     blas
+    mpi
   ]
   ++ lib.optional (gpuBackend == "cuda") cudaPackages.cudatoolkit
   ++ lib.optionals (gpuBackend == "rocm") [
@@ -51,8 +54,6 @@ stdenv.mkDerivation rec {
   ] ++ lib.optional stdenv.isDarwin llvmPackages.openmp
   ;
 
-  propagatedBuildInputs = [ mpi ];
-
   cmakeFlags = [
     "-DSPLA_OMP=ON"
     "-DSPLA_FORTRAN=ON"
@@ -65,10 +66,15 @@ stdenv.mkDerivation rec {
   ++ lib.optional (gpuBackend == "rocm") [ "-DSPLA_GPU_BACKEND=ROCM" ]
   ;
 
+  preFixup = ''
+    substituteInPlace $out/lib/cmake/SPLA/SPLASharedTargets-release.cmake \
+      --replace-fail "\''${_IMPORT_PREFIX}" "$out"
+  '';
+
   meta = with lib; {
     description = "Specialized Parallel Linear Algebra, providing distributed GEMM functionality for specific matrix distributions with optional GPU acceleration";
     homepage = "https://github.com/eth-cscs/spla";
     license = licenses.bsd3;
-    maintainers = [ maintainers.sheepforce ];#
+    maintainers = [ maintainers.sheepforce ];
   };
 }
diff --git a/pkgs/development/libraries/science/chemistry/libvdwxc/default.nix b/pkgs/development/libraries/science/chemistry/libvdwxc/default.nix
index c0da65e7c7884..c843d443e81e2 100644
--- a/pkgs/development/libraries/science/chemistry/libvdwxc/default.nix
+++ b/pkgs/development/libraries/science/chemistry/libvdwxc/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook gfortran ];
 
-  propagatedBuildInputs = [ mpi fftwMpi ];
+  buildInputs = [ mpi fftwMpi ];
 
   preConfigure = ''
     mkdir build && cd build
diff --git a/pkgs/development/python-modules/gpaw/default.nix b/pkgs/development/python-modules/gpaw/default.nix
index 37b12c6f5ed49..033a7a4185973 100644
--- a/pkgs/development/python-modules/gpaw/default.nix
+++ b/pkgs/development/python-modules/gpaw/default.nix
@@ -6,6 +6,7 @@
 , blas
 , lapack
 , mpi
+, fftw
 , scalapack
 , libxc
 , libvdwxc
@@ -89,9 +90,9 @@ in buildPythonPackage rec {
   # execute `rsh` as a side-effect.
   nativeBuildInputs = [ which inetutils ];
 
-  buildInputs = [ blas scalapack libxc libvdwxc ];
+  buildInputs = [ blas scalapack libxc libvdwxc fftw ];
 
-  propagatedBuildInputs = [ ase scipy numpy mpi pyyaml ];
+  propagatedBuildInputs = [ ase scipy numpy (lib.getBin mpi) pyyaml ];
 
   patches = [ ./SetupPath.patch ];