57 lines
1.6 KiB
Nix
57 lines
1.6 KiB
Nix
{ lib
|
|
, stdenv
|
|
, buildPythonPackage
|
|
, fetchPypi
|
|
, isPy3k
|
|
, python
|
|
, glibcLocales
|
|
, pkgconfig
|
|
, gdb
|
|
, numpy
|
|
, ncurses
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
pname = "Cython";
|
|
name = "${pname}-${version}";
|
|
version = "0.26";
|
|
|
|
src = fetchPypi {
|
|
inherit pname version;
|
|
sha256 = "4c24e2c22ddaed624d35229dc5db25049e9e225c6f64f3364326836cad8f2c66";
|
|
};
|
|
|
|
# With Python 2.x on i686-linux or 32-bit ARM this test fails because the
|
|
# result is "3L" instead of "3", so let's fix it in-place.
|
|
#
|
|
# Upstream issue: https://github.com/cython/cython/issues/1548
|
|
postPatch = lib.optionalString ((stdenv.isi686 || stdenv.isArm) && !isPy3k) ''
|
|
sed -i -e 's/\(>>> *\)\(verify_resolution_GH1533()\)/\1int(\2)/' \
|
|
tests/run/cpdef_enums.pyx
|
|
'';
|
|
|
|
buildInputs = [ glibcLocales pkgconfig gdb ];
|
|
# For testing
|
|
nativeBuildInputs = [ numpy ncurses ];
|
|
|
|
LC_ALL = "en_US.UTF-8";
|
|
|
|
# cython's testsuite is not working very well with libc++
|
|
# We are however optimistic about things outside of testsuite still working
|
|
checkPhase = ''
|
|
export HOME="$NIX_BUILD_TOP"
|
|
${python.interpreter} runtests.py \
|
|
${if stdenv.cc.isClang or false then ''--exclude="(cpdef_extern_func|libcpp_algo)"'' else ""}
|
|
'';
|
|
|
|
# Disable tests temporarily
|
|
# https://github.com/cython/cython/issues/1676
|
|
doCheck = false;
|
|
|
|
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 ];
|
|
};
|
|
} |