68 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ lib
 | 
						|
, stdenv
 | 
						|
, buildPythonPackage
 | 
						|
, fetchPypi
 | 
						|
, isPy3k
 | 
						|
, python
 | 
						|
, glibcLocales
 | 
						|
, pkgconfig
 | 
						|
, gdb
 | 
						|
, numpy
 | 
						|
, ncurses
 | 
						|
, fetchpatch
 | 
						|
}:
 | 
						|
 | 
						|
let
 | 
						|
  excludedTests = []
 | 
						|
    # cython's testsuite is not working very well with libc++
 | 
						|
    # We are however optimistic about things outside of testsuite still working
 | 
						|
    ++ stdenv.lib.optionals (stdenv.cc.isClang or false) [ "cpdef_extern_func" "libcpp_algo" ]
 | 
						|
    # Some tests in the test suite isn't working on aarch64. Disable them for
 | 
						|
    # now until upstream finds a workaround.
 | 
						|
    # Upstream issue here: https://github.com/cython/cython/issues/2308
 | 
						|
    ++ stdenv.lib.optionals stdenv.isAarch64 [ "numpy_memoryview" ]
 | 
						|
    ++ stdenv.lib.optionals stdenv.isi686 [ "future_division" "overflow_check_longlong" ]
 | 
						|
  ;
 | 
						|
 | 
						|
in buildPythonPackage rec {
 | 
						|
  pname = "Cython";
 | 
						|
  version = "0.28.3";
 | 
						|
 | 
						|
  src = fetchPypi {
 | 
						|
    inherit pname version;
 | 
						|
    sha256 = "1aae6d6e9858888144cea147eb5e677830f45faaff3d305d77378c3cba55f526";
 | 
						|
  };
 | 
						|
 | 
						|
  nativeBuildInputs = [
 | 
						|
    pkgconfig
 | 
						|
  ];
 | 
						|
  checkInputs = [
 | 
						|
    numpy ncurses
 | 
						|
  ];
 | 
						|
  buildInputs = [ glibcLocales gdb ];
 | 
						|
  LC_ALL = "en_US.UTF-8";
 | 
						|
 | 
						|
  checkPhase = ''
 | 
						|
    export HOME="$NIX_BUILD_TOP"
 | 
						|
    ${python.interpreter} runtests.py -j$NIX_BUILD_CORES \
 | 
						|
      ${stdenv.lib.optionalString (builtins.length excludedTests != 0)
 | 
						|
        ''--exclude="(${builtins.concatStringsSep "|" excludedTests})"''}
 | 
						|
  '';
 | 
						|
 | 
						|
  patches = [
 | 
						|
    # The following is in GitHub in 0.28.3 but not in the `sdist`.
 | 
						|
    # https://github.com/cython/cython/issues/2319
 | 
						|
    (fetchpatch {
 | 
						|
      url = https://github.com/cython/cython/commit/c485b1b77264c3c75d090a3c526de24966830d42.patch;
 | 
						|
      sha256 = "1p6jj9rb097kqvhs5j5127sj5zy18l7x9v0p478cjyzh41khh9r0";
 | 
						|
    })
 | 
						|
  ];
 | 
						|
 | 
						|
  meta = {
 | 
						|
    description = "An optimising static compiler for both the Python programming language and the extended Cython programming language";
 | 
						|
    homepage = http://cython.org;
 | 
						|
    license = lib.licenses.asl20;
 | 
						|
    maintainers = with lib.maintainers; [ fridh ];
 | 
						|
  };
 | 
						|
}
 |