diff options
author | Martin Weinelt <hexa@darmstadt.ccc.de> | 2024-03-24 03:25:37 +0100 |
---|---|---|
committer | Martin Weinelt <hexa@darmstadt.ccc.de> | 2024-03-27 18:35:05 +0100 |
commit | 528354e66c26cf947b04cc94db7185f5d127ca31 (patch) | |
tree | 7cc0398d85bee6be3b05a59666072011017711a9 /pkgs/development/python-modules/cython | |
parent | b974abcc5d85bf1a1a121ff1ef41936ff1ae900c (diff) |
python312Packages.cython: 0.29.36 -> 3.0.9
Folds the cython_3 attribute into the primary cython attribute and migrates all packages from the versioned attribute. The old version will be provided through the cython_0 attribute in an effort to phase it out.
Diffstat (limited to 'pkgs/development/python-modules/cython')
-rw-r--r-- | pkgs/development/python-modules/cython/0.nix | 91 | ||||
-rw-r--r-- | pkgs/development/python-modules/cython/default.nix | 28 |
2 files changed, 95 insertions, 24 deletions
diff --git a/pkgs/development/python-modules/cython/0.nix b/pkgs/development/python-modules/cython/0.nix new file mode 100644 index 0000000000000..72ba4a68f038f --- /dev/null +++ b/pkgs/development/python-modules/cython/0.nix @@ -0,0 +1,91 @@ +{ lib +, stdenv +, buildPythonPackage +, fetchPypi +, fetchpatch +, setuptools +, python +, pkg-config +, 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 + ++ 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 + ++ lib.optionals stdenv.isAarch64 [ "numpy_memoryview" ] + ++ lib.optionals stdenv.isi686 [ "future_division" "overflow_check_longlong" ] + ; + +in buildPythonPackage rec { + pname = "cython"; + version = "0.29.36"; + pyproject = true; + + src = fetchPypi { + pname = "Cython"; + inherit version; + hash = "sha256-QcDP0tdU44PJ7rle/8mqSrhH0Ml0cHfd18Dctow7wB8="; + }; + + nativeBuildInputs = [ + pkg-config + setuptools + ]; + + nativeCheckInputs = [ + gdb numpy ncurses + ]; + + LC_ALL = "en_US.UTF-8"; + + patches = [ + # backport Cython 3.0 trashcan support (https://github.com/cython/cython/pull/2842) to 0.X series. + # it does not affect Python code unless the code explicitly uses the feature. + # trashcan support is needed to avoid stack overflows during object deallocation in sage (https://trac.sagemath.org/ticket/27267) + ./trashcan.patch + # The above commit introduces custom trashcan macros, as well as + # compiler changes to use them in Cython-emitted code. The latter + # change is still useful, but the former has been upstreamed as of + # Python 3.8, and the patch below makes Cython use the upstream + # trashcan macros whenever available. This is needed for Python + # 3.11 support, because the API used in Cython's implementation + # changed: https://github.com/cython/cython/pull/4475 + (fetchpatch { + name = "disable-trashcan.patch"; + url = "https://github.com/cython/cython/commit/e337825cdcf5e94d38ba06a0cb0188e99ce0cc92.patch"; + hash = "sha256-q0f63eetKrDpmP5Z4v8EuGxg26heSyp/62OYqhRoSso="; + }) + ]; + + checkPhase = '' + export HOME="$NIX_BUILD_TOP" + ${python.interpreter} runtests.py -j$NIX_BUILD_CORES \ + --no-code-style \ + ${lib.optionalString (builtins.length excludedTests != 0) + ''--exclude="(${builtins.concatStringsSep "|" excludedTests})"''} + ''; + + # https://github.com/cython/cython/issues/2785 + # Temporary solution + doCheck = false; + # doCheck = !stdenv.isDarwin; + + # force regeneration of generated code in source distributions + # https://github.com/cython/cython/issues/5089 + setupHook = ./setup-hook.sh; + + meta = { + changelog = "https://github.com/cython/cython/blob/${version}/CHANGES.rst"; + 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 ]; + }; +} diff --git a/pkgs/development/python-modules/cython/default.nix b/pkgs/development/python-modules/cython/default.nix index 72ba4a68f038f..4467dc3b459ce 100644 --- a/pkgs/development/python-modules/cython/default.nix +++ b/pkgs/development/python-modules/cython/default.nix @@ -2,7 +2,6 @@ , stdenv , buildPythonPackage , fetchPypi -, fetchpatch , setuptools , python , pkg-config @@ -25,16 +24,16 @@ let in buildPythonPackage rec { pname = "cython"; - version = "0.29.36"; + version = "3.0.9"; pyproject = true; src = fetchPypi { pname = "Cython"; inherit version; - hash = "sha256-QcDP0tdU44PJ7rle/8mqSrhH0Ml0cHfd18Dctow7wB8="; + hash = "sha256-otNU8FnR8FXTTPqmLFtovHisLOq2QHFI1H+1CM87pPM="; }; - nativeBuildInputs = [ + build-system = [ pkg-config setuptools ]; @@ -43,26 +42,7 @@ in buildPythonPackage rec { gdb numpy ncurses ]; - LC_ALL = "en_US.UTF-8"; - - patches = [ - # backport Cython 3.0 trashcan support (https://github.com/cython/cython/pull/2842) to 0.X series. - # it does not affect Python code unless the code explicitly uses the feature. - # trashcan support is needed to avoid stack overflows during object deallocation in sage (https://trac.sagemath.org/ticket/27267) - ./trashcan.patch - # The above commit introduces custom trashcan macros, as well as - # compiler changes to use them in Cython-emitted code. The latter - # change is still useful, but the former has been upstreamed as of - # Python 3.8, and the patch below makes Cython use the upstream - # trashcan macros whenever available. This is needed for Python - # 3.11 support, because the API used in Cython's implementation - # changed: https://github.com/cython/cython/pull/4475 - (fetchpatch { - name = "disable-trashcan.patch"; - url = "https://github.com/cython/cython/commit/e337825cdcf5e94d38ba06a0cb0188e99ce0cc92.patch"; - hash = "sha256-q0f63eetKrDpmP5Z4v8EuGxg26heSyp/62OYqhRoSso="; - }) - ]; + env.LC_ALL = "en_US.UTF-8"; checkPhase = '' export HOME="$NIX_BUILD_TOP" |