1{
2 lib,
3 fetchFromGitHub,
4 buildPythonPackage,
5 cython,
6 meson-python,
7 ninja,
8
9 # Reverse dependency
10 sage,
11}:
12
13buildPythonPackage rec {
14 pname = "cysignals";
15 version = "1.12.4";
16 pyproject = true;
17
18 src = fetchFromGitHub {
19 owner = "sagemath";
20 repo = "cysignals";
21 tag = version;
22 hash = "sha256-VwjAgJTrK703Eg+H9c8lJt2+5DGSSKv49YeWl7SPDck=";
23 };
24
25 build-system = [
26 cython
27 meson-python
28 ninja
29 ];
30
31 dontUseCmakeConfigure = true;
32 enableParallelBuilding = true;
33
34 # explicit check:
35 # build/src/cysignals/implementation.c:27:2: error: #error "cysignals must be compiled without _FORTIFY_SOURCE"
36 hardeningDisable = [ "fortify" ];
37
38 # known failure: https://github.com/sagemath/cysignals/blob/582dbf6a7b0f9ade0abe7a7b8720b7fb32435c3c/testgdb.py#L5
39 doCheck = false;
40 checkTarget = "check-install";
41
42 preCheck = ''
43 # Make sure cysignals-CSI is in PATH
44 export PATH="$out/bin:$PATH"
45 '';
46
47 passthru.tests = {
48 inherit sage;
49 };
50
51 meta = with lib; {
52 description = "Interrupt and signal handling for Cython";
53 mainProgram = "cysignals-CSI";
54 homepage = "https://github.com/sagemath/cysignals/";
55 teams = [ teams.sage ];
56 license = licenses.lgpl3Plus;
57 };
58}