diff --git a/flake/src.nix b/flake/src.nix index 35ea93e9..2c428f02 100644 --- a/flake/src.nix +++ b/flake/src.nix @@ -23,4 +23,17 @@ version = "3.1.2"; hash = "sha256-f2cu+itsoNs03paOW1dmsUsbPa3iEtL4oIPGAKETRc4="; }; + vtst = + { + patch = pkgs.fetchzip + { + url = "http://theory.cm.utexas.edu/code/vtstcode-204.tgz"; + sha256 = "00qpqiabl568fwqjnmwqwr0jwg7s56xd9lv9lw8q4qxqy19cpg62"; + }; + script = pkgs.fetchzip + { + url = "http://theory.cm.utexas.edu/code/vtstscripts.tgz"; + sha256 = "18gsw2850ig1mg4spp39i0ygfcwx0lqnamysn5whiax22m8d5z67"; + }; + }; } diff --git a/modules/packages/vasp.nix b/modules/packages/vasp.nix index 0d040f60..a3401d6c 100644 --- a/modules/packages/vasp.nix +++ b/modules/packages/vasp.nix @@ -12,7 +12,7 @@ inputs: { _packages = ( - [ localPackages.vasp.intel localPackages.vasp.vtstscripts localPackages.vaspkit wannier90 ] + [ localPackages.vasp.intel localPackages.vasp.vtst localPackages.vaspkit wannier90 ] ++ (inputs.lib.optional (let inherit (inputs.config.nixos.system.nixpkgs) cuda; in cuda.enable && cuda.capabilities != null) localPackages.vasp.nvidia) diff --git a/packages/default.nix b/packages/default.nix index 59b906e9..61dcedd9 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -40,12 +40,14 @@ inputs: rec nvidia = inputs.pkgs.callPackage ./vasp/nvidia { inherit (nvhpcPackages) stdenv hdf5; - inherit vtst src; + inherit src; + vtst = inputs.topInputs.self.src.vtst.patch; wannier90 = inputs.pkgs.wannier90.overrideAttrs { buildFlags = [ "dynlib" ]; }; }; intel = inputs.pkgs.callPackage ./vasp/intel { - inherit vtst src; + inherit src; + vtst = inputs.topInputs.self.src.vtst.patch; inherit (inputs.pkgs.intelPackages_2023) stdenv; mpi = inputs.pkgs.openmpi.override { @@ -62,8 +64,7 @@ inputs: rec }; wannier90 = inputs.pkgs.wannier90.overrideAttrs { buildFlags = [ "dynlib" ]; }; }; - vtst = (inputs.pkgs.callPackage ./vasp/vtst.nix {}); - vtstscripts = inputs.pkgs.callPackage ./vasp/vtstscripts.nix {}; + vtst = inputs.pkgs.callPackage ./vasp/vtst.nix { src = inputs.topInputs.self.src.vtst.script; }; }; mumax = inputs.pkgs.callPackage ./mumax.nix { src = inputs.topInputs.mumax; }; biu = inputs.pkgs.callPackage ./biu diff --git a/packages/nvhpcStdenv.nix b/packages/nvhpcStdenv.nix index 27d3eae8..305a7cc8 100644 --- a/packages/nvhpcStdenv.nix +++ b/packages/nvhpcStdenv.nix @@ -65,9 +65,9 @@ let export PATH=${compilerDir}/bin:${mpiDir}/bin''${PATH:+:$PATH} # NVPL need this to load libgomp.so (actually libnvomp.so) from nvhpc instead of from gcc # https://docs.nvidia.com/nvpl/ - export LD_LIBRARY_PATH=${compilerDir}/lib:''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} + export LD_LIBRARY_PATH=${compilerDir}/lib''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} # allow access to libcuda.so - export LD_LIBRARY_PATH=/run/opengl-driver/lib:''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} + export LD_LIBRARY_PATH=/run/opengl-driver/lib''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} exec "$@" ''; wrapper = (wrapCCWith diff --git a/packages/vasp/intel/default.nix b/packages/vasp/intel/default.nix index 98e76784..92d075d0 100644 --- a/packages/vasp/intel/default.nix +++ b/packages/vasp/intel/default.nix @@ -6,13 +6,13 @@ let vasp = stdenv.mkDerivation { name = "vasp-intel"; inherit src; - # patches = [ ../vtst.patch ]; + patches = [ ../vtst.patch ]; configurePhase = '' cp ${./makefile.include} makefile.include chmod +w makefile.include cp ${../constr_cell_relax.F} src/constr_cell_relax.F - # cp -r ${vtst}/* src + cp -r ${vtst}/vtstcode6.4/* src chmod -R +w src ''; buildInputs = [ hdf5 wannier90 mkl ]; diff --git a/packages/vasp/nvidia/default.nix b/packages/vasp/nvidia/default.nix index ee4b1da5..87e64fd5 100644 --- a/packages/vasp/nvidia/default.nix +++ b/packages/vasp/nvidia/default.nix @@ -6,13 +6,13 @@ let vasp = stdenv.mkDerivation { name = "vasp-nvidia"; inherit src; - # patches = [ ../vtst.patch ]; + patches = [ ../vtst.patch ]; configurePhase = '' cp ${./makefile.include} makefile.include chmod +w makefile.include cp ${../constr_cell_relax.F} src/constr_cell_relax.F - # cp -r ${vtst}/* src + cp -r ${vtst}/vtstcode6.4/* src chmod -R +w src ''; buildInputs = [ hdf5 wannier90 mkl ]; @@ -38,6 +38,6 @@ let vasp = stdenv.mkDerivation }; in writeShellScriptBin "vasp-nvidia" '' - export PATH=${vasp}/bin:''${PATH:+:$PATH} + export PATH=${vasp}/bin''${PATH:+:$PATH} exec ${stdenv.cc.cc.runEnv} "$@" '' diff --git a/packages/vasp/vtst.nix b/packages/vasp/vtst.nix index 50b8acfa..3cd9e636 100644 --- a/packages/vasp/vtst.nix +++ b/packages/vasp/vtst.nix @@ -1,8 +1,19 @@ -{ fetchzip, lib }: -let - src = fetchzip - { - url = "http://theory.cm.utexas.edu/code/vtstcode-199.tgz"; - sha256 = "06c9f14a90ka3p396q6spr25xwkih4n01nm1qjj9fnvqzxlp9k9y"; - }; -in "${src}/vtstcode6.4" +{ src, stdenv, autoPatchelfHook, perl, writeScriptBin }: +let vtst = stdenv.mkDerivation +{ + name = "vtst"; + inherit src; + buildInputs = [ autoPatchelfHook perl ]; + installPhase = + '' + mkdir -p $out/lib/vtst + cp -r * $out/lib/vtst + patchShebangs $out/lib/vtst + ''; +}; +in writeScriptBin "vtst" +'' + export PERL5LIB=${vtst}/lib/vtst''${PERL5LIB:+:$PERL5LIB} + export PATH=${vtst}/lib/vtst''${PATH:+:$PATH} + exec "$@" +'' diff --git a/packages/vasp/vtstscripts.nix b/packages/vasp/vtstscripts.nix deleted file mode 100644 index 5d21deb9..00000000 --- a/packages/vasp/vtstscripts.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ fetchzip, stdenv, autoPatchelfHook, perl, writeScriptBin }: - let vtstscript-unwrapped = stdenv.mkDerivation - { - name = "vtstscript-unwrapped"; - src = fetchzip - { - url = "http://theory.cm.utexas.edu/code/vtstscripts.tgz"; - sha256 = "04476wgxvja15jijh9dxbzwy4mdrdqnd93s66jsm26rf73caj7lr"; - }; - buildInputs = [ autoPatchelfHook perl ]; - installPhase = - '' - mkdir -p $out/lib/vtstscripts - cp -r * $out/lib/vtstscripts - patchShebangs $out/lib/vtstscripts - ''; - }; - in writeScriptBin "vtstscripts" - '' - # add vtstscript-unwrapped in PERL5LIB - export PERL5LIB=${vtstscript-unwrapped}/lib/vtstscripts''${PERL5LIB:+:$PERL5LIB} - export PATH=${vtstscript-unwrapped}/lib/vtstscripts''${PATH:+:$PATH} - exec "$@" - ''