From a872bc6a4cc1dbc4a24fda78b9cac9b9fff1152e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Sun, 11 Aug 2024 22:53:42 -0300 Subject: [PATCH 01/11] python3-Cython: alternative fix for 6122 --- srcpkgs/python3-Cython/patches/fix-regression.patch | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/srcpkgs/python3-Cython/patches/fix-regression.patch b/srcpkgs/python3-Cython/patches/fix-regression.patch index f2e761608e373b..f5957cfa59c2f5 100644 --- a/srcpkgs/python3-Cython/patches/fix-regression.patch +++ b/srcpkgs/python3-Cython/patches/fix-regression.patch @@ -15,3 +15,11 @@ serious regression, e.g. sagemath FTBS with cython 3.0.11 warning(self.pos, "Implicit noexcept declaration is deprecated." " Function declaration should contain 'noexcept' keyword.", +@@ -3128,6 +3126,7 @@ class DefNode(FuncDefNode): + if scope is None: + scope = cfunc.scope + cfunc_type = cfunc.type ++ has_explicit_exc_clause=True + if len(self.args) != len(cfunc_type.args) or cfunc_type.has_varargs: + error(self.pos, "wrong number of arguments") + error(cfunc.pos, "previous declaration here") From be48e3a2ac455db986466ef8be8429d8e68f5e0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Mon, 5 Aug 2024 00:21:23 -0300 Subject: [PATCH 02/11] sagemath: update to 10.5.beta2. --- .../sagemath/patches/36641-sympy_1.13.patch | 22 +- .../sagemath/patches/37884-gap_4.13.1.patch | 28 +- .../sagemath/patches/38250-numpy_2.0.patch | 587 ------------------ .../sagemath/patches/38344-ecm_7.0.6.patch | 43 -- srcpkgs/sagemath/patches/get_patches | 4 +- srcpkgs/sagemath/template | 6 +- 6 files changed, 21 insertions(+), 669 deletions(-) delete mode 100644 srcpkgs/sagemath/patches/38250-numpy_2.0.patch delete mode 100644 srcpkgs/sagemath/patches/38344-ecm_7.0.6.patch diff --git a/srcpkgs/sagemath/patches/36641-sympy_1.13.patch b/srcpkgs/sagemath/patches/36641-sympy_1.13.patch index 625c582cdd41b7..01e859ad023f4d 100644 --- a/srcpkgs/sagemath/patches/36641-sympy_1.13.patch +++ b/srcpkgs/sagemath/patches/36641-sympy_1.13.patch @@ -1,8 +1,5 @@ -diff --git a/build/pkgs/sympy/requirements.txt b/build/pkgs/sympy/requirements.txt -new file mode 100644 -index 00000000000..3ef8f90b550 diff --git a/src/sage/doctest/forker.py b/src/sage/doctest/forker.py -index 7e9eab2ff2e..43365cd645e 100644 +index 823a0d14a41..de1c8531814 100644 --- a/src/sage/doctest/forker.py +++ b/src/sage/doctest/forker.py @@ -150,14 +150,15 @@ def init_sage(controller=None): @@ -28,7 +25,7 @@ index 7e9eab2ff2e..43365cd645e 100644 The displayhook sorts dictionary keys to simplify doctesting of dictionary output:: diff --git a/src/sage/functions/hypergeometric.py b/src/sage/functions/hypergeometric.py -index 010c61febe0..bbccbd20032 100644 +index ade7836b310..eb5c6665c0d 100644 --- a/src/sage/functions/hypergeometric.py +++ b/src/sage/functions/hypergeometric.py @@ -124,7 +124,7 @@ @@ -40,21 +37,8 @@ index 010c61febe0..bbccbd20032 100644 sage: hypergeometric((5, 4), (4, 4), 3)._mathematica_init_() # needs sage.symbolic 'HypergeometricPFQ[{5,4},{4,4},3]' -diff --git a/src/sage/symbolic/expression.pyx b/src/sage/symbolic/expression.pyx -index a92fe241355..f62311423be 100644 ---- a/src/sage/symbolic/expression.pyx -+++ b/src/sage/symbolic/expression.pyx -@@ -1167,7 +1167,7 @@ cdef class Expression(Expression_abc): - sage: unicode_art(SR(13 - I)) - 13 - ⅈ - sage: unicode_art(SR(1.3 - I)) -- 1.3 - ⅈ -+ 1.3 - 1.0⋅ⅈ - sage: unicode_art(cos(I)) - cosh(1) - diff --git a/src/sage/typeset/ascii_art.py b/src/sage/typeset/ascii_art.py -index 28024405d27..458fa8724a3 100644 +index 83d92af8959..e470e2bd88d 100644 --- a/src/sage/typeset/ascii_art.py +++ b/src/sage/typeset/ascii_art.py @@ -44,11 +44,12 @@ diff --git a/srcpkgs/sagemath/patches/37884-gap_4.13.1.patch b/srcpkgs/sagemath/patches/37884-gap_4.13.1.patch index 1550d47e2436c6..321e0a94487da3 100644 --- a/srcpkgs/sagemath/patches/37884-gap_4.13.1.patch +++ b/srcpkgs/sagemath/patches/37884-gap_4.13.1.patch @@ -1,21 +1,21 @@ diff --git a/src/sage/algebras/fusion_rings/fusion_double.py b/src/sage/algebras/fusion_rings/fusion_double.py -index 7ce086f70d0..954513572c3 100644 +index 71277561331..3b681d75d3b 100644 --- a/src/sage/algebras/fusion_rings/fusion_double.py +++ b/src/sage/algebras/fusion_rings/fusion_double.py @@ -133,7 +133,7 @@ class FusionDouble(CombinatorialFreeModule): sage: G = SmallPermutationGroup(16,9) - sage: F = FusionDouble(G, prefix="b",inject_variables=True) + 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 + def __classcall_private__(cls, G, prefix='s', inject_variables=False): diff --git a/src/sage/categories/simplicial_sets.py b/src/sage/categories/simplicial_sets.py -index e714a4571c4..a2b87a729d1 100644 +index aabd3cdbb4f..14bebdcd080 100644 --- a/src/sage/categories/simplicial_sets.py +++ b/src/sage/categories/simplicial_sets.py -@@ -593,9 +593,9 @@ def _canonical_twisting_operator(self): +@@ -591,9 +591,9 @@ def _canonical_twisting_operator(self): sage: X = simplicial_sets.Torus() sage: d = X._canonical_twisting_operator() sage: d @@ -27,7 +27,7 @@ index e714a4571c4..a2b87a729d1 100644 sage: Y = simplicial_sets.RealProjectiveSpace(2) sage: d2 = Y._canonical_twisting_operator() sage: d2 -@@ -677,10 +677,10 @@ def twisted_chain_complex(self, twisting_operator=None, dimensions=None, augment +@@ -674,10 +674,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) @@ -41,7 +41,7 @@ index e714a4571c4..a2b87a729d1 100644 [ -1 -1] sage: C.differential(3) [] -@@ -848,29 +848,29 @@ def twisted_homology(self, n, reduced=False): +@@ -844,29 +844,29 @@ def twisted_homology(self, n, reduced=False): sage: # needs sage.graphs sage: Y = simplicial_sets.Torus() sage: Y.twisted_homology(1) @@ -80,10 +80,10 @@ index e714a4571c4..a2b87a729d1 100644 [1 0 0 0 0] [0 1 0 0 0] diff --git a/src/sage/combinat/matrices/latin.py b/src/sage/combinat/matrices/latin.py -index 936edcc6ea4..c06a53d9afd 100644 +index e2d818e9480..84e6c4fcc9b 100644 --- a/src/sage/combinat/matrices/latin.py +++ b/src/sage/combinat/matrices/latin.py -@@ -2453,7 +2453,7 @@ def p3_group_bitrade_generators(p): +@@ -2444,7 +2444,7 @@ def p3_group_bitrade_generators(p): EXAMPLES:: sage: from sage.combinat.matrices.latin import * @@ -93,7 +93,7 @@ index 936edcc6ea4..c06a53d9afd 100644 (1,2,3)(4,7,8)(5,6,9), (1,9,2)(3,7,4)(5,8,6), diff --git a/src/sage/groups/cubic_braid.py b/src/sage/groups/cubic_braid.py -index 257b400f1c7..36423c756aa 100644 +index 61db70925e1..521289c7578 100644 --- a/src/sage/groups/cubic_braid.py +++ b/src/sage/groups/cubic_braid.py @@ -282,7 +282,7 @@ def _richcmp_(self, other, op): @@ -106,7 +106,7 @@ index 257b400f1c7..36423c756aa 100644 c1*c0^-1*c1, c0^-1*c1^-1*c0^-1, c0^-1*c1^-1, c1^-1*c0*c1^-1, c0*c1^-1*c0^-1, c0^-1*c1, c0^-1*c1*c0, c0*c1^-1, c1*c0^-1, diff --git a/src/sage/groups/finitely_presented.py b/src/sage/groups/finitely_presented.py -index 4bb52ee4efb..85f572fac6c 100644 +index 4ac2faa783b..7016d08381b 100644 --- a/src/sage/groups/finitely_presented.py +++ b/src/sage/groups/finitely_presented.py @@ -1344,8 +1344,8 @@ def abelianization_map(self): @@ -161,10 +161,10 @@ index 4bb52ee4efb..85f572fac6c 100644 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/perm_gps/permgroup_named.py b/src/sage/groups/perm_gps/permgroup_named.py -index c1f2683907b..d219e104a2c 100644 +index 5c153b93d4c..bd4afad2942 100644 --- a/src/sage/groups/perm_gps/permgroup_named.py +++ b/src/sage/groups/perm_gps/permgroup_named.py -@@ -3468,16 +3468,14 @@ class SmallPermutationGroup(PermutationGroup_generic): +@@ -3465,16 +3465,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() @@ -186,7 +186,7 @@ index c1f2683907b..d219e104a2c 100644 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)]) -@@ -3486,11 +3484,11 @@ class SmallPermutationGroup(PermutationGroup_generic): +@@ -3483,11 +3481,11 @@ class SmallPermutationGroup(PermutationGroup_generic): sage: H.is_abelian() False sage: [H.centralizer(g) for g in H.conjugacy_classes_representatives()] diff --git a/srcpkgs/sagemath/patches/38250-numpy_2.0.patch b/srcpkgs/sagemath/patches/38250-numpy_2.0.patch deleted file mode 100644 index e28fd857afcb75..00000000000000 --- a/srcpkgs/sagemath/patches/38250-numpy_2.0.patch +++ /dev/null @@ -1,587 +0,0 @@ -diff --git a/src/sage/arith/misc.py b/src/sage/arith/misc.py -index 28f81d7b798..d184c52bf19 100644 ---- a/src/sage/arith/misc.py -+++ b/src/sage/arith/misc.py -@@ -2277,7 +2277,7 @@ def power_mod(a, n, m): - - sage: from numpy import int32 # needs numpy - sage: power_mod(int32(2), int32(390), int32(391)) # needs numpy -- 285 -+ ...285... - sage: from gmpy2 import mpz - sage: power_mod(mpz(2), mpz(390), mpz(391)) - mpz(285) -diff --git a/src/sage/calculus/interpolators.pyx b/src/sage/calculus/interpolators.pyx -index 221b52369e2..bb0be7bab0c 100644 ---- a/src/sage/calculus/interpolators.pyx -+++ b/src/sage/calculus/interpolators.pyx -@@ -27,6 +27,9 @@ Development supported by NSF award No. 0702939. - import numpy as np - cimport numpy as np - -+if int(np.version.short_version[0]) > 1: -+ np.set_printoptions(legacy="1.25") -+ - from math import pi - cdef double TWOPI = 2*pi - -diff --git a/src/sage/calculus/riemann.pyx b/src/sage/calculus/riemann.pyx -index 6ec80d89aa7..c09d93c4260 100644 ---- a/src/sage/calculus/riemann.pyx -+++ b/src/sage/calculus/riemann.pyx -@@ -44,6 +44,9 @@ from sage.calculus.integration import numerical_integral - import numpy as np - cimport numpy as np - -+if int(np.version.short_version[0]) > 1: -+ np.set_printoptions(legacy="1.25") -+ - from math import pi - from math import sin - from math import cos -diff --git a/src/sage/combinat/fully_packed_loop.py b/src/sage/combinat/fully_packed_loop.py -index b198fed0c0d..b3ebd206cd2 100644 ---- a/src/sage/combinat/fully_packed_loop.py -+++ b/src/sage/combinat/fully_packed_loop.py -@@ -66,6 +66,9 @@ def _make_color_list(n, colors=None, color_map=None, randomize=False): - r""" - TESTS:: - -+ sage: import numpy as np -+ sage: if int(np.version.short_version[0]) > 1: -+ ....: np.set_printoptions(legacy="1.25") - sage: from sage.combinat.fully_packed_loop import _make_color_list - sage: _make_color_list(5) - sage: _make_color_list(5, ['blue', 'red']) -diff --git a/src/sage/env.py b/src/sage/env.py -index 722649ab3da..abb9b19f9e3 100644 ---- a/src/sage/env.py -+++ b/src/sage/env.py -@@ -296,7 +296,7 @@ def sage_include_directories(use_sources=False): - sage: import sage.env - sage: sage.env.sage_include_directories() - ['...', -- '.../numpy/core/include', -+ '.../numpy/...core/include', - '.../include/python...'] - - To check that C/C++ files are correctly found, we verify that we can -diff --git a/src/sage/functions/special.py b/src/sage/functions/special.py -index e100ba3ee23..2a03bb68f67 100644 ---- a/src/sage/functions/special.py -+++ b/src/sage/functions/special.py -@@ -217,6 +217,9 @@ class SphericalHarmonic(BuiltinFunction): - sage: spherical_harmonic(1, 1, pi/2, pi).n() # abs tol 1e-14 # needs sage.symbolic - 0.345494149471335 - sage: from scipy.special import sph_harm # NB: arguments x and y are swapped # needs scipy -+ sage: import numpy as np # needs scipy -+ sage: if int(np.version.short_version[0]) > 1: # needs scipy -+ ....: np.set_printoptions(legacy="1.25") # needs scipy - sage: sph_harm(1, 1, pi.n(), (pi/2).n()) # abs tol 1e-14 # needs scipy sage.symbolic - (0.3454941494713355-4.231083042742082e-17j) - -diff --git a/src/sage/graphs/generators/classical_geometries.py b/src/sage/graphs/generators/classical_geometries.py -index da04362eef3..957f88d2061 100644 ---- a/src/sage/graphs/generators/classical_geometries.py -+++ b/src/sage/graphs/generators/classical_geometries.py -@@ -1315,7 +1315,7 @@ def CossidentePenttilaGraph(q): - - from sage.libs.gap.libgap import libgap - adj_list = libgap.function_factory("""function(q) -- local z, e, so, G, nu, G1, G0, B, T, s, O1, O2, x; -+ local z, e, so, G, nu, G1, G0, B, T, s, O1, O2, x, sqo; - LoadPackage("grape"); - G0:=SO(3,q^2); - so:=GeneratorsOfGroup(G0); -diff --git a/src/sage/graphs/generic_graph.py b/src/sage/graphs/generic_graph.py -index 063931ae274..0bafbd00564 100644 ---- a/src/sage/graphs/generic_graph.py -+++ b/src/sage/graphs/generic_graph.py -@@ -18420,6 +18420,9 @@ def shortest_path_all_pairs(self, by_weight=False, algorithm=None, - M = self.adjacency_matrix(vertices=int_to_vertex) - - # We call the Floyd-Warshall method from SciPy -+ import numpy # to ensure numpy 2.0 compatibility -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") - from numpy import array as np_array - from scipy.sparse.csgraph import floyd_warshall - dd, pp = floyd_warshall(np_array(M), directed=self.is_directed(), -diff --git a/src/sage/graphs/graph_generators_pyx.pyx b/src/sage/graphs/graph_generators_pyx.pyx -index 033e8b22adc..04b20d3229b 100644 ---- a/src/sage/graphs/graph_generators_pyx.pyx -+++ b/src/sage/graphs/graph_generators_pyx.pyx -@@ -57,7 +57,7 @@ def RandomGNP(n, p, bint directed=False, bint loops=False, seed=None): - - sage: from numpy import mean # needs numpy - sage: abs(mean([RandomGNP(200, .2).density() for i in range(30)]) - .2) < .001 # needs numpy -- True -+ ...True... - sage: RandomGNP(150, .2, loops=True) - Traceback (most recent call last): - ... -diff --git a/src/sage/matrix/matrix1.pyx b/src/sage/matrix/matrix1.pyx -index a810418389c..c38df5412f0 100644 ---- a/src/sage/matrix/matrix1.pyx -+++ b/src/sage/matrix/matrix1.pyx -@@ -705,12 +705,15 @@ cdef class Matrix(Matrix0): - Type ``numpy.typecodes`` for a list of the possible - typecodes:: - -- sage: import numpy # needs numpy -- sage: sorted(numpy.typecodes.items()) # needs numpy -+ sage: import numpy # needs numpy -+ sage: numpy.typecodes.items() # needs numpy # random - [('All', '?bhilqpBHILQPefdgFDGSUVOMm'), ('AllFloat', 'efdgFDG'), -- ('AllInteger', 'bBhHiIlLqQpP'), ('Character', 'c'), ('Complex', 'FDG'), -- ('Datetime', 'Mm'), ('Float', 'efdg'), ('Integer', 'bhilqp'), -- ('UnsignedInteger', 'BHILQP')] -+ ... -+ -+ For instance, you can see possibilities for real floating point numbers:: -+ -+ sage: numpy.typecodes['Float'] # needs numpy -+ 'efdg' - - Alternatively, numpy automatically calls this function (via - the magic :meth:`__array__` method) to convert Sage matrices -diff --git a/src/sage/modules/free_module_element.pyx b/src/sage/modules/free_module_element.pyx -index d71d22ac1f7..b6f297a3510 100644 ---- a/src/sage/modules/free_module_element.pyx -+++ b/src/sage/modules/free_module_element.pyx -@@ -555,7 +555,11 @@ def vector(arg0, arg1=None, arg2=None, sparse=None, immutable=False): - R = None - - try: -+ import numpy - from numpy import ndarray -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") -+ - except ImportError: - pass - else: -@@ -1188,7 +1192,11 @@ cdef class FreeModuleElement(Vector): # abstract base class - over Rational Field to numpy array of type <... 'float'>: - setting an array element with a sequence. - """ -+ import numpy - from numpy import array -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") -+ - try: - return array(self, dtype=dtype) - except ValueError as e: -diff --git a/src/sage/numerical/optimize.py b/src/sage/numerical/optimize.py -index e3d94d1746e..7ae8ca4966f 100644 ---- a/src/sage/numerical/optimize.py -+++ b/src/sage/numerical/optimize.py -@@ -155,6 +155,10 @@ def find_root(f, a, b, xtol=10e-13, rtol=2.0**-50, maxiter=100, full_output=Fals - b = max(s_1, s_2) - - import scipy.optimize -+ import numpy -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") -+ - g = lambda x: float(f(x)) - brentqRes = scipy.optimize.brentq(g, a, b, - full_output=full_output, xtol=xtol, rtol=rtol, maxiter=maxiter) -@@ -288,6 +292,10 @@ def find_local_minimum(f, a, b, tol=1.48e-08, maxfun=500): - a = float(a) - b = float(b) - import scipy.optimize -+ import numpy -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") -+ - xmin, fval, iter, funcalls = scipy.optimize.fminbound(f, a, b, full_output=1, xtol=tol, maxfun=maxfun) - return fval, xmin - -@@ -376,6 +384,8 @@ def minimize(func, x0, gradient=None, hessian=None, algorithm="default", - sage: def rosen(x): # The Rosenbrock function - ....: return sum(100.0r*(x[1r:]-x[:-1r]**2.0r)**2.0r + (1r-x[:-1r])**2.0r) - sage: import numpy -+ sage: if int(numpy.version.short_version[0]) > 1: -+ ....: numpy.set_printoptions(legacy="1.25") - sage: from numpy import zeros - sage: def rosen_der(x): - ....: xm = x[1r:-1r] -@@ -393,6 +403,9 @@ def minimize(func, x0, gradient=None, hessian=None, algorithm="default", - from sage.structure.element import Expression - from sage.ext.fast_callable import fast_callable - import numpy -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") -+ - from scipy import optimize - if isinstance(func, Expression): - var_list = func.variables() -@@ -530,6 +543,8 @@ def minimize_constrained(func,cons,x0,gradient=None,algorithm='default', **args) - from sage.structure.element import Expression - from sage.ext.fast_callable import fast_callable - import numpy -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") - from scipy import optimize - function_type = type(lambda x,y: x+y) - -@@ -652,6 +667,8 @@ def find_fit(data, model, initial_guess=None, parameters=None, variables=None, s - ``lmdif`` and ``lmder`` algorithms. - """ - import numpy -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") - - if not isinstance(data, numpy.ndarray): - try: -diff --git a/src/sage/plot/arrow.py b/src/sage/plot/arrow.py -index ac1dc79d802..23e2517ca56 100644 ---- a/src/sage/plot/arrow.py -+++ b/src/sage/plot/arrow.py -@@ -53,6 +53,9 @@ def get_minmax_data(self): - - EXAMPLES:: - -+ sage: import numpy # to ensure numpy 2.0 compatibility -+ sage: if int(numpy.version.short_version[0]) > 1: -+ ....: numpy.set_printoptions(legacy="1.25") - sage: from sage.plot.arrow import CurveArrow - sage: b = CurveArrow(path=[[(0,0),(.5,.5),(1,0)],[(.5,1),(0,0)]], - ....: options={}) -diff --git a/src/sage/plot/complex_plot.pyx b/src/sage/plot/complex_plot.pyx -index f1f2671a803..4d71414e1c2 100644 ---- a/src/sage/plot/complex_plot.pyx -+++ b/src/sage/plot/complex_plot.pyx -@@ -1282,15 +1282,13 @@ def rgb_to_hls(rgb): - raise ValueError("Last dimension of input array must be 3; " - "shape {} was found.".format(rgb.shape)) - in_shape = rgb.shape -- rgb = np.array( -- rgb, copy=False, dtype=np.dtype(float), ndmin=2 -- ) -+ rgb = np.asarray(rgb, dtype=np.dtype(float)) - rgb_max = rgb.max(-1) - rgb_min = rgb.min(-1) - l = (rgb_max + rgb_min)/2.0 # lightness - - hls = np.zeros_like(rgb) -- delta = rgb.ptp(-1) -+ delta = np.ptp(rgb, -1) - s = np.zeros_like(delta) - - ipos = delta > 0 -diff --git a/src/sage/plot/graphics.py b/src/sage/plot/graphics.py -index a84d162cb56..94f5db09d83 100644 ---- a/src/sage/plot/graphics.py -+++ b/src/sage/plot/graphics.py -@@ -2754,7 +2754,7 @@ def matplotlib(self, filename=None, - sage: xmin, xmax = sub.get_xlim() - sage: ymin, ymax = sub.get_ylim() - sage: xmin > xmax, ymin > ymax -- (True, True) -+ (...True..., ...True...) - """ - if not isinstance(ticks, (list, tuple)): - ticks = (ticks, None) -diff --git a/src/sage/plot/histogram.py b/src/sage/plot/histogram.py -index fa86a44bd0a..a585cacf9cd 100644 ---- a/src/sage/plot/histogram.py -+++ b/src/sage/plot/histogram.py -@@ -92,6 +92,8 @@ def get_minmax_data(self): - {'xmax': 10.0, 'xmin': 3.0, 'ymax': 0.476190476190..., 'ymin': 0} - """ - import numpy -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") - - # Extract these options (if they are not None) and pass them to - # histogram() -diff --git a/src/sage/plot/multigraphics.py b/src/sage/plot/multigraphics.py -index b583be32317..6be448f1e04 100644 ---- a/src/sage/plot/multigraphics.py -+++ b/src/sage/plot/multigraphics.py -@@ -784,6 +784,9 @@ def _add_subplot(self, figure, index, **options): - True - sage: G.position(1) - (0.2, 0.3, 0.4, 0.1) -+ sage: import numpy # to ensure numpy 2.0 compatibility -+ sage: if int(numpy.version.short_version[0]) > 1: -+ ....: numpy.set_printoptions(legacy="1.25") - sage: ax1.get_position().bounds # tol 1.0e-13 - (0.2, 0.3, 0.4000000000000001, 0.10000000000000003) - -@@ -1295,6 +1298,9 @@ def position(self, index): - sage: g1 = plot(sin(x), (x, -pi, pi)) - sage: g2 = circle((0,1), 1.) - sage: G = graphics_array([g1, g2]) -+ sage: import numpy # to ensure numpy 2.0 compatibility -+ sage: if int(numpy.version.short_version[0]) > 1: -+ ....: numpy.set_printoptions(legacy="1.25") - sage: G.position(0) # tol 5.0e-3 - (0.025045451349937315, - 0.03415488992713045, -diff --git a/src/sage/plot/plot3d/implicit_surface.pyx b/src/sage/plot/plot3d/implicit_surface.pyx -index ce0da48a4e0..f4d5059b620 100644 ---- a/src/sage/plot/plot3d/implicit_surface.pyx -+++ b/src/sage/plot/plot3d/implicit_surface.pyx -@@ -468,6 +468,7 @@ cdef class MarchingCubesTriangles(MarchingCubes): - sage: cube_marcher.y_vertices.tolist() - [[[<1.0, 0.5, 0.0>, None]], [[None, None]]] - sage: cube_marcher.x_vertices.any() # This shouldn't affect the X vertices. -+ ... - """ - (self.y_vertices, self.y_vertices_swapped) = \ - (self.y_vertices_swapped, self.y_vertices) -@@ -574,6 +575,7 @@ cdef class MarchingCubesTriangles(MarchingCubes): - sage: cube_marcher.x_vertices.tolist() - [[None, None], [None, <1.5, 1.0, 1.0>]] - sage: cube_marcher.y_vertices.any() or cube_marcher.z_vertices.any() # This shouldn't affect the Y or Z vertices. -+ ... - """ - cdef bint has_prev = (_prev is not None) - cdef bint has_next = (_next is not None) -diff --git a/src/sage/plot/scatter_plot.py b/src/sage/plot/scatter_plot.py -index 4ad418f040b..781854d372c 100644 ---- a/src/sage/plot/scatter_plot.py -+++ b/src/sage/plot/scatter_plot.py -@@ -63,9 +63,9 @@ def get_minmax_data(self): - sage: s = scatter_plot([[0,1],[2,4],[3.2,6]]) - sage: d = s.get_minmax_data() - sage: d['xmin'] -- 0.0 -+ ...0.0... - sage: d['ymin'] -- 1.0 -+ ...1.0... - """ - return {'xmin': self.xdata.min(), - 'xmax': self.xdata.max(), -diff --git a/src/sage/plot/streamline_plot.py b/src/sage/plot/streamline_plot.py -index 663d3aee70b..d2cb11088c7 100644 ---- a/src/sage/plot/streamline_plot.py -+++ b/src/sage/plot/streamline_plot.py -@@ -71,6 +71,9 @@ def get_minmax_data(self): - EXAMPLES:: - - sage: x, y = var('x y') -+ sage: import numpy # to ensure numpy 2.0 compatibility -+ sage: if int(numpy.version.short_version[0]) > 1: -+ ....: numpy.set_printoptions(legacy="1.25") - sage: d = streamline_plot((.01*x, x+y), (x,10,20), (y,10,20))[0].get_minmax_data() - sage: d['xmin'] - 10.0 -diff --git a/src/sage/probability/probability_distribution.pyx b/src/sage/probability/probability_distribution.pyx -index e2c71af9c25..59ba4a95ab6 100644 ---- a/src/sage/probability/probability_distribution.pyx -+++ b/src/sage/probability/probability_distribution.pyx -@@ -140,6 +140,9 @@ cdef class ProbabilityDistribution: - 1.8, - 2.0] - """ -+ import numpy as np -+ if int(np.version.short_version[0]) > 1: -+ np.set_printoptions(legacy="1.25") - import pylab - ell = [float(self.get_random_element()) for _ in range(num_samples)] - S = pylab.hist(ell, bins, density=True) -diff --git a/src/sage/rings/complex_double.pyx b/src/sage/rings/complex_double.pyx -index c59a2b46d6f..b4dddebb4dc 100644 ---- a/src/sage/rings/complex_double.pyx -+++ b/src/sage/rings/complex_double.pyx -@@ -2558,10 +2558,10 @@ cdef class ComplexToCDF(Morphism): - - sage: # needs numpy - sage: import numpy -- sage: f = CDF.coerce_map_from(numpy.complex_) -- sage: f(numpy.complex_(I)) -+ sage: f = CDF.coerce_map_from(numpy.complex128) -+ sage: f(numpy.complex128(I)) - 1.0*I -- sage: f(numpy.complex_(I)).parent() -+ sage: f(numpy.complex128(I)).parent() - Complex Double Field - """ - def __init__(self, R): -@@ -2578,7 +2578,7 @@ cdef class ComplexToCDF(Morphism): - EXAMPLES:: - - sage: import numpy # needs numpy -- sage: CDF(numpy.complex_(I)) # indirect doctest # needs numpy -+ sage: CDF(numpy.complex128(I)) # indirect doctest # needs numpy - 1.0*I - """ - cdef ComplexDoubleElement z = ComplexDoubleElement.__new__(ComplexDoubleElement) -@@ -2592,7 +2592,7 @@ cdef class ComplexToCDF(Morphism): - EXAMPLES:: - - sage: import numpy # needs numpy -- sage: f = sage.rings.complex_double.ComplexToCDF(numpy.complex_) # needs numpy -+ sage: f = sage.rings.complex_double.ComplexToCDF(numpy.complex128) # needs numpy - sage: f._repr_type() # needs numpy - 'Native' - """ -diff --git a/src/sage/rings/integer.pyx b/src/sage/rings/integer.pyx -index b4a1fa5039b..38c30f7627b 100644 ---- a/src/sage/rings/integer.pyx -+++ b/src/sage/rings/integer.pyx -@@ -593,6 +593,8 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): - Test comparisons with numpy types (see :issue:`13386` and :issue:`18076`):: - - sage: import numpy # needs numpy -+ sage: if int(numpy.version.short_version[0]) > 1: # needs numpy -+ ....: numpy.set_printoptions(legacy="1.25") # needs numpy - sage: numpy.int8('12') == 12 # needs numpy - True - sage: 12 == numpy.int8('12') # needs numpy -diff --git a/src/sage/rings/polynomial/polynomial_element.pyx b/src/sage/rings/polynomial/polynomial_element.pyx -index dcf2af7cdf2..c87eccd44f1 100644 ---- a/src/sage/rings/polynomial/polynomial_element.pyx -+++ b/src/sage/rings/polynomial/polynomial_element.pyx -@@ -8851,7 +8851,7 @@ cdef class Polynomial(CommutativePolynomial): - 'you expect.') - - import numpy -- from numpy.linalg.linalg import LinAlgError -+ from numpy.linalg import LinAlgError - from sage.rings.complex_double import CDF - - numpy_dtype = ('complex' if input_complex else 'double') -diff --git a/src/sage/rings/real_mpfi.pyx b/src/sage/rings/real_mpfi.pyx -index 95b472e912c..76fbfedab95 100644 ---- a/src/sage/rings/real_mpfi.pyx -+++ b/src/sage/rings/real_mpfi.pyx -@@ -231,6 +231,8 @@ specified if given a non-interval and an interval:: - TESTS:: - - sage: import numpy # needs numpy -+ sage: if int(numpy.version.short_version[0]) > 1: # needs numpy -+ ....: numpy.set_printoptions(legacy="1.25") # needs numpy - sage: RIF(2) == numpy.int8('2') # needs numpy - True - sage: numpy.int8('2') == RIF(2) # needs numpy -diff --git a/src/sage/schemes/elliptic_curves/period_lattice_region.pyx b/src/sage/schemes/elliptic_curves/period_lattice_region.pyx -index 8f240627e77..70ce616f92f 100644 ---- a/src/sage/schemes/elliptic_curves/period_lattice_region.pyx -+++ b/src/sage/schemes/elliptic_curves/period_lattice_region.pyx -@@ -77,6 +77,8 @@ cdef class PeriodicRegion: - EXAMPLES:: - - sage: import numpy as np -+ sage: if int(np.version.short_version[0]) > 1: -+ ....: np.set_printoptions(legacy="1.25") - sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion - sage: data = np.zeros((4, 4)) - sage: PeriodicRegion(CDF(2), CDF(2*I), data).is_empty() -@@ -295,6 +297,8 @@ cdef class PeriodicRegion: - EXAMPLES:: - - sage: import numpy as np -+ sage: if int(np.version.short_version[0]) > 1: -+ ....: np.set_printoptions(legacy="1.25") - sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion - sage: data = np.zeros((10, 10)) - sage: data[1:4,1:4] = True -@@ -317,6 +321,8 @@ cdef class PeriodicRegion: - EXAMPLES:: - - sage: import numpy as np -+ sage: if int(np.version.short_version[0]) > 1: -+ ....: np.set_printoptions(legacy="1.25") - sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion - sage: data = np.zeros((4, 4)) - sage: data[1,1] = True -@@ -370,6 +376,8 @@ cdef class PeriodicRegion: - EXAMPLES:: - - sage: import numpy as np -+ sage: if int(np.version.short_version[0]) > 1: -+ ....: np.set_printoptions(legacy="1.25") - sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion - - sage: data = np.zeros((20, 20)) -@@ -520,6 +528,8 @@ cdef class PeriodicRegion: - TESTS:: - - sage: import numpy as np -+ sage: if int(np.version.short_version[0]) > 1: -+ ....: np.set_printoptions(legacy="1.25") - sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion - sage: data = np.zeros((4, 4)) - sage: data[1, 1] = True -diff --git a/src/sage/stats/basic_stats.py b/src/sage/stats/basic_stats.py -index b2e6b301bf7..6937f6cb410 100644 ---- a/src/sage/stats/basic_stats.py -+++ b/src/sage/stats/basic_stats.py -@@ -227,6 +227,8 @@ def std(v, bias=False): - - sage: # needs numpy - sage: import numpy -+ sage: if int(numpy.version.short_version[0]) > 1: -+ ....: numpy.set_printoptions(legacy="1.25") - sage: x = numpy.array([1,2,3,4,5]) - sage: std(x, bias=False) - 1.5811388300841898 -@@ -304,6 +306,8 @@ def variance(v, bias=False): - sage: variance([RIF(1.0103, 1.0103), RIF(2)]) - 0.4897530450000000? - sage: import numpy # needs numpy -+ sage: if int(numpy.version.short_version[0]) > 1: # needs numpy -+ ....: numpy.set_printoptions(legacy="1.25") # needs numpy - sage: x = numpy.array([1,2,3,4,5]) # needs numpy - sage: variance(x, bias=False) # needs numpy - 2.5 -diff --git a/src/sage/stats/time_series.pyx b/src/sage/stats/time_series.pyx -index 2e22ec45c69..23adae84fb4 100644 ---- a/src/sage/stats/time_series.pyx -+++ b/src/sage/stats/time_series.pyx -@@ -1718,6 +1718,8 @@ cdef class TimeSeries: - if len(v0) == 1: - return v1[0]/v0[0] - import numpy -+ if int(numpy.version.short_version[0]) > 1: -+ numpy.set_printoptions(legacy="1.25") - coeffs = numpy.polyfit(v0,v1,1) - return coeffs[0] - -diff --git a/src/sage/structure/coerce.pyx b/src/sage/structure/coerce.pyx -index dfbd5ff82fa..955a256e9b4 100644 ---- a/src/sage/structure/coerce.pyx -+++ b/src/sage/structure/coerce.pyx -@@ -520,6 +520,8 @@ cdef class CoercionModel: - Check that :issue:`8426` is fixed (see also :issue:`18076`):: - - sage: import numpy # needs numpy -+ sage: if int(numpy.version.short_version[0]) > 1: # needs numpy -+ ....: numpy.set_printoptions(legacy="1.25") # needs numpy - - sage: # needs sage.rings.real_mpfr - sage: x = polygen(RR) -diff --git a/src/sage/symbolic/function.pyx b/src/sage/symbolic/function.pyx -index 2cb2f09c715..cd89ad2a256 100644 ---- a/src/sage/symbolic/function.pyx -+++ b/src/sage/symbolic/function.pyx -@@ -964,6 +964,9 @@ cdef class BuiltinFunction(Function): - mpc(real='0.83373002513114902', imag='-0.98889770576286506') - - sage: import numpy # needs numpy -+ sage: if int(numpy.version.short_version[0]) > 1: # needs numpy -+ ....: numpy.set_printoptions(legacy="1.25") # needs numpy -+ - sage: sin(numpy.int32(0)) # needs numpy - 0.0 - sage: type(_) # needs numpy -diff --git a/src/sage/symbolic/ring.pyx b/src/sage/symbolic/ring.pyx -index 501b0920898..5b007d9e5fd 100644 ---- a/src/sage/symbolic/ring.pyx -+++ b/src/sage/symbolic/ring.pyx -@@ -1162,6 +1162,8 @@ cdef class NumpyToSRMorphism(Morphism): - We check that :issue:`8949` and :issue:`9769` are fixed (see also :issue:`18076`):: - - sage: import numpy # needs numpy -+ sage: if int(numpy.version.short_version[0]) > 1: # needs numpy -+ ....: numpy.set_printoptions(legacy="1.25") # needs numpy - sage: f(x) = x^2 - sage: f(numpy.int8('2')) # needs numpy - 4 diff --git a/srcpkgs/sagemath/patches/38344-ecm_7.0.6.patch b/srcpkgs/sagemath/patches/38344-ecm_7.0.6.patch deleted file mode 100644 index db0ae9030623b6..00000000000000 --- a/srcpkgs/sagemath/patches/38344-ecm_7.0.6.patch +++ /dev/null @@ -1,43 +0,0 @@ -diff --git a/src/sage/interfaces/ecm.py b/src/sage/interfaces/ecm.py -index 99287dec718..98011970404 100644 ---- a/src/sage/interfaces/ecm.py -+++ b/src/sage/interfaces/ecm.py -@@ -508,7 +508,6 @@ def _find_factor(self, n, factor_digits, B1, **kwds): - """ - n = self._validate(n) - kwds.setdefault('c', 1000000000) -- kwds.setdefault('I', 1) - if factor_digits is not None: - B1 = self.recommended_B1(factor_digits) - kwds['one'] = True -diff --git a/src/sage/libs/libecm.pyx b/src/sage/libs/libecm.pyx -index 886a9b816e4..83fb7adaf8d 100644 ---- a/src/sage/libs/libecm.pyx -+++ b/src/sage/libs/libecm.pyx -@@ -149,11 +149,13 @@ def ecmfactor(number, double B1, verbose=False, sigma=0): - Some special cases:: - - sage: ecmfactor(1, 100) -- (True, 1, ...) -+ Traceback (most recent call last): -+ ... -+ ValueError: Input number (1) must be greater than 1 - sage: ecmfactor(0, 100) - Traceback (most recent call last): - ... -- ValueError: Input number (0) must be positive -+ ValueError: Input number (0) must be greater than 1 - """ - cdef mpz_t n, f - cdef int res -@@ -164,8 +166,8 @@ def ecmfactor(number, double B1, verbose=False, sigma=0): - sage_int_number = Integer(number) - sage_int_sigma = Integer(sigma) - -- if number <= 0: -- raise ValueError("Input number (%s) must be positive"%number) -+ if number <= 1: -+ raise ValueError("Input number (%s) must be greater than 1"%number) - - if verbose: - print("Performing one curve with B1=%1.0f" % B1) diff --git a/srcpkgs/sagemath/patches/get_patches b/srcpkgs/sagemath/patches/get_patches index 28162dff8a38e1..5cab228f286365 100755 --- a/srcpkgs/sagemath/patches/get_patches +++ b/srcpkgs/sagemath/patches/get_patches @@ -19,7 +19,7 @@ get_pr() { echo "curl -sL \"$url\" | filterdiff ... > \"$pr-$desc.patch\"" if [ -z "$dry" ]; then curl -sL "$url" | - filterdiff -p1 -x src/setup.py -x build/* -x src/doc/* | + filterdiff -p1 -x src/setup.py -x environment* -x src/environment* -x build/* -x src/doc/* | cat > "$pr-$desc.patch" fi } @@ -29,8 +29,6 @@ cd $(dirname "$0") get_pr 36641 "sympy 1.13" get_pr 37884 "gap 4.13.1" -get_pr 38250 "numpy 2.0" -get_pr 38344 "ecm 7.0.6" #get_pr 37645 "fix doctest" #get_pr 37885 "cython warnings" diff --git a/srcpkgs/sagemath/template b/srcpkgs/sagemath/template index b116e62bc67a5a..f5e1d8c68cfcbe 100644 --- a/srcpkgs/sagemath/template +++ b/srcpkgs/sagemath/template @@ -1,7 +1,7 @@ # Template file for 'sagemath' pkgname=sagemath -version=10.4 -revision=3 +version=10.5.beta2 +revision=1 _pypi_version=${version/.beta/b} _pypi_version=${_pypi_version/.rc/rc} 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="${PYPI_SITE}/s/sagemath-standard/sagemath_standard-${_pypi_version}.tar.gz" -checksum=f6579e85f33bd9bb6e9b991bfc4c49dab1e649858ed9ee41c7cec75cb92d4c62 +checksum=0fe0c82dd6959951fc07d55737d270290f64947e183a403ca25709e21b751dee nocross="due to ntl (eclib, singular), fflas-ffpack, givaro, linbox, sympow, maxima" # main repo `.../src/sage/` is `.../sage/` here From 7d53b5dc0d8be8db96aedf9d34edaba3d540a106 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Wed, 14 Aug 2024 00:12:02 -0300 Subject: [PATCH 03/11] sagemath: enable all cython warnings --- srcpkgs/sagemath/patches/37885-cython_warnings.patch | 12 ++++++++++++ srcpkgs/sagemath/patches/get_patches | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/sagemath/patches/37885-cython_warnings.patch 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 5cab228f286365..c182576ea553cd 100755 --- a/srcpkgs/sagemath/patches/get_patches +++ b/srcpkgs/sagemath/patches/get_patches @@ -31,4 +31,4 @@ get_pr 36641 "sympy 1.13" get_pr 37884 "gap 4.13.1" #get_pr 37645 "fix doctest" -#get_pr 37885 "cython warnings" +get_pr 37885 "cython warnings" From 96d94d062bbc96ffc2110bc7057d27235214f579 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Tue, 20 Aug 2024 17:56:06 -0300 Subject: [PATCH 04/11] sagemath: patch for numpy 2.1 --- srcpkgs/sagemath/patches/numpy_2.1a.patch | 8 +-- srcpkgs/sagemath/patches/numpy_2.1b.patch | 70 +++++++++++------------ 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/srcpkgs/sagemath/patches/numpy_2.1a.patch b/srcpkgs/sagemath/patches/numpy_2.1a.patch index 30e2de99d84536..493c75e2f8f8e0 100644 --- a/srcpkgs/sagemath/patches/numpy_2.1a.patch +++ b/srcpkgs/sagemath/patches/numpy_2.1a.patch @@ -1,14 +1,14 @@ -commit 241dc39bd0ba1c056f88bee46a0345d59093eaff +commit d755b32cbed462abf01a1cd782ba57cb92fbf713 Author: Gonzalo Tornaría Date: Mon Aug 19 23:25:32 2024 -0300 add copy parameter to numpy (needed for v2.1) diff --git a/src/sage/matrix/matrix1.pyx b/src/sage/matrix/matrix1.pyx -index c38df5412f0..f587cef651a 100644 +index 3edb9ead54d..2c76fd1e557 100644 --- a/src/sage/matrix/matrix1.pyx +++ b/src/sage/matrix/matrix1.pyx -@@ -671,7 +671,7 @@ cdef class Matrix(Matrix0): +@@ -670,7 +670,7 @@ cdef class Matrix(Matrix0): entries = [[sib(v, 2) for v in row] for row in self.rows()] return sib.name('matrix')(self.base_ring(), entries) @@ -17,7 +17,7 @@ index c38df5412f0..f587cef651a 100644 """ Return the Numpy matrix associated to this matrix. -@@ -732,7 +732,7 @@ cdef class Matrix(Matrix0): +@@ -731,7 +731,7 @@ cdef class Matrix(Matrix0): (3, 4) """ import numpy diff --git a/srcpkgs/sagemath/patches/numpy_2.1b.patch b/srcpkgs/sagemath/patches/numpy_2.1b.patch index b77e28361d2e74..8dc0eec2b5a9d8 100644 --- a/srcpkgs/sagemath/patches/numpy_2.1b.patch +++ b/srcpkgs/sagemath/patches/numpy_2.1b.patch @@ -1,11 +1,11 @@ -commit 8b32fdb87725c1d67ffb51dadec1c331c7c35f3c +commit 8260d18c3cf8e356db3d95fc46f6e68f75b453fd Author: Gonzalo Tornaría Date: Tue Aug 20 00:05:33 2024 -0300 silence np.set_printoptions (for numpy 2.1) diff --git a/src/sage/combinat/fully_packed_loop.py b/src/sage/combinat/fully_packed_loop.py -index b3ebd206cd2..48866824224 100644 +index 74a14fa1ecd..82e6c7eb3c8 100644 --- a/src/sage/combinat/fully_packed_loop.py +++ b/src/sage/combinat/fully_packed_loop.py @@ -68,7 +68,7 @@ def _make_color_list(n, colors=None, color_map=None, randomize=False): @@ -18,7 +18,7 @@ index b3ebd206cd2..48866824224 100644 sage: _make_color_list(5) sage: _make_color_list(5, ['blue', 'red']) diff --git a/src/sage/functions/special.py b/src/sage/functions/special.py -index 2a03bb68f67..30b56722e66 100644 +index 308171af3cd..6f66624ef87 100644 --- a/src/sage/functions/special.py +++ b/src/sage/functions/special.py @@ -219,7 +219,7 @@ class SphericalHarmonic(BuiltinFunction): @@ -31,10 +31,10 @@ index 2a03bb68f67..30b56722e66 100644 (0.3454941494713355-4.231083042742082e-17j) diff --git a/src/sage/numerical/optimize.py b/src/sage/numerical/optimize.py -index 7ae8ca4966f..4cba22efdba 100644 +index b3e42a6a6a2..13ffa4d1789 100644 --- a/src/sage/numerical/optimize.py +++ b/src/sage/numerical/optimize.py -@@ -385,7 +385,7 @@ def minimize(func, x0, gradient=None, hessian=None, algorithm="default", +@@ -381,7 +381,7 @@ def minimize(func, x0, gradient=None, hessian=None, algorithm='default', ....: return sum(100.0r*(x[1r:]-x[:-1r]**2.0r)**2.0r + (1r-x[:-1r])**2.0r) sage: import numpy sage: if int(numpy.version.short_version[0]) > 1: @@ -44,7 +44,7 @@ index 7ae8ca4966f..4cba22efdba 100644 sage: def rosen_der(x): ....: xm = x[1r:-1r] diff --git a/src/sage/plot/arrow.py b/src/sage/plot/arrow.py -index 23e2517ca56..7375dcd5d1c 100644 +index 02442f90ba4..1fe3f0b051a 100644 --- a/src/sage/plot/arrow.py +++ b/src/sage/plot/arrow.py @@ -55,7 +55,7 @@ class CurveArrow(GraphicPrimitive): @@ -57,10 +57,10 @@ index 23e2517ca56..7375dcd5d1c 100644 sage: b = CurveArrow(path=[[(0,0),(.5,.5),(1,0)],[(.5,1),(0,0)]], ....: options={}) diff --git a/src/sage/plot/multigraphics.py b/src/sage/plot/multigraphics.py -index 6be448f1e04..004594b77c4 100644 +index d2f70b44526..2eaacc6879e 100644 --- a/src/sage/plot/multigraphics.py +++ b/src/sage/plot/multigraphics.py -@@ -786,7 +786,7 @@ class MultiGraphics(WithEqualityById, SageObject): +@@ -766,7 +766,7 @@ class MultiGraphics(WithEqualityById, SageObject): (0.2, 0.3, 0.4, 0.1) sage: import numpy # to ensure numpy 2.0 compatibility sage: if int(numpy.version.short_version[0]) > 1: @@ -68,8 +68,8 @@ index 6be448f1e04..004594b77c4 100644 + ....: _token = numpy.set_printoptions(legacy="1.25") sage: ax1.get_position().bounds # tol 1.0e-13 (0.2, 0.3, 0.4000000000000001, 0.10000000000000003) - -@@ -1300,7 +1300,7 @@ class GraphicsArray(MultiGraphics): + """ +@@ -1269,7 +1269,7 @@ class GraphicsArray(MultiGraphics): sage: G = graphics_array([g1, g2]) sage: import numpy # to ensure numpy 2.0 compatibility sage: if int(numpy.version.short_version[0]) > 1: @@ -79,10 +79,10 @@ index 6be448f1e04..004594b77c4 100644 (0.025045451349937315, 0.03415488992713045, diff --git a/src/sage/plot/streamline_plot.py b/src/sage/plot/streamline_plot.py -index d2cb11088c7..6d88517cc15 100644 +index b69a05b37bf..25e404bfc7d 100644 --- a/src/sage/plot/streamline_plot.py +++ b/src/sage/plot/streamline_plot.py -@@ -73,7 +73,7 @@ class StreamlinePlot(GraphicPrimitive): +@@ -72,7 +72,7 @@ class StreamlinePlot(GraphicPrimitive): sage: x, y = var('x y') sage: import numpy # to ensure numpy 2.0 compatibility sage: if int(numpy.version.short_version[0]) > 1: @@ -92,20 +92,20 @@ index d2cb11088c7..6d88517cc15 100644 sage: d['xmin'] 10.0 diff --git a/src/sage/rings/integer.pyx b/src/sage/rings/integer.pyx -index 38c30f7627b..cfb8a5ff5f7 100644 +index 11811b9587f..8ce0f7f2683 100644 --- a/src/sage/rings/integer.pyx +++ b/src/sage/rings/integer.pyx -@@ -594,7 +594,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): - - sage: import numpy # needs numpy - sage: if int(numpy.version.short_version[0]) > 1: # needs numpy -- ....: numpy.set_printoptions(legacy="1.25") # needs numpy -+ ....: _token = numpy.set_printoptions(legacy="1.25") # needs numpy - sage: numpy.int8('12') == 12 # needs numpy +@@ -595,7 +595,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): + sage: # needs numpy + sage: import numpy + sage: if int(numpy.version.short_version[0]) > 1: +- ....: numpy.set_printoptions(legacy="1.25") ++ ....: _token = numpy.set_printoptions(legacy="1.25") + sage: numpy.int8('12') == 12 True - sage: 12 == numpy.int8('12') # needs numpy + sage: 12 == numpy.int8('12') diff --git a/src/sage/rings/real_mpfi.pyx b/src/sage/rings/real_mpfi.pyx -index 76fbfedab95..57de30c9d18 100644 +index 11953a50ab5..6aafcceed89 100644 --- a/src/sage/rings/real_mpfi.pyx +++ b/src/sage/rings/real_mpfi.pyx @@ -232,7 +232,7 @@ TESTS:: @@ -118,7 +118,7 @@ index 76fbfedab95..57de30c9d18 100644 True sage: numpy.int8('2') == RIF(2) # needs numpy diff --git a/src/sage/schemes/elliptic_curves/period_lattice_region.pyx b/src/sage/schemes/elliptic_curves/period_lattice_region.pyx -index 70ce616f92f..f604c6d3785 100644 +index 40b92ab23eb..3838bcccb8a 100755 --- a/src/sage/schemes/elliptic_curves/period_lattice_region.pyx +++ b/src/sage/schemes/elliptic_curves/period_lattice_region.pyx @@ -78,7 +78,7 @@ cdef class PeriodicRegion: @@ -130,7 +130,7 @@ index 70ce616f92f..f604c6d3785 100644 sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion sage: data = np.zeros((4, 4)) sage: PeriodicRegion(CDF(2), CDF(2*I), data).is_empty() -@@ -298,7 +298,7 @@ cdef class PeriodicRegion: +@@ -296,7 +296,7 @@ cdef class PeriodicRegion: sage: import numpy as np sage: if int(np.version.short_version[0]) > 1: @@ -139,7 +139,7 @@ index 70ce616f92f..f604c6d3785 100644 sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion sage: data = np.zeros((10, 10)) sage: data[1:4,1:4] = True -@@ -322,7 +322,7 @@ cdef class PeriodicRegion: +@@ -320,7 +320,7 @@ cdef class PeriodicRegion: sage: import numpy as np sage: if int(np.version.short_version[0]) > 1: @@ -148,7 +148,7 @@ index 70ce616f92f..f604c6d3785 100644 sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion sage: data = np.zeros((4, 4)) sage: data[1,1] = True -@@ -377,7 +377,7 @@ cdef class PeriodicRegion: +@@ -375,7 +375,7 @@ cdef class PeriodicRegion: sage: import numpy as np sage: if int(np.version.short_version[0]) > 1: @@ -157,7 +157,7 @@ index 70ce616f92f..f604c6d3785 100644 sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion sage: data = np.zeros((20, 20)) -@@ -529,7 +529,7 @@ cdef class PeriodicRegion: +@@ -528,7 +528,7 @@ cdef class PeriodicRegion: sage: import numpy as np sage: if int(np.version.short_version[0]) > 1: @@ -167,10 +167,10 @@ index 70ce616f92f..f604c6d3785 100644 sage: data = np.zeros((4, 4)) sage: data[1, 1] = True diff --git a/src/sage/stats/basic_stats.py b/src/sage/stats/basic_stats.py -index 6937f6cb410..fb296e00fb6 100644 +index 47d890cf0ab..ba7f0cdb0f9 100644 --- a/src/sage/stats/basic_stats.py +++ b/src/sage/stats/basic_stats.py -@@ -228,7 +228,7 @@ def std(v, bias=False): +@@ -222,7 +222,7 @@ def std(v, bias=False): sage: # needs numpy sage: import numpy sage: if int(numpy.version.short_version[0]) > 1: @@ -179,7 +179,7 @@ index 6937f6cb410..fb296e00fb6 100644 sage: x = numpy.array([1,2,3,4,5]) sage: std(x, bias=False) 1.5811388300841898 -@@ -307,7 +307,7 @@ def variance(v, bias=False): +@@ -299,7 +299,7 @@ def variance(v, bias=False): 0.4897530450000000? sage: import numpy # needs numpy sage: if int(numpy.version.short_version[0]) > 1: # needs numpy @@ -189,7 +189,7 @@ index 6937f6cb410..fb296e00fb6 100644 sage: variance(x, bias=False) # needs numpy 2.5 diff --git a/src/sage/structure/coerce.pyx b/src/sage/structure/coerce.pyx -index 955a256e9b4..e5ed6160b79 100644 +index cc15eff82e9..e32e7fd28b3 100644 --- a/src/sage/structure/coerce.pyx +++ b/src/sage/structure/coerce.pyx @@ -521,7 +521,7 @@ cdef class CoercionModel: @@ -202,10 +202,10 @@ index 955a256e9b4..e5ed6160b79 100644 sage: # needs sage.rings.real_mpfr sage: x = polygen(RR) diff --git a/src/sage/symbolic/function.pyx b/src/sage/symbolic/function.pyx -index cd89ad2a256..6fdf6d8ef23 100644 +index 362d01ea297..92bce28b032 100644 --- a/src/sage/symbolic/function.pyx +++ b/src/sage/symbolic/function.pyx -@@ -965,7 +965,7 @@ cdef class BuiltinFunction(Function): +@@ -962,7 +962,7 @@ cdef class BuiltinFunction(Function): sage: import numpy # needs numpy sage: if int(numpy.version.short_version[0]) > 1: # needs numpy @@ -215,10 +215,10 @@ index cd89ad2a256..6fdf6d8ef23 100644 sage: sin(numpy.int32(0)) # needs numpy 0.0 diff --git a/src/sage/symbolic/ring.pyx b/src/sage/symbolic/ring.pyx -index 5b007d9e5fd..4a096d317e7 100644 +index 32afe8d3a62..63734e68f63 100644 --- a/src/sage/symbolic/ring.pyx +++ b/src/sage/symbolic/ring.pyx -@@ -1163,7 +1163,7 @@ cdef class NumpyToSRMorphism(Morphism): +@@ -1154,7 +1154,7 @@ cdef class NumpyToSRMorphism(Morphism): sage: import numpy # needs numpy sage: if int(numpy.version.short_version[0]) > 1: # needs numpy From 957cb88a6e2398a873a2d900d5faba44f5c8ceaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Sun, 8 Sep 2024 09:35:16 -0300 Subject: [PATCH 05/11] nauty: update to 2.8.9. --- srcpkgs/nauty/patches/fix-runalltests.patch | 11 +++++++++++ srcpkgs/nauty/template | 7 ++++--- 2 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 srcpkgs/nauty/patches/fix-runalltests.patch diff --git a/srcpkgs/nauty/patches/fix-runalltests.patch b/srcpkgs/nauty/patches/fix-runalltests.patch new file mode 100644 index 00000000000000..34e1692cf6e6e3 --- /dev/null +++ b/srcpkgs/nauty/patches/fix-runalltests.patch @@ -0,0 +1,11 @@ +--- a/runalltests.in 2024-08-26 00:55:55.000000000 -0300 ++++ b/runalltests.in 2024-09-08 09:30:04.032719770 -0300 +@@ -121,7 +121,7 @@ + runonetest "./geng -q -TD6 10 | ./ransubg -qS765 -P9/10 | ./countg --NN,A,G,GG" "" nautestv.ans + runonetest "./genrang -q -P3 -S1234 70 1000 | ./countg --G,GG" "" nautestw.ans + runonetest "./genrang -q -P4 -z -S1234 70 500 | ./countg --G,GG" "" nautestx.ans +-runonetest "./geng -q -bT 12 | ./ranlabg -qS7654 -m5 | uniqg -u" "" nautesty.ans ++runonetest "./geng -q -bT 12 | ./ranlabg -qS7654 -m5 | ./uniqg -u" "" nautesty.ans + + echo " " + diff --git a/srcpkgs/nauty/template b/srcpkgs/nauty/template index 6f85b1d064d4e5..aea4e4a6eb0294 100644 --- a/srcpkgs/nauty/template +++ b/srcpkgs/nauty/template @@ -1,18 +1,18 @@ # Template file for 'nauty' pkgname=nauty -version=2.8.8 +version=2.8.9 revision=1 build_style=gnu-configure make_install_args="includedir=/usr/include/nauty pkgconfigexecdir=/usr/lib/pkgconfig" -hostmakedepends="automake" +hostmakedepends="automake libtool" short_desc="Compute the automorphism groups of graphs and digraphs" maintainer="Gonzalo Tornaría " license="Apache-2.0" homepage="https://pallini.di.uniroma1.it/" changelog="https://pallini.di.uniroma1.it/changes24-28.txt" distfiles="https://pallini.di.uniroma1.it/nauty${version//./_}.tar.gz" -checksum=159d2156810a6bb240410cd61eb641add85088d9f15c888cdaa37b8681f929ce +checksum=c97ab42bf48796a86a598bce3e9269047ca2b32c14fc23e07208a244fe52c4ee build_options="native_build" @@ -21,6 +21,7 @@ if [ -z "$build_option_native_build" ]; then fi pre_configure() { + aclocal autoreconf -fi } From 1c1032e91f22c617773f3aa8c1ac9135831624c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Sat, 7 Sep 2024 14:32:41 -0300 Subject: [PATCH 06/11] sagemath: update to 10.5.beta3. --- .../sagemath/patches/36641-sympy_1.13.patch | 60 ------------------- .../sagemath/patches/38572-nauty_2.8.9.patch | 13 ++++ srcpkgs/sagemath/patches/get_patches | 4 +- srcpkgs/sagemath/template | 4 +- 4 files changed, 17 insertions(+), 64 deletions(-) delete mode 100644 srcpkgs/sagemath/patches/36641-sympy_1.13.patch create mode 100644 srcpkgs/sagemath/patches/38572-nauty_2.8.9.patch diff --git a/srcpkgs/sagemath/patches/36641-sympy_1.13.patch b/srcpkgs/sagemath/patches/36641-sympy_1.13.patch deleted file mode 100644 index 01e859ad023f4d..00000000000000 --- a/srcpkgs/sagemath/patches/36641-sympy_1.13.patch +++ /dev/null @@ -1,60 +0,0 @@ -diff --git a/src/sage/doctest/forker.py b/src/sage/doctest/forker.py -index 823a0d14a41..de1c8531814 100644 ---- a/src/sage/doctest/forker.py -+++ b/src/sage/doctest/forker.py -@@ -150,14 +150,15 @@ def init_sage(controller=None): - sage: from sympy.printing.pretty.pretty import PrettyPrinter - sage: s = sympify('+x^'.join(str(i) for i in range(30))) - sage: print(PrettyPrinter(settings={'wrap_line': True}).doprint(s)) -- 29 28 27 26 25 24 23 22 21 20 19 18 17 -- x + x + x + x + x + x + x + x + x + x + x + x + x + -+ 29 28 27 26 25 24 23 22 21 20 19 18 17 ↪ -+ x + x + x + x + x + x + x + x + x + x + x + x + x + ↪ - -- 16 15 14 13 12 11 10 9 8 7 6 5 4 3 -- x + x + x + x + x + x + x + x + x + x + x + x + x + x + x -+ ↪ 16 15 14 13 12 11 10 9 8 7 6 5 4 3 ↪ -+ ↪ x + x + x + x + x + x + x + x + x + x + x + x + x + x + ↪ - -- 2 -- + x -+ ↪ 2 -+ ↪ x + x -+ - - The displayhook sorts dictionary keys to simplify doctesting of - dictionary output:: -diff --git a/src/sage/functions/hypergeometric.py b/src/sage/functions/hypergeometric.py -index ade7836b310..eb5c6665c0d 100644 ---- a/src/sage/functions/hypergeometric.py -+++ b/src/sage/functions/hypergeometric.py -@@ -124,7 +124,7 @@ - sage: maxima(hypergeometric([1, 1, 1], [3, 3, 3], x)) # needs sage.symbolic - hypergeometric([1,1,1],[3,3,3],_SAGE_VAR_x) - sage: hypergeometric((5, 4), (4, 4), 3)._sympy_() # needs sympy sage.symbolic -- hyper((5, 4), (4, 4), 3) -+ hyper((5,), (4,), 3) - sage: hypergeometric((5, 4), (4, 4), 3)._mathematica_init_() # needs sage.symbolic - 'HypergeometricPFQ[{5,4},{4,4},3]' - -diff --git a/src/sage/typeset/ascii_art.py b/src/sage/typeset/ascii_art.py -index 83d92af8959..e470e2bd88d 100644 ---- a/src/sage/typeset/ascii_art.py -+++ b/src/sage/typeset/ascii_art.py -@@ -44,11 +44,12 @@ - sage: shell.run_cell('%display ascii_art') - sage: shell.run_cell("i = var('i')") # needs sage.symbolic - sage: shell.run_cell('sum(factorial(i)*x^i, i, 0, 10)') # needs sage.symbolic -- 10 9 8 7 6 5 4 3 -- 3628800*x + 362880*x + 40320*x + 5040*x + 720*x + 120*x + 24*x + 6*x -+ 10 9 8 7 6 5 4 3 > -+ 3628800*x + 362880*x + 40320*x + 5040*x + 720*x + 120*x + 24*x + 6*x > - -- 2 -- + 2*x + x + 1 -+ > 2 -+ > + 2*x + x + 1 -+ - sage: shell.run_cell('3/(7*x)') # needs sage.symbolic - 3 - --- diff --git a/srcpkgs/sagemath/patches/38572-nauty_2.8.9.patch b/srcpkgs/sagemath/patches/38572-nauty_2.8.9.patch new file mode 100644 index 00000000000000..5f75a8bef5556a --- /dev/null +++ b/srcpkgs/sagemath/patches/38572-nauty_2.8.9.patch @@ -0,0 +1,13 @@ +diff --git a/src/sage/graphs/generators/families.py b/src/sage/graphs/generators/families.py +index e6e5312b8a8..aa10d15d4d8 100644 +--- a/src/sage/graphs/generators/families.py ++++ b/src/sage/graphs/generators/families.py +@@ -3710,7 +3710,7 @@ def nauty_gentreeg(options='', debug=False): + ... + ValueError: wrong format of parameter options + sage: list(graphs.nauty_gentreeg("3 -x", debug=True)) +- ['>E Usage: ...gentreeg [-D#] [-Z#:#] [-ulps] [-q] n [res/mod] ... ++ ['>E Usage: ...gentreeg [-D#] [-Z#:#] [-ulps] [-q] n... [res/mod] ... + sage: list(graphs.nauty_gentreeg("3", debug=True)) + ['>A ...gentreeg ...\n', Graph on 3 vertices] + """ diff --git a/srcpkgs/sagemath/patches/get_patches b/srcpkgs/sagemath/patches/get_patches index c182576ea553cd..8f540dad14bfd1 100755 --- a/srcpkgs/sagemath/patches/get_patches +++ b/srcpkgs/sagemath/patches/get_patches @@ -1,6 +1,6 @@ #! /bin/sh -version=10.4 +version=10.5 URL_BASE_PR="https://github.com/sagemath/sage/pull/" URL_BASE_COMPARE="https://github.com/sagemath/sage/compare/${version}..." @@ -27,8 +27,8 @@ get_pr() { # run from patches dir cd $(dirname "$0") -get_pr 36641 "sympy 1.13" get_pr 37884 "gap 4.13.1" +get_pr 38572 "nauty 2.8.9" #get_pr 37645 "fix doctest" get_pr 37885 "cython warnings" diff --git a/srcpkgs/sagemath/template b/srcpkgs/sagemath/template index f5e1d8c68cfcbe..709a3ea4262101 100644 --- a/srcpkgs/sagemath/template +++ b/srcpkgs/sagemath/template @@ -1,6 +1,6 @@ # Template file for 'sagemath' pkgname=sagemath -version=10.5.beta2 +version=10.5.beta3 revision=1 _pypi_version=${version/.beta/b} _pypi_version=${_pypi_version/.rc/rc} @@ -32,7 +32,7 @@ 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-${_pypi_version}.tar.gz" -checksum=0fe0c82dd6959951fc07d55737d270290f64947e183a403ca25709e21b751dee +checksum=cbf3614c1b9be5f0a0756b0a5480c2ebfa663bd87bd66eefd162a755979bcb3d nocross="due to ntl (eclib, singular), fflas-ffpack, givaro, linbox, sympow, maxima" # main repo `.../src/sage/` is `.../sage/` here From 91e2bbb98c7707f436c090192396a097909510d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Sun, 22 Sep 2024 08:19:39 -0300 Subject: [PATCH 07/11] sagemath: update to 10.5.beta5. --- .../sagemath/patches/38572-nauty_2.8.9.patch | 13 - srcpkgs/sagemath/patches/numpy_2.1a.patch | 28 --- srcpkgs/sagemath/patches/numpy_2.1b.patch | 229 ------------------ srcpkgs/sagemath/template | 4 +- 4 files changed, 2 insertions(+), 272 deletions(-) delete mode 100644 srcpkgs/sagemath/patches/38572-nauty_2.8.9.patch delete mode 100644 srcpkgs/sagemath/patches/numpy_2.1a.patch delete mode 100644 srcpkgs/sagemath/patches/numpy_2.1b.patch diff --git a/srcpkgs/sagemath/patches/38572-nauty_2.8.9.patch b/srcpkgs/sagemath/patches/38572-nauty_2.8.9.patch deleted file mode 100644 index 5f75a8bef5556a..00000000000000 --- a/srcpkgs/sagemath/patches/38572-nauty_2.8.9.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/sage/graphs/generators/families.py b/src/sage/graphs/generators/families.py -index e6e5312b8a8..aa10d15d4d8 100644 ---- a/src/sage/graphs/generators/families.py -+++ b/src/sage/graphs/generators/families.py -@@ -3710,7 +3710,7 @@ def nauty_gentreeg(options='', debug=False): - ... - ValueError: wrong format of parameter options - sage: list(graphs.nauty_gentreeg("3 -x", debug=True)) -- ['>E Usage: ...gentreeg [-D#] [-Z#:#] [-ulps] [-q] n [res/mod] ... -+ ['>E Usage: ...gentreeg [-D#] [-Z#:#] [-ulps] [-q] n... [res/mod] ... - sage: list(graphs.nauty_gentreeg("3", debug=True)) - ['>A ...gentreeg ...\n', Graph on 3 vertices] - """ diff --git a/srcpkgs/sagemath/patches/numpy_2.1a.patch b/srcpkgs/sagemath/patches/numpy_2.1a.patch deleted file mode 100644 index 493c75e2f8f8e0..00000000000000 --- a/srcpkgs/sagemath/patches/numpy_2.1a.patch +++ /dev/null @@ -1,28 +0,0 @@ -commit d755b32cbed462abf01a1cd782ba57cb92fbf713 -Author: Gonzalo Tornaría -Date: Mon Aug 19 23:25:32 2024 -0300 - - add copy parameter to numpy (needed for v2.1) - -diff --git a/src/sage/matrix/matrix1.pyx b/src/sage/matrix/matrix1.pyx -index 3edb9ead54d..2c76fd1e557 100644 ---- a/src/sage/matrix/matrix1.pyx -+++ b/src/sage/matrix/matrix1.pyx -@@ -670,7 +670,7 @@ cdef class Matrix(Matrix0): - entries = [[sib(v, 2) for v in row] for row in self.rows()] - return sib.name('matrix')(self.base_ring(), entries) - -- def numpy(self, dtype=None): -+ def numpy(self, dtype=None, copy=True): - """ - Return the Numpy matrix associated to this matrix. - -@@ -731,7 +731,7 @@ cdef class Matrix(Matrix0): - (3, 4) - """ - import numpy -- A = numpy.matrix(self.list(), dtype=dtype) -+ A = numpy.matrix(self.list(), dtype=dtype, copy=copy) - return numpy.resize(A,(self.nrows(), self.ncols())) - - # Define the magic "__array__" function so that numpy.array(m) can convert diff --git a/srcpkgs/sagemath/patches/numpy_2.1b.patch b/srcpkgs/sagemath/patches/numpy_2.1b.patch deleted file mode 100644 index 8dc0eec2b5a9d8..00000000000000 --- a/srcpkgs/sagemath/patches/numpy_2.1b.patch +++ /dev/null @@ -1,229 +0,0 @@ -commit 8260d18c3cf8e356db3d95fc46f6e68f75b453fd -Author: Gonzalo Tornaría -Date: Tue Aug 20 00:05:33 2024 -0300 - - silence np.set_printoptions (for numpy 2.1) - -diff --git a/src/sage/combinat/fully_packed_loop.py b/src/sage/combinat/fully_packed_loop.py -index 74a14fa1ecd..82e6c7eb3c8 100644 ---- a/src/sage/combinat/fully_packed_loop.py -+++ b/src/sage/combinat/fully_packed_loop.py -@@ -68,7 +68,7 @@ def _make_color_list(n, colors=None, color_map=None, randomize=False): - - sage: import numpy as np - sage: if int(np.version.short_version[0]) > 1: -- ....: np.set_printoptions(legacy="1.25") -+ ....: _token = np.set_printoptions(legacy="1.25") - sage: from sage.combinat.fully_packed_loop import _make_color_list - sage: _make_color_list(5) - sage: _make_color_list(5, ['blue', 'red']) -diff --git a/src/sage/functions/special.py b/src/sage/functions/special.py -index 308171af3cd..6f66624ef87 100644 ---- a/src/sage/functions/special.py -+++ b/src/sage/functions/special.py -@@ -219,7 +219,7 @@ class SphericalHarmonic(BuiltinFunction): - sage: from scipy.special import sph_harm # NB: arguments x and y are swapped # needs scipy - sage: import numpy as np # needs scipy - sage: if int(np.version.short_version[0]) > 1: # needs scipy -- ....: np.set_printoptions(legacy="1.25") # needs scipy -+ ....: _token = np.set_printoptions(legacy="1.25") # needs scipy - sage: sph_harm(1, 1, pi.n(), (pi/2).n()) # abs tol 1e-14 # needs scipy sage.symbolic - (0.3454941494713355-4.231083042742082e-17j) - -diff --git a/src/sage/numerical/optimize.py b/src/sage/numerical/optimize.py -index b3e42a6a6a2..13ffa4d1789 100644 ---- a/src/sage/numerical/optimize.py -+++ b/src/sage/numerical/optimize.py -@@ -381,7 +381,7 @@ def minimize(func, x0, gradient=None, hessian=None, algorithm='default', - ....: return sum(100.0r*(x[1r:]-x[:-1r]**2.0r)**2.0r + (1r-x[:-1r])**2.0r) - sage: import numpy - sage: if int(numpy.version.short_version[0]) > 1: -- ....: numpy.set_printoptions(legacy="1.25") -+ ....: _token = numpy.set_printoptions(legacy="1.25") - sage: from numpy import zeros - sage: def rosen_der(x): - ....: xm = x[1r:-1r] -diff --git a/src/sage/plot/arrow.py b/src/sage/plot/arrow.py -index 02442f90ba4..1fe3f0b051a 100644 ---- a/src/sage/plot/arrow.py -+++ b/src/sage/plot/arrow.py -@@ -55,7 +55,7 @@ class CurveArrow(GraphicPrimitive): - - sage: import numpy # to ensure numpy 2.0 compatibility - sage: if int(numpy.version.short_version[0]) > 1: -- ....: numpy.set_printoptions(legacy="1.25") -+ ....: _token = numpy.set_printoptions(legacy="1.25") - sage: from sage.plot.arrow import CurveArrow - sage: b = CurveArrow(path=[[(0,0),(.5,.5),(1,0)],[(.5,1),(0,0)]], - ....: options={}) -diff --git a/src/sage/plot/multigraphics.py b/src/sage/plot/multigraphics.py -index d2f70b44526..2eaacc6879e 100644 ---- a/src/sage/plot/multigraphics.py -+++ b/src/sage/plot/multigraphics.py -@@ -766,7 +766,7 @@ class MultiGraphics(WithEqualityById, SageObject): - (0.2, 0.3, 0.4, 0.1) - sage: import numpy # to ensure numpy 2.0 compatibility - sage: if int(numpy.version.short_version[0]) > 1: -- ....: numpy.set_printoptions(legacy="1.25") -+ ....: _token = numpy.set_printoptions(legacy="1.25") - sage: ax1.get_position().bounds # tol 1.0e-13 - (0.2, 0.3, 0.4000000000000001, 0.10000000000000003) - """ -@@ -1269,7 +1269,7 @@ class GraphicsArray(MultiGraphics): - sage: G = graphics_array([g1, g2]) - sage: import numpy # to ensure numpy 2.0 compatibility - sage: if int(numpy.version.short_version[0]) > 1: -- ....: numpy.set_printoptions(legacy="1.25") -+ ....: _token = numpy.set_printoptions(legacy="1.25") - sage: G.position(0) # tol 5.0e-3 - (0.025045451349937315, - 0.03415488992713045, -diff --git a/src/sage/plot/streamline_plot.py b/src/sage/plot/streamline_plot.py -index b69a05b37bf..25e404bfc7d 100644 ---- a/src/sage/plot/streamline_plot.py -+++ b/src/sage/plot/streamline_plot.py -@@ -72,7 +72,7 @@ class StreamlinePlot(GraphicPrimitive): - sage: x, y = var('x y') - sage: import numpy # to ensure numpy 2.0 compatibility - sage: if int(numpy.version.short_version[0]) > 1: -- ....: numpy.set_printoptions(legacy="1.25") -+ ....: _token = numpy.set_printoptions(legacy="1.25") - sage: d = streamline_plot((.01*x, x+y), (x,10,20), (y,10,20))[0].get_minmax_data() - sage: d['xmin'] - 10.0 -diff --git a/src/sage/rings/integer.pyx b/src/sage/rings/integer.pyx -index 11811b9587f..8ce0f7f2683 100644 ---- a/src/sage/rings/integer.pyx -+++ b/src/sage/rings/integer.pyx -@@ -595,7 +595,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): - sage: # needs numpy - sage: import numpy - sage: if int(numpy.version.short_version[0]) > 1: -- ....: numpy.set_printoptions(legacy="1.25") -+ ....: _token = numpy.set_printoptions(legacy="1.25") - sage: numpy.int8('12') == 12 - True - sage: 12 == numpy.int8('12') -diff --git a/src/sage/rings/real_mpfi.pyx b/src/sage/rings/real_mpfi.pyx -index 11953a50ab5..6aafcceed89 100644 ---- a/src/sage/rings/real_mpfi.pyx -+++ b/src/sage/rings/real_mpfi.pyx -@@ -232,7 +232,7 @@ TESTS:: - - sage: import numpy # needs numpy - sage: if int(numpy.version.short_version[0]) > 1: # needs numpy -- ....: numpy.set_printoptions(legacy="1.25") # needs numpy -+ ....: _token = numpy.set_printoptions(legacy="1.25") # needs numpy - sage: RIF(2) == numpy.int8('2') # needs numpy - True - sage: numpy.int8('2') == RIF(2) # needs numpy -diff --git a/src/sage/schemes/elliptic_curves/period_lattice_region.pyx b/src/sage/schemes/elliptic_curves/period_lattice_region.pyx -index 40b92ab23eb..3838bcccb8a 100755 ---- a/src/sage/schemes/elliptic_curves/period_lattice_region.pyx -+++ b/src/sage/schemes/elliptic_curves/period_lattice_region.pyx -@@ -78,7 +78,7 @@ cdef class PeriodicRegion: - - sage: import numpy as np - sage: if int(np.version.short_version[0]) > 1: -- ....: np.set_printoptions(legacy="1.25") -+ ....: _token = np.set_printoptions(legacy="1.25") - sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion - sage: data = np.zeros((4, 4)) - sage: PeriodicRegion(CDF(2), CDF(2*I), data).is_empty() -@@ -296,7 +296,7 @@ cdef class PeriodicRegion: - - sage: import numpy as np - sage: if int(np.version.short_version[0]) > 1: -- ....: np.set_printoptions(legacy="1.25") -+ ....: _token = np.set_printoptions(legacy="1.25") - sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion - sage: data = np.zeros((10, 10)) - sage: data[1:4,1:4] = True -@@ -320,7 +320,7 @@ cdef class PeriodicRegion: - - sage: import numpy as np - sage: if int(np.version.short_version[0]) > 1: -- ....: np.set_printoptions(legacy="1.25") -+ ....: _token = np.set_printoptions(legacy="1.25") - sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion - sage: data = np.zeros((4, 4)) - sage: data[1,1] = True -@@ -375,7 +375,7 @@ cdef class PeriodicRegion: - - sage: import numpy as np - sage: if int(np.version.short_version[0]) > 1: -- ....: np.set_printoptions(legacy="1.25") -+ ....: _token = np.set_printoptions(legacy="1.25") - sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion - - sage: data = np.zeros((20, 20)) -@@ -528,7 +528,7 @@ cdef class PeriodicRegion: - - sage: import numpy as np - sage: if int(np.version.short_version[0]) > 1: -- ....: np.set_printoptions(legacy="1.25") -+ ....: _token = np.set_printoptions(legacy="1.25") - sage: from sage.schemes.elliptic_curves.period_lattice_region import PeriodicRegion - sage: data = np.zeros((4, 4)) - sage: data[1, 1] = True -diff --git a/src/sage/stats/basic_stats.py b/src/sage/stats/basic_stats.py -index 47d890cf0ab..ba7f0cdb0f9 100644 ---- a/src/sage/stats/basic_stats.py -+++ b/src/sage/stats/basic_stats.py -@@ -222,7 +222,7 @@ def std(v, bias=False): - sage: # needs numpy - sage: import numpy - sage: if int(numpy.version.short_version[0]) > 1: -- ....: numpy.set_printoptions(legacy="1.25") -+ ....: _token = numpy.set_printoptions(legacy="1.25") - sage: x = numpy.array([1,2,3,4,5]) - sage: std(x, bias=False) - 1.5811388300841898 -@@ -299,7 +299,7 @@ def variance(v, bias=False): - 0.4897530450000000? - sage: import numpy # needs numpy - sage: if int(numpy.version.short_version[0]) > 1: # needs numpy -- ....: numpy.set_printoptions(legacy="1.25") # needs numpy -+ ....: _token = numpy.set_printoptions(legacy="1.25") # needs numpy - sage: x = numpy.array([1,2,3,4,5]) # needs numpy - sage: variance(x, bias=False) # needs numpy - 2.5 -diff --git a/src/sage/structure/coerce.pyx b/src/sage/structure/coerce.pyx -index cc15eff82e9..e32e7fd28b3 100644 ---- a/src/sage/structure/coerce.pyx -+++ b/src/sage/structure/coerce.pyx -@@ -521,7 +521,7 @@ cdef class CoercionModel: - - sage: import numpy # needs numpy - sage: if int(numpy.version.short_version[0]) > 1: # needs numpy -- ....: numpy.set_printoptions(legacy="1.25") # needs numpy -+ ....: _token = numpy.set_printoptions(legacy="1.25") # needs numpy - - sage: # needs sage.rings.real_mpfr - sage: x = polygen(RR) -diff --git a/src/sage/symbolic/function.pyx b/src/sage/symbolic/function.pyx -index 362d01ea297..92bce28b032 100644 ---- a/src/sage/symbolic/function.pyx -+++ b/src/sage/symbolic/function.pyx -@@ -962,7 +962,7 @@ cdef class BuiltinFunction(Function): - - sage: import numpy # needs numpy - sage: if int(numpy.version.short_version[0]) > 1: # needs numpy -- ....: numpy.set_printoptions(legacy="1.25") # needs numpy -+ ....: _token = numpy.set_printoptions(legacy="1.25") # needs numpy - - sage: sin(numpy.int32(0)) # needs numpy - 0.0 -diff --git a/src/sage/symbolic/ring.pyx b/src/sage/symbolic/ring.pyx -index 32afe8d3a62..63734e68f63 100644 ---- a/src/sage/symbolic/ring.pyx -+++ b/src/sage/symbolic/ring.pyx -@@ -1154,7 +1154,7 @@ cdef class NumpyToSRMorphism(Morphism): - - sage: import numpy # needs numpy - sage: if int(numpy.version.short_version[0]) > 1: # needs numpy -- ....: numpy.set_printoptions(legacy="1.25") # needs numpy -+ ....: _token = numpy.set_printoptions(legacy="1.25") # needs numpy - sage: f(x) = x^2 - sage: f(numpy.int8('2')) # needs numpy - 4 diff --git a/srcpkgs/sagemath/template b/srcpkgs/sagemath/template index 709a3ea4262101..4face5e8f7ad84 100644 --- a/srcpkgs/sagemath/template +++ b/srcpkgs/sagemath/template @@ -1,6 +1,6 @@ # Template file for 'sagemath' pkgname=sagemath -version=10.5.beta3 +version=10.5.beta5 revision=1 _pypi_version=${version/.beta/b} _pypi_version=${_pypi_version/.rc/rc} @@ -32,7 +32,7 @@ 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-${_pypi_version}.tar.gz" -checksum=cbf3614c1b9be5f0a0756b0a5480c2ebfa663bd87bd66eefd162a755979bcb3d +checksum=af4e8215043cd5376adea87f37928b94863561e36cba2171dab48ea984f7f259 nocross="due to ntl (eclib, singular), fflas-ffpack, givaro, linbox, sympow, maxima" # main repo `.../src/sage/` is `.../sage/` here From 296ec0fdc151e67a541387e4954be1d4a73a513b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Sun, 29 Sep 2024 22:24:40 -0300 Subject: [PATCH 08/11] sagemath: update to 10.5.beta6. --- srcpkgs/sagemath/patches/get_patches | 2 +- srcpkgs/sagemath/template | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/srcpkgs/sagemath/patches/get_patches b/srcpkgs/sagemath/patches/get_patches index 8f540dad14bfd1..381c307a3e962a 100755 --- a/srcpkgs/sagemath/patches/get_patches +++ b/srcpkgs/sagemath/patches/get_patches @@ -28,7 +28,7 @@ get_pr() { cd $(dirname "$0") get_pr 37884 "gap 4.13.1" -get_pr 38572 "nauty 2.8.9" +#get_pr 38572 "nauty 2.8.9" #get_pr 37645 "fix doctest" get_pr 37885 "cython warnings" diff --git a/srcpkgs/sagemath/template b/srcpkgs/sagemath/template index 4face5e8f7ad84..fb806ca641d378 100644 --- a/srcpkgs/sagemath/template +++ b/srcpkgs/sagemath/template @@ -1,6 +1,6 @@ # Template file for 'sagemath' pkgname=sagemath -version=10.5.beta5 +version=10.5.beta6 revision=1 _pypi_version=${version/.beta/b} _pypi_version=${_pypi_version/.rc/rc} @@ -32,7 +32,7 @@ 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-${_pypi_version}.tar.gz" -checksum=af4e8215043cd5376adea87f37928b94863561e36cba2171dab48ea984f7f259 +checksum=f95f196142d7abf091185e31d8023091c5746a9e3d2321d906161c65f944fa40 nocross="due to ntl (eclib, singular), fflas-ffpack, givaro, linbox, sympow, maxima" # main repo `.../src/sage/` is `.../sage/` here From 76f44bc40fb4c8a13545656de73a73337336bef0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Tue, 15 Oct 2024 15:30:11 -0300 Subject: [PATCH 09/11] sagemath: update to 10.5.beta7. --- srcpkgs/sagemath/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/sagemath/template b/srcpkgs/sagemath/template index fb806ca641d378..d19d4ac007f9ba 100644 --- a/srcpkgs/sagemath/template +++ b/srcpkgs/sagemath/template @@ -1,6 +1,6 @@ # Template file for 'sagemath' pkgname=sagemath -version=10.5.beta6 +version=10.5.beta7 revision=1 _pypi_version=${version/.beta/b} _pypi_version=${_pypi_version/.rc/rc} @@ -32,7 +32,7 @@ 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-${_pypi_version}.tar.gz" -checksum=f95f196142d7abf091185e31d8023091c5746a9e3d2321d906161c65f944fa40 +checksum=b98a883aab3b6f551243bc3cffb6825c92f6faf86604e9a9cc8f38cfb9af2f32 nocross="due to ntl (eclib, singular), fflas-ffpack, givaro, linbox, sympow, maxima" # main repo `.../src/sage/` is `.../sage/` here From 041826e8f89a9b6c92985182eb6e79b12d19ed81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Sat, 26 Oct 2024 19:06:21 -0300 Subject: [PATCH 10/11] python3-Cython: new alternative fix for 6122, taken from 6430 --- srcpkgs/python3-Cython/patches/fix-regression.patch | 12 +++++++++--- srcpkgs/python3-Cython/template | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/srcpkgs/python3-Cython/patches/fix-regression.patch b/srcpkgs/python3-Cython/patches/fix-regression.patch index f5957cfa59c2f5..5a29e6a5143ed9 100644 --- a/srcpkgs/python3-Cython/patches/fix-regression.patch +++ b/srcpkgs/python3-Cython/patches/fix-regression.patch @@ -1,9 +1,11 @@ Revert https://github.com/cython/cython/pull/6124 which causes a serious regression, e.g. sagemath FTBS with cython 3.0.11 +Source: https://github.com/cython/cython/pull/6430 + --- a/Cython/Compiler/Nodes.py +++ b/Cython/Compiler/Nodes.py -@@ -710,10 +710,8 @@ class CFuncDeclaratorNode(CDeclaratorNode): +@@ -717,10 +717,8 @@ def analyse(self, return_type, env, nonempty=0, directive_locals=None, visibilit and not self.has_explicit_exc_clause and self.exception_check and visibility != 'extern'): @@ -15,11 +17,15 @@ serious regression, e.g. sagemath FTBS with cython 3.0.11 warning(self.pos, "Implicit noexcept declaration is deprecated." " Function declaration should contain 'noexcept' keyword.", -@@ -3128,6 +3126,7 @@ class DefNode(FuncDefNode): +@@ -3128,6 +3126,11 @@ def as_cfunction(self, cfunc=None, scope=None, overridable=True, returns=None, e if scope is None: scope = cfunc.scope cfunc_type = cfunc.type -+ has_explicit_exc_clause=True ++ if cfunc_type.exception_check: ++ # this ensures `legacy_implicit_noexcept` does not trigger ++ # as it would result in a mismatch ++ # (declaration with except, definition with implicit noexcept) ++ has_explicit_exc_clause = True if len(self.args) != len(cfunc_type.args) or cfunc_type.has_varargs: error(self.pos, "wrong number of arguments") error(cfunc.pos, "previous declaration here") diff --git a/srcpkgs/python3-Cython/template b/srcpkgs/python3-Cython/template index faec5722ae171a..a01702f0747d10 100644 --- a/srcpkgs/python3-Cython/template +++ b/srcpkgs/python3-Cython/template @@ -1,7 +1,7 @@ # Template file for 'python3-Cython' pkgname=python3-Cython version=3.0.11 -revision=2 +revision=3 build_style=python3-module hostmakedepends="python3-setuptools" makedepends="python3-devel" From 06c01ba6cef7e3216a6d041a12a6af349b63c008 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Sat, 26 Oct 2024 18:59:52 -0300 Subject: [PATCH 11/11] sagemath: update to 10.5.beta8. --- .../sagemath/patches/37884-gap_4.13.1.patch | 203 ------------------ .../sagemath/patches/38873-fix_doctest.patch | 25 +++ srcpkgs/sagemath/patches/get_patches | 3 +- srcpkgs/sagemath/patches/revert-38826.patch | 26 +++ srcpkgs/sagemath/template | 4 +- 5 files changed, 55 insertions(+), 206 deletions(-) delete mode 100644 srcpkgs/sagemath/patches/37884-gap_4.13.1.patch create mode 100644 srcpkgs/sagemath/patches/38873-fix_doctest.patch create mode 100644 srcpkgs/sagemath/patches/revert-38826.patch diff --git a/srcpkgs/sagemath/patches/37884-gap_4.13.1.patch b/srcpkgs/sagemath/patches/37884-gap_4.13.1.patch deleted file mode 100644 index 321e0a94487da3..00000000000000 --- a/srcpkgs/sagemath/patches/37884-gap_4.13.1.patch +++ /dev/null @@ -1,203 +0,0 @@ -diff --git a/src/sage/algebras/fusion_rings/fusion_double.py b/src/sage/algebras/fusion_rings/fusion_double.py -index 71277561331..3b681d75d3b 100644 ---- a/src/sage/algebras/fusion_rings/fusion_double.py -+++ b/src/sage/algebras/fusion_rings/fusion_double.py -@@ -133,7 +133,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 - def __classcall_private__(cls, G, prefix='s', inject_variables=False): -diff --git a/src/sage/categories/simplicial_sets.py b/src/sage/categories/simplicial_sets.py -index aabd3cdbb4f..14bebdcd080 100644 ---- a/src/sage/categories/simplicial_sets.py -+++ b/src/sage/categories/simplicial_sets.py -@@ -591,9 +591,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 -@@ -674,10 +674,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) - [] -@@ -844,29 +844,29 @@ def twisted_homology(self, n, reduced=False): - sage: # needs sage.graphs - 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/combinat/matrices/latin.py b/src/sage/combinat/matrices/latin.py -index e2d818e9480..84e6c4fcc9b 100644 ---- a/src/sage/combinat/matrices/latin.py -+++ b/src/sage/combinat/matrices/latin.py -@@ -2444,7 +2444,7 @@ def p3_group_bitrade_generators(p): - EXAMPLES:: - - sage: from sage.combinat.matrices.latin import * -- sage: p3_group_bitrade_generators(3) -+ sage: p3_group_bitrade_generators(3) # random output - ((2,6,7)(3,8,9), - (1,2,3)(4,7,8)(5,6,9), - (1,9,2)(3,7,4)(5,8,6), -diff --git a/src/sage/groups/cubic_braid.py b/src/sage/groups/cubic_braid.py -index 61db70925e1..521289c7578 100644 ---- a/src/sage/groups/cubic_braid.py -+++ b/src/sage/groups/cubic_braid.py -@@ -282,7 +282,7 @@ def _richcmp_(self, other, op): - EXAMPLES:: - - sage: CBG3 = CubicBraidGroup(3) -- sage: sorted(CBG3) # indirect doctest -+ sage: sorted(CBG3) # indirect doctest, random output - [(c0*c1^-1)^2, c0*c1^-1*c0, c0^-1*c1*c0^-1, c0^-1*c1^-1*c0, - c1*c0^-1*c1, c0^-1*c1^-1*c0^-1, c0^-1*c1^-1, c1^-1*c0*c1^-1, - c0*c1^-1*c0^-1, c0^-1*c1, c0^-1*c1*c0, c0*c1^-1, c1*c0^-1, -diff --git a/src/sage/groups/finitely_presented.py b/src/sage/groups/finitely_presented.py -index 4ac2faa783b..7016d08381b 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/perm_gps/permgroup_named.py b/src/sage/groups/perm_gps/permgroup_named.py -index 5c153b93d4c..bd4afad2942 100644 ---- a/src/sage/groups/perm_gps/permgroup_named.py -+++ b/src/sage/groups/perm_gps/permgroup_named.py -@@ -3465,16 +3465,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)]) -@@ -3483,11 +3481,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/srcpkgs/sagemath/patches/38873-fix_doctest.patch b/srcpkgs/sagemath/patches/38873-fix_doctest.patch new file mode 100644 index 00000000000000..f42a8a570ca0cb --- /dev/null +++ b/srcpkgs/sagemath/patches/38873-fix_doctest.patch @@ -0,0 +1,25 @@ +diff --git a/src/sage/parallel/map_reduce.py b/src/sage/parallel/map_reduce.py +index 303f7405416..a182a136a2f 100644 +--- a/src/sage/parallel/map_reduce.py ++++ b/src/sage/parallel/map_reduce.py +@@ -1133,18 +1133,16 @@ def start_workers(self): + + TESTS:: + ++ sage: # long time + sage: from sage.parallel.map_reduce import RESetMapReduce + sage: def children(x): + ....: print(f"Starting: {x}", flush=True) + ....: return [] + sage: S = RESetMapReduce(roots=[1, 2], children=children) + sage: S.setup_workers(2) +- sage: S.start_workers(); sleep(float(5)) # long time ++ sage: S.start_workers(); sleep(float(5)) + Starting: ... + Starting: ... +- +- Cleanup:: +- + sage: S.finish() + """ + if self._nprocess == 0: diff --git a/srcpkgs/sagemath/patches/get_patches b/srcpkgs/sagemath/patches/get_patches index 381c307a3e962a..39fb67ef79aa7d 100755 --- a/srcpkgs/sagemath/patches/get_patches +++ b/srcpkgs/sagemath/patches/get_patches @@ -27,8 +27,9 @@ get_pr() { # run from patches dir cd $(dirname "$0") -get_pr 37884 "gap 4.13.1" +#get_pr 37884 "gap 4.13.1" #get_pr 38572 "nauty 2.8.9" #get_pr 37645 "fix doctest" get_pr 37885 "cython warnings" +get_pr 38873 "fix doctest" diff --git a/srcpkgs/sagemath/patches/revert-38826.patch b/srcpkgs/sagemath/patches/revert-38826.patch new file mode 100644 index 00000000000000..6a97d896db44f7 --- /dev/null +++ b/srcpkgs/sagemath/patches/revert-38826.patch @@ -0,0 +1,26 @@ +Revert "src/sage/env.py: canonicalize paths in a test" + +This reverts commit 53a6d3133ea7782c7498ea6ab6bd3041815bd6a6. + +See: https://github.com/sagemath/sage/pull/38826#issuecomment-2439757935 + +--- a/src/sage/env.py ++++ b/src/sage/env.py +@@ -8,14 +8,10 @@ environment variables, and has the same ``SAGE_ROOT`` and ``SAGE_LOCAL`` + + sage: env = {k:v for (k,v) in os.environ.items() if not k.startswith("SAGE_")} + sage: from subprocess import check_output +- sage: module_name = "sage.all" # hide .all import from the linter +- sage: cmd = f"from {module_name} import SAGE_ROOT, SAGE_LOCAL;" +- sage: cmd += "from os.path import samefile;" +- sage: cmd += f"s1 = samefile(SAGE_ROOT, '{SAGE_ROOT}');" +- sage: cmd += f"s2 = samefile(SAGE_LOCAL, '{SAGE_LOCAL}');" +- sage: cmd += "print(s1 and s2);" ++ sage: environment = "sage.all" ++ sage: cmd = f"from {environment} import SAGE_ROOT, SAGE_LOCAL; print((SAGE_ROOT, SAGE_LOCAL))" + sage: out = check_output([sys.executable, "-c", cmd], env=env).decode().strip() # long time +- sage: out == "True" # long time ++ sage: out == repr((SAGE_ROOT, SAGE_LOCAL)) # long time + True + + AUTHORS: diff --git a/srcpkgs/sagemath/template b/srcpkgs/sagemath/template index d19d4ac007f9ba..0fa1fb968249f6 100644 --- a/srcpkgs/sagemath/template +++ b/srcpkgs/sagemath/template @@ -1,6 +1,6 @@ # Template file for 'sagemath' pkgname=sagemath -version=10.5.beta7 +version=10.5.beta8 revision=1 _pypi_version=${version/.beta/b} _pypi_version=${_pypi_version/.rc/rc} @@ -32,7 +32,7 @@ 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-${_pypi_version}.tar.gz" -checksum=b98a883aab3b6f551243bc3cffb6825c92f6faf86604e9a9cc8f38cfb9af2f32 +checksum=0c386e88524a91ad97db4f3f8ee7408d8678072596b3ab5e9ffaea2cb6be13fd nocross="due to ntl (eclib, singular), fflas-ffpack, givaro, linbox, sympow, maxima" # main repo `.../src/sage/` is `.../sage/` here