This reverts commit 65a333600d5c88a98d674f637d092807cfc12253. This wasn't tested for correctness with something like fodwatch [0], and should not have been (self-)merged so quickly, especially without further review. It also resulted in the breakage of at least one package [1] (and that's the one we know of and was caught). A few packages that were updated in between this commit and this revert were not reverted back to using `rev`, but other than that, this is a 1:1 revert. [0]: https://codeberg.org/raphaelr/fodwatch [1]: https://github.com/NixOS/nixpkgs/pull/396904 / 758551e4587d75882aebc21a04bee960418f8ce9
		
			
				
	
	
		
			78 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  stdenv,
 | 
						|
  lib,
 | 
						|
  gfortran,
 | 
						|
  blas,
 | 
						|
  lapack,
 | 
						|
  python3,
 | 
						|
  fetchFromGitHub,
 | 
						|
}:
 | 
						|
assert (!blas.isILP64);
 | 
						|
assert blas.isILP64 == lapack.isILP64;
 | 
						|
 | 
						|
stdenv.mkDerivation rec {
 | 
						|
  pname = "wannier90";
 | 
						|
  version = "3.1.0";
 | 
						|
 | 
						|
  nativeBuildInputs = [ gfortran ];
 | 
						|
  buildInputs = [
 | 
						|
    blas
 | 
						|
    lapack
 | 
						|
  ];
 | 
						|
 | 
						|
  src = fetchFromGitHub {
 | 
						|
    owner = "wannier-developers";
 | 
						|
    repo = "wannier90";
 | 
						|
    rev = "v${version}";
 | 
						|
    hash = "sha256-+Mq7lM6WuwAnK/2FlDz9gNRIg2sRazQRezb3BfD0veY=";
 | 
						|
  };
 | 
						|
 | 
						|
  # test cases are removed as error bounds of wannier90 are obviously to tight
 | 
						|
  postPatch = ''
 | 
						|
    rm -r test-suite/tests/testpostw90_{fe_kpathcurv,fe_kslicecurv,si_geninterp,si_geninterp_wsdistance}
 | 
						|
    rm -r test-suite/tests/testw90_example26   # Fails without AVX optimizations
 | 
						|
    patchShebangs test-suite/run_tests test-suite/testcode/bin/testcode.py
 | 
						|
  '';
 | 
						|
 | 
						|
  configurePhase = ''
 | 
						|
    cp config/make.inc.gfort make.inc
 | 
						|
  '';
 | 
						|
 | 
						|
  buildFlags = [
 | 
						|
    "all"
 | 
						|
    "dynlib"
 | 
						|
  ];
 | 
						|
 | 
						|
  preInstall = ''
 | 
						|
    installFlagsArray+=(
 | 
						|
      PREFIX=$out
 | 
						|
    )
 | 
						|
  '';
 | 
						|
 | 
						|
  postInstall = ''
 | 
						|
    cp libwannier.so $out/lib/libwannier.so
 | 
						|
 | 
						|
    mkdir $out/include
 | 
						|
    find ./src/obj/ -name "*.mod" -exec cp {} $out/include/. \;
 | 
						|
  '';
 | 
						|
 | 
						|
  doCheck = true;
 | 
						|
  checkInputs = [ python3 ];
 | 
						|
  checkTarget = [ "test-serial" ];
 | 
						|
  preCheck = ''
 | 
						|
    export OMP_NUM_THREADS=4
 | 
						|
  '';
 | 
						|
 | 
						|
  enableParallelBuilding = true;
 | 
						|
 | 
						|
  hardeningDisable = [ "format" ];
 | 
						|
 | 
						|
  meta = with lib; {
 | 
						|
    description = "Calculation of maximally localised Wannier functions";
 | 
						|
    homepage = "https://github.com/wannier-developers/wannier90";
 | 
						|
    license = licenses.gpl2Plus;
 | 
						|
    platforms = [ "x86_64-linux" ];
 | 
						|
    maintainers = [ maintainers.sheepforce ];
 | 
						|
  };
 | 
						|
}
 |