Github messages for voidlinux
 help / color / mirror / Atom feed
From: tornaria <tornaria@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] [BETA] sagemath: update to 10.4.beta1
Date: Sat, 27 Apr 2024 21:12:09 +0200	[thread overview]
Message-ID: <20240427191209.8E0EB24E26@inbox.vuxu.org> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-49571@inbox.vuxu.org>

[-- Attachment #1: Type: text/plain, Size: 1626 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/49571

[BETA] sagemath: update to 10.4.beta1
<!-- Uncomment relevant sections and delete options which are not applicable -->

- 10.4.beta0: I'm including patches for cython noexcept stuff from https://github.com/sagemath/sage/pull/37667 that I expect will be merged in beta1 or beta2. For convenience I also add patches for cython (merged, I expect it will be included in 3.0.10) and numpy (merged, I expect it will be included in 1.26.5).

@dkwo tracking here sagemath 10.4 prerelease

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### 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/49571.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-sagemath-49571.patch --]
[-- Type: text/x-diff, Size: 80206 bytes --]

From 4b8d4856a049d00367d1f0dff3a671b978f142ea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Fri, 29 Mar 2024 16:03:47 -0300
Subject: [PATCH 1/8] python3-sympy: update to 1.12.1rc1.

---
 .../python3-sympy/patches/00.python3.12.patch | 140 ------------------
 .../python3-sympy/patches/01.python3.12.patch |  27 ----
 srcpkgs/python3-sympy/template                |  17 ++-
 3 files changed, 11 insertions(+), 173 deletions(-)
 delete mode 100644 srcpkgs/python3-sympy/patches/00.python3.12.patch
 delete mode 100644 srcpkgs/python3-sympy/patches/01.python3.12.patch

diff --git a/srcpkgs/python3-sympy/patches/00.python3.12.patch b/srcpkgs/python3-sympy/patches/00.python3.12.patch
deleted file mode 100644
index 092f7dcab2fed5..00000000000000
--- a/srcpkgs/python3-sympy/patches/00.python3.12.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-From f517c26fe421f03ea2aa20d7babb4df422753c5f Mon Sep 17 00:00:00 2001
-From: Sangyub Lee <sylee957@gmail.com>
-Date: Tue, 30 May 2023 10:38:29 +0900
-Subject: [PATCH 1/3] Fix deprecation issues with python 3.12 ast lib
-
----
- sympy/parsing/sympy_parser.py | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/sympy/parsing/sympy_parser.py b/sympy/parsing/sympy_parser.py
-index 7e3a0e8067ce..5cda6b61ad69 100644
---- a/sympy/parsing/sympy_parser.py
-+++ b/sympy/parsing/sympy_parser.py
-@@ -1135,7 +1135,7 @@ def visit_Compare(self, node):
-             new_node = ast.Call(
-                 func=ast.Name(id=sympy_class, ctx=ast.Load()),
-                 args=[left, right],
--                keywords=[ast.keyword(arg='evaluate', value=ast.NameConstant(value=False, ctx=ast.Load()))],
-+                keywords=[ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load()))],
-                 starargs=None,
-                 kwargs=None
-             )
-@@ -1168,7 +1168,7 @@ def visit_BinOp(self, node):
-                 right = ast.Call(
-                     func=ast.Name(id='Mul', ctx=ast.Load()),
-                     args=[ast.UnaryOp(op=ast.USub(), operand=ast.Num(1)), right],
--                    keywords=[ast.keyword(arg='evaluate', value=ast.NameConstant(value=False, ctx=ast.Load()))],
-+                    keywords=[ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load()))],
-                     starargs=None,
-                     kwargs=None
-                 )
-@@ -1179,7 +1179,7 @@ def visit_BinOp(self, node):
-                     left = ast.Call(
-                     func=ast.Name(id='Pow', ctx=ast.Load()),
-                     args=[left, ast.UnaryOp(op=ast.USub(), operand=ast.Num(1))],
--                    keywords=[ast.keyword(arg='evaluate', value=ast.NameConstant(value=False, ctx=ast.Load()))],
-+                    keywords=[ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load()))],
-                     starargs=None,
-                     kwargs=None
-                 )
-@@ -1187,7 +1187,7 @@ def visit_BinOp(self, node):
-                     right = ast.Call(
-                     func=ast.Name(id='Pow', ctx=ast.Load()),
-                     args=[right, ast.UnaryOp(op=ast.USub(), operand=ast.Num(1))],
--                    keywords=[ast.keyword(arg='evaluate', value=ast.NameConstant(value=False, ctx=ast.Load()))],
-+                    keywords=[ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load()))],
-                     starargs=None,
-                     kwargs=None
-                 )
-@@ -1197,7 +1197,7 @@ def visit_BinOp(self, node):
-             new_node = ast.Call(
-                 func=ast.Name(id=sympy_class, ctx=ast.Load()),
-                 args=[left, right],
--                keywords=[ast.keyword(arg='evaluate', value=ast.NameConstant(value=False, ctx=ast.Load()))],
-+                keywords=[ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load()))],
-                 starargs=None,
-                 kwargs=None
-             )
-@@ -1212,7 +1212,7 @@ def visit_BinOp(self, node):
-     def visit_Call(self, node):
-         new_node = self.generic_visit(node)
-         if isinstance(node.func, ast.Name) and node.func.id in self.functions:
--            new_node.keywords.append(ast.keyword(arg='evaluate', value=ast.NameConstant(value=False, ctx=ast.Load())))
-+            new_node.keywords.append(ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load())))
-         return new_node
- 
- 
-
-From 34de3853a9486e23294d28b932d5978e237bc19c Mon Sep 17 00:00:00 2001
-From: Sangyub Lee <sylee957@gmail.com>
-Date: Tue, 30 May 2023 13:17:17 +0900
-Subject: [PATCH 2/3] Replace ast.Num
-
----
- sympy/parsing/sympy_parser.py | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/sympy/parsing/sympy_parser.py b/sympy/parsing/sympy_parser.py
-index 5cda6b61ad69..4a45a9d5bff8 100644
---- a/sympy/parsing/sympy_parser.py
-+++ b/sympy/parsing/sympy_parser.py
-@@ -1167,7 +1167,7 @@ def visit_BinOp(self, node):
-             if isinstance(node.op, ast.Sub):
-                 right = ast.Call(
-                     func=ast.Name(id='Mul', ctx=ast.Load()),
--                    args=[ast.UnaryOp(op=ast.USub(), operand=ast.Num(1)), right],
-+                    args=[ast.UnaryOp(op=ast.USub(), operand=ast.Constant(1)), right],
-                     keywords=[ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load()))],
-                     starargs=None,
-                     kwargs=None
-@@ -1178,7 +1178,7 @@ def visit_BinOp(self, node):
-                     rev = True
-                     left = ast.Call(
-                     func=ast.Name(id='Pow', ctx=ast.Load()),
--                    args=[left, ast.UnaryOp(op=ast.USub(), operand=ast.Num(1))],
-+                    args=[left, ast.UnaryOp(op=ast.USub(), operand=ast.Constant(1))],
-                     keywords=[ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load()))],
-                     starargs=None,
-                     kwargs=None
-@@ -1186,7 +1186,7 @@ def visit_BinOp(self, node):
-                 else:
-                     right = ast.Call(
-                     func=ast.Name(id='Pow', ctx=ast.Load()),
--                    args=[right, ast.UnaryOp(op=ast.USub(), operand=ast.Num(1))],
-+                    args=[right, ast.UnaryOp(op=ast.USub(), operand=ast.Constant(1))],
-                     keywords=[ast.keyword(arg='evaluate', value=ast.Constant(value=False, ctx=ast.Load()))],
-                     starargs=None,
-                     kwargs=None
-
-From eae2a0810829682417ba17e30812faa949121cc2 Mon Sep 17 00:00:00 2001
-From: Sangyub Lee <sylee957@gmail.com>
-Date: Tue, 30 May 2023 13:53:44 +0900
-Subject: [PATCH 3/3] Fix additional deprecation warnings
-
----
- sympy/parsing/ast_parser.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/sympy/parsing/ast_parser.py b/sympy/parsing/ast_parser.py
-index c828ed31a19b..95a773d5bec6 100644
---- a/sympy/parsing/ast_parser.py
-+++ b/sympy/parsing/ast_parser.py
-@@ -23,7 +23,7 @@
- from sympy.core.sympify import SympifyError
- 
- from ast import parse, NodeTransformer, Call, Name, Load, \
--    fix_missing_locations, Str, Tuple
-+    fix_missing_locations, Constant, Tuple
- 
- class Transform(NodeTransformer):
- 
-@@ -52,7 +52,7 @@ def visit_Name(self, node):
-         elif node.id in ['True', 'False']:
-             return node
-         return fix_missing_locations(Call(func=Name('Symbol', Load()),
--                args=[Str(node.id)], keywords=[]))
-+                args=[Constant(node.id)], keywords=[]))
- 
-     def visit_Lambda(self, node):
-         args = [self.visit(arg) for arg in node.args.args]
diff --git a/srcpkgs/python3-sympy/patches/01.python3.12.patch b/srcpkgs/python3-sympy/patches/01.python3.12.patch
deleted file mode 100644
index 6e1df83e8db26d..00000000000000
--- a/srcpkgs/python3-sympy/patches/01.python3.12.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 4b82eae46164afb468bb8995d87cbc643dc9e7a6 Mon Sep 17 00:00:00 2001
-From: Pablo Galindo <pablogsal@gmail.com>
-Date: Fri, 9 Jun 2023 11:22:20 +0100
-Subject: [PATCH 1/4] Fix factorial parsing for Python 3.12
-
-Signed-off-by: Pablo Galindo <pablogsal@gmail.com>
----
- .mailmap                      | 1 +
- sympy/parsing/sympy_parser.py | 5 ++++-
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/sympy/parsing/sympy_parser.py b/sympy/parsing/sympy_parser.py
-index 7e3a0e8067ce..1c89f0d25b9a 100644
---- a/sympy/parsing/sympy_parser.py
-+++ b/sympy/parsing/sympy_parser.py
-@@ -627,7 +627,10 @@ def factorial_notation(tokens: List[TOKEN], local_dict: DICT, global_dict: DICT)
-     result: List[TOKEN] = []
-     nfactorial = 0
-     for toknum, tokval in tokens:
--        if toknum == ERRORTOKEN:
-+        if toknum == OP and tokval == "!":
-+            # In Python 3.12 "!" are OP instead of ERRORTOKEN
-+            nfactorial += 1
-+        elif toknum == ERRORTOKEN:
-             op = tokval
-             if op == '!':
-                 nfactorial += 1
diff --git a/srcpkgs/python3-sympy/template b/srcpkgs/python3-sympy/template
index e767f7543c3be3..a370ce4ef82256 100644
--- a/srcpkgs/python3-sympy/template
+++ b/srcpkgs/python3-sympy/template
@@ -1,18 +1,23 @@
 # Template file for 'python3-sympy'
 pkgname=python3-sympy
-version=1.12
-revision=2
-build_style=python3-module
-hostmakedepends="python3-setuptools"
+version=1.12.1rc1
+revision=1
+build_style=python3-pep517
+hostmakedepends="python3-setuptools python3-wheel"
 depends="python3-mpmath"
-checkdepends="python3-mpmath"
+checkdepends="$depends python3-pytest python3-pytest-xdist gcc-fortran
+ python3-Cython python3-devel python3-ipython python3-lxml python3-matplotlib
+ python3-numexpr python3-numpy python3-scipy"
 short_desc="Computer algebra system for Python3"
 maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
 license="BSD-3-Clause"
 homepage="https://sympy.org/"
 changelog="https://github.com/sympy/sympy/wiki/Release-Notes"
 distfiles="${PYPI_SITE}/s/sympy/sympy-${version}.tar.gz"
-checksum=ebf595c8dac3e0fdc4152c51878b498396ec7f30e7a914d6071e674d49420fb8
+checksum=96c4bc7655b3418129c5ac47903c4d81bdecb49c9a1752fdca118c921fbc47a6
+
+# slow tests are broken
+make_check_args="-m not(slow)"
 
 post_install() {
 	vman doc/man/isympy.1

From 00d4d541c6a8bb5949e2182b89c1f8ce4242ce53 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Wed, 27 Mar 2024 12:56:01 -0300
Subject: [PATCH 2/8] sagemath: update to 10.4.beta1.

---
 .../patches/37720-sphinx_no_required.patch    | 30 +++++++++++++++++++
 srcpkgs/sagemath/patches/get_patches          |  1 +
 srcpkgs/sagemath/template                     |  6 ++--
 3 files changed, 34 insertions(+), 3 deletions(-)
 create mode 100644 srcpkgs/sagemath/patches/37720-sphinx_no_required.patch

diff --git a/srcpkgs/sagemath/patches/37720-sphinx_no_required.patch b/srcpkgs/sagemath/patches/37720-sphinx_no_required.patch
new file mode 100644
index 00000000000000..13272600f9aa32
--- /dev/null
+++ b/srcpkgs/sagemath/patches/37720-sphinx_no_required.patch
@@ -0,0 +1,30 @@
+diff --git a/pkgs/sagemath-repl/pyproject.toml.m4 b/pkgs/sagemath-repl/pyproject.toml.m4
+index 2bc276158a4..2d2f13008be 100644
+--- a/pkgs/sagemath-repl/pyproject.toml.m4
++++ b/pkgs/sagemath-repl/pyproject.toml.m4
+@@ -19,6 +19,12 @@ dependencies = [
+ dynamic = ["version"]
+ include(`pyproject_toml_metadata.m4')dnl'
+ 
++[project.optional-dependencies]
++# Improved formatting of docstrings in the help system
++sphinx = [
++    SPKG_INSTALL_REQUIRES_sphinx
++]
++
+ [project.readme]
+ file = "README.rst"
+ content-type = "text/x-rst"
+diff --git a/src/sage/misc/sageinspect.py b/src/sage/misc/sageinspect.py
+index 138605c35f0..935a9222970 100644
+--- a/src/sage/misc/sageinspect.py
++++ b/src/sage/misc/sageinspect.py
+@@ -42,7 +42,7 @@
+ 
+     sage: sage_getfile(BlockFinder)
+     '.../sage/misc/sageinspect.py'
+-    sage: sage_getdoc(BlockFinder).lstrip()[:50]
++    sage: sage_getdoc(BlockFinder).lstrip()[:50]                                        # needs sphinx
+     'Provide a "tokeneater()" method to detect the end '
+     sage: sage_getsource(BlockFinder)
+     'class BlockFinder:...'
diff --git a/srcpkgs/sagemath/patches/get_patches b/srcpkgs/sagemath/patches/get_patches
index 56057bbd4a397b..1d9f1fb9465f93 100755
--- a/srcpkgs/sagemath/patches/get_patches
+++ b/srcpkgs/sagemath/patches/get_patches
@@ -22,4 +22,5 @@ cd $(dirname "$0")
 
 # needs review
 get_pr 37492 "singular 4.3.2p16"
+get_pr 37720 "sphinx_no_required"
 get_pr 37763 "scipy 1.13"
diff --git a/srcpkgs/sagemath/template b/srcpkgs/sagemath/template
index 8b4bf7dfa441bb..6d6751239e016e 100644
--- a/srcpkgs/sagemath/template
+++ b/srcpkgs/sagemath/template
@@ -1,7 +1,7 @@
 # Template file for 'sagemath'
 pkgname=sagemath
-version=10.3
-revision=2
+version=10.4.beta1
+revision=1
 build_wrksrc=pkgs/sagemath-standard
 build_style=python3-pep517
 make_build_args="--skip-dependency-check"
@@ -32,7 +32,7 @@ license="GPL-2.0-or-later"
 homepage="https://www.sagemath.org/"
 changelog="https://github.com/sagemath/sage/releases"
 distfiles="https://github.com/sagemath/sage/archive/refs/tags/$version.tar.gz"
-checksum=59feb92c05e74d6db7a75f398c45c24b5157b1ecd3d8ac198806e2e6add77d96
+checksum=67aaa2436b41b2255b893071be10e400fc0ac670264667ca8ca35dcf7611d1d0
 nocross="due to ntl (eclib, singular), fflas-ffpack, givaro, linbox, sympow, maxima"
 
 # parallel build

From 23a7791d5430c5166924ea5fbead5a7760b40b6a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Mon, 8 Apr 2024 20:07:26 -0300
Subject: [PATCH 3/8] sagemath: update to 10.4.beta2.

---
 .../patches/37492-singular_4.3.2p16.patch     | 42 +++++++++++--------
 .../patches/37720-sphinx_no_required.patch    | 30 -------------
 .../sagemath/patches/37763-scipy_1.13.patch   | 13 ------
 srcpkgs/sagemath/patches/get_patches          |  2 -
 srcpkgs/sagemath/template                     |  4 +-
 5 files changed, 26 insertions(+), 65 deletions(-)
 delete mode 100644 srcpkgs/sagemath/patches/37720-sphinx_no_required.patch
 delete mode 100644 srcpkgs/sagemath/patches/37763-scipy_1.13.patch

diff --git a/srcpkgs/sagemath/patches/37492-singular_4.3.2p16.patch b/srcpkgs/sagemath/patches/37492-singular_4.3.2p16.patch
index 6913f39b865ea1..76f62a97a49ffd 100644
--- a/srcpkgs/sagemath/patches/37492-singular_4.3.2p16.patch
+++ b/srcpkgs/sagemath/patches/37492-singular_4.3.2p16.patch
@@ -1,8 +1,14 @@
+commit b722c89394cf515b69953bc09f22e3dcaddacc82
+Author: Antonio Rojas <arojas@archlinux.org>
+Date:   Sun Feb 25 20:27:47 2024 +0100
+
+    Adapt to singular 4.4 API changes
+
 diff --git a/src/sage/interfaces/singular.py b/src/sage/interfaces/singular.py
-index 9c9b8ffb8b9..12a9aa582a6 100644
+index dedbebab99..a821731450 100644
 --- a/src/sage/interfaces/singular.py
 +++ b/src/sage/interfaces/singular.py
-@@ -1211,14 +1211,14 @@ def current_ring(self):
+@@ -1211,14 +1211,14 @@ class Singular(ExtraTabCompletion, Expect):
              polynomial ring, over a field, global ordering
              //   coefficients: ZZ/127
              //   number of vars : 3
@@ -19,7 +25,7 @@ index 9c9b8ffb8b9..12a9aa582a6 100644
              //                  : names    x y z
              //        block   2 : ordering C
          """
-@@ -2040,6 +2040,9 @@ def _sage_(self, R=None):
+@@ -2040,6 +2040,9 @@ class SingularElement(ExtraTabCompletion, ExpectElement, sage.interfaces.abc.Sin
          elif typ == 'intvec':
              from sage.modules.free_module_element import vector
              return vector([sage.rings.integer.Integer(str(e)) for e in self])
@@ -30,7 +36,7 @@ index 9c9b8ffb8b9..12a9aa582a6 100644
              from sage.matrix.constructor import matrix
              from sage.rings.integer_ring import ZZ
 diff --git a/src/sage/libs/singular/decl.pxd b/src/sage/libs/singular/decl.pxd
-index e36216d6395..855c95b00bd 100644
+index e36216d639..855c95b00b 100644
 --- a/src/sage/libs/singular/decl.pxd
 +++ b/src/sage/libs/singular/decl.pxd
 @@ -243,7 +243,7 @@ cdef extern from "singular/Singular/libsingular.h":
@@ -62,7 +68,7 @@ index e36216d6395..855c95b00bd 100644
      cdef int RESOLUTION_CMD
      cdef int PACKAGE_CMD
 diff --git a/src/sage/libs/singular/function.pyx b/src/sage/libs/singular/function.pyx
-index ac4bde0c20b..8284cb921a3 100644
+index 4a5ab6d78f..844e070fe7 100644
 --- a/src/sage/libs/singular/function.pyx
 +++ b/src/sage/libs/singular/function.pyx
 @@ -98,7 +98,7 @@ from sage.rings.polynomial.multi_polynomial_sequence import PolynomialSequence_g
@@ -114,7 +120,7 @@ index ac4bde0c20b..8284cb921a3 100644
      The Singular function ``list`` can be called with any number of
      arguments::
 diff --git a/src/sage/libs/singular/ring.pyx b/src/sage/libs/singular/ring.pyx
-index 494fd2c0caf..7b05d63e7c7 100644
+index 0efff45904..80d7724959 100644
 --- a/src/sage/libs/singular/ring.pyx
 +++ b/src/sage/libs/singular/ring.pyx
 @@ -24,7 +24,7 @@ from sage.libs.gmp.mpz cimport mpz_init_set_ui
@@ -136,7 +142,7 @@ index 494fd2c0caf..7b05d63e7c7 100644
      "Ds": ringorder_Ds,
      "ls": ringorder_ls,
 diff --git a/src/sage/libs/singular/singular.pxd b/src/sage/libs/singular/singular.pxd
-index d943a1018a2..f398d27a1fa 100644
+index 05f32b6807..ca31d02456 100644
 --- a/src/sage/libs/singular/singular.pxd
 +++ b/src/sage/libs/singular/singular.pxd
 @@ -1,4 +1,4 @@
@@ -145,23 +151,23 @@ index d943a1018a2..f398d27a1fa 100644
  from sage.libs.singular.function cimport Resolution
  
  from sage.rings.rational cimport Rational
-@@ -29,6 +29,7 @@ cdef object   si2sa_ZZmod(number *n, ring *_ring, object base) noexcept
- cdef object   si2sa_NF(number *n, ring *_ring, object base) noexcept
+@@ -29,6 +29,7 @@ cdef object   si2sa_ZZmod(number *n, ring *_ring, object base)
+ cdef object   si2sa_NF(number *n, ring *_ring, object base)
  
- cdef object si2sa_intvec(intvec *v) noexcept
-+cdef object si2sa_bigintvec(bigintmat *v) noexcept
+ cdef object si2sa_intvec(intvec *v)
++cdef object si2sa_bigintvec(bigintmat *v)
  
  # dispatches to all the above.
- cdef object si2sa(number *n, ring *_ring, object base) noexcept
+ cdef object si2sa(number *n, ring *_ring, object base)
 diff --git a/src/sage/libs/singular/singular.pyx b/src/sage/libs/singular/singular.pyx
-index cf0124e0a35..0e5c7774e80 100644
+index e256949298..014effa9e3 100644
 --- a/src/sage/libs/singular/singular.pyx
 +++ b/src/sage/libs/singular/singular.pyx
-@@ -1699,6 +1699,25 @@ cdef object si2sa_intvec(intvec *v) noexcept:
+@@ -1699,6 +1699,25 @@ cdef object si2sa_intvec(intvec *v):
          l.append(v.get(r))
      return tuple(l)
  
-+cdef object si2sa_bigintvec(bigintmat *v) noexcept:
++cdef object si2sa_bigintvec(bigintmat *v):
 +    r"""
 +    create a sage tuple from a singular vector of big integers
 +
@@ -184,7 +190,7 @@ index cf0124e0a35..0e5c7774e80 100644
  # Initialisation
  # ==============
 diff --git a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
-index 70386eb0b50..b18c53de177 100644
+index 40fbc8c69a..d1f17f7f89 100644
 --- a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
 +++ b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
 @@ -1285,7 +1285,7 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base):
@@ -215,10 +221,10 @@ index 70386eb0b50..b18c53de177 100644
              //        block   2 : ordering C
  
 diff --git a/src/sage/rings/polynomial/term_order.py b/src/sage/rings/polynomial/term_order.py
-index 48e49ac89fa..65e68681485 100644
+index 4a3e78fe87..ce2faa2e41 100644
 --- a/src/sage/rings/polynomial/term_order.py
 +++ b/src/sage/rings/polynomial/term_order.py
-@@ -388,7 +388,7 @@
+@@ -388,7 +388,7 @@ print_name_mapping = {
  
  singular_name_mapping = {
      'lex'           : 'lp',
diff --git a/srcpkgs/sagemath/patches/37720-sphinx_no_required.patch b/srcpkgs/sagemath/patches/37720-sphinx_no_required.patch
deleted file mode 100644
index 13272600f9aa32..00000000000000
--- a/srcpkgs/sagemath/patches/37720-sphinx_no_required.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff --git a/pkgs/sagemath-repl/pyproject.toml.m4 b/pkgs/sagemath-repl/pyproject.toml.m4
-index 2bc276158a4..2d2f13008be 100644
---- a/pkgs/sagemath-repl/pyproject.toml.m4
-+++ b/pkgs/sagemath-repl/pyproject.toml.m4
-@@ -19,6 +19,12 @@ dependencies = [
- dynamic = ["version"]
- include(`pyproject_toml_metadata.m4')dnl'
- 
-+[project.optional-dependencies]
-+# Improved formatting of docstrings in the help system
-+sphinx = [
-+    SPKG_INSTALL_REQUIRES_sphinx
-+]
-+
- [project.readme]
- file = "README.rst"
- content-type = "text/x-rst"
-diff --git a/src/sage/misc/sageinspect.py b/src/sage/misc/sageinspect.py
-index 138605c35f0..935a9222970 100644
---- a/src/sage/misc/sageinspect.py
-+++ b/src/sage/misc/sageinspect.py
-@@ -42,7 +42,7 @@
- 
-     sage: sage_getfile(BlockFinder)
-     '.../sage/misc/sageinspect.py'
--    sage: sage_getdoc(BlockFinder).lstrip()[:50]
-+    sage: sage_getdoc(BlockFinder).lstrip()[:50]                                        # needs sphinx
-     'Provide a "tokeneater()" method to detect the end '
-     sage: sage_getsource(BlockFinder)
-     'class BlockFinder:...'
diff --git a/srcpkgs/sagemath/patches/37763-scipy_1.13.patch b/srcpkgs/sagemath/patches/37763-scipy_1.13.patch
deleted file mode 100644
index 219c6bdc323f7e..00000000000000
--- a/srcpkgs/sagemath/patches/37763-scipy_1.13.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/sage/matrix/matrix_double_dense.pyx b/src/sage/matrix/matrix_double_dense.pyx
-index 6877a924de2..a01defad999 100644
---- a/src/sage/matrix/matrix_double_dense.pyx
-+++ b/src/sage/matrix/matrix_double_dense.pyx
-@@ -3683,7 +3683,7 @@ cdef class Matrix_double_dense(Matrix_numpy_dense):
-             sage: A = matrix(CDF, 2, [1,2+I,3*I,4]); A                                  # needs sage.symbolic
-             [        1.0 2.0 + 1.0*I]
-             [      3.0*I         4.0]
--            sage: A.exp()  # tol 1.1e-14                                                # needs sage.symbolic
-+            sage: A.exp()  # tol 3e-14                                                  # needs sage.symbolic
-             [-19.614602953804912 + 12.517743846762578*I   3.7949636449582176 + 28.88379930658099*I]
-             [ -32.383580980922254 + 21.88423595789845*I   2.269633004093535 + 44.901324827684824*I]
- 
diff --git a/srcpkgs/sagemath/patches/get_patches b/srcpkgs/sagemath/patches/get_patches
index 1d9f1fb9465f93..77afead3fc913d 100755
--- a/srcpkgs/sagemath/patches/get_patches
+++ b/srcpkgs/sagemath/patches/get_patches
@@ -22,5 +22,3 @@ cd $(dirname "$0")
 
 # needs review
 get_pr 37492 "singular 4.3.2p16"
-get_pr 37720 "sphinx_no_required"
-get_pr 37763 "scipy 1.13"
diff --git a/srcpkgs/sagemath/template b/srcpkgs/sagemath/template
index 6d6751239e016e..2f9eb9767463ca 100644
--- a/srcpkgs/sagemath/template
+++ b/srcpkgs/sagemath/template
@@ -1,6 +1,6 @@
 # Template file for 'sagemath'
 pkgname=sagemath
-version=10.4.beta1
+version=10.4.beta2
 revision=1
 build_wrksrc=pkgs/sagemath-standard
 build_style=python3-pep517
@@ -32,7 +32,7 @@ license="GPL-2.0-or-later"
 homepage="https://www.sagemath.org/"
 changelog="https://github.com/sagemath/sage/releases"
 distfiles="https://github.com/sagemath/sage/archive/refs/tags/$version.tar.gz"
-checksum=67aaa2436b41b2255b893071be10e400fc0ac670264667ca8ca35dcf7611d1d0
+checksum=697ca37920f2a2096daebfc2ad74f9e8907c4c1d4c4b14d4c8fcb4d4dc868e1f
 nocross="due to ntl (eclib, singular), fflas-ffpack, givaro, linbox, sympow, maxima"
 
 # parallel build

From 09ff03557069d83cf8e6896cb050f77d5a8acf15 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Fri, 12 Apr 2024 20:32:48 -0300
Subject: [PATCH 4/8] sagemath: update to 10.4.beta3.

---
 .../patches/37492-singular_4.3.2p16.patch     | 163 ++++++++++++++----
 srcpkgs/sagemath/template                     |   4 +-
 2 files changed, 129 insertions(+), 38 deletions(-)

diff --git a/srcpkgs/sagemath/patches/37492-singular_4.3.2p16.patch b/srcpkgs/sagemath/patches/37492-singular_4.3.2p16.patch
index 76f62a97a49ffd..b42f5958bdf1b8 100644
--- a/srcpkgs/sagemath/patches/37492-singular_4.3.2p16.patch
+++ b/srcpkgs/sagemath/patches/37492-singular_4.3.2p16.patch
@@ -1,14 +1,8 @@
-commit b722c89394cf515b69953bc09f22e3dcaddacc82
-Author: Antonio Rojas <arojas@archlinux.org>
-Date:   Sun Feb 25 20:27:47 2024 +0100
-
-    Adapt to singular 4.4 API changes
-
 diff --git a/src/sage/interfaces/singular.py b/src/sage/interfaces/singular.py
-index dedbebab99..a821731450 100644
+index dedbebab99c..4697b9763d3 100644
 --- a/src/sage/interfaces/singular.py
 +++ b/src/sage/interfaces/singular.py
-@@ -1211,14 +1211,14 @@ class Singular(ExtraTabCompletion, Expect):
+@@ -1211,14 +1211,14 @@ def current_ring(self):
              polynomial ring, over a field, global ordering
              //   coefficients: ZZ/127
              //   number of vars : 3
@@ -25,7 +19,33 @@ index dedbebab99..a821731450 100644
              //                  : names    x y z
              //        block   2 : ordering C
          """
-@@ -2040,6 +2040,9 @@ class SingularElement(ExtraTabCompletion, ExpectElement, sage.interfaces.abc.Sin
+@@ -1402,6 +1402,14 @@ def _repr_(self):
+         if self._name in s:
+             if self.get_custom_name() is None and self.type() == 'matrix':
+                 s = self.parent().eval('pmat(%s,20)' % (self.name()))
++        # compatibility for singular 4.3.2p10 and before
++        if s.startswith("polynomial ring,"):
++            from sage.rings.polynomial.term_order import singular_name_mapping
++            from sage.repl.rich_output import get_display_manager
++            # this is our cue that singular uses `rp` instead of `ip`
++            if singular_name_mapping['invlex'] == 'rp' and 'doctest' in str(get_display_manager()):
++                s = re.sub('^(// .*block.* : ordering )rp$', '\\1ip',
++                           s, 0, re.MULTILINE)
+         return s
+ 
+     def __copy__(self):
+@@ -2025,6 +2033,10 @@ def _sage_(self, R=None):
+             sage: type(singular(int(5)).sage())
+             <class 'sage.rings.integer.Integer'>
+ 
++        Test that bigintvec can be coerced::
++
++            sage: singular('hilb((ideal(x)), 1)').sage()
++            (1, -1, 0, 0, -1, 1, 0)
+         """
+         typ = self.type()
+         if typ == 'poly':
+@@ -2040,6 +2052,9 @@ def _sage_(self, R=None):
          elif typ == 'intvec':
              from sage.modules.free_module_element import vector
              return vector([sage.rings.integer.Integer(str(e)) for e in self])
@@ -36,10 +56,24 @@ index dedbebab99..a821731450 100644
              from sage.matrix.constructor import matrix
              from sage.rings.integer_ring import ZZ
 diff --git a/src/sage/libs/singular/decl.pxd b/src/sage/libs/singular/decl.pxd
-index e36216d639..855c95b00b 100644
+index 27ddad438fc..4a0e508e932 100644
 --- a/src/sage/libs/singular/decl.pxd
 +++ b/src/sage/libs/singular/decl.pxd
-@@ -243,7 +243,7 @@ cdef extern from "singular/Singular/libsingular.h":
+@@ -49,6 +49,13 @@ cdef extern from "factory/factory.h":
+     cdef int SW_USE_NTL_SORT
+ 
+ cdef extern from "singular/Singular/libsingular.h":
++    """
++    // compatibility for singular 4.3.2p10 and before
++    #if SINGULAR_VERSION <= 4330
++    #define ringorder_ip ringorder_rp
++    #define BIGINTVEC_CMD INTVEC_CMD
++    #endif
++    """
+ 
+     #
+     # OPTIONS
+@@ -244,7 +251,7 @@ cdef extern from "singular/Singular/libsingular.h":
          ringorder_s
          ringorder_lp
          ringorder_dp
@@ -48,7 +82,7 @@ index e36216d639..855c95b00b 100644
          ringorder_Dp
          ringorder_wp
          ringorder_Wp
-@@ -291,6 +291,10 @@ cdef extern from "singular/Singular/libsingular.h":
+@@ -292,6 +299,10 @@ cdef extern from "singular/Singular/libsingular.h":
          int row
          int col
  
@@ -59,7 +93,7 @@ index e36216d639..855c95b00b 100644
      # omalloc bins
  
      ctypedef struct omBin "omBin_s"
-@@ -921,6 +925,7 @@ cdef extern from "singular/Singular/libsingular.h":
+@@ -922,6 +933,7 @@ cdef extern from "singular/Singular/libsingular.h":
      cdef int MATRIX_CMD
      cdef int LIST_CMD
      cdef int INTVEC_CMD
@@ -68,10 +102,10 @@ index e36216d639..855c95b00b 100644
      cdef int RESOLUTION_CMD
      cdef int PACKAGE_CMD
 diff --git a/src/sage/libs/singular/function.pyx b/src/sage/libs/singular/function.pyx
-index 4a5ab6d78f..844e070fe7 100644
+index 4d551b3a82f..b7bcd8cdad1 100644
 --- a/src/sage/libs/singular/function.pyx
 +++ b/src/sage/libs/singular/function.pyx
-@@ -98,7 +98,7 @@ from sage.rings.polynomial.multi_polynomial_sequence import PolynomialSequence_g
+@@ -99,7 +99,7 @@ from sage.rings.polynomial.multi_polynomial_sequence import PolynomialSequence_g
  from sage.libs.singular.decl cimport *
  from sage.libs.singular.option import opt_ctx
  from sage.libs.singular.polynomial cimport singular_vector_maximal_component
@@ -80,7 +114,7 @@ index 4a5ab6d78f..844e070fe7 100644
  from sage.libs.singular.singular import error_messages
  
  from sage.interfaces.singular import get_docstring
-@@ -954,6 +954,8 @@ cdef class Converter(SageObject):
+@@ -955,6 +955,8 @@ cdef class Converter(SageObject):
              return si2sa(<number *>to_convert.data, self._singular_ring, self._sage_ring.base_ring())
          elif rtyp == INTVEC_CMD:
              return si2sa_intvec(<intvec *> to_convert.data)
@@ -89,41 +123,80 @@ index 4a5ab6d78f..844e070fe7 100644
          elif rtyp == STRING_CMD:
              # TODO: Need to determine what kind of data can be returned by a
              # STRING_CMD--is it just ASCII strings or can it be an arbitrary
-@@ -1231,7 +1233,7 @@ cdef class SingularFunction(SageObject):
+@@ -1049,6 +1051,17 @@ cdef class LibraryCallHandler(BaseCallHandler):
+         """
+         return False
+ 
++# mapping int --> string for function arity
++arity_dict = {
++        CMD_1: "CMD_1",
++        CMD_2: "CMD_2",
++        CMD_3: "CMD_3",
++        CMD_12: "CMD_12",
++        CMD_13: "CMD_13",
++        CMD_23: "CMD_23",
++        CMD_123: "CMD_123",
++        CMD_M: "CMD_M"
++}
+ 
+ cdef class KernelCallHandler(BaseCallHandler):
+     """
+@@ -1126,8 +1139,9 @@ cdef class KernelCallHandler(BaseCallHandler):
+ 
+         errorreported += 1
+         error_messages.append(
+-                "Wrong number of arguments (got {} arguments, arity code is {})"
+-                .format(number_of_arguments, self.arity))
++                "Wrong number of arguments (got {} arguments, arity is {})"
++                .format(number_of_arguments,
++                        arity_dict.get(self.arity) or self.arity))
+         return NULL
+ 
+     cdef bint free_res(self) noexcept:
+@@ -1232,7 +1246,7 @@ cdef class SingularFunction(SageObject):
              Traceback (most recent call last):
              ...
              RuntimeError: error in Singular function call 'size':
 -            Wrong number of arguments (got 2 arguments, arity code is 302)
-+            Wrong number of arguments (got 2 arguments, arity code is 303)
++            Wrong number of arguments (got 2 arguments, arity is CMD_1)
              sage: size('foobar', ring=P)
              6
  
-@@ -1634,17 +1636,17 @@ def singular_function(name):
+@@ -1635,17 +1649,17 @@ def singular_function(name):
          Traceback (most recent call last):
          ...
          RuntimeError: error in Singular function call 'factorize':
 -        Wrong number of arguments (got 0 arguments, arity code is 305)
-+        Wrong number of arguments (got 0 arguments, arity code is 306)
++        Wrong number of arguments (got 0 arguments, arity is CMD_12)
          sage: factorize(f, 1, 2)
          Traceback (most recent call last):
          ...
          RuntimeError: error in Singular function call 'factorize':
 -        Wrong number of arguments (got 3 arguments, arity code is 305)
-+        Wrong number of arguments (got 3 arguments, arity code is 306)
++        Wrong number of arguments (got 3 arguments, arity is CMD_12)
          sage: factorize(f, 1, 2, 3)
          Traceback (most recent call last):
          ...
          RuntimeError: error in Singular function call 'factorize':
 -        Wrong number of arguments (got 4 arguments, arity code is 305)
-+        Wrong number of arguments (got 4 arguments, arity code is 306)
++        Wrong number of arguments (got 4 arguments, arity is CMD_12)
  
      The Singular function ``list`` can be called with any number of
      arguments::
 diff --git a/src/sage/libs/singular/ring.pyx b/src/sage/libs/singular/ring.pyx
-index 0efff45904..80d7724959 100644
+index 73bd0a07ce4..13a89be28f2 100644
 --- a/src/sage/libs/singular/ring.pyx
 +++ b/src/sage/libs/singular/ring.pyx
-@@ -24,7 +24,7 @@ from sage.libs.gmp.mpz cimport mpz_init_set_ui
+@@ -17,7 +17,7 @@ AUTHORS:
+ #                  https://www.gnu.org/licenses/
+ # ****************************************************************************
+ 
+-from sage.cpython.string cimport str_to_bytes
++from sage.cpython.string cimport str_to_bytes, bytes_to_str
+ 
+ from sage.libs.gmp.types cimport __mpz_struct
+ from sage.libs.gmp.mpz cimport mpz_init_set_ui
+@@ -25,7 +25,7 @@ from sage.libs.gmp.mpz cimport mpz_init_set_ui
  from sage.libs.singular.decl cimport ring, currRing
  from sage.libs.singular.decl cimport rChangeCurrRing, rComplete, rDelete, idInit
  from sage.libs.singular.decl cimport omAlloc0, omStrDup, omAlloc
@@ -132,7 +205,7 @@ index 0efff45904..80d7724959 100644
  from sage.libs.singular.decl cimport prCopyR
  from sage.libs.singular.decl cimport n_unknown, n_algExt, n_transExt, n_Z, n_Zn,  n_Znm, n_Z2m
  from sage.libs.singular.decl cimport n_coeffType
-@@ -60,7 +60,7 @@ order_dict = {
+@@ -61,7 +61,7 @@ order_dict = {
      "dp": ringorder_dp,
      "Dp": ringorder_Dp,
      "lp": ringorder_lp,
@@ -141,17 +214,35 @@ index 0efff45904..80d7724959 100644
      "ds": ringorder_ds,
      "Ds": ringorder_Ds,
      "ls": ringorder_ls,
+@@ -72,6 +72,16 @@ order_dict = {
+     "a":  ringorder_a,
+ }
+ 
++cdef extern from "singular/Singular/libsingular.h":
++    cdef char * rSimpleOrdStr(rRingOrder_t)
++
++if bytes_to_str(rSimpleOrdStr(ringorder_ip)) == "rp":
++    # compatibility for singular 4.3.2p10 and before
++    order_dict["rp"] = ringorder_ip
++    # also patch term_order mappings
++    from sage.rings.polynomial import term_order
++    term_order.singular_name_mapping['invlex'] = 'rp'
++    term_order.inv_singular_name_mapping['rp'] = 'invlex'
+ 
+ #############################################################################
+ cdef ring *singular_ring_new(base_ring, n, names, term_order) except NULL:
 diff --git a/src/sage/libs/singular/singular.pxd b/src/sage/libs/singular/singular.pxd
-index 05f32b6807..ca31d02456 100644
+index bb7686dea30..03825b13b42 100644
 --- a/src/sage/libs/singular/singular.pxd
 +++ b/src/sage/libs/singular/singular.pxd
-@@ -1,4 +1,4 @@
+@@ -1,5 +1,5 @@
+ # sage_setup: distribution = sagemath-singular
 -from sage.libs.singular.decl cimport ring, poly, number, intvec
 +from sage.libs.singular.decl cimport ring, poly, number, intvec, bigintmat
  from sage.libs.singular.function cimport Resolution
  
  from sage.rings.rational cimport Rational
-@@ -29,6 +29,7 @@ cdef object   si2sa_ZZmod(number *n, ring *_ring, object base)
+@@ -30,6 +30,7 @@ cdef object   si2sa_ZZmod(number *n, ring *_ring, object base)
  cdef object   si2sa_NF(number *n, ring *_ring, object base)
  
  cdef object si2sa_intvec(intvec *v)
@@ -160,10 +251,10 @@ index 05f32b6807..ca31d02456 100644
  # dispatches to all the above.
  cdef object si2sa(number *n, ring *_ring, object base)
 diff --git a/src/sage/libs/singular/singular.pyx b/src/sage/libs/singular/singular.pyx
-index e256949298..014effa9e3 100644
+index 79aa1e15aac..357742b0151 100644
 --- a/src/sage/libs/singular/singular.pyx
 +++ b/src/sage/libs/singular/singular.pyx
-@@ -1699,6 +1699,25 @@ cdef object si2sa_intvec(intvec *v):
+@@ -1700,6 +1700,25 @@ cdef object si2sa_intvec(intvec *v):
          l.append(v.get(r))
      return tuple(l)
  
@@ -190,10 +281,10 @@ index e256949298..014effa9e3 100644
  # Initialisation
  # ==============
 diff --git a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
-index 40fbc8c69a..d1f17f7f89 100644
+index c314072f338..b13500f8f89 100644
 --- a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
 +++ b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
-@@ -1285,7 +1285,7 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base):
+@@ -1286,7 +1286,7 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base):
              polynomial ring, over a field, global ordering
              //   coefficients: ZZ/2[a]/(a^8+a^4+a^3+a^2+1)
              //   number of vars : 10
@@ -202,7 +293,7 @@ index 40fbc8c69a..d1f17f7f89 100644
              //                  : names    x0 x1 x2 x3 x4 x5 x6 x7 x8 x9
              //        block   2 : ordering C
  
-@@ -1294,7 +1294,7 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base):
+@@ -1295,7 +1295,7 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base):
              polynomial ring, over a field, global ordering
              //   coefficients: ZZ/127
              //   number of vars : 2
@@ -211,7 +302,7 @@ index 40fbc8c69a..d1f17f7f89 100644
              //                  : names    x0 x1
              //        block   2 : ordering C
  
-@@ -1303,7 +1303,7 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base):
+@@ -1304,7 +1304,7 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base):
              polynomial ring, over a field, global ordering
              //   coefficients: QQ
              //   number of vars : 2
@@ -221,10 +312,10 @@ index 40fbc8c69a..d1f17f7f89 100644
              //        block   2 : ordering C
  
 diff --git a/src/sage/rings/polynomial/term_order.py b/src/sage/rings/polynomial/term_order.py
-index 4a3e78fe87..ce2faa2e41 100644
+index b8cd7e3615e..567c3c0eeaf 100644
 --- a/src/sage/rings/polynomial/term_order.py
 +++ b/src/sage/rings/polynomial/term_order.py
-@@ -388,7 +388,7 @@ print_name_mapping = {
+@@ -389,7 +389,7 @@
  
  singular_name_mapping = {
      'lex'           : 'lp',
diff --git a/srcpkgs/sagemath/template b/srcpkgs/sagemath/template
index 2f9eb9767463ca..14e770357cea41 100644
--- a/srcpkgs/sagemath/template
+++ b/srcpkgs/sagemath/template
@@ -1,6 +1,6 @@
 # Template file for 'sagemath'
 pkgname=sagemath
-version=10.4.beta2
+version=10.4.beta3
 revision=1
 build_wrksrc=pkgs/sagemath-standard
 build_style=python3-pep517
@@ -32,7 +32,7 @@ license="GPL-2.0-or-later"
 homepage="https://www.sagemath.org/"
 changelog="https://github.com/sagemath/sage/releases"
 distfiles="https://github.com/sagemath/sage/archive/refs/tags/$version.tar.gz"
-checksum=697ca37920f2a2096daebfc2ad74f9e8907c4c1d4c4b14d4c8fcb4d4dc868e1f
+checksum=6806cae9677cec1d06467a4d4753c9eee4900719070ff63d4607056aef6d86f9
 nocross="due to ntl (eclib, singular), fflas-ffpack, givaro, linbox, sympow, maxima"
 
 # parallel build

From 79ba7a82f813499f97a91f2f49ab18e05154dfc1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Tue, 9 Apr 2024 19:51:09 -0300
Subject: [PATCH 5/8] eclib: update to 20240408.

---
 srcpkgs/eclib/patches/fix-32bit-Euler.patch | 11 +++++++++++
 srcpkgs/eclib/template                      |  6 +++---
 2 files changed, 14 insertions(+), 3 deletions(-)
 create mode 100644 srcpkgs/eclib/patches/fix-32bit-Euler.patch

diff --git a/srcpkgs/eclib/patches/fix-32bit-Euler.patch b/srcpkgs/eclib/patches/fix-32bit-Euler.patch
new file mode 100644
index 00000000000000..44de9c31a06aaa
--- /dev/null
+++ b/srcpkgs/eclib/patches/fix-32bit-Euler.patch
@@ -0,0 +1,11 @@
+--- a/libsrc/interface.cc
++++ b/libsrc/interface.cc
+@@ -103,7 +103,7 @@ void Compute_Euler(RR& y)
+ 
+   l = RR::precision();
+ 
+-  x = 1 + static_cast<long>((0.25 * (l - 3)) * (NTL_BITS_PER_LONG * LOG2));
++  x = 1 + static_cast<long>((0.25 * (l - 3)) * (64 * LOG2));
+   n = 1 + static_cast<long>(3.591 * x);
+ 
+   a=x;
diff --git a/srcpkgs/eclib/template b/srcpkgs/eclib/template
index 9043aa465a9ff5..dd22d4e6de6f31 100644
--- a/srcpkgs/eclib/template
+++ b/srcpkgs/eclib/template
@@ -1,7 +1,7 @@
 # Template file for 'eclib'
 pkgname=eclib
-version=20231212
-revision=2
+version=20240408
+revision=1
 build_style=gnu-configure
 configure_args="--with-flint --with-boost"
 makedepends="pari-devel ntl-devel flintlib-devel boost-devel"
@@ -11,7 +11,7 @@ license="GPL-2.0-or-later"
 homepage="https://github.com/JohnCremona/eclib"
 changelog="https://github.com/JohnCremona/eclib/releases"
 distfiles="https://github.com/JohnCremona/eclib/releases/download/v${version}/eclib-${version}.tar.bz2"
-checksum=32d116a3e359b0de4f6486c2bb6188bb8b553c8b833f618cc2596484e8b6145a
+checksum=3ba908e2019de53fcba141449caa6fa82f03605bf83bf9da8092df538adabe7c
 
 eclib-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision} ntl-devel"

From 743791264a881e6dd0e69ea364e7a956db5d0dd0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Mon, 22 Apr 2024 16:57:26 -0300
Subject: [PATCH 6/8] eclib: update to git 92e8733

---
 srcpkgs/eclib/patches/fix-32bit-Euler.patch | 11 -----------
 srcpkgs/eclib/template                      | 13 ++++++++++---
 2 files changed, 10 insertions(+), 14 deletions(-)
 delete mode 100644 srcpkgs/eclib/patches/fix-32bit-Euler.patch

diff --git a/srcpkgs/eclib/patches/fix-32bit-Euler.patch b/srcpkgs/eclib/patches/fix-32bit-Euler.patch
deleted file mode 100644
index 44de9c31a06aaa..00000000000000
--- a/srcpkgs/eclib/patches/fix-32bit-Euler.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libsrc/interface.cc
-+++ b/libsrc/interface.cc
-@@ -103,7 +103,7 @@ void Compute_Euler(RR& y)
- 
-   l = RR::precision();
- 
--  x = 1 + static_cast<long>((0.25 * (l - 3)) * (NTL_BITS_PER_LONG * LOG2));
-+  x = 1 + static_cast<long>((0.25 * (l - 3)) * (64 * LOG2));
-   n = 1 + static_cast<long>(3.591 * x);
- 
-   a=x;
diff --git a/srcpkgs/eclib/template b/srcpkgs/eclib/template
index dd22d4e6de6f31..91fdc49d26a877 100644
--- a/srcpkgs/eclib/template
+++ b/srcpkgs/eclib/template
@@ -1,7 +1,8 @@
 # Template file for 'eclib'
 pkgname=eclib
-version=20240408
+version=20240408+git
 revision=1
+_gitrev=92e8733beb0e533f65ea42a05c29894c19de9b67
 build_style=gnu-configure
 configure_args="--with-flint --with-boost"
 makedepends="pari-devel ntl-devel flintlib-devel boost-devel"
@@ -10,8 +11,14 @@ maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
 license="GPL-2.0-or-later"
 homepage="https://github.com/JohnCremona/eclib"
 changelog="https://github.com/JohnCremona/eclib/releases"
-distfiles="https://github.com/JohnCremona/eclib/releases/download/v${version}/eclib-${version}.tar.bz2"
-checksum=3ba908e2019de53fcba141449caa6fa82f03605bf83bf9da8092df538adabe7c
+#distfiles="https://github.com/JohnCremona/eclib/releases/download/v${version}/eclib-${version}.tar.bz2"
+distfiles="https://github.com/JohnCremona/eclib/archive/$_gitrev.tar.gz"
+checksum=8223c1f9d0d1f049f148595c35665241fea295be821e46e326632adef093bd92
+
+hostmakedepends+=" autoconf automake libtool"
+post_patch() {
+	./autogen.sh
+}
 
 eclib-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision} ntl-devel"

From 0a363138c12ccecae57ae4678e86fca296aa3400 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Fri, 15 Mar 2024 12:59:54 -0300
Subject: [PATCH 7/8] gap: update to 4.13.0.

---
 common/shlibs        |  2 +-
 srcpkgs/gap/template | 12 ++++++++----
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/common/shlibs b/common/shlibs
index 794290d3a2f77d..9a2c962095abf2 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3985,7 +3985,7 @@ liblinbox.so.0 linbox-1.6.3_1
 libpari-gmp-tls.so.8 pari-2.15.0_1
 libtree-sitter.so.0 tree-sitter-0.19.0_1
 libplanarity.so.0 planarity-3.0.1.1_1
-libgap.so.8 gap-4.12.0_1
+libgap.so.9 gap-4.13.0_1
 libgtkdatabox.so.1 gtkdatabox3-1.0.0_1
 libxcvt.so.0 libxcvt-0.1.1_1
 libgf2x.so.3 gf2x-1.3.0_1
diff --git a/srcpkgs/gap/template b/srcpkgs/gap/template
index 63d1194d45ddc9..d6c106c4ce0a77 100644
--- a/srcpkgs/gap/template
+++ b/srcpkgs/gap/template
@@ -1,6 +1,6 @@
 # Template file for 'gap'
 pkgname=gap
-version=4.12.2
+version=4.13.0
 revision=1
 build_style=gnu-configure
 makedepends="gmp-devel zlib-devel readline-devel"
@@ -11,11 +11,15 @@ license="GPL-2.0-or-later"
 homepage="https://www.gap-system.org/"
 changelog="https://raw.githubusercontent.com/gap-system/gap/master/CHANGES.md"
 distfiles="https://github.com/gap-system/gap/releases/download/v${version}/gap-${version}.tar.gz"
-checksum=672308745eb78a222494ee8dd6786edd5bc331456fcc6456ac064bdb28d587a8
+checksum=cc76ecbe33d6719450a593e613fb87e9e4247faa876f632dd0f97c398f92265d
 
 if [ "$XBPS_CHECK_PKGS" = full ]; then
-	# not sure about this -- takes about 25 minutes
-	make_check_target=teststandard
+	do_check() {
+		# disable failing test
+		rm -f tst/teststandard/testLuxPahlings/example_4.4.18.tst
+		# about 5 minutes single core
+		./gap tst/teststandard.g
+	}
 fi
 
 _GAPROOT=/usr/share/gap/

From 12cbcf5cf002d6a42a645d45ca8048587793dc58 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Sat, 27 Apr 2024 13:14:41 -0300
Subject: [PATCH 8/8] sagemath: update to 10.4.beta4.

---
 .../patches/37492-singular_4.3.2p16.patch     |  61 +++--
 .../patches/37882-eclib_20240408.patch        | 116 +++++++++
 srcpkgs/sagemath/patches/37884-gap_4.13.patch | 225 ++++++++++++++++++
 .../patches/37885-cython_warnings.patch       |  12 +
 srcpkgs/sagemath/patches/get_patches          |   5 +-
 srcpkgs/sagemath/template                     |   7 +-
 6 files changed, 389 insertions(+), 37 deletions(-)
 create mode 100644 srcpkgs/sagemath/patches/37882-eclib_20240408.patch
 create mode 100644 srcpkgs/sagemath/patches/37884-gap_4.13.patch
 create mode 100644 srcpkgs/sagemath/patches/37885-cython_warnings.patch

diff --git a/srcpkgs/sagemath/patches/37492-singular_4.3.2p16.patch b/srcpkgs/sagemath/patches/37492-singular_4.3.2p16.patch
index b42f5958bdf1b8..8331dabaa310af 100644
--- a/srcpkgs/sagemath/patches/37492-singular_4.3.2p16.patch
+++ b/srcpkgs/sagemath/patches/37492-singular_4.3.2p16.patch
@@ -1,5 +1,5 @@
 diff --git a/src/sage/interfaces/singular.py b/src/sage/interfaces/singular.py
-index dedbebab99c..4697b9763d3 100644
+index dedbebab99c..59cd9a8afcd 100644
 --- a/src/sage/interfaces/singular.py
 +++ b/src/sage/interfaces/singular.py
 @@ -1211,14 +1211,14 @@ def current_ring(self):
@@ -30,7 +30,7 @@ index dedbebab99c..4697b9763d3 100644
 +            # this is our cue that singular uses `rp` instead of `ip`
 +            if singular_name_mapping['invlex'] == 'rp' and 'doctest' in str(get_display_manager()):
 +                s = re.sub('^(// .*block.* : ordering )rp$', '\\1ip',
-+                           s, 0, re.MULTILINE)
++                           s, 0, re.MULTILINE);
          return s
  
      def __copy__(self):
@@ -56,10 +56,10 @@ index dedbebab99c..4697b9763d3 100644
              from sage.matrix.constructor import matrix
              from sage.rings.integer_ring import ZZ
 diff --git a/src/sage/libs/singular/decl.pxd b/src/sage/libs/singular/decl.pxd
-index 27ddad438fc..4a0e508e932 100644
+index e36216d6395..3affdb34e11 100644
 --- a/src/sage/libs/singular/decl.pxd
 +++ b/src/sage/libs/singular/decl.pxd
-@@ -49,6 +49,13 @@ cdef extern from "factory/factory.h":
+@@ -48,6 +48,13 @@ cdef extern from "factory/factory.h":
      cdef int SW_USE_NTL_SORT
  
  cdef extern from "singular/Singular/libsingular.h":
@@ -73,7 +73,7 @@ index 27ddad438fc..4a0e508e932 100644
  
      #
      # OPTIONS
-@@ -244,7 +251,7 @@ cdef extern from "singular/Singular/libsingular.h":
+@@ -243,7 +250,7 @@ cdef extern from "singular/Singular/libsingular.h":
          ringorder_s
          ringorder_lp
          ringorder_dp
@@ -82,7 +82,7 @@ index 27ddad438fc..4a0e508e932 100644
          ringorder_Dp
          ringorder_wp
          ringorder_Wp
-@@ -292,6 +299,10 @@ cdef extern from "singular/Singular/libsingular.h":
+@@ -291,6 +298,10 @@ cdef extern from "singular/Singular/libsingular.h":
          int row
          int col
  
@@ -93,7 +93,7 @@ index 27ddad438fc..4a0e508e932 100644
      # omalloc bins
  
      ctypedef struct omBin "omBin_s"
-@@ -922,6 +933,7 @@ cdef extern from "singular/Singular/libsingular.h":
+@@ -921,6 +932,7 @@ cdef extern from "singular/Singular/libsingular.h":
      cdef int MATRIX_CMD
      cdef int LIST_CMD
      cdef int INTVEC_CMD
@@ -102,10 +102,10 @@ index 27ddad438fc..4a0e508e932 100644
      cdef int RESOLUTION_CMD
      cdef int PACKAGE_CMD
 diff --git a/src/sage/libs/singular/function.pyx b/src/sage/libs/singular/function.pyx
-index 4d551b3a82f..b7bcd8cdad1 100644
+index 4a5ab6d78f6..5c333e8d7e6 100644
 --- a/src/sage/libs/singular/function.pyx
 +++ b/src/sage/libs/singular/function.pyx
-@@ -99,7 +99,7 @@ from sage.rings.polynomial.multi_polynomial_sequence import PolynomialSequence_g
+@@ -98,7 +98,7 @@ from sage.rings.polynomial.multi_polynomial_sequence import PolynomialSequence_g
  from sage.libs.singular.decl cimport *
  from sage.libs.singular.option import opt_ctx
  from sage.libs.singular.polynomial cimport singular_vector_maximal_component
@@ -114,7 +114,7 @@ index 4d551b3a82f..b7bcd8cdad1 100644
  from sage.libs.singular.singular import error_messages
  
  from sage.interfaces.singular import get_docstring
-@@ -955,6 +955,8 @@ cdef class Converter(SageObject):
+@@ -954,6 +954,8 @@ cdef class Converter(SageObject):
              return si2sa(<number *>to_convert.data, self._singular_ring, self._sage_ring.base_ring())
          elif rtyp == INTVEC_CMD:
              return si2sa_intvec(<intvec *> to_convert.data)
@@ -123,7 +123,7 @@ index 4d551b3a82f..b7bcd8cdad1 100644
          elif rtyp == STRING_CMD:
              # TODO: Need to determine what kind of data can be returned by a
              # STRING_CMD--is it just ASCII strings or can it be an arbitrary
-@@ -1049,6 +1051,17 @@ cdef class LibraryCallHandler(BaseCallHandler):
+@@ -1048,6 +1050,17 @@ cdef class LibraryCallHandler(BaseCallHandler):
          """
          return False
  
@@ -141,7 +141,7 @@ index 4d551b3a82f..b7bcd8cdad1 100644
  
  cdef class KernelCallHandler(BaseCallHandler):
      """
-@@ -1126,8 +1139,9 @@ cdef class KernelCallHandler(BaseCallHandler):
+@@ -1125,8 +1138,9 @@ cdef class KernelCallHandler(BaseCallHandler):
  
          errorreported += 1
          error_messages.append(
@@ -153,7 +153,7 @@ index 4d551b3a82f..b7bcd8cdad1 100644
          return NULL
  
      cdef bint free_res(self) noexcept:
-@@ -1232,7 +1246,7 @@ cdef class SingularFunction(SageObject):
+@@ -1231,7 +1245,7 @@ cdef class SingularFunction(SageObject):
              Traceback (most recent call last):
              ...
              RuntimeError: error in Singular function call 'size':
@@ -162,7 +162,7 @@ index 4d551b3a82f..b7bcd8cdad1 100644
              sage: size('foobar', ring=P)
              6
  
-@@ -1635,17 +1649,17 @@ def singular_function(name):
+@@ -1634,17 +1648,17 @@ def singular_function(name):
          Traceback (most recent call last):
          ...
          RuntimeError: error in Singular function call 'factorize':
@@ -184,10 +184,10 @@ index 4d551b3a82f..b7bcd8cdad1 100644
      The Singular function ``list`` can be called with any number of
      arguments::
 diff --git a/src/sage/libs/singular/ring.pyx b/src/sage/libs/singular/ring.pyx
-index 73bd0a07ce4..13a89be28f2 100644
+index 0efff45904d..b3295206e5b 100644
 --- a/src/sage/libs/singular/ring.pyx
 +++ b/src/sage/libs/singular/ring.pyx
-@@ -17,7 +17,7 @@ AUTHORS:
+@@ -16,7 +16,7 @@ AUTHORS:
  #                  https://www.gnu.org/licenses/
  # ****************************************************************************
  
@@ -196,7 +196,7 @@ index 73bd0a07ce4..13a89be28f2 100644
  
  from sage.libs.gmp.types cimport __mpz_struct
  from sage.libs.gmp.mpz cimport mpz_init_set_ui
-@@ -25,7 +25,7 @@ from sage.libs.gmp.mpz cimport mpz_init_set_ui
+@@ -24,7 +24,7 @@ from sage.libs.gmp.mpz cimport mpz_init_set_ui
  from sage.libs.singular.decl cimport ring, currRing
  from sage.libs.singular.decl cimport rChangeCurrRing, rComplete, rDelete, idInit
  from sage.libs.singular.decl cimport omAlloc0, omStrDup, omAlloc
@@ -205,7 +205,7 @@ index 73bd0a07ce4..13a89be28f2 100644
  from sage.libs.singular.decl cimport prCopyR
  from sage.libs.singular.decl cimport n_unknown, n_algExt, n_transExt, n_Z, n_Zn,  n_Znm, n_Z2m
  from sage.libs.singular.decl cimport n_coeffType
-@@ -61,7 +61,7 @@ order_dict = {
+@@ -60,7 +60,7 @@ order_dict = {
      "dp": ringorder_dp,
      "Dp": ringorder_Dp,
      "lp": ringorder_lp,
@@ -214,7 +214,7 @@ index 73bd0a07ce4..13a89be28f2 100644
      "ds": ringorder_ds,
      "Ds": ringorder_Ds,
      "ls": ringorder_ls,
-@@ -72,6 +72,16 @@ order_dict = {
+@@ -71,6 +71,16 @@ order_dict = {
      "a":  ringorder_a,
  }
  
@@ -232,17 +232,16 @@ index 73bd0a07ce4..13a89be28f2 100644
  #############################################################################
  cdef ring *singular_ring_new(base_ring, n, names, term_order) except NULL:
 diff --git a/src/sage/libs/singular/singular.pxd b/src/sage/libs/singular/singular.pxd
-index bb7686dea30..03825b13b42 100644
+index 05f32b68079..ca31d02456c 100644
 --- a/src/sage/libs/singular/singular.pxd
 +++ b/src/sage/libs/singular/singular.pxd
-@@ -1,5 +1,5 @@
- # sage_setup: distribution = sagemath-singular
+@@ -1,4 +1,4 @@
 -from sage.libs.singular.decl cimport ring, poly, number, intvec
 +from sage.libs.singular.decl cimport ring, poly, number, intvec, bigintmat
  from sage.libs.singular.function cimport Resolution
  
  from sage.rings.rational cimport Rational
-@@ -30,6 +30,7 @@ cdef object   si2sa_ZZmod(number *n, ring *_ring, object base)
+@@ -29,6 +29,7 @@ cdef object   si2sa_ZZmod(number *n, ring *_ring, object base)
  cdef object   si2sa_NF(number *n, ring *_ring, object base)
  
  cdef object si2sa_intvec(intvec *v)
@@ -251,10 +250,10 @@ index bb7686dea30..03825b13b42 100644
  # dispatches to all the above.
  cdef object si2sa(number *n, ring *_ring, object base)
 diff --git a/src/sage/libs/singular/singular.pyx b/src/sage/libs/singular/singular.pyx
-index 79aa1e15aac..357742b0151 100644
+index e256949298e..014effa9e3f 100644
 --- a/src/sage/libs/singular/singular.pyx
 +++ b/src/sage/libs/singular/singular.pyx
-@@ -1700,6 +1700,25 @@ cdef object si2sa_intvec(intvec *v):
+@@ -1699,6 +1699,25 @@ cdef object si2sa_intvec(intvec *v):
          l.append(v.get(r))
      return tuple(l)
  
@@ -281,10 +280,10 @@ index 79aa1e15aac..357742b0151 100644
  # Initialisation
  # ==============
 diff --git a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
-index c314072f338..b13500f8f89 100644
+index 40fbc8c69aa..d1f17f7f899 100644
 --- a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
 +++ b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
-@@ -1286,7 +1286,7 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base):
+@@ -1285,7 +1285,7 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base):
              polynomial ring, over a field, global ordering
              //   coefficients: ZZ/2[a]/(a^8+a^4+a^3+a^2+1)
              //   number of vars : 10
@@ -293,7 +292,7 @@ index c314072f338..b13500f8f89 100644
              //                  : names    x0 x1 x2 x3 x4 x5 x6 x7 x8 x9
              //        block   2 : ordering C
  
-@@ -1295,7 +1295,7 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base):
+@@ -1294,7 +1294,7 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base):
              polynomial ring, over a field, global ordering
              //   coefficients: ZZ/127
              //   number of vars : 2
@@ -302,7 +301,7 @@ index c314072f338..b13500f8f89 100644
              //                  : names    x0 x1
              //        block   2 : ordering C
  
-@@ -1304,7 +1304,7 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base):
+@@ -1303,7 +1303,7 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base):
              polynomial ring, over a field, global ordering
              //   coefficients: QQ
              //   number of vars : 2
@@ -312,10 +311,10 @@ index c314072f338..b13500f8f89 100644
              //        block   2 : ordering C
  
 diff --git a/src/sage/rings/polynomial/term_order.py b/src/sage/rings/polynomial/term_order.py
-index b8cd7e3615e..567c3c0eeaf 100644
+index 4a3e78fe879..ce2faa2e41b 100644
 --- a/src/sage/rings/polynomial/term_order.py
 +++ b/src/sage/rings/polynomial/term_order.py
-@@ -389,7 +389,7 @@
+@@ -388,7 +388,7 @@
  
  singular_name_mapping = {
      'lex'           : 'lp',
diff --git a/srcpkgs/sagemath/patches/37882-eclib_20240408.patch b/srcpkgs/sagemath/patches/37882-eclib_20240408.patch
new file mode 100644
index 00000000000000..819ee8e63ac476
--- /dev/null
+++ b/srcpkgs/sagemath/patches/37882-eclib_20240408.patch
@@ -0,0 +1,116 @@
+diff --git a/src/sage/libs/eclib/interface.py b/src/sage/libs/eclib/interface.py
+index 7b2b07b1f3f..6c15997c09f 100644
+--- a/src/sage/libs/eclib/interface.py
++++ b/src/sage/libs/eclib/interface.py
+@@ -728,7 +728,7 @@ class mwrank_MordellWeil(SageObject):
+         P1 = [-3:0:1]     is generator number 1
+         saturating up to 20...Saturation index bound (for points of good reduction)  = 3
+         Reducing saturation bound from given value 20 to computed index bound 3
+-        Tamagawa index primes are [ 2 ]
++        Tamagawa index primes are [ 2 ]...
+         Checking saturation at [ 2 3 ]
+         Checking 2-saturation
+         Points were proved 2-saturated (max q used = 7)
+@@ -738,7 +738,7 @@ class mwrank_MordellWeil(SageObject):
+         P2 = [-2:3:1]     is generator number 2
+         saturating up to 20...Saturation index bound (for points of good reduction)  = 4
+         Reducing saturation bound from given value 20 to computed index bound 4
+-        Tamagawa index primes are [ 2 ]
++        Tamagawa index primes are [ 2 ]...
+         Checking saturation at [ 2 3 ]
+         Checking 2-saturation
+         possible kernel vector = [1,1]
+@@ -753,7 +753,7 @@ class mwrank_MordellWeil(SageObject):
+         P3 = [-14:25:8]   is generator number 3
+         saturating up to 20...Saturation index bound (for points of good reduction)  = 3
+         Reducing saturation bound from given value 20 to computed index bound 3
+-        Tamagawa index primes are [ 2 ]
++        Tamagawa index primes are [ 2 ]...
+         Checking saturation at [ 2 3 ]
+         Checking 2-saturation
+         Points were proved 2-saturated (max q used = 11)
+@@ -908,7 +908,7 @@ def process(self, v, saturation_bound=0):
+             saturating basis...Saturation index bound (for points of good reduction)  = 93
+             Only p-saturating for p up to given value 2.
+             The resulting points may not be p-saturated for p between this and the computed index bound 93
+-            Tamagawa index primes are [ 2 ]
++            Tamagawa index primes are [ 2 ]...
+             Checking saturation at [ 2 ]
+             Checking 2-saturation
+             possible kernel vector = [1,0,0]
+@@ -930,7 +930,7 @@ def process(self, v, saturation_bound=0):
+             saturating basis...Saturation index bound (for points of good reduction)  = 46
+             Only p-saturating for p up to given value 3.
+             The resulting points may not be p-saturated for p between this and the computed index bound 46
+-            Tamagawa index primes are [ 2 ]
++            Tamagawa index primes are [ 2 ]...
+             Checking saturation at [ 2 3 ]
+             Checking 2-saturation
+             Points were proved 2-saturated (max q used = 11)
+@@ -954,7 +954,7 @@ def process(self, v, saturation_bound=0):
+             saturating basis...Saturation index bound (for points of good reduction)  = 15
+             Only p-saturating for p up to given value 5.
+             The resulting points may not be p-saturated for p between this and the computed index bound 15
+-            Tamagawa index primes are [ 2 ]
++            Tamagawa index primes are [ 2 ]...
+             Checking saturation at [ 2 3 5 ]
+             Checking 2-saturation
+             Points were proved 2-saturated (max q used = 11)
+@@ -978,7 +978,7 @@ def process(self, v, saturation_bound=0):
+             0.417143558758384
+             sage: EQ.saturate()   # points are now saturated
+             saturating basis...Saturation index bound (for points of good reduction)  = 3
+-            Tamagawa index primes are [ 2 ]
++            Tamagawa index primes are [ 2 ]...
+             Checking saturation at [ 2 3 ]
+             Checking 2-saturation
+             Points were proved 2-saturated (max q used = 11)
+@@ -1189,7 +1189,7 @@ def saturate(self, max_prime=-1, min_prime=2):
+ 
+             sage: EQ.saturate()   # points are now saturated
+             saturating basis...Saturation index bound (for points of good reduction) = 3
+-            Tamagawa index primes are [ 2 ]
++            Tamagawa index primes are [ 2 ]...
+             Checking saturation at [ 2 3 ]
+             Checking 2-saturation
+             Points were proved 2-saturated (max q used = 11)
+@@ -1217,7 +1217,7 @@ def saturate(self, max_prime=-1, min_prime=2):
+ 
+             sage: EQ.saturate()
+             saturating basis...Saturation index bound (for points of good reduction) = 3
+-            Tamagawa index primes are [ 2 ]
++            Tamagawa index primes are [ 2 ]...
+             Checking saturation at [ 2 3 ]
+             Checking 2-saturation
+             Points were proved 2-saturated (max q used = 11)
+diff --git a/src/sage/libs/eclib/mwrank.pyx b/src/sage/libs/eclib/mwrank.pyx
+index bc475f907b6..c685c329926 100644
+--- a/src/sage/libs/eclib/mwrank.pyx
++++ b/src/sage/libs/eclib/mwrank.pyx
+@@ -590,7 +590,7 @@ cdef class _mw:
+             P1 = [-3:0:1]         is generator number 1
+             saturating up to 20...Saturation index bound (for points of good reduction)  = 3
+             Reducing saturation bound from given value 20 to computed index bound 3
+-            Tamagawa index primes are [ 2 ]
++            Tamagawa index primes are [ 2 ]...
+             Checking saturation at [ 2 3 ]
+             Checking 2-saturation
+             Points were proved 2-saturated (max q used = 7)
+@@ -600,7 +600,7 @@ cdef class _mw:
+             P2 = [-2:3:1]         is generator number 2
+             saturating up to 20...Saturation index bound (for points of good reduction)  = 4
+             Reducing saturation bound from given value 20 to computed index bound 4
+-            Tamagawa index primes are [ 2 ]
++            Tamagawa index primes are [ 2 ]...
+             Checking saturation at [ 2 3 ]
+             Checking 2-saturation
+             possible kernel vector = [1,1]
+@@ -615,7 +615,7 @@ cdef class _mw:
+             P3 = [-14:25:8]       is generator number 3
+             saturating up to 20...Saturation index bound (for points of good reduction)  = 3
+             Reducing saturation bound from given value 20 to computed index bound 3
+-            Tamagawa index primes are [ 2 ]
++            Tamagawa index primes are [ 2 ]...
+             Checking saturation at [ 2 3 ]
+             Checking 2-saturation
+             Points were proved 2-saturated (max q used = 11)
diff --git a/srcpkgs/sagemath/patches/37884-gap_4.13.patch b/srcpkgs/sagemath/patches/37884-gap_4.13.patch
new file mode 100644
index 00000000000000..8cc149ed7ef481
--- /dev/null
+++ b/srcpkgs/sagemath/patches/37884-gap_4.13.patch
@@ -0,0 +1,225 @@
+diff --git a/src/sage/algebras/fusion_rings/fusion_double.py b/src/sage/algebras/fusion_rings/fusion_double.py
+index d87a7a782a7..7df091d3ca9 100644
+--- a/src/sage/algebras/fusion_rings/fusion_double.py
++++ b/src/sage/algebras/fusion_rings/fusion_double.py
+@@ -132,7 +132,7 @@ class FusionDouble(CombinatorialFreeModule):
+         sage: G = SmallPermutationGroup(16,9)
+         sage: F = FusionDouble(G, prefix="b",inject_variables=True)
+         sage: b13^2 # long time (4s)
+-        b0 + b2 + b4 + b15 + b16 + b17 + b18 + b24 + b26 + b27
++        b0 + b3 + b4
+ 
+     """
+     @staticmethod
+diff --git a/src/sage/categories/simplicial_sets.py b/src/sage/categories/simplicial_sets.py
+index 7b7bbf827af..0864dc30af2 100644
+--- a/src/sage/categories/simplicial_sets.py
++++ b/src/sage/categories/simplicial_sets.py
+@@ -593,9 +593,9 @@ def _canonical_twisting_operator(self):
+                     sage: X = simplicial_sets.Torus()
+                     sage: d = X._canonical_twisting_operator()
+                     sage: d
+-                    {(s_0 v_0, sigma_1): f3, (sigma_1, s_0 v_0): f2*f3^-1, (sigma_1, sigma_1): f2}
++                    {(s_0 v_0, sigma_1): f2, (sigma_1, s_0 v_0): f1*f2^-1, (sigma_1, sigma_1): f1}
+                     sage: list(d.values())[0].parent()
+-                    Multivariate Laurent Polynomial Ring in f2, f3 over Integer Ring
++                    Multivariate Laurent Polynomial Ring in f1, f2 over Integer Ring
+                     sage: Y = simplicial_sets.RealProjectiveSpace(2)
+                     sage: d2 = Y._canonical_twisting_operator()
+                     sage: d2
+@@ -675,10 +675,10 @@ def twisted_chain_complex(self, twisting_operator=None, dimensions=None, augment
+                     sage: X = simplicial_sets.Torus()
+                     sage: C = X.twisted_chain_complex()
+                     sage: C.differential(1)
+-                    [      f3 - 1 f2*f3^-1 - 1       f2 - 1]
++                    [      f2 - 1 f1*f2^-1 - 1       f1 - 1]
+                     sage: C.differential(2)
+-                    [       1 f2*f3^-1]
+-                    [      f3        1]
++                    [       1 f1*f2^-1]
++                    [      f2        1]
+                     [      -1       -1]
+                     sage: C.differential(3)
+                     []
+@@ -843,29 +843,29 @@ def twisted_homology(self, n, reduced=False):
+ 
+                     sage: Y = simplicial_sets.Torus()
+                     sage: Y.twisted_homology(1)
+-                    Quotient module by Submodule of Ambient free module of rank 5 over the integral domain Multivariate Polynomial Ring in f2, f2inv, f3, f3inv over Integer Ring
++                    Quotient module by Submodule of Ambient free module of rank 5 over the integral domain Multivariate Polynomial Ring in f1, f1inv, f2, f2inv over Integer Ring
+                     Generated by the rows of the matrix:
+                     [           1            0            0            0            0]
+                     [           0            1            0            0            0]
+                     [           0            0            1            0            0]
+                     [           0            0            0            1            0]
+                     [           0            0            0            0            1]
++                    [f1*f1inv - 1            0            0            0            0]
++                    [           0 f1*f1inv - 1            0            0            0]
++                    [           0            0 f1*f1inv - 1            0            0]
++                    [           0            0            0 f1*f1inv - 1            0]
++                    [           0            0            0            0 f1*f1inv - 1]
+                     [f2*f2inv - 1            0            0            0            0]
+                     [           0 f2*f2inv - 1            0            0            0]
+                     [           0            0 f2*f2inv - 1            0            0]
+                     [           0            0            0 f2*f2inv - 1            0]
+                     [           0            0            0            0 f2*f2inv - 1]
+-                    [f3*f3inv - 1            0            0            0            0]
+-                    [           0 f3*f3inv - 1            0            0            0]
+-                    [           0            0 f3*f3inv - 1            0            0]
+-                    [           0            0            0 f3*f3inv - 1            0]
+-                    [           0            0            0            0 f3*f3inv - 1]
+                     sage: Y.twisted_homology(2)
+-                    Quotient module by Submodule of Ambient free module of rank 0 over the integral domain Multivariate Polynomial Ring in f2, f2inv, f3, f3inv over Integer Ring
++                    Quotient module by Submodule of Ambient free module of rank 0 over the integral domain Multivariate Polynomial Ring in f1, f1inv, f2, f2inv over Integer Ring
+                     Generated by the rows of the matrix:
+                     []
+                     sage: Y.twisted_homology(1, reduced=True)
+-                    Quotient module by Submodule of Ambient free module of rank 5 over the integral domain Multivariate Polynomial Ring in f2, f2inv, f3, f3inv over Integer Ring
++                    Quotient module by Submodule of Ambient free module of rank 5 over the integral domain Multivariate Polynomial Ring in f1, f1inv, f2, f2inv over Integer Ring
+                     Generated by the rows of the matrix:
+                     [1 0 0 0 0]
+                     [0 1 0 0 0]
+diff --git a/src/sage/groups/finitely_presented.py b/src/sage/groups/finitely_presented.py
+index a6ef6bb7395..b5a4b3a1edc 100644
+--- a/src/sage/groups/finitely_presented.py
++++ b/src/sage/groups/finitely_presented.py
+@@ -1344,8 +1344,8 @@ def abelianization_map(self):
+             sage: H = G.quotient([g1^2, g2*g1*g2^(-1)*g1^(-1), g1*g3^(-2), g0^4])
+             sage: H.abelianization_map()
+             Group morphism:
+-                From: Finitely presented group  < g0, g1, g2, g3 | g1^2, g2*g1*g2^-1*g1^-1, g1*g3^-2, g0^4 >
+-                To:   Finitely presented group  < f2, f3, f4 | f2^-1*f3^-1*f2*f3, f2^-1*f4^-1*f2*f4, f3^-1*f4^-1*f3*f4, f2^4, f3^4 >
++              From: Finitely presented group < g0, g1, g2, g3 | g1^2, g2*g1*g2^-1*g1^-1, g1*g3^-2, g0^4 >
++              To:   Finitely presented group < f1, f2, f3 | f1^4, f2^-1*f1^-1*f2*f1, f2^4, f3^-1*f1^-1*f3*f1, f3^-1*f2^-1*f3*f2 >
+             sage: g = FreeGroup(0) / []
+             sage: g.abelianization_map()
+             Group endomorphism of Finitely presented group  <  |  >
+@@ -1394,10 +1394,10 @@ def abelianization_to_algebra(self, ring=QQ):
+             Defining g0, g1, g2, g3
+             sage: H = G.quotient([g1^2, g2*g1*g2^(-1)*g1^(-1), g1*g3^(-2), g0^4])
+             sage: H.abelianization_to_algebra()
+-            (Finitely presented group  < f2, f3, f4 | f2^-1*f3^-1*f2*f3, f2^-1*f4^-1*f2*f4,
+-                                                      f3^-1*f4^-1*f3*f4, f2^4, f3^4 >,
+-             Multivariate Laurent Polynomial Ring in f2, f3, f4 over Rational Field,
+-             [f2^4 - 1, f3^4 - 1], [f2^-1*f3^-2, f3^-2, f4, f3])
++            (Finitely presented group < f1, f2, f3 | f1^4, f2^-1*f1^-1*f2*f1, f2^4, f3^-1*f1^-1*f3*f1, f3^-1*f2^-1*f3*f2 >,
++             Multivariate Laurent Polynomial Ring in f1, f2, f3 over Rational Field,
++             [f1^4 - 1, f2^4 - 1],
++             [f1^3*f2^2, f2^2, f3, f2])
+             sage: g=FreeGroup(0) / []
+             sage: g.abelianization_to_algebra()
+             (Finitely presented group  <  |  >, Rational Field, [], [])
+@@ -1673,7 +1673,7 @@ def abelian_alexander_matrix(self, ring=QQ, simplified=True):
+             []
+             sage: G = FreeGroup(3)/[(2, 1, 1), (1, 2, 2, 3, 3)]
+             sage: A, ideal = G.abelian_alexander_matrix(simplified=True); A
+-            [-f3^2 - f3^4 - f3^6         f3^3 + f3^6]
++            [-f1^2 - f1^4 - f1^6         f1^3 + f1^6]
+             sage: g = FreeGroup(1) / []
+             sage: g.abelian_alexander_matrix()
+             ([], [])
+@@ -1773,11 +1773,11 @@ def characteristic_varieties(self, ring=QQ, matrix_ideal=None, groebner=False):
+              3: Ideal (1) of Multivariate Laurent Polynomial Ring in f1, f2 over Integer Ring}
+             sage: G = FreeGroup(2)/[(1,2,1,-2,-1,-2)]
+             sage: G.characteristic_varieties()
+-            {0: Ideal (0) of Univariate Laurent Polynomial Ring in f2 over Rational Field,
+-             1: Ideal (-1 + 2*f2 - 2*f2^2 + f2^3) of Univariate Laurent Polynomial Ring in f2 over Rational Field,
+-             2: Ideal (1) of Univariate Laurent Polynomial Ring in f2 over Rational Field}
++            {0: Ideal (0) of Univariate Laurent Polynomial Ring in f1 over Rational Field,
++             1: Ideal (-1 + 2*f1 - 2*f1^2 + f1^3) of Univariate Laurent Polynomial Ring in f1 over Rational Field,
++             2: Ideal (1) of Univariate Laurent Polynomial Ring in f1 over Rational Field}
+             sage: G.characteristic_varieties(groebner=True)
+-            {0: [0], 1: [-1 + f2, 1 - f2 + f2^2], 2: []}
++            {0: [0], 1: [-1 + f1, 1 - f1 + f1^2], 2: []}
+             sage: G = FreeGroup(2)/[3 * (1, ), 2 * (2, )]
+             sage: G.characteristic_varieties(groebner=True)
+             {0: [-1 + F1, 1 + F1, 1 - F1 + F1^2, 1 + F1 + F1^2], 1: [1 - F1 + F1^2],  2: []}
+diff --git a/src/sage/groups/libgap_wrapper.pyx b/src/sage/groups/libgap_wrapper.pyx
+index 0cf0e8bfb31..ddba766e94d 100644
+--- a/src/sage/groups/libgap_wrapper.pyx
++++ b/src/sage/groups/libgap_wrapper.pyx
+@@ -602,14 +602,11 @@ cdef class ElementLibGAP(MultiplicativeGroupElement):
+             sage: from sage.groups.libgap_group import GroupLibGAP
+             sage: G = GroupLibGAP(libgap.FreeGroup('a', 'b'))
+             sage: g = G.gen(0) * G.gen(1)
+-            sage: g._latex_()
+-            "ab%\n"
+-        """
+-        try:
+-            return self.gap().LaTeX()
+-        except ValueError:
+-            from sage.misc.latex import latex
+-            return latex(self._repr_())
++            sage: latex(g)
++            \text{\texttt{a*b}}
++        """
++        from sage.misc.latex import latex
++        return latex(self._repr_())
+ 
+     cpdef _mul_(left, right):
+         """
+diff --git a/src/sage/groups/perm_gps/permgroup_named.py b/src/sage/groups/perm_gps/permgroup_named.py
+index c000d2cf105..765626e1752 100644
+--- a/src/sage/groups/perm_gps/permgroup_named.py
++++ b/src/sage/groups/perm_gps/permgroup_named.py
+@@ -3451,16 +3451,14 @@ class SmallPermutationGroup(PermutationGroup_generic):
+         sage: G = SmallPermutationGroup(12,4); G
+         Group of order 12 and GAP Id 4 as a permutation group
+         sage: G.gens()
+-        ((1,2)(3,5)(4,10)(6,8)(7,12)(9,11),
+-         (1,3)(2,5)(4,7)(6,9)(8,11)(10,12),
+-         (1,4,8)(2,6,10)(3,7,11)(5,9,12))
++        ((4,5), (1,2), (3,4,5))
+         sage: G.character_table()                                                       # needs sage.rings.number_field
+         [ 1  1  1  1  1  1]
+-        [ 1 -1 -1  1  1 -1]
++        [ 1 -1  1 -1  1 -1]
+         [ 1 -1  1  1 -1  1]
+-        [ 1  1 -1  1 -1 -1]
+-        [ 2  0 -2 -1  0  1]
+-        [ 2  0  2 -1  0 -1]
++        [ 1  1  1 -1 -1 -1]
++        [ 2  0 -1 -2  0  1]
++        [ 2  0 -1  2  0 -1]
+         sage: def numgps(n): return ZZ(libgap.NumberSmallGroups(n))
+         sage: all(SmallPermutationGroup(n,k).id() == [n,k]
+         ....:     for n in [1..64] for k in [1..numgps(n)])
+@@ -3469,11 +3467,11 @@ class SmallPermutationGroup(PermutationGroup_generic):
+         sage: H.is_abelian()
+         False
+         sage: [H.centralizer(g) for g in H.conjugacy_classes_representatives()]
+-        [Subgroup generated by [(1,2)(3,6)(4,5), (1,3,5)(2,4,6)] of
++        [Subgroup generated by [(1,3), (2,3)] of
+           (Group of order 6 and GAP Id 1 as a permutation group),
+-         Subgroup generated by [(1,2)(3,6)(4,5)] of
++         Subgroup generated by [(2,3)] of
+           (Group of order 6 and GAP Id 1 as a permutation group),
+-         Subgroup generated by [(1,3,5)(2,4,6), (1,5,3)(2,6,4)] of
++         Subgroup generated by [(1,2,3)] of
+           (Group of order 6 and GAP Id 1 as a permutation group)]
+     """
+ 
+diff --git a/src/sage/interfaces/gap.py b/src/sage/interfaces/gap.py
+index ee5861ac785..2e49e4c106f 100644
+--- a/src/sage/interfaces/gap.py
++++ b/src/sage/interfaces/gap.py
+@@ -1562,16 +1562,10 @@ def _latex_(self):
+ 
+             sage: s = gap("[[1,2], [3/4, 5/6]]")
+             sage: latex(s)
+-            \left(\begin{array}{rr} 1&2\\ 3/4&\frac{5}{6}\\ \end{array}\right)
++            \left[\left[1, 2\right], \left[\frac{3}{4}, \frac{5}{6}\right]\right]
+         """
+-        P = self._check_valid()
+-        try:
+-            s = P.eval('LaTeXObj(%s)' % self.name())
+-            s = s.replace('\\\\', '\\').replace('"', '')
+-            s = s.replace('%\\n', ' ')
+-            return s
+-        except RuntimeError:
+-            return str(self)
++        from sage.misc.latex import latex
++        return latex(self._sage_())
+ 
+     @cached_method
+     def _tab_completion(self):
diff --git a/srcpkgs/sagemath/patches/37885-cython_warnings.patch b/srcpkgs/sagemath/patches/37885-cython_warnings.patch
new file mode 100644
index 00000000000000..fa4b648cfc1577
--- /dev/null
+++ b/srcpkgs/sagemath/patches/37885-cython_warnings.patch
@@ -0,0 +1,12 @@
+diff --git a/src/sage_setup/command/sage_build_cython.py b/src/sage_setup/command/sage_build_cython.py
+index f4b1357c543..3435c196d49 100644
+--- a/src/sage_setup/command/sage_build_cython.py
++++ b/src/sage_setup/command/sage_build_cython.py
+@@ -226,6 +226,7 @@ def run(self):
+                 compiler_directives=self.cython_directives,
+                 compile_time_env=self.compile_time_env,
+                 create_extension=self.create_extension,
++                show_all_warnings=True,
+                 # Debugging
+                 gdb_debug=self.debug,
+                 output_dir=os.path.join(self.build_lib, "sage"),
diff --git a/srcpkgs/sagemath/patches/get_patches b/srcpkgs/sagemath/patches/get_patches
index 77afead3fc913d..94e740721103c5 100755
--- a/srcpkgs/sagemath/patches/get_patches
+++ b/srcpkgs/sagemath/patches/get_patches
@@ -20,5 +20,8 @@ get_pr() {
 # run from patches dir
 cd $(dirname "$0")
 
-# needs review
+# positive review
 get_pr 37492 "singular 4.3.2p16"
+get_pr 37882 "eclib 20240408"
+get_pr 37884 "gap 4.13"
+get_pr 37885 "cython warnings"
diff --git a/srcpkgs/sagemath/template b/srcpkgs/sagemath/template
index 14e770357cea41..14b3fecd4097fa 100644
--- a/srcpkgs/sagemath/template
+++ b/srcpkgs/sagemath/template
@@ -1,6 +1,6 @@
 # Template file for 'sagemath'
 pkgname=sagemath
-version=10.4.beta3
+version=10.4.beta4
 revision=1
 build_wrksrc=pkgs/sagemath-standard
 build_style=python3-pep517
@@ -32,7 +32,7 @@ license="GPL-2.0-or-later"
 homepage="https://www.sagemath.org/"
 changelog="https://github.com/sagemath/sage/releases"
 distfiles="https://github.com/sagemath/sage/archive/refs/tags/$version.tar.gz"
-checksum=6806cae9677cec1d06467a4d4753c9eee4900719070ff63d4607056aef6d86f9
+checksum=90bac0c74959ba9efb139bd510886fbe726f885a8783aa5a7a577035479db983
 nocross="due to ntl (eclib, singular), fflas-ffpack, givaro, linbox, sympow, maxima"
 
 # parallel build
@@ -41,9 +41,6 @@ export SAGE_NUM_THREADS="$XBPS_MAKEJOBS"
 post_patch() {
 	# git tree needs bootstrapping
 	$wrksrc/bootstrap sagelib
-
-	# we need sage_setup here
-	ln -s ../../src/sage_setup .
 }
 
 post_install() {

  parent reply	other threads:[~2024-04-27 19:12 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-27 16:10 [PR PATCH] [BETA] sagemath: update to 10.4.beta0 tornaria
2024-03-29 19:11 ` [PR PATCH] [Updated] " tornaria
2024-04-02 21:26 ` tornaria
2024-04-27 19:12 ` tornaria [this message]
2024-04-29  0:27 ` [PR PATCH] [Updated] [BETA] sagemath: update to 10.4.beta1 tornaria
2024-05-03  3:30 ` [PR PATCH] [Updated] [BETA] sagemath: update to 10.4.b4 tornaria
2024-05-03  3:30 ` tornaria
2024-05-13  1:00 ` [PR PATCH] [Updated] [BETA] sagemath: update to 10.4.beta5 tornaria
2024-05-13  1:05 ` [BETA] sagemath: update to 10.4.beta6 tornaria
2024-05-13 22:57 ` [PR PATCH] [Updated] " tornaria

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=20240427191209.8E0EB24E26@inbox.vuxu.org \
    --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).