From 5c5b0290cf87c7480da1b7bac07ab47ca7e79769 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Fri, 29 Mar 2024 16:03:47 -0300 Subject: [PATCH 01/10] 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 -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 -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 -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 -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 ---- - .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 " 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 caa4e308736f83865f88d9dfc93082a5398185d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Wed, 27 Mar 2024 12:56:01 -0300 Subject: [PATCH 02/10] 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 16e6742c8ebfca22f55422f2998273c44361324a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Mon, 8 Apr 2024 20:07:26 -0300 Subject: [PATCH 03/10] 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 +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 93702f231c659696e7f6afa45c1d751dc2e2e619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Fri, 12 Apr 2024 20:32:48 -0300 Subject: [PATCH 04/10] 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 -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()) + + ++ 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(to_convert.data, self._singular_ring, self._sage_ring.base_ring()) elif rtyp == INTVEC_CMD: return si2sa_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 50252fb04660ec36625e483ef7d7cc6433ecbdc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Tue, 9 Apr 2024 19:51:09 -0300 Subject: [PATCH 05/10] 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((0.25 * (l - 3)) * (NTL_BITS_PER_LONG * LOG2)); ++ x = 1 + static_cast((0.25 * (l - 3)) * (64 * LOG2)); + n = 1 + static_cast(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 96bd838d1a17437a3dfbd20ce2c0f3d4a35260c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Mon, 22 Apr 2024 16:57:26 -0300 Subject: [PATCH 06/10] 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((0.25 * (l - 3)) * (NTL_BITS_PER_LONG * LOG2)); -+ x = 1 + static_cast((0.25 * (l - 3)) * (64 * LOG2)); - n = 1 + static_cast(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 " 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 552b196b654ab56f4409ec34fd54a678225501c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Fri, 15 Mar 2024 12:59:54 -0300 Subject: [PATCH 07/10] 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 8872faa597af73..75a4eac799f987 100644 --- a/common/shlibs +++ b/common/shlibs @@ -3988,7 +3988,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 ea6934164623009ae238fa6102871b21831086c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Sat, 27 Apr 2024 13:14:41 -0300 Subject: [PATCH 08/10] 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(to_convert.data, self._singular_ring, self._sage_ring.base_ring()) elif rtyp == INTVEC_CMD: return si2sa_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() { From 1212f2a56562aa23476d9a19471581e086608ca6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Sun, 28 Apr 2024 19:02:52 -0300 Subject: [PATCH 09/10] sagemath: update to 10.4b4 (switch to pypi sdist). --- .../sagemath/patches/37645-fix_doctest.patch | 215 ++++++++++++++++++ .../patches/fix-build-system-requires.patch | 13 ++ srcpkgs/sagemath/patches/get_patches | 1 + srcpkgs/sagemath/template | 18 +- 4 files changed, 236 insertions(+), 11 deletions(-) create mode 100644 srcpkgs/sagemath/patches/37645-fix_doctest.patch create mode 100644 srcpkgs/sagemath/patches/fix-build-system-requires.patch diff --git a/srcpkgs/sagemath/patches/37645-fix_doctest.patch b/srcpkgs/sagemath/patches/37645-fix_doctest.patch new file mode 100644 index 00000000000000..7a0b70e7cb7df1 --- /dev/null +++ b/srcpkgs/sagemath/patches/37645-fix_doctest.patch @@ -0,0 +1,215 @@ +diff --git a/src/sage/doctest/test.py b/src/sage/doctest/test.py +index cb2cecc0b8b..735fa47ec42 100644 +--- a/src/sage/doctest/test.py ++++ b/src/sage/doctest/test.py +@@ -54,7 +54,7 @@ + Doctesting 1 file. + sage -t --warn-long 0.0 --random-seed=0 tolerance.rst + ********************************************************************** +- File "tolerance.rst", line ..., in sage.doctest.tests.tolerance ++ File "tolerance.rst", line ..., in ...tolerance + Failed example: + print(":-(") # abs tol 0.1 + Expected: +@@ -62,7 +62,7 @@ + Got: + :-( + ********************************************************************** +- File "tolerance.rst", line ..., in sage.doctest.tests.tolerance ++ File "tolerance.rst", line ..., in ...tolerance + Failed example: + print("1.0 2.0 3.0") # abs tol 0.1 + Expected: +@@ -70,7 +70,7 @@ + Got: + 1.0 2.0 3.0 + ********************************************************************** +- File "tolerance.rst", line ..., in sage.doctest.tests.tolerance ++ File "tolerance.rst", line ..., in ...tolerance + Failed example: + print("Hello") # abs tol 0.1 + Expected: +@@ -78,7 +78,7 @@ + Got: + Hello + ********************************************************************** +- File "tolerance.rst", line ..., in sage.doctest.tests.tolerance ++ File "tolerance.rst", line ..., in ...tolerance + Failed example: + print("1.0") # abs tol 0.1 + Expected: +@@ -86,7 +86,7 @@ + Got: + 1.0 + ********************************************************************** +- File "tolerance.rst", line ..., in sage.doctest.tests.tolerance ++ File "tolerance.rst", line ..., in ...tolerance + Failed example: + print("Hello 1.1") # abs tol 0.1 + Expected: +@@ -94,7 +94,7 @@ + Got: + Hello 1.1 + ********************************************************************** +- File "tolerance.rst", line ..., in sage.doctest.tests.tolerance ++ File "tolerance.rst", line ..., in ...tolerance + Failed example: + print("Hello 1.0") # rel tol 1e-6 + Expected: +@@ -104,7 +104,7 @@ + Tolerance exceeded: + 0.999999 vs 1.0, tolerance 2e-6 > 1e-6 + ********************************************************************** +- File "tolerance.rst", line ..., in sage.doctest.tests.tolerance ++ File "tolerance.rst", line ..., in ...tolerance + Failed example: + print("Hello 1.0") # rel tol 1e-6 + Expected: +@@ -124,7 +124,7 @@ + Doctesting 1 file. + sage -t --warn-long 0.0 --random-seed=0 initial.rst + ********************************************************************** +- File "initial.rst", line 4, in sage.doctest.tests.initial ++ File "initial.rst", line 4, in ...initial + Failed example: + a = binomiak(10,5) # random to test that we still get the exception + Exception raised: +@@ -132,7 +132,7 @@ + ... + NameError: name 'binomiak' is not defined + ********************************************************************** +- File "initial.rst", line 14, in sage.doctest.tests.initial ++ File "initial.rst", line 14, in ...initial + Failed example: + binomial(10,5) + Expected: +@@ -155,7 +155,7 @@ + Doctesting 1 file. + sage -t --warn-long 0.0 --random-seed=0 initial.rst + ********************************************************************** +- File "initial.rst", line 4, in sage.doctest.tests.initial ++ File "initial.rst", line 4, in ...initial + Failed example: + a = binomiak(10,5) # random to test that we still get the exception + Exception raised: +@@ -200,7 +200,7 @@ + Doctesting 1 file. + sage -t --warn-long 0.0 --random-seed=0 keyboardinterrupt.rst + ********************************************************************** +- File "keyboardinterrupt.rst", line 11, in sage.doctest.tests.keyboardinterrupt ++ File "keyboardinterrupt.rst", line 11, in ...keyboardinterrupt + Failed example: + raise KeyboardInterrupt + Exception raised: +@@ -302,7 +302,7 @@ + Doctesting 1 file. + sage -t --warn-long 0.0 --random-seed=0 fail_and_die.rst + ********************************************************************** +- File "fail_and_die.rst", line 5, in sage.doctest.tests.fail_and_die ++ File "fail_and_die.rst", line 5, in ...fail_and_die + Failed example: + this_gives_a_NameError + Exception raised: +@@ -327,7 +327,7 @@ + Doctesting 1 file. + sage -t --warn-long 0.0 --random-seed=0 sig_on.rst + ********************************************************************** +- File "sig_on.rst", line 6, in sage.doctest.tests.sig_on ++ File "sig_on.rst", line 6, in ...sig_on + Failed example: + sig_on_count() # check sig_on/off pairings (virtual doctest) + Expected: +@@ -336,7 +336,7 @@ + 1 + ********************************************************************** + 1 item had failures: +- 1 of 5 in sage.doctest.tests.sig_on ++ 1 of 5 in ...sig_on + [3 tests, 1 failure, ...] + ---------------------------------------------------------------------- + sage -t --warn-long 0.0 --random-seed=0 sig_on.rst # 1 doctest failed +@@ -356,7 +356,7 @@ + Doctesting 1 file. + sage -t --warn-long 0.0 --random-seed=0 simple_failure.rst + ********************************************************************** +- File "simple_failure.rst", line 7, in sage.doctest.tests.simple_failure ++ File "simple_failure.rst", line 7, in ...simple_failure + Failed example: + a * b + Expected: +@@ -365,7 +365,7 @@ + 15 + ********************************************************************** + 1 item had failures: +- 1 of 5 in sage.doctest.tests.simple_failure ++ 1 of 5 in ...simple_failure + [4 tests, 1 failure, ...] + ---------------------------------------------------------------------- + sage -t --warn-long 0.0 --random-seed=0 simple_failure.rst # 1 doctest failed +@@ -381,7 +381,7 @@ + Doctesting 1 file. + sage -t --warn-long 0.0 --random-seed=0 simple_failure.rst + ********************************************************************** +- File "simple_failure.rst", line 7, in sage.doctest.tests.simple_failure ++ File "simple_failure.rst", line 7, in ...simple_failure + Failed example: + a * b + Expected: +@@ -390,7 +390,7 @@ + 15 + ********************************************************************** + 1 item had failures: +- 1 of 5 in sage.doctest.tests.simple_failure ++ 1 of 5 in ...simple_failure + [4 tests, 1 failure, ...] + ---------------------------------------------------------------------- + sage -t --warn-long 0.0 --random-seed=0 simple_failure.rst # 1 doctest failed +@@ -406,7 +406,7 @@ + Doctesting 1 file. + sage -t --warn-long 0.0 --random-seed=0 simple_failure.rst + ********************************************************************** +- File "simple_failure.rst", line 7, in sage.doctest.tests.simple_failure ++ File "simple_failure.rst", line 7, in ...simple_failure + Failed example: + a * b + Expected: +@@ -424,7 +424,7 @@ + Returning to doctests... + ********************************************************************** + 1 item had failures: +- 1 of 5 in sage.doctest.tests.simple_failure ++ 1 of 5 in ...simple_failure + [4 tests, 1 failure, ...] + ---------------------------------------------------------------------- + sage -t --warn-long 0.0 --random-seed=0 simple_failure.rst # 1 doctest failed +@@ -553,7 +553,7 @@ + Doctesting 1 file. + sage -t --warn-long 0.0 --random-seed=0 random_seed.rst + ********************************************************************** +- File "random_seed.rst", line 3, in sage.doctest.tests.random_seed ++ File "random_seed.rst", line 3, in ...random_seed + Failed example: + randint(5, 10) + Expected: +@@ -562,7 +562,7 @@ + 5 + ********************************************************************** + 1 item had failures: +- 1 of 2 in sage.doctest.tests.random_seed ++ 1 of 2 in ...random_seed + [1 test, 1 failure, ...s] + ---------------------------------------------------------------------- + sage -t --warn-long 0.0 --random-seed=0 random_seed.rst # 1 doctest failed +diff --git a/src/sage/misc/package_dir.py b/src/sage/misc/package_dir.py +index 16c78d18462..06cb64c0dee 100644 +--- a/src/sage/misc/package_dir.py ++++ b/src/sage/misc/package_dir.py +@@ -113,7 +113,7 @@ def read_distribution(src_file): + + sage: from sage.env import SAGE_SRC + sage: from sage.misc.package_dir import read_distribution +- sage: read_distribution(os.path.join(SAGE_SRC, 'sage', 'graphs', 'graph_decompositions', 'tdlib.pyx')) ++ sage: read_distribution(os.path.join(SAGE_SRC, 'sage', 'graphs', 'graph_decompositions', 'tdlib.pyx')) # needs tdlib + 'sagemath-tdlib' + sage: read_distribution(os.path.join(SAGE_SRC, 'sage', 'graphs', 'graph_decompositions', 'modular_decomposition.py')) + '' diff --git a/srcpkgs/sagemath/patches/fix-build-system-requires.patch b/srcpkgs/sagemath/patches/fix-build-system-requires.patch new file mode 100644 index 00000000000000..8befd910c58b58 --- /dev/null +++ b/srcpkgs/sagemath/patches/fix-build-system-requires.patch @@ -0,0 +1,13 @@ +--- a/sagemath-10.4b4/pyproject.toml 2024-04-27 13:00:08.000000000 -0300 ++++ b/sagemath-10.4b4/pyproject.toml 2024-04-28 19:33:44.466955985 -0300 +@@ -8,10 +8,8 @@ + 'cython >=3.0, != 3.0.3, <4.0', + 'gmpy2 ~=2.1.b999', + 'jinja2 >=3.0', +-'jupyter_core >=4.6.3', + 'numpy >=1.19', + 'pkgconfig', +-'pplpy >=0.8.6', + 'memory_allocator', + ] + build-backend = "setuptools.build_meta" diff --git a/srcpkgs/sagemath/patches/get_patches b/srcpkgs/sagemath/patches/get_patches index 94e740721103c5..ff02d0cc3ed0df 100755 --- a/srcpkgs/sagemath/patches/get_patches +++ b/srcpkgs/sagemath/patches/get_patches @@ -22,6 +22,7 @@ cd $(dirname "$0") # positive review get_pr 37492 "singular 4.3.2p16" +get_pr 37645 "fix doctest" 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 14b3fecd4097fa..7ef3bf35a3bc2a 100644 --- a/srcpkgs/sagemath/template +++ b/srcpkgs/sagemath/template @@ -1,11 +1,9 @@ # Template file for 'sagemath' pkgname=sagemath -version=10.4.beta4 +version=10.4b4 revision=1 -build_wrksrc=pkgs/sagemath-standard build_style=python3-pep517 -make_build_args="--skip-dependency-check" -hostmakedepends="m4 pkg-config python3-Cython python3-Jinja2 +hostmakedepends="pkg-config python3-Cython python3-Jinja2 python3-pkgconfig python3-setuptools python3-wheel" makedepends="boost-devel brial-devel cliquer-devel ecl eclib-devel ecm-devel fflas-ffpack flintlib-devel gap-devel gd-devel giac-devel glpk-devel @@ -31,18 +29,16 @@ maintainer="Gonzalo Tornaría " 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=90bac0c74959ba9efb139bd510886fbe726f885a8783aa5a7a577035479db983 +distfiles="${PYPI_SITE}/s/sagemath-standard/sagemath-standard-${version}.tar.gz" +checksum=50fd848b39e015d896b126082b902e6558076fc20cdb7b393f090c8828137ecd nocross="due to ntl (eclib, singular), fflas-ffpack, givaro, linbox, sympow, maxima" +# main repo `.../src/sage/` is `.../sage/` here +patch_args=-Np2 + # parallel build export SAGE_NUM_THREADS="$XBPS_MAKEJOBS" -post_patch() { - # git tree needs bootstrapping - $wrksrc/bootstrap sagelib -} - post_install() { # move scripts to /usr/libexec vmkdir usr/libexec From c67a5b8b6eb83b839976d9ff5101a7e6dbba16c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Thu, 2 May 2024 21:03:15 -0300 Subject: [PATCH 10/10] sagemath: update to 10.4b5. --- .../patches/37492-singular_4.3.2p16.patch | 325 ------------------ .../patches/37882-eclib_20240408.patch | 116 ------- srcpkgs/sagemath/patches/37884-gap_4.13.patch | 48 --- .../patches/37894-fix_build_deps.patch | 17 + .../patches/fix-build-system-requires.patch | 13 - srcpkgs/sagemath/patches/get_patches | 14 +- srcpkgs/sagemath/template | 6 +- 7 files changed, 30 insertions(+), 509 deletions(-) delete mode 100644 srcpkgs/sagemath/patches/37492-singular_4.3.2p16.patch delete mode 100644 srcpkgs/sagemath/patches/37882-eclib_20240408.patch create mode 100644 srcpkgs/sagemath/patches/37894-fix_build_deps.patch delete mode 100644 srcpkgs/sagemath/patches/fix-build-system-requires.patch diff --git a/srcpkgs/sagemath/patches/37492-singular_4.3.2p16.patch b/srcpkgs/sagemath/patches/37492-singular_4.3.2p16.patch deleted file mode 100644 index 8331dabaa310af..00000000000000 --- a/srcpkgs/sagemath/patches/37492-singular_4.3.2p16.patch +++ /dev/null @@ -1,325 +0,0 @@ -diff --git a/src/sage/interfaces/singular.py b/src/sage/interfaces/singular.py -index dedbebab99c..59cd9a8afcd 100644 ---- a/src/sage/interfaces/singular.py -+++ b/src/sage/interfaces/singular.py -@@ -1211,14 +1211,14 @@ def current_ring(self): - polynomial ring, over a field, global ordering - // coefficients: ZZ/127 - // number of vars : 3 -- // block 1 : ordering rp -+ // block 1 : ordering ip - // : names x y z - // block 2 : ordering C - sage: singular.current_ring() - polynomial ring, over a field, global ordering - // coefficients: ZZ/127 - // number of vars : 3 -- // block 1 : ordering rp -+ // block 1 : ordering ip - // : names x y z - // block 2 : ordering C - """ -@@ -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()) - - -+ 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]) -+ elif typ == 'bigintvec': -+ from sage.modules.free_module_element import vector -+ return vector([sage.rings.rational.Rational(str(e)) for e in self]) - elif typ == 'intmat': - 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..3affdb34e11 100644 ---- a/src/sage/libs/singular/decl.pxd -+++ b/src/sage/libs/singular/decl.pxd -@@ -48,6 +48,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 -@@ -243,7 +250,7 @@ cdef extern from "singular/Singular/libsingular.h": - ringorder_s - ringorder_lp - ringorder_dp -- ringorder_rp -+ ringorder_ip - ringorder_Dp - ringorder_wp - ringorder_Wp -@@ -291,6 +298,10 @@ cdef extern from "singular/Singular/libsingular.h": - int row - int col - -+ cdef cppclass bigintmat: -+ int (*length)() -+ number* (*get)(int i) -+ - # omalloc bins - - ctypedef struct omBin "omBin_s" -@@ -921,6 +932,7 @@ cdef extern from "singular/Singular/libsingular.h": - cdef int MATRIX_CMD - cdef int LIST_CMD - cdef int INTVEC_CMD -+ cdef int BIGINTVEC_CMD - cdef int NONE - 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 4a5ab6d78f6..5c333e8d7e6 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 - from sage.libs.singular.decl cimport * - from sage.libs.singular.option import opt_ctx - from sage.libs.singular.polynomial cimport singular_vector_maximal_component --from sage.libs.singular.singular cimport sa2si, si2sa, si2sa_intvec -+from sage.libs.singular.singular cimport sa2si, si2sa, si2sa_intvec, si2sa_bigintvec - from sage.libs.singular.singular import error_messages - - from sage.interfaces.singular import get_docstring -@@ -954,6 +954,8 @@ cdef class Converter(SageObject): - return si2sa(to_convert.data, self._singular_ring, self._sage_ring.base_ring()) - elif rtyp == INTVEC_CMD: - return si2sa_intvec( to_convert.data) -+ elif rtyp == BIGINTVEC_CMD: -+ return si2sa_bigintvec( to_convert.data) - 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 -@@ -1048,6 +1050,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): - """ -@@ -1125,8 +1138,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: -@@ -1231,7 +1245,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 is CMD_1) - sage: size('foobar', ring=P) - 6 - -@@ -1634,17 +1648,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 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 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 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 0efff45904d..b3295206e5b 100644 ---- a/src/sage/libs/singular/ring.pyx -+++ b/src/sage/libs/singular/ring.pyx -@@ -16,7 +16,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 -@@ -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 --from sage.libs.singular.decl cimport ringorder_dp, ringorder_Dp, ringorder_lp, ringorder_rp, ringorder_ds, ringorder_Ds, ringorder_ls, ringorder_M, ringorder_c, ringorder_C, ringorder_wp, ringorder_Wp, ringorder_ws, ringorder_Ws, ringorder_a, rRingOrder_t -+from sage.libs.singular.decl cimport ringorder_dp, ringorder_Dp, ringorder_lp, ringorder_ip, ringorder_ds, ringorder_Ds, ringorder_ls, ringorder_M, ringorder_c, ringorder_C, ringorder_wp, ringorder_Wp, ringorder_ws, ringorder_Ws, ringorder_a, rRingOrder_t - 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 = { - "dp": ringorder_dp, - "Dp": ringorder_Dp, - "lp": ringorder_lp, -- "rp": ringorder_rp, -+ "ip": ringorder_ip, - "ds": ringorder_ds, - "Ds": ringorder_Ds, - "ls": ringorder_ls, -@@ -71,6 +71,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 05f32b68079..ca31d02456c 100644 ---- a/src/sage/libs/singular/singular.pxd -+++ b/src/sage/libs/singular/singular.pxd -@@ -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 -@@ -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) -+cdef object si2sa_bigintvec(bigintmat *v) - - # 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 e256949298e..014effa9e3f 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): - l.append(v.get(r)) - return tuple(l) - -+cdef object si2sa_bigintvec(bigintmat *v): -+ r""" -+ create a sage tuple from a singular vector of big integers -+ -+ INPUT: -+ -+ - ``v`` -- a (pointer to) singular bigintmat -+ -+ OUTPUT: -+ -+ a sage tuple -+ """ -+ cdef int r -+ cdef list l = list() -+ for r in range(v.length()): -+ n = v.get(r) -+ l.append(si2sa_QQ(n, &n, currRing)) -+ return tuple(l) -+ - # ============== - # Initialisation - # ============== -diff --git a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx -index 40fbc8c69aa..d1f17f7f899 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): - polynomial ring, over a field, global ordering - // coefficients: ZZ/2[a]/(a^8+a^4+a^3+a^2+1) - // number of vars : 10 -- // block 1 : ordering rp -+ // block 1 : ordering ip - // : 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): - polynomial ring, over a field, global ordering - // coefficients: ZZ/127 - // number of vars : 2 -- // block 1 : ordering rp -+ // block 1 : ordering ip - // : names x0 x1 - // block 2 : ordering C - -@@ -1303,7 +1303,7 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): - polynomial ring, over a field, global ordering - // coefficients: QQ - // number of vars : 2 -- // block 1 : ordering rp -+ // block 1 : ordering ip - // : names x0 x1 - // block 2 : ordering C - -diff --git a/src/sage/rings/polynomial/term_order.py b/src/sage/rings/polynomial/term_order.py -index 4a3e78fe879..ce2faa2e41b 100644 ---- a/src/sage/rings/polynomial/term_order.py -+++ b/src/sage/rings/polynomial/term_order.py -@@ -388,7 +388,7 @@ - - singular_name_mapping = { - 'lex' : 'lp', -- 'invlex' : 'rp', -+ 'invlex' : 'ip', - 'degrevlex' : 'dp', - 'deglex' : 'Dp', - 'neglex' : 'ls', diff --git a/srcpkgs/sagemath/patches/37882-eclib_20240408.patch b/srcpkgs/sagemath/patches/37882-eclib_20240408.patch deleted file mode 100644 index 819ee8e63ac476..00000000000000 --- a/srcpkgs/sagemath/patches/37882-eclib_20240408.patch +++ /dev/null @@ -1,116 +0,0 @@ -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 index 8cc149ed7ef481..dfa924c8d3b6a1 100644 --- a/srcpkgs/sagemath/patches/37884-gap_4.13.patch +++ b/srcpkgs/sagemath/patches/37884-gap_4.13.patch @@ -134,30 +134,6 @@ index a6ef6bb7395..b5a4b3a1edc 100644 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 @@ -199,27 +175,3 @@ index c000d2cf105..765626e1752 100644 (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/37894-fix_build_deps.patch b/srcpkgs/sagemath/patches/37894-fix_build_deps.patch new file mode 100644 index 00000000000000..2ebdec289ebc57 --- /dev/null +++ b/srcpkgs/sagemath/patches/37894-fix_build_deps.patch @@ -0,0 +1,17 @@ +diff --git a/src/pyproject.toml b/src/pyproject.toml +index 781af00a8d7..f70304534d9 100644 +--- a/src/pyproject.toml ++++ b/src/pyproject.toml +@@ -11,12 +11,9 @@ requires = [ + # Exclude 3.0.3 because of https://github.com/cython/cython/issues/5748 + 'cython >=3.0, != 3.0.3, <4.0', + 'gmpy2 ~=2.1.b999', +- 'jupyter_core >=4.6.3', + 'memory_allocator', + 'numpy >=1.19', + 'pkgconfig', +- # pplpy 0.8.4 and earlier do not declare dependencies correctly (see https://github.com/sagemath/sage/issues/30922) +- 'pplpy >=0.8.6', + ] + build-backend = "setuptools.build_meta" + diff --git a/srcpkgs/sagemath/patches/fix-build-system-requires.patch b/srcpkgs/sagemath/patches/fix-build-system-requires.patch deleted file mode 100644 index 8befd910c58b58..00000000000000 --- a/srcpkgs/sagemath/patches/fix-build-system-requires.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/sagemath-10.4b4/pyproject.toml 2024-04-27 13:00:08.000000000 -0300 -+++ b/sagemath-10.4b4/pyproject.toml 2024-04-28 19:33:44.466955985 -0300 -@@ -8,10 +8,8 @@ - 'cython >=3.0, != 3.0.3, <4.0', - 'gmpy2 ~=2.1.b999', - 'jinja2 >=3.0', --'jupyter_core >=4.6.3', - 'numpy >=1.19', - 'pkgconfig', --'pplpy >=0.8.6', - 'memory_allocator', - ] - build-backend = "setuptools.build_meta" diff --git a/srcpkgs/sagemath/patches/get_patches b/srcpkgs/sagemath/patches/get_patches index ff02d0cc3ed0df..75047dc22fac21 100755 --- a/srcpkgs/sagemath/patches/get_patches +++ b/srcpkgs/sagemath/patches/get_patches @@ -6,7 +6,7 @@ URL_BASE_PR="https://github.com/sagemath/sage/pull/" URL_BASE_COMPARE="https://github.com/sagemath/sage/compare/${version}..." case "$1" in - -n) DO=echo ;; + -n) dry=true ;; esac # get_pr [ext] @@ -14,15 +14,21 @@ get_pr() { pr=$1 desc=$(echo "$2" | sed -e 's/ /_/g') ext=${3-diff} - $DO wget "$URL_BASE_PR$pr.$ext" -O "$pr-$desc.patch" + url="$URL_BASE_PR$pr.$ext" + out="$pr-$desc.patch" + echo "curl -sL \"$url\" | filterdiff ... > \"$pr-$desc.patch\"" + if [ -z "$dry" ]; then + curl -sL "$url" | + filterdiff -p1 -x src/setup.py -x build/* | + cat > "$pr-$desc.patch" + fi } # run from patches dir cd $(dirname "$0") # positive review -get_pr 37492 "singular 4.3.2p16" get_pr 37645 "fix doctest" -get_pr 37882 "eclib 20240408" get_pr 37884 "gap 4.13" get_pr 37885 "cython warnings" +get_pr 37894 "fix build deps" diff --git a/srcpkgs/sagemath/template b/srcpkgs/sagemath/template index 7ef3bf35a3bc2a..6ccbcd91226625 100644 --- a/srcpkgs/sagemath/template +++ b/srcpkgs/sagemath/template @@ -1,6 +1,6 @@ # Template file for 'sagemath' pkgname=sagemath -version=10.4b4 +version=10.4.beta5 revision=1 build_style=python3-pep517 hostmakedepends="pkg-config python3-Cython python3-Jinja2 @@ -29,8 +29,8 @@ maintainer="Gonzalo Tornaría " license="GPL-2.0-or-later" homepage="https://www.sagemath.org/" changelog="https://github.com/sagemath/sage/releases" -distfiles="${PYPI_SITE}/s/sagemath-standard/sagemath-standard-${version}.tar.gz" -checksum=50fd848b39e015d896b126082b902e6558076fc20cdb7b393f090c8828137ecd +distfiles="${PYPI_SITE}/s/sagemath-standard/sagemath_standard-${version/.beta/b}.tar.gz" +checksum=ff397ad303a83a59668ce185968e237aca46846c1db3fa5b9263d5b257dfd389 nocross="due to ntl (eclib, singular), fflas-ffpack, givaro, linbox, sympow, maxima" # main repo `.../src/sage/` is `.../sage/` here