diff --git a/pkgs/applications/science/math/giac/default.nix b/pkgs/applications/science/math/giac/default.nix index f89fe3e1db3..4700402ff21 100644 --- a/pkgs/applications/science/math/giac/default.nix +++ b/pkgs/applications/science/math/giac/default.nix @@ -2,32 +2,44 @@ , gmp, mpfr, pari, ntl, gsl, mpfi, ecm, glpk, nauty , readline, gettext, libpng, libao, gfortran, perl , enableGUI ? false, libGL, libGLU, xorg, fltk +, enableMicroPy ? false, python3 }: assert (!blas.isILP64) && (!lapack.isILP64); stdenv.mkDerivation rec { pname = "giac${lib.optionalString enableGUI "-with-xcas"}"; - version = "1.5.0-87"; # TODO try to remove preCheck phase on upgrade + version = "1.6.0-47"; # TODO try to remove preCheck phase on upgrade src = fetchurl { url = "https://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source/giac_${version}.tar.gz"; - sha256 = "1d0h1yb7qvh9x7wwv9yrzmcp712f49w1iljkxp4y6g9pzsmg1mmv"; + sha256 = "sha256-c5A9/I6L/o3Y3dxEPoTKpw/fJqYMr6euLldaQ1HWT5c="; }; - patches = lib.optionals (!enableGUI) [ - # when enableGui is false, giac is compiled without fltk. That means some - # outputs differ in the make check. Patch around this: + patches = [ (fetchpatch { - url = "https://git.sagemath.org/sage.git/plain/build/pkgs/giac/patches/nofltk-check.patch?id=7553a3c8dfa7bcec07241a07e6a4e7dcf5bb4f26"; + name = "pari_2_11.patch"; + url = "https://git.sagemath.org/sage.git/plain/build/pkgs/giac/patches/pari_2_11.patch?id=21ba7540d385a9864b44850d6987893dfa16bfc0"; + sha256 = "sha256-vEo/5MNzMdYRPWgLFPsDcMT1W80Qzj4EPBjx/B8j68k="; + }) + ] ++ lib.optionals (!enableGUI) [ + # when enableGui is false, giac is compiled without fltk. That + # means some outputs differ in the make check. Patch around this: + (fetchpatch { + name = "nofltk-check.patch"; + url = "https://git.sagemath.org/sage.git/plain/build/pkgs/giac/patches/nofltk-check.patch?id=7553a3c8dfa7bcec07241a07e6a4e7dcf5bb4f26"; sha256 = "0xkmfc028vg5w6va04gp2x2iv31n8v4shd6vbyvk4blzgfmpj2cw"; }) ]; postPatch = '' - for i in doc/*/Makefile*; do + for i in doc/*/Makefile* micropython*/xcas/Makefile*; do substituteInPlace "$i" --replace "/bin/cp" "cp"; done; + '' + + # workaround for 1.6.0-47, should not be necessary in future versions + lib.optionalString (!enableMicroPy) '' + sed -i -e 's/micropython-[0-9.]* //' Makefile* ''; nativeBuildInputs = [ @@ -44,7 +56,7 @@ stdenv.mkDerivation rec { lapack blas ] ++ lib.optionals enableGUI [ libGL libGLU fltk xorg.libX11 - ]; + ] ++ lib.optional enableMicroPy python3; /* fixes: configure:16211: checking for main in -lntl @@ -58,13 +70,12 @@ stdenv.mkDerivation rec { outputs = [ "out" ] ++ lib.optional (!enableGUI) "doc"; doCheck = true; - preCheck = '' - # One test in this file fails. That test just tests a part of the pari - # interface that isn't actually used in giac. Of course it would be better - # to only remove that one test, but that would require a patch. - # Removing the whole test set should be good enough for now. - # Upstream report: https://xcas.univ-grenoble-alpes.fr/forum/viewtopic.php?f=4&t=2102#p10326 - echo > check/chk_fhan11 + preCheck = lib.optionalString (!enableGUI) '' + # even with the nofltk patch, some changes in src/misc.cc (grep + # for HAVE_LIBFLTK) made it so that giac behaves differently + # when fltk is disabled. disable these tests for now. + echo > check/chk_fhan2 + echo > check/chk_fhan9 ''; enableParallelBuilding = true; @@ -75,7 +86,7 @@ stdenv.mkDerivation rec { "--enable-ao" "--enable-ecm" "--enable-glpk" ] ++ lib.optionals enableGUI [ "--enable-gui" "--with-x" - ]; + ] ++ lib.optional (!enableMicroPy) "--disable-micropy"; postInstall = '' # example Makefiles contain the full path to some commands diff --git a/pkgs/applications/science/math/palp/default.nix b/pkgs/applications/science/math/palp/default.nix index 2866b4b9469..ffe17bc3dec 100644 --- a/pkgs/applications/science/math/palp/default.nix +++ b/pkgs/applications/science/math/palp/default.nix @@ -10,11 +10,11 @@ let in stdenv.mkDerivation rec { pname = "palp"; - version = "2.11"; + version = "2.20"; src = fetchurl { - url = "http://hep.itp.tuwien.ac.at/~kreuzer/CY/palp/palp-${version}.tar.gz"; - sha256 = "00jpm73fw9jjq58z6rysr1mwv489j6rpfqqlhm9ab0dln4kyhh05"; + url = "http://hep.itp.tuwien.ac.at/~kreuzer/CY/palp/${pname}-${version}.tar.gz"; + sha256 = "1q1cl3vpdir16szy0jcadysydcrjp48hqxyx42kr8g9digkqjgkj"; }; hardeningDisable = [ diff --git a/pkgs/applications/science/math/sage/patches/disable-pexpect-intermittent-failure.patch b/pkgs/applications/science/math/sage/patches/disable-pexpect-intermittent-failure.patch deleted file mode 100644 index 374c7207919..00000000000 --- a/pkgs/applications/science/math/sage/patches/disable-pexpect-intermittent-failure.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/src/sage/interfaces/singular.py b/src/sage/interfaces/singular.py -index 88a33b0349..b3321f0bec 100644 ---- a/src/sage/interfaces/singular.py -+++ b/src/sage/interfaces/singular.py -@@ -495,24 +495,6 @@ class Singular(ExtraTabCompletion, Expect): - """ - Send an interrupt to Singular. If needed, additional - semi-colons are sent until we get back at the prompt. -- -- TESTS: -- -- The following works without restarting Singular:: -- -- sage: a = singular(1) -- sage: _ = singular._expect.sendline('1+') # unfinished input -- sage: try: -- ....: alarm(0.5) -- ....: singular._expect_expr('>') # interrupt this -- ....: except KeyboardInterrupt: -- ....: pass -- Control-C pressed. Interrupting Singular. Please wait a few seconds... -- -- We can still access a:: -- -- sage: 2*a -- 2 - """ - # Work around for Singular bug - # http://www.singular.uni-kl.de:8002/trac/ticket/727 diff --git a/pkgs/applications/science/math/sage/patches/pillow-update.patch b/pkgs/applications/science/math/sage/patches/pillow-update.patch deleted file mode 100644 index 19d61552262..00000000000 --- a/pkgs/applications/science/math/sage/patches/pillow-update.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff --git a/src/sage/repl/image.py b/src/sage/repl/image.py -index d7d00b0..cd1607a 100644 ---- a/src/sage/repl/image.py -+++ b/src/sage/repl/image.py -@@ -77,7 +77,7 @@ class Image(SageObject): - - - ``size`` -- 2-tuple, containing (width, height) in pixels. - -- - ``color`` -- string or tuple of numeric. What colour to use -+ - ``color`` -- string, numeric or tuple of numeric. What colour to use - for the image. Default is black. If given, this should be a - a tuple with one value per band. When creating RGB images, - you can also use colour strings as supported by the -@@ -91,9 +91,15 @@ class Image(SageObject): - EXAMPLES:: - - sage: from sage.repl.image import Image -- sage: Image('P', (16, 16), (13,)) -+ sage: Image('P', (16, 16), 13) - 16x16px 8-bit Color image - """ -+ # pillow does not support Sage integers as color -+ from sage.rings.integer import Integer -+ if isinstance(color, Integer): -+ color = int(color) -+ elif isinstance(color, tuple): -+ color = tuple(int(i) if isinstance(i, Integer) else i for i in color) - self._pil = PIL.Image.new(mode, size, color) - - @property -@@ -233,7 +239,7 @@ class Image(SageObject): - EXAMPLES:: - - sage: from sage.repl.image import Image -- sage: img = Image('P', (12, 34), (13,)) -+ sage: img = Image('P', (12, 34), 13) - sage: filename = tmp_filename(ext='.png') - sage: img.save(filename) - sage: with open(filename, 'rb') as f: diff --git a/pkgs/applications/science/math/sage/patches/register-pretty-printer-earlier.patch b/pkgs/applications/science/math/sage/patches/register-pretty-printer-earlier.patch deleted file mode 100644 index 83bd83a6d33..00000000000 --- a/pkgs/applications/science/math/sage/patches/register-pretty-printer-earlier.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/src/sage/doctest/forker.py b/src/sage/doctest/forker.py -index cb3667659e..867f547d71 100644 ---- a/src/sage/doctest/forker.py -+++ b/src/sage/doctest/forker.py -@@ -200,6 +200,15 @@ def init_sage(controller=None): - from sage.cpython._py2_random import Random - sage.misc.randstate.DEFAULT_PYTHON_RANDOM = Random - -+ # IPython's pretty printer sorts the repr of dicts by their keys by default -+ # (or their keys' str() if they are not otherwise orderable). However, it -+ # disables this for CPython 3.6+ opting to instead display dicts' "natural" -+ # insertion order, which is preserved in those versions). -+ # However, this order is random in some instances. -+ # Also modifications of code may affect the order. -+ # So here we fore sorted dict printing. -+ IPython.lib.pretty.for_type(dict, _sorted_dict_pprinter_factory('{', '}')) -+ - if controller is None: - import sage.repl.ipython_kernel.all_jupyter - else: -@@ -222,15 +231,6 @@ def init_sage(controller=None): - from sage.repl.rich_output.backend_doctest import BackendDoctest - dm.switch_backend(BackendDoctest()) - -- # IPython's pretty printer sorts the repr of dicts by their keys by default -- # (or their keys' str() if they are not otherwise orderable). However, it -- # disables this for CPython 3.6+ opting to instead display dicts' "natural" -- # insertion order, which is preserved in those versions). -- # However, this order is random in some instances. -- # Also modifications of code may affect the order. -- # So here we fore sorted dict printing. -- IPython.lib.pretty.for_type(dict, _sorted_dict_pprinter_factory('{', '}')) -- - # Switch on extra debugging - from sage.structure.debug_options import debug - debug.refine_category_hash_check = True diff --git a/pkgs/applications/science/math/sage/patches/sagespawn-implicit-casting.patch b/pkgs/applications/science/math/sage/patches/sagespawn-implicit-casting.patch deleted file mode 100644 index 2ee5db3e29c..00000000000 --- a/pkgs/applications/science/math/sage/patches/sagespawn-implicit-casting.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/sage/interfaces/sagespawn.pyx b/src/sage/interfaces/sagespawn.pyx -index 9041238f1d..469befbc66 100644 ---- a/src/sage/interfaces/sagespawn.pyx -+++ b/src/sage/interfaces/sagespawn.pyx -@@ -228,7 +228,7 @@ class SagePtyProcess(PtyProcess): - Check that the process eventually dies after calling - ``terminate_async``:: - -- sage: s.ptyproc.terminate_async(interval=0.2) -+ sage: s.ptyproc.terminate_async(interval=float(0.2)) - sage: while True: - ....: try: - ....: os.kill(s.pid, 0) diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix index 99a163eb0b8..3e4ed900a92 100644 --- a/pkgs/applications/science/math/sage/sage-src.nix +++ b/pkgs/applications/science/math/sage/sage-src.nix @@ -9,6 +9,20 @@ # This is done because multiple derivations rely on these sources and they should # all get the same sources with the same patches applied. +let + # Fetch a diff between `base` and `rev` on sage's git server. + # Used to fetch trac tickets by setting the `base` to the last release and the + # `rev` to the last commit of the ticket. + fetchSageDiff = { base, name, rev, sha256, ...}@args: ( + fetchpatch ({ + inherit name sha256; + url = "https://git.sagemath.org/sage.git/patch?id2=${base}&id=${rev}"; + # We don't care about sage's own build system (which builds all its dependencies). + # Exclude build system changes to avoid conflicts. + excludes = [ "build/*" ]; + } // builtins.removeAttrs args [ "rev" "base" "sha256" ]) + ); +in stdenv.mkDerivation rec { version = "9.2"; pname = "sage-src"; @@ -40,17 +54,13 @@ stdenv.mkDerivation rec { # https://groups.google.com/forum/#!topic/sage-packaging/YGOm8tkADrE ./patches/sphinx-docbuild-subprocesses.patch - # Sage's workaround to pretty print dicts (in - # src/sage/doctest/forker.py:init_sage) runs too late (after - # controller.load_environment(), which imports sage.all.*) to to - # affect sage.sandpiles.Sandpile{Config,Divisor}'s pretty printer. - # Due to the sandpiles module being lazily loaded, this only - # affects the first run (subsequent runs read from an import cache - # at ~/.sage/cache and are not affected), which is probably why - # other distributions don't hit this bug. This breaks two sandpile - # tests, so do the workaround a little bit earlier. - # https://trac.sagemath.org/ticket/31053 - ./patches/register-pretty-printer-earlier.patch + # Register sorted dict pprinter earlier (https://trac.sagemath.org/ticket/31053) + (fetchSageDiff { + base = "9.3.beta4"; + name = "register-pretty-printer-earlier.patch"; + rev = "d658230ce06ca19f4a3b3a4576297ee82f2d2151"; + sha256 = "sha256-9mPUV7K5PoLDH2vVaYaOfvDLDpmxU0Aj7m/eaXYotDs="; + }) ]; # Since sage unfortunately does not release bugfix releases, packagers must @@ -63,17 +73,20 @@ stdenv.mkDerivation rec { # fix intermittent errors in Sage 9.2's psage.py (this patch is # already included in Sage 9.3): https://trac.sagemath.org/ticket/30730 - (fetchpatch { + (fetchSageDiff { + base = "9.2.rc2"; name = "fix-psage-is-locked.patch"; - url = "https://git.sagemath.org/sage.git/patch/?id=75df605f216ddc7b6ca719be942d666b241520e9"; + rev = "75df605f216ddc7b6ca719be942d666b241520e9"; sha256 = "0g9pl1wbb3sgs26d3bvv70cpa77sfskylv4kd255y1794f1fgk4q"; }) # fix intermittent errors in sagespawn.pyx: https://trac.sagemath.org/ticket/31052 - ./patches/sagespawn-implicit-casting.patch - - # disable pexpect interrupt test (see https://trac.sagemath.org/ticket/30945) - ./patches/disable-pexpect-intermittent-failure.patch + (fetchSageDiff { + base = "9.2"; + name = "sagespawn-implicit-casting.patch"; + rev = "2959ac792ebd6107fe87c9af1541083de5ba02d6"; + sha256 = "sha256-bWIpEGir9Kawak5CJegBMNcHm/CqhWmdru+emeSsvO0="; + }) ]; # Patches needed because of package updates. We could just pin the versions of @@ -82,20 +95,7 @@ stdenv.mkDerivation rec { # compatible with never dependency versions when possible. All these changes # should come from or be proposed to upstream. This list will probably never # be empty since dependencies update all the time. - packageUpgradePatches = let - # Fetch a diff between `base` and `rev` on sage's git server. - # Used to fetch trac tickets by setting the `base` to the last release and the - # `rev` to the last commit of the ticket. - fetchSageDiff = { base, rev, name ? "sage-diff-${base}-${rev}.patch", ...}@args: ( - fetchpatch ({ - inherit name; - url = "https://git.sagemath.org/sage.git/patch?id2=${base}&id=${rev}"; - # We don't care about sage's own build system (which builds all its dependencies). - # Exclude build system changes to avoid conflicts. - excludes = [ "build/*" ]; - } // builtins.removeAttrs args [ "rev" "base" ]) - ); - in [ + packageUpgradePatches = [ # After updating smypow to (https://trac.sagemath.org/ticket/3360) we can # now set the cache dir to be withing the .sage directory. This is not # strictly necessary, but keeps us from littering in the user's HOME. @@ -105,7 +105,20 @@ stdenv.mkDerivation rec { ./patches/ignore-cmp-deprecation.patch # adapt sage's Image class to pillow 8.0.1 (https://trac.sagemath.org/ticket/30971) - ./patches/pillow-update.patch + (fetchSageDiff { + base = "9.3.beta2"; + name = "pillow-8.0.1-update.patch"; + rev = "f05f2d0aac9c4b5abe68105cee2cc7f2c8461847"; + sha256 = "sha256-uY2UlgSd5hhOUUukB4Xc3Gjy0/e7p/qyq9jdvz10IOs="; + }) + + # don't use deprecated numpy type aliases (https://trac.sagemath.org/ticket/31364) + (fetchSageDiff { + base = "9.3.beta7"; + name = "dont-use-deprecated-numpy-type-aliases.patch"; + rev = "dfdef60515d4a4269e82d91280f76a7fdf10bf97"; + sha256 = "sha256-77/3LkT5J7DQN8IPlGJKB6ZcJPaF7xwje06JNns+0AE="; + }) # fix test output with sympy 1.7 (https://trac.sagemath.org/ticket/30985) ./patches/sympy-1.7-update.patch @@ -115,6 +128,31 @@ stdenv.mkDerivation rec { # updated eclib output has punctuation changes and tidier whitespace ./patches/eclib-20210223-test-formatting.patch + + # upgrade arb to 2.18.1 (https://trac.sagemath.org/ticket/28623) + (fetchSageDiff { + base = "9.3.beta3"; + name = "arb-2.18.1-update.patch"; + rev = "0c9c4ed35c2eaf34ae0d19387c07b7f460e4abce"; + sha256 = "sha256-CjOJIsyyVCziAfvE6pWSihPO35IZMcY2/taXAsqhPLY="; + }) + + # giac 1.6.0-47 update (https://trac.sagemath.org/ticket/30537) + (fetchSageDiff { + base = "9.3.beta7"; + name = "giac-1.6.0-47-update.patch"; + rev = "f05720bf63dfaf33a4e3b6d3ed2c2c0ec46b5d31"; + sha256 = "sha256-gDUq+84eXd5GxLBWUSI61GMJpBF2KX4LBVOt3mS1NF8="; + }) + + # Make gcd/lcm interact better with pari and gmpy2 (https://trac.sagemath.org/ticket/30849) + # needed for pari 2.13.1 update, which we will do in the future + (fetchSageDiff { + base = "9.3.beta0"; + name = "make-gcd-lcm-interact-better-with-pari-and-gmpy2.patch"; + rev = "75c1516f0abb9e6f8c335e38e4031f6ef674ed30"; + sha256 = "sha256-RukkieIZcXNrju904H2oyGKdtpdE+9vNzvyjN2IBNg0="; + }) ]; patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches; diff --git a/pkgs/development/libraries/arb/default.nix b/pkgs/development/libraries/arb/default.nix index 527545e683f..97af236af04 100644 --- a/pkgs/development/libraries/arb/default.nix +++ b/pkgs/development/libraries/arb/default.nix @@ -1,14 +1,21 @@ -{ lib, stdenv, fetchFromGitHub, mpir, gmp, mpfr, flint }: +{ lib +, stdenv +, fetchFromGitHub +, mpir +, gmp +, mpfr +, flint +}: stdenv.mkDerivation rec { pname = "arb"; - version = "2.17.0"; + version = "2.19.0"; src = fetchFromGitHub { owner = "fredrik-johansson"; repo = pname; rev = version; - sha256 = "05lpy3hkl5f8ik19aw40cqydrb932xaf2n8hbq9ib5dnk7f010p1"; + sha256 = "sha256-J/LQVZ8gmssazE7ru89EtvW6cVjaLEHgUHuwjW1nuOE="; }; buildInputs = [ mpir gmp mpfr flint ]; diff --git a/pkgs/development/libraries/science/math/rankwidth/default.nix b/pkgs/development/libraries/science/math/rankwidth/default.nix index 38c9444d0d3..c00d579702c 100644 --- a/pkgs/development/libraries/science/math/rankwidth/default.nix +++ b/pkgs/development/libraries/science/math/rankwidth/default.nix @@ -4,18 +4,18 @@ stdenv.mkDerivation rec { pname = "rankwidth"; - version = "0.7"; + version = "0.9"; src = fetchurl { url = "mirror://sageupstream/rw/rw-${version}.tar.gz"; - sha256 = "1rv2v42x2506x7f10349m1wpmmfxrv9l032bkminni2gbip9cjg0"; + sha256 = "sha256-weA1Bv4lzfy0KMBR/Fay0q/7Wwb7o/LOdWYxRmvvtEE="; }; configureFlags = [ "--enable-executable=no" # no igraph dependency ]; - # check phase is empty for now (as of version 0.7) + # check phase is empty for now (as of version 0.9) doCheck = true; meta = with lib; { diff --git a/pkgs/development/libraries/science/math/sympow/clean-extra-logfile-output-from-pari.patch b/pkgs/development/libraries/science/math/sympow/clean-extra-logfile-output-from-pari.patch new file mode 100644 index 00000000000..cbcf18b4cdb --- /dev/null +++ b/pkgs/development/libraries/science/math/sympow/clean-extra-logfile-output-from-pari.patch @@ -0,0 +1,39 @@ +commit 433a8b99da9d71e96434bd421c2468cbda29d37c +Author: Mauricio Collares +Date: Tue Mar 2 22:07:11 2021 -0300 + + trim logfile information from pari 2.13 output + + Pari (since commit 609fb01faf827d91dfa9136849a647a3bbfe8036) prints + extra logfile information such as + + [logfile is "/tmp/nix-shell.2BquN9/home/.sympow/datafiles/P02HM.txt"] + + which messes up sympow's parsing. This commit reuses the same trimming + mechanism already in sympow to trim this new message. + +diff --git a/Configure b/Configure +index 1ef9756..776bec2 100755 +--- a/Configure ++++ b/Configure +@@ -322,7 +322,7 @@ echo "datafiles/param_data: \$(OTHERb)" >> $FILE + echo " \$(MKDIR) -p datafiles" >> $FILE + echo " \$(TOUCH) datafiles/param_data" >> $FILE + echo " \$(SH) armd.sh" >> $FILE +-echo " \$(SED) -i -e '/logfile =/d' datafiles/*.txt" >> $FILE ++echo " \$(SED) -i -e '/logfile /d' datafiles/*.txt" >> $FILE + echo "sympow.1: sympow" >> $FILE + echo " \$(HELP2MAN) \$(H2MFLAGS) -s 1 -n \"SYMPOW program\" -I sympow.h2m -o \$@ ./\$<" >> $FILE + echo "clean:" >> $FILE +diff --git a/generate.c b/generate.c +index dbb811f..783320c 100644 +--- a/generate.c ++++ b/generate.c +@@ -148,6 +148,7 @@ static void trimit(char *A) + " -e '" + "/^\?/d" ";" + "/^(/d" ";" ++ "/logfile /d" ";" + "/Warning:/d" ";" + "/^About to find TOO_BIG/d" ";" + "/^Now working backwards/d" ";" diff --git a/pkgs/development/libraries/science/math/sympow/default.nix b/pkgs/development/libraries/science/math/sympow/default.nix index 3c31ed8a361..c31c705d39d 100644 --- a/pkgs/development/libraries/science/math/sympow/default.nix +++ b/pkgs/development/libraries/science/math/sympow/default.nix @@ -20,6 +20,8 @@ stdenv.mkDerivation rec { sha256 = "132l0xv00ld1svvv9wh99wfra4zzjv2885h2sq0dsl98wiyvi5zl"; }; + patches = [ ./clean-extra-logfile-output-from-pari.patch ]; + postUnpack = '' patchShebangs . ''; diff --git a/pkgs/development/python-modules/cysignals/default.nix b/pkgs/development/python-modules/cysignals/default.nix index 736afab4257..201a8c42d68 100644 --- a/pkgs/development/python-modules/cysignals/default.nix +++ b/pkgs/development/python-modules/cysignals/default.nix @@ -1,4 +1,5 @@ { lib +, fetchpatch , fetchPypi , buildPythonPackage , cython @@ -16,6 +17,16 @@ buildPythonPackage rec { sha256 = "1ckxzch3wk5cg80mppky5jib5z4fzslny3001r5zg4ar1ixbc1w1"; }; + patches = [ + # fixes intermittent crashes in Sage tests (including in interfaces/singular.py) + # will be included in cysignals 1.10.3: https://github.com/sagemath/cysignals/pull/127 + (fetchpatch { + name = "fix-verify_exc_value.patch"; + url = "https://github.com/sagemath/cysignals/commit/49a7eee4bba3ab8f340cf56c371fa4f5ed702dcc.patch"; + sha256 = "sha256-Pfc5tL9VDSP6ftDoHoIb+MDi5rjYqr0PRfIajFuuYVs="; + }) + ]; + # explicit check: # build/src/cysignals/implementation.c:27:2: error: #error "cysignals must be compiled without _FORTIFY_SOURCE" hardeningDisable = [