From dd6e89f2ecad21d1cf147c845451bba49bafdb92 Mon Sep 17 00:00:00 2001 From: qbisi Date: Mon, 3 Mar 2025 21:32:05 +0800 Subject: [PATCH 1/3] pflotran: replace hdf5 with hdf5-fortran-mpi --- pkgs/by-name/pf/pflotran/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/pf/pflotran/package.nix b/pkgs/by-name/pf/pflotran/package.nix index ec0fdf2d92e5..3d5303aca8d9 100644 --- a/pkgs/by-name/pf/pflotran/package.nix +++ b/pkgs/by-name/pf/pflotran/package.nix @@ -8,7 +8,7 @@ blas, lapack, parmetis, - hdf5, + hdf5-fortran-mpi, mpiCheckPhaseHook, python3, }: @@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: { petsc blas lapack - hdf5 + hdf5-fortran-mpi parmetis ]; @@ -50,8 +50,8 @@ stdenv.mkDerivation (finalAttrs: { */ preConfigure = '' substituteInPlace src/pflotran/makefile \ - --subst-var-by "HDF5_FORTRAN_LIBS" "${lib.getLib hdf5}/lib" \ - --subst-var-by "HDF5_FORTRAN_INCLUDE" "${lib.getDev hdf5}/include" + --subst-var-by "HDF5_FORTRAN_LIBS" "${lib.getLib hdf5-fortran-mpi}/lib" \ + --subst-var-by "HDF5_FORTRAN_INCLUDE" "${lib.getDev hdf5-fortran-mpi}/include" ''; configureFlags = [ From 77345dd2d50607de1f92fe5b78356932890866c5 Mon Sep 17 00:00:00 2001 From: qbisi Date: Mon, 3 Mar 2025 21:32:59 +0800 Subject: [PATCH 2/3] petsc: add setupHook to set PETSC_DIR env --- pkgs/by-name/pe/petsc/package.nix | 2 ++ pkgs/by-name/pe/petsc/setup-hook.sh | 1 + pkgs/by-name/pf/pflotran/package.nix | 5 ----- 3 files changed, 3 insertions(+), 5 deletions(-) create mode 100644 pkgs/by-name/pe/petsc/setup-hook.sh diff --git a/pkgs/by-name/pe/petsc/package.nix b/pkgs/by-name/pe/petsc/package.nix index cec3dda54341..c8e7cf5fb780 100644 --- a/pkgs/by-name/pe/petsc/package.nix +++ b/pkgs/by-name/pe/petsc/package.nix @@ -179,6 +179,8 @@ stdenv.mkDerivation rec { inherit mpiSupport; }; + setupHook = ./setup-hook.sh; + meta = with lib; { description = "Portable Extensible Toolkit for Scientific computation"; homepage = "https://petsc.org/release/"; diff --git a/pkgs/by-name/pe/petsc/setup-hook.sh b/pkgs/by-name/pe/petsc/setup-hook.sh new file mode 100644 index 000000000000..4728b6cae777 --- /dev/null +++ b/pkgs/by-name/pe/petsc/setup-hook.sh @@ -0,0 +1 @@ +export PETSC_DIR=@out@ diff --git a/pkgs/by-name/pf/pflotran/package.nix b/pkgs/by-name/pf/pflotran/package.nix index 3d5303aca8d9..b0005ec52d50 100644 --- a/pkgs/by-name/pf/pflotran/package.nix +++ b/pkgs/by-name/pf/pflotran/package.nix @@ -54,11 +54,6 @@ stdenv.mkDerivation (finalAttrs: { --subst-var-by "HDF5_FORTRAN_INCLUDE" "${lib.getDev hdf5-fortran-mpi}/include" ''; - configureFlags = [ - "--with-petsc-dir=${petsc}" - "--with-petsc-arch=linux-gnu-c-release" - ]; - meta = with lib; { description = "Parallel, multi-physics simulation code for subsurface flow and transport"; homepage = "https://pflotran.org/"; From bb479b3fe9471100877d644a0ba5cf1ad9a62fa0 Mon Sep 17 00:00:00 2001 From: qbisi Date: Mon, 3 Mar 2025 21:41:14 +0800 Subject: [PATCH 3/3] petsc: 3.21.4 -> 3.22.4 --- pkgs/by-name/pe/petsc/package.nix | 4 ++-- pkgs/by-name/pf/pflotran/package.nix | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/pe/petsc/package.nix b/pkgs/by-name/pe/petsc/package.nix index c8e7cf5fb780..7ef8de6b4674 100644 --- a/pkgs/by-name/pe/petsc/package.nix +++ b/pkgs/by-name/pe/petsc/package.nix @@ -53,11 +53,11 @@ assert withMumps -> withScalapack; stdenv.mkDerivation rec { pname = "petsc"; - version = "3.21.4"; + version = "3.22.4"; src = fetchzip { url = "https://web.cels.anl.gov/projects/petsc/download/release-snapshots/petsc-${version}.tar.gz"; - hash = "sha256-l7v+ASBL9FLbBmBGTRWDwBihjwLe3uLz+GwXtn8u7e0="; + hash = "sha256-8WV1ylXytkhiNa7YpWSOIpSvzLCCjdVVe5SiGfhicas="; }; strictDeps = true; diff --git a/pkgs/by-name/pf/pflotran/package.nix b/pkgs/by-name/pf/pflotran/package.nix index b0005ec52d50..4feabaa3b2cc 100644 --- a/pkgs/by-name/pf/pflotran/package.nix +++ b/pkgs/by-name/pf/pflotran/package.nix @@ -2,6 +2,7 @@ stdenv, lib, fetchFromBitbucket, + fetchzip, gfortran, mpi, petsc, @@ -29,7 +30,15 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ gfortran ]; buildInputs = [ - petsc + # upstream petsc has lots of fortran api change since 3.22.* + # will keep using old petsc-3.21.4 until pflotran support latest petsc + (petsc.overrideAttrs rec { + version = "3.21.4"; + src = fetchzip { + url = "https://web.cels.anl.gov/projects/petsc/download/release-snapshots/petsc-${version}.tar.gz"; + hash = "sha256-l7v+ASBL9FLbBmBGTRWDwBihjwLe3uLz+GwXtn8u7e0="; + }; + }) blas lapack hdf5-fortran-mpi