From: tornaria <tornaria@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] singular: update to 4.3.2, rebuild sagemath
Date: Fri, 28 Apr 2023 21:21:53 +0200 [thread overview]
Message-ID: <20230428192153.mJj0Y7VaQ_nF-vr5ru_U-eC-TxJ0W9-CdOxGrw5RP8g@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-43225@inbox.vuxu.org>
[-- Attachment #1: Type: text/plain, Size: 1621 bytes --]
There is an updated pull request by tornaria against master on the void-packages repository
https://github.com/tornaria/void-packages sagemath
https://github.com/void-linux/void-packages/pull/43225
singular: update to 4.3.2, rebuild sagemath
<!-- Uncomment relevant sections and delete options which are not applicable -->
Also fix sagemath doctests for pkg updates:
- matplotlib 3.7
- ipython 8.12
- nauty 2.8.6
After this PR, sagemath testsuite should pass 100% with current versions of dependencies in void. All patches are taken from upstream.
#### Testing the changes
- I tested the changes in this PR: **briefly**
I'm running tests locally as well. Note that I'm doing this on top of #43153 to test the openblas update as well.
<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->
<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
- aarch64-musl
- armv7l
- armv6l-musl
-->
A patch file from https://github.com/void-linux/void-packages/pull/43225.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-sagemath-43225.patch --]
[-- Type: text/x-diff, Size: 23847 bytes --]
From 0db430c0f57e9689dafc3d12004c909722a0f1f2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Mon, 17 Apr 2023 14:31:03 -0300
Subject: [PATCH 1/3] python3-Babel: update to 2.12.1.
---
srcpkgs/python3-Babel/template | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/srcpkgs/python3-Babel/template b/srcpkgs/python3-Babel/template
index 4f2dc8425795..9255e8537f4e 100644
--- a/srcpkgs/python3-Babel/template
+++ b/srcpkgs/python3-Babel/template
@@ -1,18 +1,25 @@
# Template file for 'python3-Babel'
pkgname=python3-Babel
-version=2.10.3
-revision=2
+version=2.12.1
+revision=1
build_style=python3-module
hostmakedepends="python3-setuptools"
-depends="python3-pytz"
-checkdepends="python3-pytest python3-pytz python3-freezegun"
+checkdepends="python3-pytest python3-freezegun faketime"
short_desc="Tools for internationalizing Python applications (Python3)"
maintainer="Orphaned <orphan@voidlinux.org>"
license="BSD-3-Clause"
homepage="https://babel.pocoo.org"
changelog="https://raw.githubusercontent.com/python-babel/babel/master/CHANGES.rst"
distfiles="${PYPI_SITE}/B/Babel/Babel-${version}.tar.gz"
-checksum=7614553711ee97490f732126dc077f8d0ae084ebc6a96e23db1482afabdb2c51
+checksum=cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455
+
+do_check() {
+ # If you see this is hanging, remove faketime
+ # it has problem with python's time.sleep
+ LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 \
+ FAKETIME="@2023-01-01 00:00:00" \
+ python3 -m pytest
+}
post_install() {
vlicense LICENSE
From eab3ab61ba58950442dc4914881f29dc5e1404ac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Mon, 27 Mar 2023 00:31:35 -0300
Subject: [PATCH 2/3] singular: update to 4.3.2.
---
common/shlibs | 10 +++++-----
srcpkgs/singular/template | 4 ++--
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index e282bbd1f588..08dac21a5b3e 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4099,11 +4099,11 @@ libumfpack.so.6 SuiteSparse-6.0.1_1
libecl.so.21.2 ecl-21.2.1_1
libecm.so.1 ecm-7.0.4_3
libcliquer.so.1 cliquer-1.22_1
-libSingular-4.3.1.so singular-4.3.1p2_1
-libfactory-4.3.1.so singular-4.3.1p2_1
-libpolys-4.3.1.so singular-4.3.1p2_1
-libomalloc-0.9.6.so singular-4.3.1p2_1
-libsingular_resources-4.3.1.so singular-4.3.1p2_1
+libomalloc-0.9.6.so singular-4.2.1_1
+libSingular-4.3.2.so singular-4.3.2_1
+libfactory-4.3.2.so singular-4.3.2_1
+libpolys-4.3.2.so singular-4.3.2_1
+libsingular_resources-4.3.2.so singular-4.3.2_1
libbrial.so.3 brial-1.2.10_1
libbrial_groebner.so.3 brial-1.2.10_1
libm4ri-0.0.20200125.so m4ri-20200125_1
diff --git a/srcpkgs/singular/template b/srcpkgs/singular/template
index c73a020dcf15..0481f6cb1e11 100644
--- a/srcpkgs/singular/template
+++ b/srcpkgs/singular/template
@@ -1,6 +1,6 @@
# Template file for 'singular'
pkgname=singular
-version=4.3.1p3
+version=4.3.2
revision=1
_majver=${version%p*}
build_style=gnu-configure
@@ -20,7 +20,7 @@ maintainer="dkwo <npiazza@disroot.org>"
license="GPL-2.0-or-later"
homepage="https://www.singular.uni-kl.de"
distfiles="https://www.singular.uni-kl.de/ftp/pub/Math/Singular/SOURCES/${_majver//./-}/singular-${version}.tar.gz"
-checksum=66cfaeee7ab909272fd81050a09cae3ec115652a01adde014a5128a54b97397a
+checksum=3fd565d1bd4265fa8ba7cc189137a36d9daf9939b5bb411466c2028d9191f6db
if [ -z "$CROSS_BUILD" ]; then
makedepends+=" ntl-devel"
From 4db6f3ddf94a2b476a3f5eed230345470ff44d3d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Wed, 15 Mar 2023 09:27:58 -0300
Subject: [PATCH 3/3] sagemath: rebuild for singular update
Also fix doctests for pkg updates:
- matplotlib 3.7
- ipython 8.12
- nauty 2.8.6
- pythran 0.12.1
We add patches from upstream sagemath to fix these.
Also add pythran and sphinx to checkdepends to make sure doctests pass
when they are installed.
---
...support_singular_4.3.1.p3-5e5737a0c.patch} | 0
.../34980-avoid_factoring_in_is_prime.patch | 16 ++--
.../patches/35177-matplotlib_3.7.patch | 95 +++++++++++++++++++
.../patches/35195-workaround_ecl_race.patch | 56 +++++++++++
.../patches/35204-fix_sage-cleaner.patch | 28 ++++++
.../sagemath/patches/35250-nauty_2.8.6.patch | 35 +++++++
.../sagemath/patches/35423-ipython_8.12.patch | 51 ++++++++++
.../patches/35438-pythran_0.12.1.patch | 41 ++++++++
srcpkgs/sagemath/patches/get_patches | 29 +++++-
srcpkgs/sagemath/template | 4 +-
10 files changed, 341 insertions(+), 14 deletions(-)
rename srcpkgs/sagemath/patches/{trac-34851-support_singular_4.3.1.p3-5e5737a0c.patch => 34851-support_singular_4.3.1.p3-5e5737a0c.patch} (100%)
create mode 100644 srcpkgs/sagemath/patches/35177-matplotlib_3.7.patch
create mode 100644 srcpkgs/sagemath/patches/35195-workaround_ecl_race.patch
create mode 100644 srcpkgs/sagemath/patches/35204-fix_sage-cleaner.patch
create mode 100644 srcpkgs/sagemath/patches/35250-nauty_2.8.6.patch
create mode 100644 srcpkgs/sagemath/patches/35423-ipython_8.12.patch
create mode 100644 srcpkgs/sagemath/patches/35438-pythran_0.12.1.patch
diff --git a/srcpkgs/sagemath/patches/trac-34851-support_singular_4.3.1.p3-5e5737a0c.patch b/srcpkgs/sagemath/patches/34851-support_singular_4.3.1.p3-5e5737a0c.patch
similarity index 100%
rename from srcpkgs/sagemath/patches/trac-34851-support_singular_4.3.1.p3-5e5737a0c.patch
rename to srcpkgs/sagemath/patches/34851-support_singular_4.3.1.p3-5e5737a0c.patch
diff --git a/srcpkgs/sagemath/patches/34980-avoid_factoring_in_is_prime.patch b/srcpkgs/sagemath/patches/34980-avoid_factoring_in_is_prime.patch
index ca61a2ada4eb..ee0f0e656b28 100644
--- a/srcpkgs/sagemath/patches/34980-avoid_factoring_in_is_prime.patch
+++ b/srcpkgs/sagemath/patches/34980-avoid_factoring_in_is_prime.patch
@@ -1,8 +1,8 @@
diff --git a/src/sage/rings/number_field/number_field_ideal.py b/src/sage/rings/number_field/number_field_ideal.py
-index d5f7157217f..1a9d11aec68 100644
+index d5f7157217f..8ca1f958039 100644
--- a/src/sage/rings/number_field/number_field_ideal.py
+++ b/src/sage/rings/number_field/number_field_ideal.py
-@@ -996,16 +996,36 @@ def is_prime(self):
+@@ -996,16 +996,38 @@ def is_prime(self):
False
sage: K.ideal(17).is_prime() # ramified
False
@@ -33,13 +33,15 @@ index d5f7157217f..1a9d11aec68 100644
+ K = self.number_field().pari_nf()
+ I = self.pari_hnf()
+
-+ self._pari_prime = K.idealismaximal(I) or None
++ candidate = K.idealismaximal(I) or None
+
+ # PARI uses probabilistic primality testing inside idealismaximal().
-+ if self._pari_prime \
-+ and get_flag(None, 'arithmetic') \
-+ and not self._pari_prime[0].isprime():
-+ self._pari_prime = None
++ if get_flag(None, 'arithmetic'):
++ # proof required, check using isprime()
++ if candidate and not candidate[0].isprime():
++ candidate = None
++
++ self._pari_prime = candidate
+
+ return self._pari_prime is not None
diff --git a/srcpkgs/sagemath/patches/35177-matplotlib_3.7.patch b/srcpkgs/sagemath/patches/35177-matplotlib_3.7.patch
new file mode 100644
index 000000000000..007f3324cfe4
--- /dev/null
+++ b/srcpkgs/sagemath/patches/35177-matplotlib_3.7.patch
@@ -0,0 +1,95 @@
+diff --git a/src/sage/plot/complex_plot.pyx b/src/sage/plot/complex_plot.pyx
+index b77c69b2f77..0586a96ae55 100644
+--- a/src/sage/plot/complex_plot.pyx
++++ b/src/sage/plot/complex_plot.pyx
+@@ -563,7 +563,7 @@ def complex_to_cmap_rgb(z_values, cmap='turbo', contoured=False, tiled=False,
+ import matplotlib as mpl
+
+ if isinstance(cmap, str):
+- cmap = mpl.cm.get_cmap(cmap)
++ cmap = mpl.colormaps[cmap]
+
+ if contour_base is None:
+ if contour_type == "linear":
+@@ -1206,11 +1206,11 @@ def complex_plot(f, x_range, y_range, contoured=False, tiled=False, cmap=None,
+ domain = np.linspace(0, 1, 256)
+ shifted_domain = np.roll(domain, 128)
+ default_cmap = mpl.colors.LinearSegmentedColormap.from_list(
+- "sage_default", mpl.cm.get_cmap('hsv')(shifted_domain)
++ "sage_default", mpl.colormaps['hsv'](shifted_domain)
+ )
+ cmap = default_cmap
+ else:
+- cmap = mpl.cm.get_cmap(cmap)
++ cmap = mpl.colormaps[cmap]
+ rgbs = complex_to_cmap_rgb(
+ z_values, cmap=cmap, contoured=contoured, tiled=tiled,
+ contour_type=contour_type, contour_base=contour_base,
+diff --git a/src/sage/plot/contour_plot.py b/src/sage/plot/contour_plot.py
+index c0cab456686..4accb309580 100644
+--- a/src/sage/plot/contour_plot.py
++++ b/src/sage/plot/contour_plot.py
+@@ -848,9 +848,7 @@ def f(x,y): return cos(x) + sin(y)
+
+ sage: contour_plot(lambda x,y: 0, (-1,1), (-1,1),
+ ....: contours=[0], fill=False, cmap=['blue'])
+- ...
+- UserWarning: No contour levels were found within the data range.
+- Graphics object consisting of 1 graphics primitive
++ ...Graphics object consisting of 1 graphics primitive
+
+ .. PLOT::
+
+@@ -874,8 +872,7 @@ def f(x,y): return cos(x) + sin(y)
+ Check that :trac:`18074` is fixed::
+
+ sage: contour_plot(0, (0,1), (0,1))
+- ... UserWarning: No contour levels were found within the data range.
+- Graphics object consisting of 1 graphics primitive
++ ...Graphics object consisting of 1 graphics primitive
+
+ Domain points in :trac:`11648` with complex output are now skipped::
+
+diff --git a/src/sage/plot/graphics.py b/src/sage/plot/graphics.py
+index 64ea1a7e10f..cdc99ced263 100644
+--- a/src/sage/plot/graphics.py
++++ b/src/sage/plot/graphics.py
+@@ -2341,7 +2341,7 @@ def _matplotlib_tick_formatter(self, subplot, base=(10, 10),
+ sage: subplot = Figure().add_subplot(111)
+ sage: p._objects[0]._render_on_subplot(subplot)
+ sage: p._matplotlib_tick_formatter(subplot, **d)
+- (<AxesSubplot:...>,
++ (<Axes...>,
+ <matplotlib.ticker.MaxNLocator object at ...>,
+ <matplotlib.ticker.MaxNLocator object at ...>,
+ <matplotlib.ticker.ScalarFormatter object at ...>,
+diff --git a/src/sage/plot/multigraphics.py b/src/sage/plot/multigraphics.py
+index 99c817f03a6..ae85183dc93 100644
+--- a/src/sage/plot/multigraphics.py
++++ b/src/sage/plot/multigraphics.py
+@@ -1207,7 +1207,7 @@ def _add_subplot(self, figure, index, **options):
+ sage: fig = Figure()
+ sage: ax1 = G._add_subplot(fig, 0)
+ sage: type(ax1)
+- <class 'matplotlib.axes._subplots.AxesSubplot'>
++ <class 'matplotlib.axes...'>
+ sage: ax2 = G._add_subplot(fig, 1)
+ sage: fig.get_axes() == [ax1, ax2]
+ True
+diff --git a/src/sage/plot/plot3d/plot_field3d.py b/src/sage/plot/plot3d/plot_field3d.py
+index bdf39391d3e..fe10e27f58f 100644
+--- a/src/sage/plot/plot3d/plot_field3d.py
++++ b/src/sage/plot/plot3d/plot_field3d.py
+@@ -126,9 +126,9 @@ def plot_vector_field3d(functions, xrange, yrange, zrange,
+ vectors = [vector((ff(*point), gg(*point), hh(*point))) for point in points]
+
+ try:
+- from matplotlib.cm import get_cmap
+- cm = get_cmap(colors)
+- except (TypeError, ValueError):
++ import matplotlib as mpl
++ cm = mpl.colormaps[colors]
++ except (TypeError, KeyError):
+ cm = None
+ if cm is None:
+ if isinstance(colors, (list, tuple)):
diff --git a/srcpkgs/sagemath/patches/35195-workaround_ecl_race.patch b/srcpkgs/sagemath/patches/35195-workaround_ecl_race.patch
new file mode 100644
index 000000000000..1e0a708e8068
--- /dev/null
+++ b/srcpkgs/sagemath/patches/35195-workaround_ecl_race.patch
@@ -0,0 +1,56 @@
+diff --git a/src/sage/interfaces/maxima_lib.py b/src/sage/interfaces/maxima_lib.py
+index c9ca5e30939..9459cb70334 100644
+--- a/src/sage/interfaces/maxima_lib.py
++++ b/src/sage/interfaces/maxima_lib.py
+@@ -77,6 +77,26 @@
+ sage: bar == foo
+ True
+
++TESTS:
++
++Check our workaround for a race in ecl works, see :trac:`26968`.
++We use a temporary `MAXIMA_USERDIR` so it's empty; we place it
++in `DOT_SAGE` since we expect it to have more latency than `/tmp`.
++
++ sage: import tempfile, subprocess
++ sage: tmpdir = tempfile.TemporaryDirectory(dir=DOT_SAGE)
++ sage: _ = subprocess.run(['sage', '-c', # long time
++ ....: f'''
++ ....: import os
++ ....: os.environ["MAXIMA_USERDIR"] = "{tmpdir.name}"
++ ....: if not os.fork():
++ ....: import sage.interfaces.maxima_lib
++ ....: else:
++ ....: import sage.interfaces.maxima_lib
++ ....: os.wait()
++ ....: '''])
++ sage: tmpdir.cleanup()
++
+ """
+
+ # ****************************************************************************
+@@ -116,7 +136,23 @@
+ ecl_eval("(setq $nolabels t))")
+ ecl_eval("(defvar *MAXIMA-LANG-SUBDIR* NIL)")
+ ecl_eval("(set-locale-subdir)")
+-ecl_eval("(set-pathnames)")
++
++try:
++ ecl_eval("(set-pathnames)")
++except RuntimeError:
++ # Recover from :trac:`26968` by creating `*maxima-objdir*` here.
++ # This cannot be done before calling `(set-pathnames)` since
++ # `*maxima-objdir*` is computed there.
++ # We use python `os.makedirs()` which is immune to the race.
++ # Using `(ensure-directories-exist ...)` in lisp would be
++ # subject to the same race condition and since `*maxima-objdir*`
++ # has multiple components this is quite plausible to happen.
++ maxima_objdir = ecl_eval("*maxima-objdir*").python()[1:-1]
++ import os
++ os.makedirs(maxima_objdir, exist_ok=True)
++ # Call `(set-pathnames)` again to complete its job.
++ ecl_eval("(set-pathnames)")
++
+ ecl_eval("(defun add-lineinfo (x) x)")
+ ecl_eval('(defun principal nil (cond ($noprincipal (diverg)) ((not pcprntd) (merror "Divergent Integral"))))')
+ ecl_eval("(remprop 'mfactorial 'grind)") # don't use ! for factorials (#11539)
diff --git a/srcpkgs/sagemath/patches/35204-fix_sage-cleaner.patch b/srcpkgs/sagemath/patches/35204-fix_sage-cleaner.patch
new file mode 100644
index 000000000000..fc3e40da2a88
--- /dev/null
+++ b/srcpkgs/sagemath/patches/35204-fix_sage-cleaner.patch
@@ -0,0 +1,28 @@
+diff --git a/src/bin/sage-cleaner b/src/bin/sage-cleaner
+index e2e578eec60..dc7d8f0482e 100755
+--- a/src/bin/sage-cleaner
++++ b/src/bin/sage-cleaner
+@@ -99,6 +99,15 @@ def cleanup():
+
+ return len(pid_list)
+
++def cleanup_cruft():
++ """ remove directories leftover from improper shutdown """
++ tmp_dirs = os.listdir(SAGE_TMP_ROOT)
++ for dir_entry in tmp_dirs:
++ baddir = os.path.join(SAGE_TMP_ROOT, dir_entry)
++ if os.path.isdir(baddir):
++ logger.warning('Removing old directory %s from SAGE_TMP_ROOT', baddir)
++ rm_rf(baddir)
++
+ def kill_spawned_jobs(jobfile, parent_pid):
+ logger.info("Killing %s's spawned jobs", parent_pid)
+ killed_them_all = True
+@@ -193,6 +202,7 @@ if __name__ == '__main__':
+ setup_daemon()
+ fix_old_mistakes()
+ logger.info("Starting sage-cleaner with PID %s", os.getpid())
++ cleanup_cruft()
+
+ if len(sys.argv) > 1:
+ wait = int(sys.argv[1])
diff --git a/srcpkgs/sagemath/patches/35250-nauty_2.8.6.patch b/srcpkgs/sagemath/patches/35250-nauty_2.8.6.patch
new file mode 100644
index 000000000000..ea210e20ae52
--- /dev/null
+++ b/srcpkgs/sagemath/patches/35250-nauty_2.8.6.patch
@@ -0,0 +1,35 @@
+diff --git a/src/sage/graphs/generators/families.py b/src/sage/graphs/generators/families.py
+index ec6a5c19e60..9dd7bc1cb1e 100644
+--- a/src/sage/graphs/generators/families.py
++++ b/src/sage/graphs/generators/families.py
+@@ -3660,7 +3660,7 @@ def nauty_gentreeg(options="", debug=False):
+
+ sage: gen = graphs.nauty_gentreeg("4", debug=True)
+ sage: print(next(gen))
+- >A ...gentreeg Z=2:3 D=3 n=4
++ >A ...gentreeg ...
+ sage: gen = graphs.nauty_gentreeg("4 -q", debug=True)
+ sage: next(gen)
+ ''
+@@ -3687,7 +3687,7 @@ def nauty_gentreeg(options="", debug=False):
+ sage: list(graphs.nauty_gentreeg("3 -x", debug=True))
+ ['>E Usage: ...gentreeg [-D#] [-Z#:#] [-ulps] [-q] n [res/mod] ...
+ sage: list(graphs.nauty_gentreeg("3", debug=True))
+- ['>A ...gentreeg Z=2:2 D=2 n=3\n', Graph on 3 vertices]
++ ['>A ...gentreeg ...\n', Graph on 3 vertices]
+ """
+ import shlex
+ from sage.features.nauty import NautyExecutable
+diff --git a/src/sage/graphs/graph_generators.py b/src/sage/graphs/graph_generators.py
+index df88bbe2713..1a8016976c2 100644
+--- a/src/sage/graphs/graph_generators.py
++++ b/src/sage/graphs/graph_generators.py
+@@ -966,7 +966,7 @@ def nauty_geng(self, options="", debug=False):
+ ...
+ ValueError: wrong format of parameter option
+ sage: list(graphs.nauty_geng("-c3", debug=True))
+- ['>E Usage: ...geng [-cCmtfbd#D#] [-uygsnh] [-lvq] ...
++ ['>E Usage: ...geng ...\n']
+ sage: list(graphs.nauty_geng("-c 3", debug=True))
+ ['>A ...geng -cd1D2 n=3 e=2-3\n', Graph on 3 vertices, Graph on 3 vertices]
+ """
diff --git a/srcpkgs/sagemath/patches/35423-ipython_8.12.patch b/srcpkgs/sagemath/patches/35423-ipython_8.12.patch
new file mode 100644
index 000000000000..46bda084e48e
--- /dev/null
+++ b/srcpkgs/sagemath/patches/35423-ipython_8.12.patch
@@ -0,0 +1,51 @@
+diff --git a/src/sage/repl/inputhook.py b/src/sage/repl/inputhook.py
+index da5df0268c0..7f7894f6dcf 100644
+--- a/src/sage/repl/inputhook.py
++++ b/src/sage/repl/inputhook.py
+@@ -17,6 +17,8 @@
+
+ import select
+ import errno
++import contextlib
++import io
+
+ from IPython import get_ipython
+ from IPython.terminal.pt_inputhooks import register
+@@ -47,15 +49,27 @@ def install():
+ """
+ Install the Sage input hook
+
+- EXAMPLES::
++ EXAMPLES:
++
++ Make sure ipython is running so we really test this function::
++
++ sage: from sage.repl.interpreter import get_test_shell
++ sage: get_test_shell()
++ <sage.repl.interpreter.SageTestShell object at ...>
++
++ Run the function twice, to check it is idempotent (see :trac:`35235`)::
+
+ sage: from sage.repl.inputhook import install
+ sage: install()
++ sage: install()
+ """
+ ip = get_ipython()
+ if not ip:
+ return # Not running in ipython, e.g. doctests
+- ip.enable_gui('sage')
++ if ip._inputhook != sage_inputhook:
++ # silence `ip.enable_gui()` useless output
++ with contextlib.redirect_stdout(io.StringIO()):
++ ip.enable_gui('sage')
+
+
+ def uninstall():
+@@ -71,4 +85,6 @@ def uninstall():
+ if not ip:
+ return
+ if ip._inputhook == sage_inputhook:
+- ip.enable_gui(None)
++ # silence `ip.enable_gui()` useless output
++ with contextlib.redirect_stdout(io.StringIO()):
++ ip.enable_gui(None)
diff --git a/srcpkgs/sagemath/patches/35438-pythran_0.12.1.patch b/srcpkgs/sagemath/patches/35438-pythran_0.12.1.patch
new file mode 100644
index 000000000000..2cdc674d4f9e
--- /dev/null
+++ b/srcpkgs/sagemath/patches/35438-pythran_0.12.1.patch
@@ -0,0 +1,41 @@
+From 532fbbaf71bb41c73920b584108eb2a09d6deeb1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
+Date: Tue, 4 Apr 2023 12:56:57 -0300
+Subject: [PATCH] Ignore deprecation warnings triggered by pythran 0.12.1
+
+These happen with python 3.11, setuptools 67.6.1, numpy 1.24.2.
+When pythran 0.12.1 is installed, I get 24 doctest failures due to
+deprecation warnings; they are all gone with this commit.
+
+[backported from 839a6e928c264a9863bd42860c78ae95a6d9f3e0]
+---
+ src/sage/all.py | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/src/sage/all.py b/src/sage/all.py
+index 93588df1b93..ee775aad0e9 100644
+--- a/src/sage/all.py
++++ b/src/sage/all.py
+@@ -96,9 +96,17 @@ warnings.filterwarnings('ignore', category=DeprecationWarning,
+ warnings.filterwarnings('ignore', category=DeprecationWarning,
+ module='(.*[.]_vendor[.])?packaging')
+
+-# Ignore numpy warnings triggered by pythran
++# Ignore a few warnings triggered by pythran 0.12.1
+ warnings.filterwarnings('ignore', category=DeprecationWarning,
+- module='pythran')
++ message='\n\n `numpy.distutils` is deprecated since NumPy 1.23.0',
++ module='pythran.dist')
++warnings.filterwarnings('ignore', category=DeprecationWarning,
++ message='pkg_resources is deprecated as an API|'
++ 'Deprecated call to `pkg_resources.declare_namespace(.*)`',
++ module='pkg_resources')
++warnings.filterwarnings('ignore', category=DeprecationWarning,
++ message='msvccompiler is deprecated and slated to be removed',
++ module='distutils.msvccompiler')
+
+ warnings.filterwarnings('ignore', category=DeprecationWarning,
+ message='The distutils(.sysconfig module| package) is deprecated',
+--
+2.40.0
+
diff --git a/srcpkgs/sagemath/patches/get_patches b/srcpkgs/sagemath/patches/get_patches
index c98da68683cc..74109ffbbb0d 100755
--- a/srcpkgs/sagemath/patches/get_patches
+++ b/srcpkgs/sagemath/patches/get_patches
@@ -19,7 +19,7 @@ get_trac() {
ticket=$1
desc=$(echo "$2" | sed -e 's/ /_/g')
commit=$3
- $DO wget "$URL_BASE_COMPARE$commit.diff" -O "trac-$ticket-$desc-$commit.patch"
+ $DO wget "$URL_BASE_COMPARE$commit.diff" -O "$ticket-$desc-$commit.patch"
}
# run from patches dir
@@ -29,13 +29,32 @@ cd $(dirname "$0")
get_trac 34851 "support singular 4.3.1.p3" 5e5737a0c
get_pr 35068 "fix tests giac 1.9.0.35" patch
-# positive review
+# merged in 10.0.beta1
+get_pr 35058 "skip unstable tests klyachko"
+
+# merged in 10.0.beta2
get_pr 34994 "fix tests numpy 1.24"
get_pr 34997 "fix edge case of integer_check"
-get_pr 35058 "skip unstable tests klyachko"
-get_pr 35094 "support gap 4.12" # includes PR 35093
-# needs review
+# merged in 10.0.beta3
get_pr 34995 "support tachyon 0.99.2"
+
+# merged in 10.0.beta4
get_pr 34980 "avoid factoring in is_prime"
+
+# merged in 10.0.beta5
+get_pr 35094 "support gap 4.12" # includes PR 35093
+
+# merged in 10.0.beta6
get_pr 35127 "fix very slow test stream.py"
+get_pr 35177 "matplotlib 3.7"
+get_pr 35195 "workaround ecl race"
+get_pr 35204 "fix sage-cleaner"
+
+# merged in 10.0.beta7
+get_pr 35250 "nauty 2.8.6"
+
+# merged in 10.0.beta8
+#get_pr 35337 "ipython 8.11"
+get_pr 35423 "ipython 8.12" # includes PR 35337
+get_pr 35438 "pythran 0.12.1"
diff --git a/srcpkgs/sagemath/template b/srcpkgs/sagemath/template
index 75695f0e5f87..82f97480a10f 100644
--- a/srcpkgs/sagemath/template
+++ b/srcpkgs/sagemath/template
@@ -1,7 +1,7 @@
# Template file for 'sagemath'
pkgname=sagemath
version=9.8
-revision=1
+revision=2
build_wrksrc=pkgs/sagemath-standard
build_style=python3-module
_bindir=/usr/lib/sagemath/$version/bin
@@ -26,7 +26,7 @@ depends="FlintQS eclib-devel fflas-ffpack flintlib-devel gcc-fortran gd-devel
python3-sympy python3-traitlets sage-data-combinatorial_designs
sage-data-conway_polynomials sage-data-elliptic_curves sage-data-graphs
sage-data-polytopes_db sympow tachyon threejs-sage"
-checkdepends="$depends"
+checkdepends="$depends pythran python3-Sphinx python3-Babel"
short_desc="Open source mathematics software"
maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
license="GPL-2.0-or-later"
next prev parent reply other threads:[~2023-04-28 19:21 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-02 23:00 [PR PATCH] " tornaria
2023-04-03 3:43 ` tornaria
2023-04-03 18:37 ` tornaria
2023-04-03 20:25 ` dkwo
2023-04-03 20:35 ` tornaria
2023-04-03 20:51 ` [PR REVIEW] " dkwo
2023-04-03 20:54 ` dkwo
2023-04-03 21:51 ` [PR REVIEW] " tornaria
2023-04-03 23:08 ` dkwo
2023-04-03 23:09 ` dkwo
2023-04-03 23:20 ` tornaria
2023-04-03 23:20 ` tornaria
2023-04-03 23:20 ` tornaria
2023-04-05 19:23 ` dkwo
2023-04-05 19:26 ` dkwo
2023-04-05 19:27 ` dkwo
2023-04-05 19:27 ` dkwo
2023-04-05 19:28 ` dkwo
2023-04-05 19:34 ` dkwo
2023-04-06 17:30 ` dkwo
2023-04-06 17:34 ` dkwo
2023-04-06 17:39 ` dkwo
2023-04-06 18:03 ` tornaria
2023-04-06 18:23 ` dkwo
2023-04-06 18:50 ` tornaria
2023-04-06 20:13 ` dkwo
2023-04-10 19:10 ` [PR PATCH] [Updated] " tornaria
2023-04-25 12:03 ` tornaria
2023-04-25 12:05 ` tornaria
2023-04-25 12:10 ` tornaria
2023-04-27 14:06 ` [PR PATCH] [Updated] " tornaria
2023-04-27 15:15 ` dkwo
2023-04-27 16:05 ` tornaria
2023-04-27 16:11 ` tornaria
2023-04-28 19:21 ` tornaria [this message]
2023-04-28 19:40 ` dkwo
2023-04-29 2:15 ` [PR PATCH] [Updated] " tornaria
2023-04-29 2:17 ` tornaria
2023-04-29 4:29 ` icp1994
2023-04-29 22:28 ` tornaria
2023-04-30 6:27 ` icp1994
2023-04-30 20:04 ` singular: update to 4.3.2, rebuild sagemath, networkx: update to 3.1 tornaria
2023-04-30 22:15 ` [PR PATCH] [Merged]: " leahneukirchen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230428192153.mJj0Y7VaQ_nF-vr5ru_U-eC-TxJ0W9-CdOxGrw5RP8g@z \
--to=tornaria@users.noreply.github.com \
--cc=ml@inbox.vuxu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).