summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarkuskowa <markus.kowalewski@gmail.com>2021-11-29 09:10:18 +0100
committerGitHub <noreply@github.com>2021-11-29 09:10:18 +0100
commit70602e9261faf366079b609139ca86a2e298de6f (patch)
tree73b6e45f5708b50dad0bb0aad0ba56020d10b807
parentRevert "nixos/test/boot: nix verify -> nix store verify" (diff)
parentpyscf: 1.7.6.post1 -> 2.0.1 (diff)
downloadnixpkgs-70602e9261faf366079b609139ca86a2e298de6f.tar.gz
Merge pull request #147740 from NixOS/backport-144253-to-release-21.11
[Backport release-21.11] pyscf: 1.7.6.post1 -> 2.0.1
-rw-r--r--pkgs/development/libraries/libcint/default.nix7
-rw-r--r--pkgs/development/libraries/libxc/default.nix12
-rw-r--r--pkgs/development/libraries/science/chemistry/cppe/default.nix25
-rw-r--r--pkgs/development/libraries/science/chemistry/xcfun/default.nix2
-rw-r--r--pkgs/development/python-modules/cppe/default.nix47
-rw-r--r--pkgs/development/python-modules/fields/default.nix20
-rw-r--r--pkgs/development/python-modules/polarizationsolver/default.nix38
-rw-r--r--pkgs/development/python-modules/pyscf/default.nix90
-rw-r--r--pkgs/development/python-modules/pyscf/h5py.patch13
-rw-r--r--pkgs/top-level/all-packages.nix2
-rw-r--r--pkgs/top-level/python-packages.nix8
11 files changed, 233 insertions, 31 deletions
diff --git a/pkgs/development/libraries/libcint/default.nix b/pkgs/development/libraries/libcint/default.nix
index a6f2e05d7361..1ff5eb338a9e 100644
--- a/pkgs/development/libraries/libcint/default.nix
+++ b/pkgs/development/libraries/libcint/default.nix
@@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "libcint";
- version = "4.4.0";
+ version = "4.4.6";
src = fetchFromGitHub {
owner = "sunqm";
repo = "libcint";
rev = "v${version}";
- hash = "sha256-nsIyosn8dBf217UmjXSKLTM2RhIQHCSvPlrvlqo5KLc=";
+ sha256 = "sha256-eWUuORMZs6Bl/zFGYZkpgNAgJPIei+k0cQoWl+v+zxo=";
};
nativeBuildInputs = [ cmake ];
@@ -24,6 +24,9 @@ stdenv.mkDerivation rec {
"-DENABLE_TEST=1"
"-DQUICK_TEST=1"
"-DCMAKE_INSTALL_PREFIX=" # ends up double-adding /nix/store/... prefix, this avoids issue
+ "-DWITH_RANGE_COULOMB:STRING=1"
+ "-DWITH_FORTRAN:STRING=1"
+ "-DMIN_EXPCUTOFF:STRING=20"
];
strictDeps = true;
diff --git a/pkgs/development/libraries/libxc/default.nix b/pkgs/development/libraries/libxc/default.nix
index 653f43764682..046d630888c4 100644
--- a/pkgs/development/libraries/libxc/default.nix
+++ b/pkgs/development/libraries/libxc/default.nix
@@ -17,7 +17,15 @@ stdenv.mkDerivation rec {
patchShebangs ./
'';
- cmakeFlags = [ "-DENABLE_FORTRAN=ON" "-DBUILD_SHARED_LIBS=ON" ];
+ cmakeFlags = [
+ "-DENABLE_FORTRAN=ON"
+ "-DBUILD_SHARED_LIBS=ON"
+ # Force compilation of higher derivatives
+ "-DDISABLE_VXC=0"
+ "-DDISABLE_FXC=0"
+ "-DDISABLE_KXC=0"
+ "-DDISABLE_LXC=0"
+ ];
preCheck = ''
export LD_LIBRARY_PATH=$(pwd)
@@ -29,7 +37,7 @@ stdenv.mkDerivation rec {
description = "Library of exchange-correlation functionals for density-functional theory";
homepage = "https://www.tddft.org/programs/Libxc/";
license = licenses.mpl20;
- platforms = [ "x86_64-linux" ];
+ platforms = platforms.unix;
maintainers = with maintainers; [ markuskowa ];
};
}
diff --git a/pkgs/development/libraries/science/chemistry/cppe/default.nix b/pkgs/development/libraries/science/chemistry/cppe/default.nix
new file mode 100644
index 000000000000..51083e5a2ae9
--- /dev/null
+++ b/pkgs/development/libraries/science/chemistry/cppe/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, lib, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+ pname = "cppe";
+ version = "0.3.1";
+
+ src = fetchFromGitHub {
+ owner = "maxscheurer";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-guM7+ZWDJLcAUJtPkKLvC4LYSA2eBvER7cgwPZ7FxHw=";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ cmakeFlags = [ "-DCMAKE_INSTALL_LIBDIR=lib" ];
+
+ meta = with lib; {
+ description = "C++ and Python library for Polarizable Embedding";
+ homepage = "https://github.com/maxscheurer/cppe";
+ license = licenses.lgpl3Only;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.sheepforce ];
+ };
+}
diff --git a/pkgs/development/libraries/science/chemistry/xcfun/default.nix b/pkgs/development/libraries/science/chemistry/xcfun/default.nix
index 7f8ef3dc47d7..0856168092cb 100644
--- a/pkgs/development/libraries/science/chemistry/xcfun/default.nix
+++ b/pkgs/development/libraries/science/chemistry/xcfun/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
owner = "dftlibs";
repo = pname;
rev = "v${version}";
- sha256= "1bj70cnhbh6ziy02x988wwl7cbwaq17ld7qwhswqkgnnx8rpgxid";
+ sha256 = "1bj70cnhbh6ziy02x988wwl7cbwaq17ld7qwhswqkgnnx8rpgxid";
};
nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/cppe/default.nix b/pkgs/development/python-modules/cppe/default.nix
new file mode 100644
index 000000000000..df00bd8dd120
--- /dev/null
+++ b/pkgs/development/python-modules/cppe/default.nix
@@ -0,0 +1,47 @@
+{ buildPythonPackage
+, lib
+, cmake
+, cppe
+, eigen
+, python
+, pybind11
+, numpy
+, h5py
+, numba
+, scipy
+, pandas
+, polarizationsolver
+, pytest
+}:
+
+buildPythonPackage rec {
+ inherit (cppe) pname version src meta;
+
+ # The python interface requires eigen3, but builds from a checkout in tree.
+ # Using the nixpkgs version instead.
+ postPatch = ''
+ substituteInPlace setup.py \
+ --replace "external/eigen3" "${eigen}/include/eigen3"
+ '';
+
+ nativeBuildInputs = [
+ cmake
+ eigen
+ ];
+
+ dontUseCmakeConfigure = true;
+
+ buildInputs = [ pybind11 ];
+
+ checkInputs = [
+ pytest
+ h5py
+ numba
+ numpy
+ pandas
+ polarizationsolver
+ scipy
+ ];
+
+ pythonImportsCheck = [ "cppe" ];
+}
diff --git a/pkgs/development/python-modules/fields/default.nix b/pkgs/development/python-modules/fields/default.nix
new file mode 100644
index 000000000000..35bf686b4353
--- /dev/null
+++ b/pkgs/development/python-modules/fields/default.nix
@@ -0,0 +1,20 @@
+{ buildPythonPackage, lib, fetchPypi }:
+
+buildPythonPackage rec {
+ pname = "fields";
+ version = "5.0.0";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "sha256-MdSqA9jUTjXfE8Qx3jUTaZfwR6kkpZfYT3vCCeG+Vyc=";
+ };
+
+ pythonImportsCheck = [ "fields" ];
+
+ meta = with lib; {
+ description = "Container class boilerplate killer";
+ homepage = "https://github.com/ionelmc/python-fields";
+ license = licenses.bsd2;
+ maintainers = [ maintainers.sheepforce ];
+ };
+}
diff --git a/pkgs/development/python-modules/polarizationsolver/default.nix b/pkgs/development/python-modules/polarizationsolver/default.nix
new file mode 100644
index 000000000000..c4710f6901ed
--- /dev/null
+++ b/pkgs/development/python-modules/polarizationsolver/default.nix
@@ -0,0 +1,38 @@
+{ buildPythonPackage
+, lib
+, fetchFromGitLab
+, python
+, numpy
+, scipy
+, periodictable
+, fields
+}:
+
+buildPythonPackage rec {
+ pname = "polarizationsolver";
+ version = "unstable-2021-11-02";
+
+ src = fetchFromGitLab {
+ owner = "reinholdt";
+ repo = pname;
+ rev = "00424ac4d1862257a55e4b16543f63ace3fe8c22";
+ sha256 = "sha256-LACf8Xw+o/uJ3+PD/DE/o7nwKY7fv3NyYbpjCrTTnBU=";
+ };
+
+ propagatedBuildInputs = [
+ numpy
+ periodictable
+ scipy
+ ];
+
+ checkInputs = [ fields ];
+
+ pythonImportsCheck = [ "polarizationsolver" ];
+
+ meta = with lib; {
+ description = "Multipole moment solver for quantum chemistry and polarisable embedding";
+ homepage = "https://gitlab.com/reinholdt/polarizationsolver";
+ license = licenses.gpl3Plus;
+ maintainers = [ maintainers.sheepforce ];
+ };
+}
diff --git a/pkgs/development/python-modules/pyscf/default.nix b/pkgs/development/python-modules/pyscf/default.nix
index 0be40b5dfe7c..cf6f91e74f7d 100644
--- a/pkgs/development/python-modules/pyscf/default.nix
+++ b/pkgs/development/python-modules/pyscf/default.nix
@@ -1,45 +1,109 @@
-{ buildPythonPackage, lib, fetchFromGitHub, libcint, libxc, xcfun, blas
-, numpy, scipy, h5py
+{ buildPythonPackage
+, python3
+, lib
+, fetchFromGitHub
+, cmake
+, blas
+, libcint
+, libxc
+, xcfun
+, cppe
+, h5py
+, numpy
+, scipy
+, nose
+, nose-exclude
}:
buildPythonPackage rec {
pname = "pyscf";
- version = "1.7.6.post1";
+ version = "2.0.1";
src = fetchFromGitHub {
owner = "pyscf";
repo = pname;
- rev = "f6c9c6654dd9609c5e467a1edd5c2c076f793acc";
- sha256 = "0xbwkjxxysfpqz72qn6n4a0zr2h6sprbcal8j7kzymh7swjy117w";
+ rev = "v${version}";
+ sha256 = "sha256-nwnhaqSn/9WHBjUPaEabK4x23fJ83WwEYvz6aCcvsDw=";
};
- # Backport from the 2.0.0 alpha releases of PySCF.
- # H5Py > 3.3 deprecates the file modes, that PySCF sets.
- patches = [ ./h5py.patch ];
+ # setup.py calls Cmake and passes the arguments in CMAKE_CONFIGURE_ARGS to cmake.
+ nativeBuildInputs = [ cmake ];
+ dontUseCmakeConfigure = true;
+ preConfigure = ''
+ export CMAKE_CONFIGURE_ARGS="-DBUILD_LIBCINT=0 -DBUILD_LIBXC=0 -DBUILD_XCFUN=0"
+ PYSCF_INC_DIR="${libcint}:${libxc}:${xcfun}";
+ '';
buildInputs = [
+ blas
libcint
libxc
xcfun
- blas
];
propagatedBuildInputs = [
+ cppe
+ h5py
numpy
scipy
- h5py
];
- PYSCF_INC_DIR="${libcint}:${libxc}:${xcfun}";
+ checkInputs = [ nose nose-exclude ];
- doCheck = false;
pythonImportsCheck = [ "pyscf" ];
+ preCheck = ''
+ # Set config used by tests to ensure reproducibility
+ echo 'pbc_tools_pbc_fft_engine = "NUMPY"' > pyscf/pyscf_config.py
+ export OMP_NUM_THREADS=1
+ ulimit -s 20000
+ export PYSCF_CONFIG_FILE=$(pwd)/pyscf/pyscf_config.py
+ '';
+ # As defined for the PySCF CI at https://github.com/pyscf/pyscf/blob/master/.github/workflows/run_tests.sh
+ # minus some additionally numerically instable tests, that are sensitive to BLAS, FFTW, etc.
+ checkPhase = ''
+ runHook preCheck
+
+ nosetests pyscf/ -v \
+ --exclude-dir=examples --exclude-dir=pyscf/pbc/grad \
+ --exclude-dir=pyscf/x2c \
+ --exclude-dir=pyscf/pbc/tdscf \
+ -e test_bz \
+ -e h2o_vdz \
+ -e test_mc2step_4o4e \
+ -e test_ks_noimport \
+ -e test_jk_hermi0 \
+ -e test_j_kpts \
+ -e test_k_kpts \
+ -e high_cost \
+ -e skip \
+ -e call_in_background \
+ -e libxc_cam_beta_bug \
+ -e test_finite_diff_rks_eph \
+ -e test_finite_diff_uks_eph \
+ -e test_pipek \
+ -e test_n3_cis_ewald \
+ -I test_kuccsd_supercell_vs_kpts\.py \
+ -I test_kccsd_ghf\.py \
+ -I test_h_.*\.py \
+ --exclude-test=pyscf/pbc/gw/test/test_kgw_slow_supercell.DiamondTestSupercell3 \
+ --exclude-test=pyscf/pbc/gw/test/test_kgw_slow_supercell.DiamondKSTestSupercell3 \
+ --exclude-test=pyscf/pbc/gw/test/test_kgw_slow.DiamondTestSupercell3 \
+ --exclude-test=pyscf/pbc/gw/test/test_kgw_slow.DiamondKSTestSupercell3 \
+ --exclude-test=pyscf/pbc/tdscf/test/test_krhf_slow_supercell.DiamondTestSupercell3 \
+ --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_hf.DiamondTestSupercell3 \
+ --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_ks.DiamondTestSupercell3 \
+ --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_supercell_hf.DiamondTestSupercell3 \
+ --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_supercell_ks.DiamondTestSupercell3 \
+ -I .*_slow.*py -I .*_kproxy_.*py -I test_proxy.py tdscf/*_slow.py gw/*_slow.py
+
+ runHook postCheck
+ '';
meta = with lib; {
description = "Python-based simulations of chemistry framework";
homepage = "https://github.com/pyscf/pyscf";
license = licenses.asl20;
- platforms = platforms.linux;
+ platforms = platforms.unix;
maintainers = [ maintainers.sheepforce ];
};
}
diff --git a/pkgs/development/python-modules/pyscf/h5py.patch b/pkgs/development/python-modules/pyscf/h5py.patch
deleted file mode 100644
index 160128633208..000000000000
--- a/pkgs/development/python-modules/pyscf/h5py.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/pyscf/lib/misc.py b/pyscf/lib/misc.py
-index ed43689ff..a8a0d0e20 100644
---- a/pyscf/lib/misc.py
-+++ b/pyscf/lib/misc.py
-@@ -42,8 +42,6 @@ if h5py.version.version[:4] == '2.2.':
- sys.stderr.write('h5py-%s is found in your environment. '
- 'h5py-%s has bug in threading mode.\n'
- 'Async-IO is disabled.\n' % ((h5py.version.version,)*2))
--if h5py.version.version[:2] == '3.':
-- h5py.get_config().default_file_mode = 'a'
-
- c_double_p = ctypes.POINTER(ctypes.c_double)
- c_int_p = ctypes.POINTER(ctypes.c_int)
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index e0502670eea3..628d18f70595 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -15926,6 +15926,8 @@ with pkgs;
ctpl = callPackage ../development/libraries/ctpl { };
+ cppe = callPackage ../development/libraries/science/chemistry/cppe { };
+
cppdb = callPackage ../development/libraries/cppdb { };
cpp-utilities = callPackage ../development/libraries/cpp-utilities { };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 2d4a2a1ded01..304a31e77c88 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1765,6 +1765,10 @@ in {
cozy = callPackage ../development/python-modules/cozy { };
+ cppe = callPackage ../development/python-modules/cppe {
+ cppe = pkgs.cppe;
+ };
+
cppheaderparser = callPackage ../development/python-modules/cppheaderparser { };
cppy = callPackage ../development/python-modules/cppy { };
@@ -2697,6 +2701,8 @@ in {
fido2 = callPackage ../development/python-modules/fido2 { };
+ fields = callPackage ../development/python-modules/fields { };
+
filebrowser_safe = callPackage ../development/python-modules/filebrowser_safe { };
filebytes = callPackage ../development/python-modules/filebytes { };
@@ -5929,6 +5935,8 @@ in {
poezio = callPackage ../applications/networking/instant-messengers/poezio { };
+ polarizationsolver = callPackage ../development/python-modules/polarizationsolver { };
+
polib = callPackage ../development/python-modules/polib { };
policy-sentry = callPackage ../development/python-modules/policy-sentry { };