https://github.com/cython/cython/issues/2752 has already been accepted upstream, is minimally invasive (only adds a feature, shouldn't break any existing code) and is needed for the sage python3 update. Sage needs this capability because it defines its own integer type.
76 lines
2.2 KiB
Nix
76 lines
2.2 KiB
Nix
{ lib
|
|
, stdenv
|
|
, buildPythonPackage
|
|
, fetchPypi
|
|
, fetchpatch
|
|
, python
|
|
, glibcLocales
|
|
, pkgconfig
|
|
, gdb
|
|
, numpy
|
|
, ncurses
|
|
}:
|
|
|
|
let
|
|
excludedTests = []
|
|
++ [ "reimport_from_subinterpreter" ]
|
|
# 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.29.14";
|
|
|
|
src = fetchPypi {
|
|
inherit pname version;
|
|
sha256 = "e4d6bb8703d0319eb04b7319b12ea41580df44fd84d83ccda13ea463c6801414";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
pkgconfig
|
|
];
|
|
checkInputs = [
|
|
numpy ncurses
|
|
];
|
|
buildInputs = [ glibcLocales gdb ];
|
|
LC_ALL = "en_US.UTF-8";
|
|
|
|
patches = [
|
|
# https://github.com/cython/cython/issues/2752, needed by sage (https://trac.sagemath.org/ticket/26855) and up to be included in 0.30
|
|
(fetchpatch {
|
|
name = "non-int-conversion-to-pyhash.patch";
|
|
url = "https://github.com/cython/cython/commit/28251032f86c266065e4976080230481b1a1bb29.patch";
|
|
sha256 = "19rg7xs8gr90k3ya5c634bs8gww1sxyhdavv07cyd2k71afr83gy";
|
|
})
|
|
];
|
|
|
|
checkPhase = ''
|
|
export HOME="$NIX_BUILD_TOP"
|
|
${python.interpreter} runtests.py -j$NIX_BUILD_CORES \
|
|
--no-code-style \
|
|
${stdenv.lib.optionalString (builtins.length excludedTests != 0)
|
|
''--exclude="(${builtins.concatStringsSep "|" excludedTests})"''}
|
|
'';
|
|
|
|
# https://github.com/cython/cython/issues/2785
|
|
# Temporary solution
|
|
doCheck = false;
|
|
|
|
# doCheck = !stdenv.isDarwin;
|
|
|
|
|
|
meta = {
|
|
description = "An optimising static compiler for both the Python programming language and the extended Cython programming language";
|
|
homepage = https://cython.org;
|
|
license = lib.licenses.asl20;
|
|
maintainers = with lib.maintainers; [ fridh ];
|
|
};
|
|
}
|