summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimo Kaufmann <timokau@zoho.com>2020-12-19 18:13:16 +0100
committerGitHub <noreply@github.com>2020-12-19 18:13:16 +0100
commitafead527c444e9459fc0a32c9b9992862ef9e77e (patch)
tree1e774b45d3d3a63246e441ac893471eaa2e86913
parente52f705248c2086eef8abf091a6f9a625fd9d742 (diff)
parent8100c5a44b20a37c994c6923330f99674ffb9308 (diff)
Merge pull request #105615 from collares/sage-update
sage: 8.9 -> 9.2
-rw-r--r--pkgs/applications/science/math/giac/default.nix4
-rw-r--r--pkgs/applications/science/math/maxima/default.nix4
-rw-r--r--pkgs/applications/science/math/nauty/default.nix2
-rw-r--r--pkgs/applications/science/math/pari/default.nix3
-rw-r--r--pkgs/applications/science/math/pynac/default.nix9
-rw-r--r--pkgs/applications/science/math/sage/default.nix65
-rw-r--r--pkgs/applications/science/math/sage/env-locations.nix2
-rw-r--r--pkgs/applications/science/math/sage/flask-oldsessions.nix36
-rw-r--r--pkgs/applications/science/math/sage/flask-openid.nix28
-rw-r--r--pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch21
-rw-r--r--pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch33
-rw-r--r--pkgs/applications/science/math/sage/patches/docutils-0.15.patch24
-rw-r--r--pkgs/applications/science/math/sage/patches/ignore-cmp-deprecation.patch30
-rw-r--r--pkgs/applications/science/math/sage/patches/ignore-werkzeug-immutable-dict-deprecation.patch12
-rw-r--r--pkgs/applications/science/math/sage/patches/pari-stackwarn.patch20
-rw-r--r--pkgs/applications/science/math/sage/patches/pillow-update.patch39
-rw-r--r--pkgs/applications/science/math/sage/patches/python-5755-hotpatch.patch28
-rw-r--r--pkgs/applications/science/math/sage/patches/register-pretty-printer-earlier.patch36
-rw-r--r--pkgs/applications/science/math/sage/patches/sagenb-cmp-deprecation.patch13
-rw-r--r--pkgs/applications/science/math/sage/patches/sagespawn-implicit-casting.patch13
-rw-r--r--pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch2
-rw-r--r--pkgs/applications/science/math/sage/patches/sympow-cache.patch14
-rw-r--r--pkgs/applications/science/math/sage/pybrial.nix25
-rw-r--r--pkgs/applications/science/math/sage/python-openid.nix40
-rw-r--r--pkgs/applications/science/math/sage/sage-env.nix25
-rw-r--r--pkgs/applications/science/math/sage/sage-src.nix136
-rw-r--r--pkgs/applications/science/math/sage/sage-with-env.nix8
-rw-r--r--pkgs/applications/science/math/sage/sage.nix1
-rw-r--r--pkgs/applications/science/math/sage/sagedoc.nix24
-rw-r--r--pkgs/applications/science/math/sage/sagelib.nix4
-rw-r--r--pkgs/applications/science/math/sage/sagenb.nix57
-rw-r--r--pkgs/development/compilers/ecl/default.nix32
-rw-r--r--pkgs/development/libraries/ppl/default.nix4
-rw-r--r--pkgs/development/python-modules/cypari2/default.nix6
-rw-r--r--pkgs/development/python-modules/gmpy2/default.nix15
-rw-r--r--pkgs/top-level/all-packages.nix2
36 files changed, 329 insertions, 488 deletions
diff --git a/pkgs/applications/science/math/giac/default.nix b/pkgs/applications/science/math/giac/default.nix
index ea9c921f19e1..b090274919bd 100644
--- a/pkgs/applications/science/math/giac/default.nix
+++ b/pkgs/applications/science/math/giac/default.nix
@@ -9,11 +9,11 @@ assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec {
pname = "giac${lib.optionalString enableGUI "-with-xcas"}";
- version = "1.5.0-21"; # TODO try to remove preCheck phase on upgrade
+ version = "1.5.0-87"; # 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 = "1b9khiv0mk2xzw1rblm2jy6qsf8y6f9k7qy15sxpb21d72hzzbl2";
+ sha256 = "1d0h1yb7qvh9x7wwv9yrzmcp712f49w1iljkxp4y6g9pzsmg1mmv";
};
patches = stdenv.lib.optionals (!enableGUI) [
diff --git a/pkgs/applications/science/math/maxima/default.nix b/pkgs/applications/science/math/maxima/default.nix
index 1bf7d16f2904..cdc81a876465 100644
--- a/pkgs/applications/science/math/maxima/default.nix
+++ b/pkgs/applications/science/math/maxima/default.nix
@@ -87,6 +87,10 @@ stdenv.mkDerivation ({
enableParallelBuilding = true;
+ passthru = {
+ ecl = ecl;
+ };
+
meta = {
description = "Computer algebra system";
homepage = "http://maxima.sourceforge.net";
diff --git a/pkgs/applications/science/math/nauty/default.nix b/pkgs/applications/science/math/nauty/default.nix
index 76e7c796a138..94b7ad266c45 100644
--- a/pkgs/applications/science/math/nauty/default.nix
+++ b/pkgs/applications/science/math/nauty/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
version = "27r1";
src = fetchurl {
url = "http://pallini.di.uniroma1.it/nauty${version}.tar.gz";
- sha256 = "1nym0p2djws8ylkpr0kgpxfa6fxdlh46cmvz0gn5vd02jzgs0aww";
+ sha256 = "0xsfqfcknbd6g6wzpa5l7crmmk3bf3zjh37rhylq6b20dqcmvjkn";
};
outputs = [ "out" "dev" ];
configureFlags = [
diff --git a/pkgs/applications/science/math/pari/default.nix b/pkgs/applications/science/math/pari/default.nix
index a3e2f99ab274..7ec42d11ab14 100644
--- a/pkgs/applications/science/math/pari/default.nix
+++ b/pkgs/applications/science/math/pari/default.nix
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
version = "2.11.4";
src = fetchurl {
- url = "https://pari.math.u-bordeaux.fr/pub/pari/unix/${pname}-${version}.tar.gz";
+ # Versions with current majorMinor values are at http://pari.math.u-bordeaux.fr/pub/pari/unix/${pname}-${version}.tar.gz
+ url = "https://pari.math.u-bordeaux.fr/pub/pari/OLD/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.gz";
sha256 = "sha256-v8iPxPc1L0hA5uNSxy8DacvqikVAOxg0piafNwmXCxw=";
};
diff --git a/pkgs/applications/science/math/pynac/default.nix b/pkgs/applications/science/math/pynac/default.nix
index 87fb205174bf..e3474d865e2d 100644
--- a/pkgs/applications/science/math/pynac/default.nix
+++ b/pkgs/applications/science/math/pynac/default.nix
@@ -1,5 +1,6 @@
{ stdenv
, fetchFromGitHub
+, fetchurl
, autoreconfHook
, pkgconfig
, flint
@@ -33,6 +34,14 @@ stdenv.mkDerivation rec {
pkgconfig
];
+ patches = [
+ (fetchurl {
+ name = "py_ssize_t_clean.patch";
+ url = "https://git.sagemath.org/sage.git/plain/build/pkgs/pynac/patches/py_ssize_t_clean.patch?h=9.2";
+ sha256 = "0l3gbg9hc4v671zf4w376krnk3wh8hj3649610nlvzzxckcryzab";
+ })
+ ];
+
meta = with stdenv.lib; {
description = "Python is Not a CAS -- modified version of Ginac";
longDescription = ''
diff --git a/pkgs/applications/science/math/sage/default.nix b/pkgs/applications/science/math/sage/default.nix
index caf51c3da251..416f2b957b7b 100644
--- a/pkgs/applications/science/math/sage/default.nix
+++ b/pkgs/applications/science/math/sage/default.nix
@@ -9,31 +9,13 @@
let
inherit (pkgs) symlinkJoin callPackage nodePackages;
- # https://trac.sagemath.org/ticket/15980 for tracking of python3 support
- python = pkgs.python2.override {
+ python3 = pkgs.python3.override {
packageOverrides = self: super: {
- # python packages that appear unmaintained and were not accepted into the nixpkgs
- # tree because of that. These packages are only dependencies of the more-or-less
- # deprecated sagenb. However sagenb is still a default dependency and the doctests
- # depend on it.
- # See https://github.com/NixOS/nixpkgs/pull/38787 for a discussion.
- # The dependency on the sage notebook (and therefore these packages) will be
- # removed in the future:
- # https://trac.sagemath.org/ticket/25837
- flask-oldsessions = self.callPackage ./flask-oldsessions.nix {};
- flask-openid = self.callPackage ./flask-openid.nix {};
- python-openid = self.callPackage ./python-openid.nix {};
- sagenb = self.callPackage ./sagenb.nix {
- mathjax = nodePackages.mathjax;
- };
-
- # Package with a cyclic dependency with sage
- pybrial = self.callPackage ./pybrial.nix {};
-
# `sagelib`, i.e. all of sage except some wrappers and runtime dependencies
sagelib = self.callPackage ./sagelib.nix {
- inherit flint ecl arb;
+ inherit flint arb;
inherit sage-src env-locations pynac singular;
+ ecl = maxima-ecl.ecl;
linbox = pkgs.linbox.override { withSage = true; };
pkg-config = pkgs.pkgconfig; # not to confuse with pythonPackages.pkgconfig
};
@@ -59,9 +41,10 @@ let
# A bash script setting various environment variables to tell sage where
# the files its looking fore are located. Also see `sage-env`.
env-locations = callPackage ./env-locations.nix {
- inherit pari_data ecl;
+ inherit pari_data;
inherit singular maxima-ecl;
- cysignals = python.pkgs.cysignals;
+ ecl = maxima-ecl.ecl;
+ cysignals = python3.pkgs.cysignals;
three = nodePackages.three;
mathjax = nodePackages.mathjax;
};
@@ -69,21 +52,22 @@ let
# The shell file that gets sourced on every sage start. Will also source
# the env-locations file.
sage-env = callPackage ./sage-env.nix {
- sagelib = python.pkgs.sagelib;
+ sagelib = python3.pkgs.sagelib;
inherit env-locations;
- inherit python ecl singular palp flint pynac pythonEnv maxima-ecl;
+ inherit python3 singular palp flint pynac pythonEnv maxima-ecl;
+ ecl = maxima-ecl.ecl;
pkg-config = pkgs.pkgconfig; # not to confuse with pythonPackages.pkgconfig
};
# The documentation for sage, building it takes a lot of ram.
sagedoc = callPackage ./sagedoc.nix {
inherit sage-with-env;
- inherit python maxima-ecl;
+ inherit python3 maxima-ecl;
};
# sagelib with added wrappers and a dependency on sage-tests to make sure thet tests were run.
sage-with-env = callPackage ./sage-with-env.nix {
- inherit pythonEnv;
+ inherit python3 pythonEnv;
inherit sage-env;
inherit pynac singular maxima-ecl;
pkg-config = pkgs.pkgconfig; # not to confuse with pythonPackages.pkgconfig
@@ -100,10 +84,8 @@ let
sage-src = callPackage ./sage-src.nix {};
- pythonRuntimeDeps = with python.pkgs; [
+ pythonRuntimeDeps = with python3.pkgs; [
sagelib
- pybrial
- sagenb
cvxopt
networkx
service-identity
@@ -116,11 +98,10 @@ let
ipywidgets
rpy2
sphinx
- typing
pillow
];
- pythonEnv = python.buildEnv.override {
+ pythonEnv = python3.buildEnv.override {
extraLibs = pythonRuntimeDeps;
ignoreCollisions = true;
} // { extraLibs = pythonRuntimeDeps; }; # make the libs accessible
@@ -129,8 +110,21 @@ let
singular = pkgs.singular.override { inherit flint; };
- # https://trac.sagemath.org/ticket/26625
- maxima-ecl = pkgs.maxima-ecl;
+ maxima-ecl = pkgs.maxima-ecl.override {
+ ecl = pkgs.ecl.override {
+ # "echo syntax error | ecl > /dev/full 2>&1" segfaults in
+ # ECL. We apply a patch to fix it (write_error.patch), but it
+ # only works if threads are disabled. sage 9.2 tests this
+ # (src/sage/interfaces/tests.py) and ships ecl like so.
+ # https://gitlab.com/embeddable-common-lisp/ecl/-/merge_requests/1#note_1657275
+ threadSupport = false;
+
+ # if we don't use the system boehmgc, sending a SIGINT to ecl
+ # can segfault if we it happens during memory allocation.
+ # src/sage/libs/ecl.pyx would intermittently fail in this case.
+ useBoehmgc = true;
+ };
+ };
# *not* to confuse with the python package "pynac"
pynac = pkgs.pynac.override { inherit singular flint; };
@@ -161,9 +155,6 @@ let
pari-seadata-small
];
};
-
- # https://trac.sagemath.org/ticket/22191
- ecl = pkgs.ecl_16_1_2;
in
# A wrapper around sage that makes sure sage finds its docs (if they were build).
callPackage ./sage.nix {
diff --git a/pkgs/applications/science/math/sage/env-locations.nix b/pkgs/applications/science/math/sage/env-locations.nix
index bda2d23b9e52..b1ad0aad9c76 100644
--- a/pkgs/applications/science/math/sage/env-locations.nix
+++ b/pkgs/applications/science/math/sage/env-locations.nix
@@ -44,6 +44,6 @@ writeTextFile rec {
export JSMOL_DIR="${jmol}/share/jsmol"
export MATHJAX_DIR="${mathjax}/lib/node_modules/mathjax"
export THREEJS_DIR="${three}/lib/node_modules/three"
- export SAGE_INCLUDE_DIRECTORIES="${cysignals}/lib/python2.7/site-packages"
+ export SAGE_INCLUDE_DIRECTORIES="${cysignals}/${cysignals.pythonModule.sitePackages}"
'';
}
diff --git a/pkgs/applications/science/math/sage/flask-oldsessions.nix b/pkgs/applications/science/math/sage/flask-oldsessions.nix
deleted file mode 100644
index 86fe9912c19e..000000000000
--- a/pkgs/applications/science/math/sage/flask-oldsessions.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, flask
-}:
-
-buildPythonPackage rec {
- pname = "Flask-OldSessions";
- version = "0.10";
-
- # no artifact on pypi: https://github.com/mitsuhiko/flask-oldsessions/issues/1
- src = fetchFromGitHub {
- owner = "mitsuhiko";
- repo = "flask-oldsessions";
- rev = version;
- sha256 = "04b5m8njjiwld9a0zw55iqwvyjgwcpdbhz1cic8nyhgcmypbicqn";
- };
-
- propagatedBuildInputs = [
- flask
- ];
-
- # missing module flask.testsuite, probably assumes an old version of flask
- doCheck = false;
- checkPhase = ''
- ${python.interpreter} run-tests.py
- '';
-
- meta = with stdenv.lib; {
- description = "Provides a session class that works like the one in Flask before 0.10.";
- license = licenses.bsd2;
- maintainers = teams.sage.members;
- homepage = "https://github.com/mitsuhiko/flask-oldsessions";
- };
-}
diff --git a/pkgs/applications/science/math/sage/flask-openid.nix b/pkgs/applications/science/math/sage/flask-openid.nix
deleted file mode 100644
index 900b033429ef..000000000000
--- a/pkgs/applications/science/math/sage/flask-openid.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, flask
-, python-openid
-}:
-
-buildPythonPackage rec {
- pname = "Flask-OpenID";
- version = "1.2.5";
-
- src = fetchPypi {
- inherit pname version;
- sha256 = "1aycwmwi7ilcaa5ab8hm0bp6323zl8z25q9ha0gwrl8aihfgx3ss";
- };
-
- propagatedBuildInputs = [
- flask
- python-openid
- ];
-
- meta = with stdenv.lib; {
- description = "Adds openid support to flask applications";
- license = licenses.bsd2;
- maintainers = teams.sage.members;
- homepage = "https://pythonhosted.org/Flask-OpenID/";
- };
-}
diff --git a/pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch b/pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch
index 8cd80281d0e4..d5c19a54fd96 100644
--- a/pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch
+++ b/pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch
@@ -1,17 +1,17 @@
-From 8218bd4fdeb4c92de8af0d3aabec55980fc4fb3d Mon Sep 17 00:00:00 2001
+From f5ea42a7aaed7611fb55b65897b9fcf2b7bcf97e Mon Sep 17 00:00:00 2001
From: Timo Kaufmann <timokau@zoho.com>
Date: Sun, 21 Oct 2018 17:52:40 +0200
Subject: [PATCH] Only test py2/py3 optional tests when all of sage is tested
---
- src/sage/doctest/control.py | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
+ src/sage/doctest/control.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/sage/doctest/control.py b/src/sage/doctest/control.py
-index bf18df8b2b..935c67abf7 100644
+index 2d93841e50..6d156e29a1 100644
--- a/src/sage/doctest/control.py
+++ b/src/sage/doctest/control.py
-@@ -362,7 +362,8 @@ class DocTestController(SageObject):
+@@ -375,7 +375,8 @@ class DocTestController(SageObject):
if not optionaltag_regex.search(o):
raise ValueError('invalid optional tag {!r}'.format(o))
@@ -21,15 +21,6 @@ index bf18df8b2b..935c67abf7 100644
self.options = options
-@@ -765,7 +766,7 @@ class DocTestController(SageObject):
- sage: DC = DocTestController(DD, [dirname])
- sage: DC.expand_files_into_sources()
- sage: sorted(DC.sources[0].options.optional) # abs tol 1
-- ['guava', 'magma', 'py2']
-+ ['guava', 'magma']
-
- We check that files are skipped appropriately::
-
--
-2.18.1
+2.28.0
diff --git a/pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch b/pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch
index 3f844e1b1ef5..981759202386 100644
--- a/pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch
+++ b/pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch
@@ -1,17 +1,17 @@
diff --git a/src/sage/env.py b/src/sage/env.py
-index 061b94f3f1..67cd091540 100644
+index 1ddfc7cfb9..45033d6328 100644
--- a/src/sage/env.py
+++ b/src/sage/env.py
-@@ -189,88 +189,13 @@ var('MAXIMA_FAS')
+@@ -203,97 +203,13 @@ var('ARB_LIBRARY', 'arb')
var('SAGE_BANNER', '')
var('SAGE_IMPORTALL', 'yes')
-
-def _get_shared_lib_filename(libname, *additional_libnames):
- """
-- Return the full path to a shared library file installed in the standard
-- location for the system within the ``LIBDIR`` prefix (or
-- ``$SAGE_LOCAL/lib`` in the case of manual build of Sage).
+- Return the full path to a shared library file installed in
+- ``$SAGE_LOCAL/lib`` or the directories associated with the
+- Python sysconfig.
-
- This can also be passed more than one library name (e.g. for cases where
- some library may have multiple names depending on the platform) in which
@@ -25,7 +25,7 @@ index 061b94f3f1..67cd091540 100644
- For distributions like Debian that use a multiarch layout, we also try the
- multiarch lib paths (i.e. ``/usr/lib/<arch>/``).
-
-- Returns ``None`` if the file does not exist.
+- This returns ``None`` if the file does not exist.
-
- EXAMPLES::
-
@@ -48,11 +48,17 @@ index 061b94f3f1..67cd091540 100644
-
- for libname in (libname,) + additional_libnames:
- if sys.platform == 'cygwin':
-- bindir = sysconfig.get_config_var('BINDIR')
+- # Later down we take the last matching DLL found, so search
+- # SAGE_LOCAL second so that it takes precedence
+- bindirs = [
+- sysconfig.get_config_var('BINDIR'),
+- os.path.join(SAGE_LOCAL, 'bin')
+- ]
- pats = ['cyg{}.dll'.format(libname), 'cyg{}-*.dll'.format(libname)]
- filenames = []
-- for pat in pats:
-- filenames += glob.glob(os.path.join(bindir, pat))
+- for bindir in bindirs:
+- for pat in pats:
+- filenames += glob.glob(os.path.join(bindir, pat))
-
- # Note: This is not very robust, since if there are multi DLL
- # versions for the same library this just selects one more or less
@@ -66,10 +72,13 @@ index 061b94f3f1..67cd091540 100644
- else:
- ext = 'so'
-
-- libdirs = [sysconfig.get_config_var('LIBDIR')]
+- libdirs = [
+- os.path.join(SAGE_LOCAL, 'lib'),
+- sysconfig.get_config_var('LIBDIR')
+- ]
- multilib = sysconfig.get_config_var('MULTILIB')
- if multilib:
-- libdirs.insert(0, os.path.join(libdirs[0], multilib))
+- libdirs.insert(1, os.path.join(libdirs[0], multilib))
-
- for libdir in libdirs:
- basename = 'lib{}.{}'.format(libname, ext)
@@ -89,7 +98,7 @@ index 061b94f3f1..67cd091540 100644
# locate libgap shared object
-GAP_SO= _get_shared_lib_filename('gap','')
-+GAP_SO= '/default'
++GAP_SO = '/default'
var('GAP_SO', GAP_SO)
# post process
diff --git a/pkgs/applications/science/math/sage/patches/docutils-0.15.patch b/pkgs/applications/science/math/sage/patches/docutils-0.15.patch
deleted file mode 100644
index 63f5d2e146dd..000000000000
--- a/pkgs/applications/science/math/sage/patches/docutils-0.15.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/src/sage/misc/sphinxify.py b/src/sage/misc/sphinxify.py
-index 4849c2bffa..76b7bc8602 100644
---- a/src/sage/misc/sphinxify.py
-+++ b/src/sage/misc/sphinxify.py
-@@ -25,6 +25,7 @@ from __future__ import absolute_import, print_function
- import os
- import re
- import shutil
-+import warnings
- from tempfile import mkdtemp
- from sphinx.application import Sphinx
-
-@@ -120,7 +121,10 @@ smart_quotes = no""")
- # buildername, confoverrides, status, warning, freshenv).
- sphinx_app = Sphinx(srcdir, confdir, outdir, doctreedir, format,
- confoverrides, None, None, True)
-- sphinx_app.build(None, [rst_name])
-+ with warnings.catch_warnings():
-+ # Quick and dirty workaround for https://trac.sagemath.org/ticket/28856#comment:19
-+ warnings.simplefilter("ignore")
-+ sphinx_app.build(None, [rst_name])
- sys.path = old_sys_path
-
- # We need to remove "_" from __builtin__ that the gettext module installs
diff --git a/pkgs/applications/science/math/sage/patches/ignore-cmp-deprecation.patch b/pkgs/applications/science/math/sage/patches/ignore-cmp-deprecation.patch
index 11ca74819615..a91ee319b8f0 100644
--- a/pkgs/applications/science/math/sage/patches/ignore-cmp-deprecation.patch
+++ b/pkgs/applications/science/math/sage/patches/ignore-cmp-deprecation.patch
@@ -1,24 +1,24 @@
diff --git a/src/sage/tests/cmdline.py b/src/sage/tests/cmdline.py
-index bd6b76ab82..ccf1203dec 100644
+index 6e034dcb5a..8ec60ec72b 100644
--- a/src/sage/tests/cmdline.py
+++ b/src/sage/tests/cmdline.py
-@@ -837,8 +837,6 @@ def test_executable(args, input="", timeout=100.0, **kwds):
+@@ -660,8 +660,8 @@ def test_executable(args, input="", timeout=100.0, pydebug_ignore_warnings=False
+ sage: with open(input, 'w') as F:
+ ....: _ = F.write(s)
+ sage: L = ["sage", "--rst2ipynb", input, output]
+- sage: test_executable(L) # optional - rst2ipynb
+- ('', '', 0)
++ sage: test_executable(L)[2] # optional - rst2ipynb
++ 0
+ sage: import json # optional - rst2ipynb
+ sage: d = json.load(open(output,'r')) # optional - rst2ipynb
+ sage: type(d) # optional - rst2ipynb
+@@ -757,8 +757,6 @@ def test_executable(args, input="", timeout=100.0, pydebug_ignore_warnings=False
///
4
}}}
-- sage: err # py2
+- sage: err # py2 # optional -- sagenb
- ''
- sage: ret
+ sage: ret # py2 # optional -- sagenb
0
-@@ -871,8 +869,8 @@ def test_executable(args, input="", timeout=100.0, **kwds):
- sage: output = tmp_filename(ext='.sws')
- sage: with open(input, 'w') as F:
- ....: _ = F.write(s)
-- sage: test_executable(["sage", "--rst2sws", input, output]) # py2
-- ('', '', 0)
-+ sage: test_executable(["sage", "--rst2sws", input, output])[2] # py2
-+ 0
- sage: import tarfile # py2
- sage: f = tarfile.open(output, 'r') # py2
- sage: print(f.extractfile('sage_worksheet/worksheet.html').read()) # py2
diff --git a/pkgs/applications/science/math/sage/patches/ignore-werkzeug-immutable-dict-deprecation.patch b/pkgs/applications/science/math/sage/patches/ignore-werkzeug-immutable-dict-deprecation.patch
deleted file mode 100644
index c5f95b498d53..000000000000
--- a/pkgs/applications/science/math/sage/patches/ignore-werkzeug-immutable-dict-deprecation.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/sage/all.py b/src/sage/all.py
-index c87c9372e9..862fca4fcc 100644
---- a/src/sage/all.py
-+++ b/src/sage/all.py
-@@ -306,6 +306,7 @@ warnings.filters.remove(('ignore', None, DeprecationWarning, None, 0))
- # Ignore all deprecations from IPython etc.
- warnings.filterwarnings('ignore', category=DeprecationWarning,
- module='.*(IPython|ipykernel|jupyter_client|jupyter_core|nbformat|notebook|ipywidgets|storemagic)')
-+warnings.filterwarnings('ignore', category=DeprecationWarning, message=r".*The import 'werkzeug.ImmutableDict' is deprecated")
- # Ignore collections.abc warnings, there are a lot of them but they are
- # harmless.
- warnings.filterwarnings('ignore', category=DeprecationWarning,
diff --git a/pkgs/applications/science/math/sage/patches/pari-stackwarn.patch b/pkgs/applications/science/math/sage/patches/pari-stackwarn.patch
deleted file mode 100644
index 49cdfd189b92..000000000000
--- a/pkgs/applications/science/math/sage/patches/pari-stackwarn.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/src/sage/doctest/parsing.py b/src/sage/doctest/parsing.py
-index 6bdc9a0..31fc780 100644
---- a/src/sage/doctest/parsing.py
-+++ b/src/sage/doctest/parsing.py
-@@ -40,6 +40,7 @@ from .external import available_software
-
- float_regex = re.compile('\s*([+-]?\s*((\d*\.?\d+)|(\d+\.?))([eE][+-]?\d+)?)')
- optional_regex = re.compile(r'(py2|py3|long time|not implemented|not tested|known bug)|([^ a-z]\s*optional\s*[:-]*((\s|\w)*))')
-+pari_stack_warning_regex = re.compile(r'\s*\*\*\*.*(Warning: increasing stack size to )\d+\.')
- find_sage_prompt = re.compile(r"^(\s*)sage: ", re.M)
- find_sage_continuation = re.compile(r"^(\s*)\.\.\.\.:", re.M)
- random_marker = re.compile('.*random', re.I)
-@@ -935,6 +936,7 @@ class SageOutputChecker(doctest.OutputChecker):
- <type 'float'>
- """
- got = self.human_readable_escape_sequences(got)
-+ got = pari_stack_warning_regex.sub('', got)
- if isinstance(want, MarkedOutput):
- if want.random:
- return True
diff --git a/pkgs/applications/science/math/sage/patches/pillow-update.patch b/pkgs/applications/science/math/sage/patches/pillow-update.patch
new file mode 100644
index 000000000000..19