From b6f6454c4916f4d05377eec72a5ba5f01802255b Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Thu, 9 Feb 2023 20:47:47 +0100 Subject: [PATCH 01/16] toml-f: init at 0.3.1 --- overlay.nix | 2 ++ pkgs/lib/toml-f/default.nix | 38 +++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 pkgs/lib/toml-f/default.nix diff --git a/overlay.nix b/overlay.nix index 99be3db2..f675d695 100644 --- a/overlay.nix +++ b/overlay.nix @@ -282,6 +282,8 @@ let tinker = callPackage ./pkgs/apps/tinker { }; + toml-f = callPackage ./pkgs/lib/toml-f { }; + travis-analyzer = callPackage ./pkgs/apps/travis-analyzer { }; turbomole = callPackage ./pkgs/apps/turbomole { }; diff --git a/pkgs/lib/toml-f/default.nix b/pkgs/lib/toml-f/default.nix new file mode 100644 index 00000000..30f108dc --- /dev/null +++ b/pkgs/lib/toml-f/default.nix @@ -0,0 +1,38 @@ +{ stdenv +, lib +, fetchFromGitHub +, gfortran +, cmake +, test-drive +}: + +stdenv.mkDerivation rec { + pname = "toml-f"; + version = "0.3.1"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + hash = "sha256-8FbnUkeJUP4fiuJCroAVDo6U2M7ZkFLpG2OYrapMYtU="; + }; + + nativeBuildInputs = [ gfortran cmake ]; + + buildInputs = [ test-drive]; + + postInstall = '' + substituteInPlace $out/lib/pkgconfig/${pname}.pc \ + --replace "''${prefix}/" "" + ''; + + doCheck = true; + + meta = with lib; { + description = "TOML parser implementation for data serialization and deserialization in Fortran"; + license = with licenses; [ asl20 mit ]; + homepage = "https://github.com/toml-f/toml-f"; + platforms = platforms.linux; + maintainers = [ maintainers.sheepforce ]; + }; +} From 38b860dd807c23e763ce54c7219d6153bf7e3b08 Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Thu, 9 Feb 2023 20:48:04 +0100 Subject: [PATCH 02/16] mctc-lib: 0.3.0 -> 0.3.1 --- pkgs/lib/mctc-lib/default.nix | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/pkgs/lib/mctc-lib/default.nix b/pkgs/lib/mctc-lib/default.nix index 2f4896c0..e9be8397 100644 --- a/pkgs/lib/mctc-lib/default.nix +++ b/pkgs/lib/mctc-lib/default.nix @@ -1,31 +1,34 @@ -{ stdenv, lib, fetchFromGitHub, meson, ninja, gfortran, pkg-config, json-fortran, cmake }: +{ stdenv +, lib +, fetchFromGitHub +, gfortran +, pkg-config +, json-fortran +, cmake +}: stdenv.mkDerivation rec { pname = "mctc-lib"; - version = "0.3.0"; + version = "0.3.1"; src = fetchFromGitHub { owner = "grimme-lab"; repo = pname; rev = "v${version}"; - hash = "sha256-3e89g0WkZU/HTBtGaLKzhsv2RTlFk/QK0OT24BGfcKQ="; + hash = "sha256-AXjg/ZsitdDf9fNoGVmVal1iZ4/sxjJb7A9W4yye/rg="; }; - postPatch = '' - substituteInPlace config/template.pc \ - --replace 'libdir=''${prefix}/@CMAKE_INSTALL_LIBDIR@' "libdir=@CMAKE_INSTALL_LIBDIR@" \ - --replace 'includedir=''${prefix}/@CMAKE_INSTALL_INCLUDEDIR@' "includedir=@CMAKE_INSTALL_INCLUDEDIR@" - ''; - - nativeBuildInputs = [ - ninja - gfortran - pkg-config - cmake - ]; + nativeBuildInputs = [ gfortran pkg-config cmake ]; buildInputs = [ json-fortran ]; + postInstall = '' + substituteInPlace $out/lib/pkgconfig/${pname}.pc \ + --replace "''${prefix}" "" + ''; + + doCheck = true; + meta = with lib; { description = "Modular computation tool chain library"; homepage = "https://github.com/grimme-lab/mctc-lib"; From ff2a85957bc2c063c0bc75e667cae33d86fc773b Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Thu, 9 Feb 2023 20:48:26 +0100 Subject: [PATCH 03/16] mstore: init at 0.2.0 --- overlay.nix | 2 ++ pkgs/lib/mstore/default.nix | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 pkgs/lib/mstore/default.nix diff --git a/overlay.nix b/overlay.nix index f675d695..032e664f 100644 --- a/overlay.nix +++ b/overlay.nix @@ -205,6 +205,8 @@ let moltemplate = super.python3.pkgs.toPythonApplication self.python3.pkgs.moltemplate; + mstore = callPackage ./pkgs/lib/mstore { }; + mrcc = callPackage ./pkgs/apps/mrcc { }; mrchem = callPackage ./pkgs/apps/mrchem { }; diff --git a/pkgs/lib/mstore/default.nix b/pkgs/lib/mstore/default.nix new file mode 100644 index 00000000..7fcdfbdf --- /dev/null +++ b/pkgs/lib/mstore/default.nix @@ -0,0 +1,36 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, gfortran +, mctc-lib +}: + +stdenv.mkDerivation rec { + pname = "mstore"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "grimme-lab"; + repo = pname; + rev = "v${version}"; + hash = "sha256-dN2BulLS/ENRFVdJIrZRxgBV8S4d5+7BjTCGnhBbf4I="; + }; + + nativeBuildInputs = [ cmake gfortran ]; + + buildInputs = [ mctc-lib ]; + + postInstall = '' + substituteInPlace $out/lib/pkgconfig/${pname}.pc \ + --replace "''${prefix}" "" + ''; + + meta = with lib; { + description = "Molecular structure store for testing"; + license = licenses.asl20; + homepage = "https://github.com/grimme-lab/mstore"; + platforms = platforms.linux; + maintainers = [ maintainers.sheepforce ]; + }; +} From 8e54e00e17b289e39e5d86b1e9746cbac5cf5e72 Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Fri, 24 Feb 2023 11:07:47 +0100 Subject: [PATCH 04/16] dftd4: init at 3.5.0 dftd4: blas lapack ILP64 assertions --- overlay.nix | 2 ++ pkgs/lib/dftd4/default.nix | 47 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 pkgs/lib/dftd4/default.nix diff --git a/overlay.nix b/overlay.nix index 032e664f..73a65c3c 100644 --- a/overlay.nix +++ b/overlay.nix @@ -139,6 +139,8 @@ let dftd3 = callPackage ./pkgs/apps/dft-d3 { }; + dftd4 = callPackage ./pkgs/lib/dftd4 { }; + dirac = callPackage ./pkgs/apps/dirac { inherit (self) exatensor; }; diff --git a/pkgs/lib/dftd4/default.nix b/pkgs/lib/dftd4/default.nix new file mode 100644 index 00000000..a099a14a --- /dev/null +++ b/pkgs/lib/dftd4/default.nix @@ -0,0 +1,47 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, gfortran +, blas +, lapack +, mctc-lib +, mstore +, multicharge +}: + +assert !blas.isILP64 && !lapack.isILP64; + +stdenv.mkDerivation rec { + pname = "dftd4"; + version = "3.5.0"; + + src = fetchFromGitHub { + owner = "dftd4"; + repo = pname; + rev = "v${version}"; + hash = "sha256-ZCoFbjTNQD7slq5sKwPRPkrHSHofsxU9C9h/bF5jmZI="; + }; + + nativeBuildInputs = [ cmake gfortran ]; + + buildInputs = [ blas lapack mctc-lib mstore multicharge ]; + + postInstall = '' + substituteInPlace $out/lib/pkgconfig/${pname}.pc \ + --replace "''${prefix}" "" + ''; + + doCheck = true; + preCheck = '' + export OMP_NUM_THREADS=2 + ''; + + meta = with lib; { + description = "Generally Applicable Atomic-Charge Dependent London Dispersion Correction"; + license = with licenses; [ lgpl3Plus gpl3Plus ]; + homepage = "https://github.com/grimme-lab/dftd4"; + platforms = platforms.linux; + maintainers = [ maintainers.sheepforce ]; + }; +} From a1a34856c0c51a332e0d7577d79280b65eb31dd8 Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Fri, 24 Feb 2023 11:07:53 +0100 Subject: [PATCH 05/16] multicharge: init at 0.2.0 multicharge: blas lapack ILP64 assertions --- overlay.nix | 2 ++ pkgs/lib/multicharge/default.nix | 46 ++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 pkgs/lib/multicharge/default.nix diff --git a/overlay.nix b/overlay.nix index 73a65c3c..dd5ca56a 100644 --- a/overlay.nix +++ b/overlay.nix @@ -215,6 +215,8 @@ let mt-dgemm = callPackage ./pkgs/apps/mt-dgemm { }; + multicharge = callPackage ./pkgs/lib/multicharge { }; + multiwfn = callPackage ./pkgs/apps/multiwfn { }; gmultiwfn = callPackage ./pkgs/apps/gmultiwfn { }; diff --git a/pkgs/lib/multicharge/default.nix b/pkgs/lib/multicharge/default.nix new file mode 100644 index 00000000..5a5046cd --- /dev/null +++ b/pkgs/lib/multicharge/default.nix @@ -0,0 +1,46 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, gfortran +, blas +, lapack +, mctc-lib +, mstore +}: + +assert !blas.isILP64 && !lapack.isILP64; + +stdenv.mkDerivation rec { + pname = "multicharge"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "grimme-lab"; + repo = pname; + rev = "v${version}"; + hash = "sha256-oUI5x5/Gd0EZBb1w+0jlJUF9X51FnkHFu8H7KctqXl0="; + }; + + nativeBuildInputs = [ cmake gfortran ]; + + buildInputs = [ blas lapack mctc-lib mstore ]; + + postInstall = '' + substituteInPlace $out/lib/pkgconfig/${pname}.pc \ + --replace "''${prefix}" "" + ''; + + doCheck = true; + preCheck = '' + export OMP_NUM_THREADS=2 + ''; + + meta = with lib; { + description = "Electronegativity equilibration model for atomic partial charges"; + license = licenses.asl20; + homepage = "https://github.com/grimme-lab/multicharge"; + platforms = platforms.linux; + maintainers = [ maintainers.sheepforce ]; + }; +} From 9a2593baf53951483e2588a0c1b640b6ef4e0b5d Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Fri, 24 Feb 2023 11:08:09 +0100 Subject: [PATCH 06/16] simple-dftd3: init at 0.7.0 simple-dftd3: blas lapack ILP64 assertions --- overlay.nix | 1 + pkgs/lib/simple-dftd3/default.nix | 46 +++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 pkgs/lib/simple-dftd3/default.nix diff --git a/overlay.nix b/overlay.nix index dd5ca56a..e83a175a 100644 --- a/overlay.nix +++ b/overlay.nix @@ -281,6 +281,7 @@ let sharc-turbomole = with self; nullable turbomole (sharc.override { enableTurbomole = true; }); + simple-dftd3 = callPackage ./pkgs/lib/simple-dftd3 { }; stream-benchmark = callPackage ./pkgs/apps/stream { }; diff --git a/pkgs/lib/simple-dftd3/default.nix b/pkgs/lib/simple-dftd3/default.nix new file mode 100644 index 00000000..f0e9f8a1 --- /dev/null +++ b/pkgs/lib/simple-dftd3/default.nix @@ -0,0 +1,46 @@ +{ stdenv +, lib +, fetchFromGitHub +, gfortran +, cmake +, mctc-lib +, mstore +, toml-f +, blas +}: + +assert !blas.isILP64; + +stdenv.mkDerivation rec { + pname = "simple-dftd3"; + version = "0.7.0"; + + src = fetchFromGitHub { + owner = "dftd3"; + repo = pname; + rev = "v${version}"; + hash = "sha256-5OvmMgjD8ujjKHkuw4NT8hEXKh5YPxuBl/Mu6g2/KIA="; + }; + + nativeBuildInputs = [ cmake gfortran ]; + + buildInputs = [ mctc-lib mstore toml-f blas ]; + + postInstall = '' + substituteInPlace $out/lib/pkgconfig/s-dftd3.pc \ + --replace "''${prefix}" "" + ''; + + doCheck = true; + preCheck = '' + export OMP_NUM_THREADS=2 + ''; + + meta = with lib; { + description = "Reimplementation of the DFT-D3 program"; + license = with licenses; [lgpl3Only gpl3Only]; + homepage = "https://github.com/dftd3/simple-dftd3"; + platforms = platforms.linux; + maintainers = [ maintainers.sheepforce ]; + }; +} From 22d9d1c09d681aefaa110ff282c781d68d6a8b67 Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Wed, 15 Feb 2023 13:53:53 +0100 Subject: [PATCH 07/16] tblite: init at 0.3.0 tblite: fix meta --- overlay.nix | 2 ++ pkgs/lib/tblite/default.nix | 57 +++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 pkgs/lib/tblite/default.nix diff --git a/overlay.nix b/overlay.nix index e83a175a..14dbcdc2 100644 --- a/overlay.nix +++ b/overlay.nix @@ -285,6 +285,8 @@ let stream-benchmark = callPackage ./pkgs/apps/stream { }; + tblite = callPackage ./pkgs/lib/tblite { }; + test-drive = callPackage ./pkgs/lib/test-drive { }; tinker = callPackage ./pkgs/apps/tinker { }; diff --git a/pkgs/lib/tblite/default.nix b/pkgs/lib/tblite/default.nix new file mode 100644 index 00000000..c21879d4 --- /dev/null +++ b/pkgs/lib/tblite/default.nix @@ -0,0 +1,57 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, gfortran +, blas +, lapack +, mctc-lib +, mstore +, toml-f +, multicharge +, dftd4 +, simple-dftd3 +}: + +stdenv.mkDerivation rec { + pname = "tblite"; + version = "0.3.0"; + + src = fetchFromGitHub { + owner = "tblite"; + repo = pname; + rev = "v${version}"; + hash = "sha256-R7CAFG/x55k5Ieslxeq+DWq1wPip4cI+Yvn1cBbeVNs="; + }; + + nativeBuildInputs = [ cmake gfortran ]; + + buildInputs = [ + blas + lapack + mctc-lib + mstore + toml-f + multicharge + dftd4 + simple-dftd3 + ]; + + doCheck = true; + preCheck = '' + export OMP_NUM_THREADS=2 + ''; + + postInstall = '' + substituteInPlace $out/lib/pkgconfig/${pname}.pc \ + --replace "''${prefix}" "" + ''; + + meta = with lib; { + description = "Light-weight tight-binding framework"; + license = with licenses; [ gpl3Plus lgpl3Plus ]; + homepage = "https://github.com/tblite/tblite"; + platforms = platforms.linux; + maintainers = [ maintainers.sheepforce ]; + }; +} From 2798e01a318cc5c1d289c3baf802125a4954aa3f Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Fri, 24 Feb 2023 11:07:40 +0100 Subject: [PATCH 08/16] xtb: 6.5.1 -> 6.6.0 xtb: blas lapack ILP64 assertions --- pkgs/apps/xtb/default.nix | 57 ++++++++++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 12 deletions(-) diff --git a/pkgs/apps/xtb/default.nix b/pkgs/apps/xtb/default.nix index cac8930b..64b73e97 100644 --- a/pkgs/apps/xtb/default.nix +++ b/pkgs/apps/xtb/default.nix @@ -1,9 +1,27 @@ -{ stdenv, lib, gfortran, fetchFromGitHub, cmake, makeWrapper, blas, lapack, writeTextFile -, mctc-lib, test-drive -, turbomole, enableTurbomole ? false -, orca, enableOrca ? false +{ stdenv +, lib +, gfortran +, fetchFromGitHub +, cmake +, makeWrapper +, blas +, lapack +, writeTextFile +, mctc-lib +, test-drive +, tblite +, toml-f +, simple-dftd3 +, dftd4 +, multicharge +, enableTurbomole ? false +, turbomole +, enableOrca ? false +, orca , cefine -} : +}: + +assert !blas.isILP64 && !lapack.isILP64; let description = "Semiempirical extended tight-binding program package"; @@ -14,25 +32,35 @@ let ++ lib.optional enableTurbomole cefine ); -in stdenv.mkDerivation rec { +in +stdenv.mkDerivation rec { pname = "xtb"; - version = "6.5.1"; + version = "6.6.0"; - src = fetchFromGitHub { + src = fetchFromGitHub { owner = "grimme-lab"; repo = pname; rev = "v${version}"; - hash = "sha256-9DTaHsK1NgcNbPKsjrVNvoWTyLdaqilZ59sAjAudS2M="; + hash = "sha256-RjSxuRAddTtSXOBEBiad916w312v3PWNHDLBzRdAjJM="; }; nativeBuildInputs = [ gfortran cmake makeWrapper - test-drive ]; - buildInputs = [ blas lapack mctc-lib ]; + buildInputs = [ + blas + lapack + mctc-lib + tblite + test-drive + toml-f + simple-dftd3 + dftd4 + multicharge + ]; hardeningDisable = [ "format" ]; @@ -57,13 +85,18 @@ in stdenv.mkDerivation rec { --prefix PATH : "${binSearchPath}" ''; + doCheck = true; + preCheck = '' + export OMP_NUM_THREADS=2 + ''; + setupHooks = [ ./xtbHook.sh ]; passthru = { inherit enableOrca enableTurbomole; }; meta = with lib; { inherit description; - homepage = "https://www.chemie.uni-bonn.de/pctc/mulliken-center/grimme/software/xtb"; + homepage = "https://github.com/grimme-lab/xtb"; license = licenses.lgpl3Only; platforms = platforms.linux; maintainers = [ maintainers.sheepforce ]; From 1de30d37baa93d90b0c06875f97300dd76b1af5e Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Thu, 23 Feb 2023 22:29:42 +0100 Subject: [PATCH 09/16] xtb: include patch for Hessian calculation xtb: use final patch version --- pkgs/apps/xtb/default.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/apps/xtb/default.nix b/pkgs/apps/xtb/default.nix index 64b73e97..3f6480e4 100644 --- a/pkgs/apps/xtb/default.nix +++ b/pkgs/apps/xtb/default.nix @@ -2,6 +2,7 @@ , lib , gfortran , fetchFromGitHub +, fetchpatch , cmake , makeWrapper , blas @@ -44,6 +45,15 @@ stdenv.mkDerivation rec { hash = "sha256-RjSxuRAddTtSXOBEBiad916w312v3PWNHDLBzRdAjJM="; }; + patches = [ + (# Fixes numerical hessian computation + fetchpatch { + url = "https://github.com/grimme-lab/xtb/commit/83090be673e2468c27fcd74d519548d8d51bd8df.diff"; + hash = "sha256-EniJFAuCa58gNoyvcY2zaUcDFXtJR1/TZUNzHhuWUDA="; + } + ) + ]; + nativeBuildInputs = [ gfortran cmake From 1c883c97d3a0b01afbe86e038127d8ba13a07821 Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Thu, 9 Feb 2023 20:50:52 +0100 Subject: [PATCH 10/16] xtb-python: 20.2 -> 22.1 --- pkgs/lib/xtb-python/default.nix | 34 +++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/pkgs/lib/xtb-python/default.nix b/pkgs/lib/xtb-python/default.nix index 30451601..b6b2700c 100644 --- a/pkgs/lib/xtb-python/default.nix +++ b/pkgs/lib/xtb-python/default.nix @@ -1,27 +1,30 @@ -{ buildPythonPackage, lib, fetchFromGitHub, cffi, numpy, ase, qcelemental, meson, ninja, pkg-config, - xtb, pytestCheckHook, python +{ buildPythonPackage +, lib +, fetchFromGitHub +, cffi +, numpy +, ase +, qcelemental +, meson +, meson-python +, ninja +, cmake +, pkg-config +, xtb }: buildPythonPackage rec { pname = "xtb-python"; - version = "20.2"; + version = "22.1"; src = fetchFromGitHub { owner = "grimme-lab"; repo = pname; rev = "v${version}"; - sha256 = "0ra4d4hi34clckxy9nv0k3ignjcfa7vv1w33y854zqk9qr45z4bg"; + hash = "sha256-TTVtPVhb7FJnvu/C2yJhxOE/KzuLxe0N4HbpbkE/MTM="; }; - postPatch = '' - cp -r ${xtb.src} subprojects/. - ''; - - nativeBuildInputs = [ - meson - ninja - pkg-config - ]; + nativeBuildInputs = [ meson ninja pkg-config meson-python ]; propagatedBuildInputs = [ cffi @@ -31,15 +34,14 @@ buildPythonPackage rec { xtb ]; + format = "pyproject"; + # Build a C module to interface XTB. preBuild = '' meson setup build --prefix=$(pwd) --default-library=shared ninja -C build install - cp ./${python.passthru.sitePackages}/_libxtb.*.so ./xtb/. ''; - checkInputs = [ pytestCheckHook ]; - pytestFlagsArray = [ "-k 'not (qcschema or gfn2xtb_orbitals)'" ]; # Numerically soooo slightly off pythonImportsCheck = [ "xtb.interface" "xtb.libxtb" ]; preCheck = "export OMP_NUM_THREADS=4"; From 9b7f5b5902f41d185c52ff0886fece5fc6aaa746 Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Fri, 24 Feb 2023 11:07:30 +0100 Subject: [PATCH 11/16] tblite: build python bindings tblite: blas lapack ILP64 assertions --- pkgs/lib/tblite/default.nix | 2 ++ pkgs/lib/tblite/python.nix | 33 +++++++++++++++++++++++++++++++++ pythonPackages.nix | 5 +++++ 3 files changed, 40 insertions(+) create mode 100644 pkgs/lib/tblite/python.nix diff --git a/pkgs/lib/tblite/default.nix b/pkgs/lib/tblite/default.nix index c21879d4..0f05315b 100644 --- a/pkgs/lib/tblite/default.nix +++ b/pkgs/lib/tblite/default.nix @@ -13,6 +13,8 @@ , simple-dftd3 }: +assert !blas.isILP64 && !lapack.isILP64; + stdenv.mkDerivation rec { pname = "tblite"; version = "0.3.0"; diff --git a/pkgs/lib/tblite/python.nix b/pkgs/lib/tblite/python.nix new file mode 100644 index 00000000..f931530e --- /dev/null +++ b/pkgs/lib/tblite/python.nix @@ -0,0 +1,33 @@ +{ buildPythonPackage +, meson +, ninja +, pkg-config +, tblite +, cffi +}: + +buildPythonPackage rec { + pname = tblite.pname; + version = tblite.version; + + src = tblite.src; + + nativeBuildInputs = [ meson ninja pkg-config ]; + + buildInputs = [ tblite ]; + + propagatedBuildInputs = [ cffi ]; + + format = "other"; + + configurePhase = '' + runHook preConfigure + + meson setup build python --prefix=$out + cd build + + runHook postConfigure + ''; + + inherit (tblite) meta; +} diff --git a/pythonPackages.nix b/pythonPackages.nix index 117359eb..53508b17 100644 --- a/pythonPackages.nix +++ b/pythonPackages.nix @@ -49,6 +49,11 @@ let pyphspu = callPackage ./pkgs/lib/pyphspu { }; + tblite = callPackage ./pkgs/lib/tblite/python.nix { + inherit (selfPkgs) tblite; + inherit (superPkgs) meson; + }; + veloxchem = callPackage ./pkgs/apps/veloxchem { }; vermouth = callPackage ./pkgs/apps/vermouth { }; From cc98ff080f39260bfab0853747048ead05e8c3f3 Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Wed, 15 Feb 2023 13:54:19 +0100 Subject: [PATCH 12/16] fypp: init at 3.1 fypp: remove leftovers --- overlay.nix | 2 ++ pkgs/apps/fypp/default.nix | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 pkgs/apps/fypp/default.nix diff --git a/overlay.nix b/overlay.nix index 14dbcdc2..1fcbb873 100644 --- a/overlay.nix +++ b/overlay.nix @@ -151,6 +151,8 @@ let exciting = callPackage ./pkgs/apps/exciting { }; + fypp = prev.python3.pkgs.callPackage ./pkgs/apps/fypp { }; + gabedit = callPackage ./pkgs/apps/gabedit { }; gamess-us = callPackage ./pkgs/apps/gamess-us { diff --git a/pkgs/apps/fypp/default.nix b/pkgs/apps/fypp/default.nix new file mode 100644 index 00000000..399ab406 --- /dev/null +++ b/pkgs/apps/fypp/default.nix @@ -0,0 +1,21 @@ +{ lib, stdenv, fetchFromGitHub, buildPythonApplication }: + +buildPythonApplication rec { + pname = "fypp"; + version = "3.1"; + + src = fetchFromGitHub { + owner = "aradi"; + repo = pname; + rev = version; + hash = "sha256-iog5Gdcd1F230Nl4JDrKoyYr8JualVgNZQzHLzd4xe8="; + }; + + meta = with lib; { + description = " Python powered Fortran preprocessor "; + homepage = "https://github.com/gator-program/gator"; + license = licenses.gpl3Only; + maintainers = [ maintainers.markuskowa ]; + }; +} + From 9ceceb291fa75bc79b1bfd072e8854a22398c3bc Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Wed, 15 Feb 2023 13:54:13 +0100 Subject: [PATCH 13/16] mpifx: init at 1.3.1 mpifx: remove leftovers --- overlay.nix | 2 ++ pkgs/lib/mpifx/default.nix | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 pkgs/lib/mpifx/default.nix diff --git a/overlay.nix b/overlay.nix index 1fcbb873..0f5d787a 100644 --- a/overlay.nix +++ b/overlay.nix @@ -209,6 +209,8 @@ let moltemplate = super.python3.pkgs.toPythonApplication self.python3.pkgs.moltemplate; + mpifx = callPackage ./pkgs/lib/mpifx { }; + mstore = callPackage ./pkgs/lib/mstore { }; mrcc = callPackage ./pkgs/apps/mrcc { }; diff --git a/pkgs/lib/mpifx/default.nix b/pkgs/lib/mpifx/default.nix new file mode 100644 index 00000000..54b33d5c --- /dev/null +++ b/pkgs/lib/mpifx/default.nix @@ -0,0 +1,32 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, fypp +, gfortran +, mpi +}: + +stdenv.mkDerivation rec { + pname = "mpifx"; + version = "1.3.1"; + + src = fetchFromGitHub { + owner = "dftbplus"; + repo = pname; + rev = version; + hash = "sha256-FCR4252tYRfkP4updoNMzwHiGj3wq3/iTubn+paAiy4="; + }; + + nativeBuildInputs = [ cmake fypp gfortran ]; + + propagatedBuildInputs = [ mpi ]; + + meta = with lib; { + description = "Modern Fortran wrappers around MPI routines"; + license = licenses.bsd2; + homepage = "https://github.com/dftbplus/mpifx"; + platforms = platforms.linux; + maintainers = [ maintainers.sheepforce ]; + }; +} From cd04bbff41b93f0a0753b14c2a6b5575c3c64512 Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Fri, 24 Feb 2023 11:08:01 +0100 Subject: [PATCH 14/16] scalapackfx: init at 1.1 scalapackfx: check for ILP64 scalapackfx: blas lapack ILP64 assertions --- overlay.nix | 2 ++ pkgs/lib/scalapackfx/default.nix | 41 ++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 pkgs/lib/scalapackfx/default.nix diff --git a/overlay.nix b/overlay.nix index 0f5d787a..8bf285cb 100644 --- a/overlay.nix +++ b/overlay.nix @@ -257,6 +257,8 @@ let qmcpack = callPackage ./pkgs/apps/qmcpack { }; + scalapackfx = callPackage ./pkgs/lib/scalapackfx { }; + # blank version sharc = callPackage ./pkgs/apps/sharc/default.nix { bagel = self.bagel-serial; diff --git a/pkgs/lib/scalapackfx/default.nix b/pkgs/lib/scalapackfx/default.nix new file mode 100644 index 00000000..98a83128 --- /dev/null +++ b/pkgs/lib/scalapackfx/default.nix @@ -0,0 +1,41 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, fypp +, gfortran +, mpifx +, lapack +, scalapack +}: + +assert !lapack.isILP64 && !scalapack.isILP64; + +stdenv.mkDerivation rec { + pname = "scalapackfx"; + version = "1.1"; + + src = fetchFromGitHub { + owner = "dftbplus"; + repo = pname; + rev = version; + hash = "sha256-7vjRtlK9awrNieI1OBBDuRDPdgeR66U2X74Z4V2twpI="; + }; + + nativeBuildInputs = [ cmake fypp gfortran ]; + + buildInputs = [ mpifx lapack scalapack ]; + + cmakeFlags = [ + "-DSCALAPACK_LIBRARY=${scalapack}/lib/libscalapack.so" + "-DLAPACK_LIBRARY=${lapack}/lib/liblapack.so" + ]; + + meta = with lib; { + description = "Modern Fortran wrappers around ScaLAPACK routines"; + license = licenses.bsd2; + homepage = "https://github.com/dftbplus/scalapackfx"; + platforms = platforms.linux; + maintainers = [ maintainers.sheepforce ]; + }; +} From 195d856cc57a54953a3dee0bd7ed87b448be9460 Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Fri, 24 Feb 2023 11:07:35 +0100 Subject: [PATCH 15/16] dftbplus: init at 22.2 dftbplus: blas lapack ILP64 assertions --- overlay.nix | 2 + pkgs/apps/dftbplus/default.nix | 87 ++++++++++++++++++++++++++++++++++ pythonPackages.nix | 4 ++ 3 files changed, 93 insertions(+) create mode 100644 pkgs/apps/dftbplus/default.nix diff --git a/overlay.nix b/overlay.nix index 8bf285cb..61b9c15b 100644 --- a/overlay.nix +++ b/overlay.nix @@ -141,6 +141,8 @@ let dftd4 = callPackage ./pkgs/lib/dftd4 { }; + dftbplus = super.python3.pkgs.toPythonApplication self.python3.pkgs.dftbplus; + dirac = callPackage ./pkgs/apps/dirac { inherit (self) exatensor; }; diff --git a/pkgs/apps/dftbplus/default.nix b/pkgs/apps/dftbplus/default.nix new file mode 100644 index 00000000..b6e62777 --- /dev/null +++ b/pkgs/apps/dftbplus/default.nix @@ -0,0 +1,87 @@ +{ buildPythonPackage +, lib +, gfortran +, fetchFromGitHub +, cmake +, blas +, lapack +, mpi +, scalapack +, test-drive +, mctc-lib +, mstore +, toml-f +, tblite +, mpifx +, scalapackfx +, simple-dftd3 +, multicharge +, dftd4 +, numpy +}: + +assert !blas.isILP64 && !lapack.isILP64; + +buildPythonPackage rec { + pname = "dftbplus"; + version = "22.2"; + + src = fetchFromGitHub { + owner = "dftbplus"; + repo = pname; + rev = version; + hash = "sha256-bADKCee5vBH3aIhuo0Ce/GrZ//nd8j4AcWDSWYoLRY4="; + }; + + postPatch = '' + patchShebangs . + + substituteInPlace tools/dptools/CMakeLists.txt \ + --replace '$DESTDIR/' "" + ''; + + nativeBuildInputs = [ + gfortran + cmake + ]; + + buildInputs = [ + blas + lapack + scalapack + test-drive + mctc-lib + mstore + toml-f + tblite + mpifx + scalapackfx + simple-dftd3 + multicharge + dftd4 + ]; + + propagatedBuildInputs = [ numpy ]; + + format = "other"; + + cmakeFlags = [ + "-DWITH_API=ON" + "-DWITH_OMP=ON" + "-DWITH_MPI=ON" + "-DWITH_TBLITE=ON" + "-DWITH=SDFTD3=ON" + "-DWITH_PYTHON=ON" + "-DSCALAPACK_LIBRARY=${scalapack}/lib/libscalapack.so" + ]; + + pythonImportsCheck = [ "dptools" ]; + + meta = with lib; { + description = "DFTB+ general package for performing fast atomistic simulations"; + homepage = "https://github.com/dftbplus/dftbplus"; + license = with licenses; [ gpl3Plus lgpl3Plus ]; + platforms = platforms.linux; + maintainers = [ maintainers.sheepforce ]; + }; +} diff --git a/pythonPackages.nix b/pythonPackages.nix index 53508b17..25781b48 100644 --- a/pythonPackages.nix +++ b/pythonPackages.nix @@ -14,6 +14,10 @@ let } // lib.optionalAttrs super.isPy3k { adcc = callPackage ./pkgs/apps/adcc { }; + dftbplus = callPackage ./pkgs/apps/dftbplus { + inherit (selfPkgs) tblite; + }; + pyqdng = callPackage ./pkgs/apps/pyQDng { }; gator = callPackage ./pkgs/apps/gator { }; From b6c3b9f9282293ae91f7cdb9273b2dfd147756ba Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Fri, 24 Feb 2023 14:08:40 +0100 Subject: [PATCH 16/16] pysisyphus: 0.7.6post3 -> 0.8.0a0, remove --acc flag from xtb pysisyphus: fix xtb patch pysisyphus: remove xtb workaround again --- pkgs/apps/pysisyphus/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/apps/pysisyphus/default.nix b/pkgs/apps/pysisyphus/default.nix index 27b3cbe7..be5033e9 100644 --- a/pkgs/apps/pysisyphus/default.nix +++ b/pkgs/apps/pysisyphus/default.nix @@ -70,7 +70,7 @@ let in buildPythonPackage rec { pname = "pysisyphus"; - version = "0.7.6.post3"; + version = "0.8.0a0"; nativeBuildInputs = [ makeWrapper setuptools-scm ]; @@ -115,8 +115,8 @@ in src = fetchFromGitHub { owner = "eljost"; repo = pname; - rev = "dc999130d5a0058d78ec9c19090d92656e385606"; - hash = "sha256-KcJpDhKsB1vjPmwnNTlGsjQ6vQhFcLm8I4dfpu8r9S0="; + rev = version; + hash = "sha256-NCwhEkSTTNf2uS3BGGrl6i9dGJot/7Vqzvfr4AwwdXk="; }; format = "pyproject";