From aed4db5045f40d9e3e0821bef8eef8a1d2a44543 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Tue, 7 Jun 2022 09:24:36 -0600 Subject: [PATCH] Version 9.6 - Fix path to libSingular.so (bz 2073208) - Fix threejs install location (bz 2081720) - Drop upstreamed -rubiks and -intersphinx-disabled-reftypes patches - Drop no longer used ratpoints BR - Thebe is no longer bundled --- sagemath-env.patch | 12 +- sagemath-escape.patch | 418 +++++++------------ sagemath-intersphinx-disabled-reftypes.patch | 17 - sagemath-latte.patch | 38 +- sagemath-python3.patch | 92 ++-- sagemath-rubiks.patch | 87 ---- sagemath-sagedoc.patch | 14 +- sagemath-scripts.patch | 175 ++------ sagemath.spec | 91 ++-- sources | 2 +- 10 files changed, 300 insertions(+), 646 deletions(-) delete mode 100644 sagemath-intersphinx-disabled-reftypes.patch delete mode 100644 sagemath-rubiks.patch diff --git a/sagemath-env.patch b/sagemath-env.patch index 27eee9e..ba4a713 100644 --- a/sagemath-env.patch +++ b/sagemath-env.patch @@ -1,6 +1,6 @@ diff -up src/sage/env.py.orig src/sage/env.py ---- src/sage/env.py.orig 2022-03-04 16:22:20.700225896 -0700 -+++ src/sage/env.py 2022-03-04 16:23:09.566306142 -0700 +--- src/sage/env.py.orig 2022-06-01 11:12:32.216196966 -0600 ++++ src/sage/env.py 2022-06-01 11:12:57.991304879 -0600 @@ -166,15 +166,15 @@ SAGE_DATE = var("SAGE_DATE", version.dat SAGE_VERSION_BANNER = var("SAGE_VERSION_BANNER", version.banner) @@ -21,7 +21,7 @@ diff -up src/sage/env.py.orig src/sage/env.py SAGE_SPKG_INST = var("SAGE_SPKG_INST", join(SAGE_LOCAL, "var", "lib", "sage", "installed")) # source tree of the Sage distribution -@@ -202,11 +202,11 @@ THEBE_DIR = var("THEBE_DIR", join(SAGE_S +@@ -202,16 +202,16 @@ THEBE_DIR = var("THEBE_DIR", join(SAGE_S COMBINATORIAL_DESIGN_DATA_DIR = var("COMBINATORIAL_DESIGN_DATA_DIR", join(SAGE_SHARE, "combinatorial_designs")) CREMONA_MINI_DATA_DIR = var("CREMONA_MINI_DATA_DIR", join(SAGE_SHARE, "cremona")) CREMONA_LARGE_DATA_DIR = var("CREMONA_LARGE_DATA_DIR", join(SAGE_SHARE, "cremona")) @@ -37,3 +37,9 @@ diff -up src/sage/env.py.orig src/sage/env.py MAXIMA = var("MAXIMA", "maxima") MAXIMA_FAS = var("MAXIMA_FAS") KENZO_FAS = var("KENZO_FAS") + SAGE_NAUTY_BINS_PREFIX = var("SAGE_NAUTY_BINS_PREFIX", "") +-RUBIKS_BINS_PREFIX = var("RUBIKS_BINS_PREFIX", "") ++RUBIKS_BINS_PREFIX = var("RUBIKS_BINS_PREFIX", "rubiks_") + FOURTITWO_HILBERT = var("FOURTITWO_HILBERT") + FOURTITWO_MARKOV = var("FOURTITWO_MARKOV") + FOURTITWO_GRAVER = var("FOURTITWO_GRAVER") diff --git a/sagemath-escape.patch b/sagemath-escape.patch index 02c187e..c666f42 100644 --- a/sagemath-escape.patch +++ b/sagemath-escape.patch @@ -1,7 +1,7 @@ diff -up src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx.orig src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx ---- src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx 2022-03-04 15:50:46.104253492 -0700 -@@ -229,7 +229,7 @@ cdef class FreeAlgebraElement_letterplac +--- src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx 2022-06-01 10:28:57.637203383 -0600 +@@ -230,7 +230,7 @@ cdef class FreeAlgebraElement_letterplac return '0' def _latex_(self): @@ -11,8 +11,8 @@ diff -up src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx.orig sage: K. = GF(25) diff -up src/sage/algebras/letterplace/free_algebra_letterplace.pyx.orig src/sage/algebras/letterplace/free_algebra_letterplace.pyx ---- src/sage/algebras/letterplace/free_algebra_letterplace.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/algebras/letterplace/free_algebra_letterplace.pyx 2022-03-04 15:50:46.104253492 -0700 +--- src/sage/algebras/letterplace/free_algebra_letterplace.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/algebras/letterplace/free_algebra_letterplace.pyx 2022-06-01 10:28:57.637203383 -0600 @@ -618,7 +618,7 @@ cdef class FreeAlgebra_letterplace(Algeb # Auxiliar methods @@ -22,21 +22,9 @@ diff -up src/sage/algebras/letterplace/free_algebra_letterplace.pyx.orig src/sag This auxiliary method is used for the representation of elements of this free algebra as a latex string. EXAMPLES:: -diff -up src/sage/coding/binary_code.pyx.orig src/sage/coding/binary_code.pyx ---- src/sage/coding/binary_code.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/coding/binary_code.pyx 2022-03-04 15:50:46.105253494 -0700 -@@ -517,7 +517,7 @@ cdef codeword permute_word_by_wp(WordPer - return image - - def test_expand_to_ortho_basis(B=None): -- """ -+ r""" - This function is written in pure C for speed, and is tested from this - function. - diff -up src/sage/coding/codecan/codecan.pyx.orig src/sage/coding/codecan/codecan.pyx ---- src/sage/coding/codecan/codecan.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/coding/codecan/codecan.pyx 2022-03-04 15:50:46.105253494 -0700 +--- src/sage/coding/codecan/codecan.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/coding/codecan/codecan.pyx 2022-06-01 10:29:22.924310247 -0600 @@ -369,7 +369,7 @@ cdef class InnerGroup: return self.transporter @@ -56,8 +44,8 @@ diff -up src/sage/coding/codecan/codecan.pyx.orig src/sage/coding/codecan/codeca self.frob_pow, OP_string(self.row_partition)) diff -up src/sage/combinat/crystals/letters.pyx.orig src/sage/combinat/crystals/letters.pyx ---- src/sage/combinat/crystals/letters.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/combinat/crystals/letters.pyx 2022-03-04 15:50:46.106253495 -0700 +--- src/sage/combinat/crystals/letters.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/combinat/crystals/letters.pyx 2022-06-01 10:29:22.925310251 -0600 @@ -558,7 +558,7 @@ cdef class EmptyLetter(Element): return 'E' @@ -68,8 +56,8 @@ diff -up src/sage/combinat/crystals/letters.pyx.orig src/sage/combinat/crystals/ EXAMPLES:: diff -up src/sage/combinat/crystals/tensor_product_element.pyx.orig src/sage/combinat/crystals/tensor_product_element.pyx ---- src/sage/combinat/crystals/tensor_product_element.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/combinat/crystals/tensor_product_element.pyx 2022-03-04 15:50:46.106253495 -0700 +--- src/sage/combinat/crystals/tensor_product_element.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/combinat/crystals/tensor_product_element.pyx 2022-06-01 10:29:22.925310251 -0600 @@ -144,8 +144,8 @@ cdef class TensorProductOfCrystalsElemen """ from sage.misc.latex import latex @@ -81,7 +69,7 @@ diff -up src/sage/combinat/crystals/tensor_product_element.pyx.orig src/sage/com def _ascii_art_(self): """ -@@ -784,7 +784,7 @@ cdef class CrystalOfTableauxElement(Tens +@@ -786,7 +786,7 @@ cdef class CrystalOfTableauxElement(Tens return repr(self.to_tableau()) def _repr_diagram(self): @@ -91,8 +79,8 @@ diff -up src/sage/combinat/crystals/tensor_product_element.pyx.orig src/sage/com EXAMPLES:: diff -up src/sage/graphs/matchpoly.pyx.orig src/sage/graphs/matchpoly.pyx ---- src/sage/graphs/matchpoly.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/graphs/matchpoly.pyx 2022-03-04 15:50:49.321258036 -0700 +--- src/sage/graphs/matchpoly.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/graphs/matchpoly.pyx 2022-06-01 10:29:22.925310251 -0600 @@ -50,7 +50,7 @@ x = polygen(ZZ, 'x') @@ -103,8 +91,8 @@ diff -up src/sage/graphs/matchpoly.pyx.orig src/sage/graphs/matchpoly.pyx If `p(G, k)` denotes the number of `k`-matchings (matchings with `k` edges) diff -up src/sage/graphs/strongly_regular_db.pyx.orig src/sage/graphs/strongly_regular_db.pyx ---- src/sage/graphs/strongly_regular_db.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/graphs/strongly_regular_db.pyx 2022-03-04 15:50:49.321258036 -0700 +--- src/sage/graphs/strongly_regular_db.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/graphs/strongly_regular_db.pyx 2022-06-01 10:29:22.926310255 -0600 @@ -2397,7 +2397,7 @@ def strongly_regular_from_two_intersecti A set of points in the projective geometry `PG(k,q)` is said to be a @@ -115,8 +103,8 @@ diff -up src/sage/graphs/strongly_regular_db.pyx.orig src/sage/graphs/strongly_r From a 2-intersection set `S` can be defined a strongly-regular graph in the following way: diff -up src/sage/groups/group.pyx.orig src/sage/groups/group.pyx ---- src/sage/groups/group.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/groups/group.pyx 2022-03-04 15:50:49.322258037 -0700 +--- src/sage/groups/group.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/groups/group.pyx 2022-06-01 10:29:22.926310255 -0600 @@ -51,7 +51,7 @@ def is_Group(x): @@ -126,18 +114,9 @@ diff -up src/sage/groups/group.pyx.orig src/sage/groups/group.pyx Base class for all groups TESTS:: -@@ -190,7 +190,7 @@ cdef class Group(Parent): - return self.order() != infinity - - def is_multiplicative(self): -- """ -+ r""" - Returns True if the group operation is given by \* (rather than - +). - diff -up src/sage/groups/perm_gps/partn_ref2/refinement_generic.pyx.orig src/sage/groups/perm_gps/partn_ref2/refinement_generic.pyx ---- src/sage/groups/perm_gps/partn_ref2/refinement_generic.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/groups/perm_gps/partn_ref2/refinement_generic.pyx 2022-03-04 15:50:49.322258037 -0700 +--- src/sage/groups/perm_gps/partn_ref2/refinement_generic.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/groups/perm_gps/partn_ref2/refinement_generic.pyx 2022-06-01 10:29:22.926310255 -0600 @@ -913,7 +913,7 @@ cdef class PartitionRefinement_generic: "\\begin{tikzpicture}\n" + "\\tikzset{level distance=3cm, edge from parent/.style=" + @@ -148,8 +127,8 @@ diff -up src/sage/groups/perm_gps/partn_ref2/refinement_generic.pyx.orig src/sag self._latex_act_node() diff -up src/sage/groups/perm_gps/partn_ref/data_structures.pyx.orig src/sage/groups/perm_gps/partn_ref/data_structures.pyx ---- src/sage/groups/perm_gps/partn_ref/data_structures.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/groups/perm_gps/partn_ref/data_structures.pyx 2022-03-04 15:50:49.322258037 -0700 +--- src/sage/groups/perm_gps/partn_ref/data_structures.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/groups/perm_gps/partn_ref/data_structures.pyx 2022-06-01 10:29:22.927310259 -0600 @@ -828,11 +828,11 @@ cdef SC_print_level(StabilizerChain *SC, print('| labels {}'.format([SC.labels [level][i] for i from 0 <= i < n])) print('|') @@ -165,8 +144,8 @@ diff -up src/sage/groups/perm_gps/partn_ref/data_structures.pyx.orig src/sage/gr cdef StabilizerChain *SC_new_base(StabilizerChain *SC, int *base, int base_len): """ diff -up src/sage/groups/perm_gps/partn_ref/refinement_binary.pyx.orig src/sage/groups/perm_gps/partn_ref/refinement_binary.pyx ---- src/sage/groups/perm_gps/partn_ref/refinement_binary.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/groups/perm_gps/partn_ref/refinement_binary.pyx 2022-03-04 15:50:49.323258039 -0700 +--- src/sage/groups/perm_gps/partn_ref/refinement_binary.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/groups/perm_gps/partn_ref/refinement_binary.pyx 2022-06-01 10:29:22.927310259 -0600 @@ -105,7 +105,7 @@ cdef class LinearBinaryCodeStruct(Binary self.ith_word = &ith_word_linear @@ -204,8 +183,8 @@ diff -up src/sage/groups/perm_gps/partn_ref/refinement_binary.pyx.orig src/sage/ Return return -1 if gamma_1(S1) < gamma_2(S2), 0 if gamma_1(S1) == gamma_2(S2), diff -up src/sage/groups/perm_gps/permgroup_element.pyx.orig src/sage/groups/perm_gps/permgroup_element.pyx ---- src/sage/groups/perm_gps/permgroup_element.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/groups/perm_gps/permgroup_element.pyx 2022-03-04 15:50:49.323258039 -0700 +--- src/sage/groups/perm_gps/permgroup_element.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/groups/perm_gps/permgroup_element.pyx 2022-06-01 10:29:22.927310259 -0600 @@ -1175,7 +1175,7 @@ cdef class PermutationGroupElement(Multi return result @@ -225,8 +204,8 @@ diff -up src/sage/groups/perm_gps/permgroup_element.pyx.orig src/sage/groups/per `s` is the number of swaps. diff -up src/sage/libs/eclib/newforms.pyx.orig src/sage/libs/eclib/newforms.pyx ---- src/sage/libs/eclib/newforms.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/libs/eclib/newforms.pyx 2022-03-04 15:50:49.323258039 -0700 +--- src/sage/libs/eclib/newforms.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/libs/eclib/newforms.pyx 2022-06-01 10:29:22.928310263 -0600 @@ -22,7 +22,7 @@ from sage.modular.all import Cusp @@ -237,8 +216,8 @@ diff -up src/sage/libs/eclib/newforms.pyx.orig src/sage/libs/eclib/newforms.pyx EXAMPLES:: diff -up src/sage/libs/fes.pyx.orig src/sage/libs/fes.pyx ---- src/sage/libs/fes.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/libs/fes.pyx 2022-03-04 15:50:49.324258040 -0700 +--- src/sage/libs/fes.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/libs/fes.pyx 2022-06-01 10:29:22.928310263 -0600 @@ -292,7 +292,7 @@ def find_coordinate_change(As, max_tries @@ -249,8 +228,8 @@ diff -up src/sage/libs/fes.pyx.orig src/sage/libs/fes.pyx INPUT: diff -up src/sage/libs/ntl/ntl_GF2E.pyx.orig src/sage/libs/ntl/ntl_GF2E.pyx ---- src/sage/libs/ntl/ntl_GF2E.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/libs/ntl/ntl_GF2E.pyx 2022-03-04 15:50:49.324258040 -0700 +--- src/sage/libs/ntl/ntl_GF2E.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/libs/ntl/ntl_GF2E.pyx 2022-06-01 10:29:22.928310263 -0600 @@ -73,7 +73,7 @@ def ntl_GF2E_random(ntl_GF2EContext_clas cdef class ntl_GF2E(object): @@ -269,30 +248,9 @@ diff -up src/sage/libs/ntl/ntl_GF2E.pyx.orig src/sage/libs/ntl/ntl_GF2E.pyx Returns a \class{FiniteFieldElement} representation of this element. If a \class{FiniteField} k is provided it is constructed in this field if possible. A \class{FiniteField} -diff -up src/sage/libs/ntl/ntl_GF2X.pyx.orig src/sage/libs/ntl/ntl_GF2X.pyx ---- src/sage/libs/ntl/ntl_GF2X.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/libs/ntl/ntl_GF2X.pyx 2022-03-04 15:50:49.324258040 -0700 -@@ -484,7 +484,7 @@ cdef class ntl_GF2X(object): - return [self[i] for i in range(GF2X_deg(self.x)+1)] - - def bin(ntl_GF2X self): -- """ -+ r""" - Returns binary representation of this element. It is - the same as setting \code{ntl.GF2XHexOutput(False)} and - representing this element afterwards. However it should be -@@ -507,7 +507,7 @@ cdef class ntl_GF2X(object): - return s - - def hex(ntl_GF2X self): -- """ -+ r""" - Return an hexadecimal representation of this element. - - It is the same as setting \code{ntl.GF2XHexOutput(True)} and diff -up src/sage/libs/ntl/ntl_mat_GF2E.pyx.orig src/sage/libs/ntl/ntl_mat_GF2E.pyx ---- src/sage/libs/ntl/ntl_mat_GF2E.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/libs/ntl/ntl_mat_GF2E.pyx 2022-03-04 15:50:49.324258040 -0700 +--- src/sage/libs/ntl/ntl_mat_GF2E.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/libs/ntl/ntl_mat_GF2E.pyx 2022-06-01 10:29:22.929310268 -0600 @@ -181,7 +181,7 @@ cdef class ntl_mat_GF2E(object): return unpickle_class_args, (ntl_mat_GF2E, (self.modulus_context(), self.x.NumRows(), self.x.NumCols(), self.list())) @@ -312,8 +270,8 @@ diff -up src/sage/libs/ntl/ntl_mat_GF2E.pyx.orig src/sage/libs/ntl/ntl_mat_GF2E. into row echelon form. If the optional argument \code{ncols} is supplied, stops when first ncols columns are in echelon diff -up src/sage/libs/ntl/ntl_mat_GF2.pyx.orig src/sage/libs/ntl/ntl_mat_GF2.pyx ---- src/sage/libs/ntl/ntl_mat_GF2.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/libs/ntl/ntl_mat_GF2.pyx 2022-03-04 15:50:49.325258042 -0700 +--- src/sage/libs/ntl/ntl_mat_GF2.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/libs/ntl/ntl_mat_GF2.pyx 2022-06-01 10:29:22.929310268 -0600 @@ -5,7 +5,7 @@ # distutils: extra_link_args = NTL_LIBEXTRA # distutils: language = c++ @@ -342,8 +300,8 @@ diff -up src/sage/libs/ntl/ntl_mat_GF2.pyx.orig src/sage/libs/ntl/ntl_mat_GF2.py EXAMPLES:: diff -up src/sage/libs/ntl/ntl_mat_ZZ.pyx.orig src/sage/libs/ntl/ntl_mat_ZZ.pyx ---- src/sage/libs/ntl/ntl_mat_ZZ.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/libs/ntl/ntl_mat_ZZ.pyx 2022-03-04 15:50:49.325258042 -0700 +--- src/sage/libs/ntl/ntl_mat_ZZ.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/libs/ntl/ntl_mat_ZZ.pyx 2022-06-01 10:29:22.929310268 -0600 @@ -73,7 +73,7 @@ cdef class ntl_mat_ZZ(object): The \class{mat_ZZ} class implements arithmetic with matrices over $\Z$. """ @@ -363,8 +321,8 @@ diff -up src/sage/libs/ntl/ntl_mat_ZZ.pyx.orig src/sage/libs/ntl/ntl_mat_ZZ.pyx EXAMPLES:: diff -up src/sage/libs/ntl/ntl_ZZ_pEX.pyx.orig src/sage/libs/ntl/ntl_ZZ_pEX.pyx ---- src/sage/libs/ntl/ntl_ZZ_pEX.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/libs/ntl/ntl_ZZ_pEX.pyx 2022-03-04 15:50:49.325258042 -0700 +--- src/sage/libs/ntl/ntl_ZZ_pEX.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/libs/ntl/ntl_ZZ_pEX.pyx 2022-06-01 10:29:22.930310272 -0600 @@ -5,7 +5,7 @@ # distutils: extra_link_args = NTL_LIBEXTRA # distutils: language = c++ @@ -375,8 +333,8 @@ diff -up src/sage/libs/ntl/ntl_ZZ_pEX.pyx.orig src/sage/libs/ntl/ntl_ZZ_pEX.pyx AUTHORS: diff -up src/sage/libs/ntl/ntl_ZZX.pyx.orig src/sage/libs/ntl/ntl_ZZX.pyx ---- src/sage/libs/ntl/ntl_ZZX.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/libs/ntl/ntl_ZZX.pyx 2022-03-04 15:50:49.326258043 -0700 +--- src/sage/libs/ntl/ntl_ZZX.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/libs/ntl/ntl_ZZX.pyx 2022-06-01 10:29:22.930310272 -0600 @@ -692,7 +692,7 @@ cdef class ntl_ZZX(object): return (self*other).quo_rem(g)[0] @@ -387,8 +345,8 @@ diff -up src/sage/libs/ntl/ntl_ZZX.pyx.orig src/sage/libs/ntl/ntl_ZZX.pyx t such that r = s*self + t*other. Otherwise return 0. This is \emph{not} the same as the \sage function on polynomials diff -up src/sage/libs/singular/polynomial.pyx.orig src/sage/libs/singular/polynomial.pyx ---- src/sage/libs/singular/polynomial.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/libs/singular/polynomial.pyx 2022-03-06 19:39:15.350978716 -0700 +--- src/sage/libs/singular/polynomial.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/libs/singular/polynomial.pyx 2022-06-01 10:29:22.930310272 -0600 @@ -22,7 +22,7 @@ cdef extern from *: # hack to get at cyt int unlikely(int) @@ -399,8 +357,8 @@ diff -up src/sage/libs/singular/polynomial.pyx.orig src/sage/libs/singular/polyn diff -up src/sage/libs/symmetrica/sc.pxi.orig src/sage/libs/symmetrica/sc.pxi ---- src/sage/libs/symmetrica/sc.pxi.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/libs/symmetrica/sc.pxi 2022-03-04 15:50:55.377266585 -0700 +--- src/sage/libs/symmetrica/sc.pxi.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/libs/symmetrica/sc.pxi 2022-06-01 10:29:22.930310272 -0600 @@ -103,7 +103,7 @@ def charvalue_symmetrica(irred, cls, tab @@ -411,9 +369,9 @@ diff -up src/sage/libs/symmetrica/sc.pxi.orig src/sage/libs/symmetrica/sc.pxi MATRIX object, the charactertable of S_b \wr S_a, co becomes a VECTOR object of classorders and cl becomes a VECTOR object of diff -up src/sage/matrix/matrix0.pyx.orig src/sage/matrix/matrix0.pyx ---- src/sage/matrix/matrix0.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/matrix/matrix0.pyx 2022-03-04 15:50:57.330269343 -0700 -@@ -2292,7 +2292,7 @@ cdef class Matrix(sage.structure.element +--- src/sage/matrix/matrix0.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/matrix/matrix0.pyx 2022-06-01 10:29:22.931310276 -0600 +@@ -2291,7 +2291,7 @@ cdef class Matrix(sage.structure.element # Functions ################################################### def act_on_polynomial(self, f): @@ -422,7 +380,7 @@ diff -up src/sage/matrix/matrix0.pyx.orig src/sage/matrix/matrix0.pyx Return the polynomial f(self\*x). INPUT: -@@ -2358,7 +2358,7 @@ cdef class Matrix(sage.structure.element +@@ -2357,7 +2357,7 @@ cdef class Matrix(sage.structure.element # Arithmetic ################################################### def commutator(self, other): @@ -431,7 +389,7 @@ diff -up src/sage/matrix/matrix0.pyx.orig src/sage/matrix/matrix0.pyx Return the commutator self\*other - other\*self. EXAMPLES:: -@@ -4976,7 +4976,7 @@ cdef class Matrix(sage.structure.element +@@ -4993,7 +4993,7 @@ cdef class Matrix(sage.structure.element # Arithmetic ################################################### cdef _vector_times_matrix_(self, Vector v): @@ -441,9 +399,9 @@ diff -up src/sage/matrix/matrix0.pyx.orig src/sage/matrix/matrix0.pyx INPUT: diff -up src/sage/matrix/matrix2.pyx.orig src/sage/matrix/matrix2.pyx ---- src/sage/matrix/matrix2.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/matrix/matrix2.pyx 2022-03-04 15:50:57.331269345 -0700 -@@ -9744,7 +9744,7 @@ cdef class Matrix(Matrix1): +--- src/sage/matrix/matrix2.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/matrix/matrix2.pyx 2022-06-01 10:29:22.933310284 -0600 +@@ -9762,7 +9762,7 @@ cdef class Matrix(Matrix1): return img def density(self): @@ -453,9 +411,9 @@ diff -up src/sage/matrix/matrix2.pyx.orig src/sage/matrix/matrix2.pyx By density we understand the ratio of the number of nonzero diff -up src/sage/matrix/matrix_integer_dense.pyx.orig src/sage/matrix/matrix_integer_dense.pyx ---- src/sage/matrix/matrix_integer_dense.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/matrix/matrix_integer_dense.pyx 2022-03-04 15:50:57.332269347 -0700 -@@ -746,7 +746,7 @@ cdef class Matrix_integer_dense(Matrix_d +--- src/sage/matrix/matrix_integer_dense.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/matrix/matrix_integer_dense.pyx 2022-06-01 10:29:22.934310289 -0600 +@@ -757,7 +757,7 @@ cdef class Matrix_integer_dense(Matrix_d return ans def _multiply_classical(self, Matrix_integer_dense right): @@ -465,8 +423,8 @@ diff -up src/sage/matrix/matrix_integer_dense.pyx.orig src/sage/matrix/matrix_in sage: n = 3 diff -up src/sage/matrix/matrix_modn_dense_template.pxi.orig src/sage/matrix/matrix_modn_dense_template.pxi ---- src/sage/matrix/matrix_modn_dense_template.pxi.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/matrix/matrix_modn_dense_template.pxi 2022-03-04 15:50:57.333269348 -0700 +--- src/sage/matrix/matrix_modn_dense_template.pxi.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/matrix/matrix_modn_dense_template.pxi 2022-06-01 10:29:22.934310289 -0600 @@ -635,7 +635,7 @@ cdef class Matrix_modn_dense_template(Ma return (word_size, little_endian, s), 10 @@ -486,8 +444,8 @@ diff -up src/sage/matrix/matrix_modn_dense_template.pxi.orig src/sage/matrix/mat using the xgcd relation between their first coefficients ``a`` and ``b``. diff -up src/sage/matrix/matrix_polynomial_dense.pyx.orig src/sage/matrix/matrix_polynomial_dense.pyx ---- src/sage/matrix/matrix_polynomial_dense.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/matrix/matrix_polynomial_dense.pyx 2022-03-04 15:50:57.333269348 -0700 +--- src/sage/matrix/matrix_polynomial_dense.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/matrix/matrix_polynomial_dense.pyx 2022-06-01 10:29:22.935310293 -0600 @@ -55,16 +55,16 @@ cdef class Matrix_polynomial_dense(Matri commonly used in the literature. @@ -514,8 +472,8 @@ diff -up src/sage/matrix/matrix_polynomial_dense.pyx.orig src/sage/matrix/matrix For the rest of this class description, we assume that one is working row-wise. For a given such module, all its bases are equivalent under diff -up src/sage/matrix/matrix_rational_dense.pyx.orig src/sage/matrix/matrix_rational_dense.pyx ---- src/sage/matrix/matrix_rational_dense.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/matrix/matrix_rational_dense.pyx 2022-03-04 15:50:57.334269350 -0700 +--- src/sage/matrix/matrix_rational_dense.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/matrix/matrix_rational_dense.pyx 2022-06-01 10:29:22.935310293 -0600 @@ -507,7 +507,7 @@ cdef class Matrix_rational_dense(Matrix_ return rich_to_bool(op, 0) @@ -544,8 +502,8 @@ diff -up src/sage/matrix/matrix_rational_dense.pyx.orig src/sage/matrix/matrix_r return the result. diff -up src/sage/matroids/basis_exchange_matroid.pyx.orig src/sage/matroids/basis_exchange_matroid.pyx ---- src/sage/matroids/basis_exchange_matroid.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/matroids/basis_exchange_matroid.pyx 2022-03-04 15:50:57.334269350 -0700 +--- src/sage/matroids/basis_exchange_matroid.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/matroids/basis_exchange_matroid.pyx 2022-06-01 10:29:22.935310293 -0600 @@ -2115,7 +2115,7 @@ cdef class BasisExchangeMatroid(Matroid) return EQ[0] @@ -556,8 +514,8 @@ diff -up src/sage/matroids/basis_exchange_matroid.pyx.orig src/sage/matroids/bas INPUT: diff -up src/sage/matroids/linear_matroid.pyx.orig src/sage/matroids/linear_matroid.pyx ---- src/sage/matroids/linear_matroid.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/matroids/linear_matroid.pyx 2022-03-04 15:50:57.335269351 -0700 +--- src/sage/matroids/linear_matroid.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/matroids/linear_matroid.pyx 2022-06-01 10:29:22.936310297 -0600 @@ -800,7 +800,7 @@ cdef class LinearMatroid(BasisExchangeMa # (field) isomorphism @@ -577,9 +535,9 @@ diff -up src/sage/matroids/linear_matroid.pyx.orig src/sage/matroids/linear_matr matroids. diff -up src/sage/matroids/matroid.pyx.orig src/sage/matroids/matroid.pyx ---- src/sage/matroids/matroid.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/matroids/matroid.pyx 2022-03-04 15:50:57.336269352 -0700 -@@ -3147,7 +3147,7 @@ cdef class Matroid(SageObject): +--- src/sage/matroids/matroid.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/matroids/matroid.pyx 2022-06-01 10:29:22.937310302 -0600 +@@ -3149,7 +3149,7 @@ cdef class Matroid(SageObject): return Polyhedron(vertices) def independence_matroid_polytope(self): @@ -588,7 +546,7 @@ diff -up src/sage/matroids/matroid.pyx.orig src/sage/matroids/matroid.pyx Return the independence matroid polytope of ``self``. This is defined as the convex hull of the vertices -@@ -3427,7 +3427,7 @@ cdef class Matroid(SageObject): +@@ -3429,7 +3429,7 @@ cdef class Matroid(SageObject): return self._is_isomorphism(other, morphism) cpdef is_isomorphism(self, other, morphism): @@ -597,7 +555,7 @@ diff -up src/sage/matroids/matroid.pyx.orig src/sage/matroids/matroid.pyx Test if a provided morphism induces a matroid isomorphism. A *morphism* is a map from the groundset of ``self`` to the groundset -@@ -3550,7 +3550,7 @@ cdef class Matroid(SageObject): +@@ -3552,7 +3552,7 @@ cdef class Matroid(SageObject): return self._is_isomorphism(other, mf) cpdef _is_isomorphism(self, other, morphism): @@ -606,7 +564,7 @@ diff -up src/sage/matroids/matroid.pyx.orig src/sage/matroids/matroid.pyx Version of is_isomorphism() that does no type checking. INPUT: -@@ -4313,7 +4313,7 @@ cdef class Matroid(SageObject): +@@ -4312,7 +4312,7 @@ cdef class Matroid(SageObject): return self.dual().extension(element, subsets).dual() cpdef modular_cut(self, subsets): @@ -615,7 +573,7 @@ diff -up src/sage/matroids/matroid.pyx.orig src/sage/matroids/matroid.pyx Compute the modular cut generated by ``subsets``. A *modular cut* is a collection `C` of flats such that -@@ -4714,7 +4714,7 @@ cdef class Matroid(SageObject): +@@ -4713,7 +4713,7 @@ cdef class Matroid(SageObject): return True cpdef is_cosimple(self): @@ -624,7 +582,7 @@ diff -up src/sage/matroids/matroid.pyx.orig src/sage/matroids/matroid.pyx Test if the matroid is cosimple. A matroid is *cosimple* if it contains no cocircuits of length 1 or 2. -@@ -7480,7 +7480,7 @@ cdef class Matroid(SageObject): +@@ -7479,7 +7479,7 @@ cdef class Matroid(SageObject): return A cpdef tutte_polynomial(self, x=None, y=None): @@ -634,8 +592,8 @@ diff -up src/sage/matroids/matroid.pyx.orig src/sage/matroids/matroid.pyx The *Tutte polynomial* of a matroid is the polynomial diff -up src/sage/misc/cachefunc.pyx.orig src/sage/misc/cachefunc.pyx ---- src/sage/misc/cachefunc.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/misc/cachefunc.pyx 2022-03-04 15:50:57.336269352 -0700 +--- src/sage/misc/cachefunc.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/misc/cachefunc.pyx 2022-06-01 10:29:22.938310306 -0600 @@ -835,7 +835,7 @@ cdef class CachedFunction(object): ## forward other questions to the cached function. @@ -646,9 +604,9 @@ diff -up src/sage/misc/cachefunc.pyx.orig src/sage/misc/cachefunc.pyx A cached function shall inherit the documentation diff -up src/sage/misc/sageinspect.py.orig src/sage/misc/sageinspect.py ---- src/sage/misc/sageinspect.py.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/misc/sageinspect.py 2022-03-04 15:50:57.336269352 -0700 -@@ -881,7 +881,7 @@ class SageArgSpecVisitor(ast.NodeVisitor +--- src/sage/misc/sageinspect.py.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/misc/sageinspect.py 2022-06-01 10:29:22.938310306 -0600 +@@ -882,7 +882,7 @@ class SageArgSpecVisitor(ast.NodeVisitor def _grep_first_pair_of_parentheses(s): @@ -657,7 +615,7 @@ diff -up src/sage/misc/sageinspect.py.orig src/sage/misc/sageinspect.py Return the first matching pair of parentheses in a code string. INPUT: -@@ -936,7 +936,7 @@ def _grep_first_pair_of_parentheses(s): +@@ -937,7 +937,7 @@ def _grep_first_pair_of_parentheses(s): def _split_syntactical_unit(s): @@ -667,21 +625,21 @@ diff -up src/sage/misc/sageinspect.py.orig src/sage/misc/sageinspect.py INPUT: diff -up src/sage/modular/arithgroup/arithgroup_element.pyx.orig src/sage/modular/arithgroup/arithgroup_element.pyx ---- src/sage/modular/arithgroup/arithgroup_element.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/modular/arithgroup/arithgroup_element.pyx 2022-03-04 15:50:57.337269354 -0700 +--- src/sage/modular/arithgroup/arithgroup_element.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/modular/arithgroup/arithgroup_element.pyx 2022-06-01 10:43:34.618895489 -0600 @@ -194,7 +194,7 @@ cdef class ArithmeticSubgroupElement(Mul return richcmp(self.__x, right.__x, op) - def __nonzero__(self): + def __bool__(self): - """ + r""" Return ``True``, since the ``self`` lives in SL(2,\Z), which does not contain the zero matrix. diff -up src/sage/modular/arithgroup/farey_symbol.pyx.orig src/sage/modular/arithgroup/farey_symbol.pyx ---- src/sage/modular/arithgroup/farey_symbol.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/modular/arithgroup/farey_symbol.pyx 2022-03-04 15:50:57.337269354 -0700 -@@ -615,7 +615,7 @@ cdef class Farey: +--- src/sage/modular/arithgroup/farey_symbol.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/modular/arithgroup/farey_symbol.pyx 2022-06-01 10:29:22.939310310 -0600 +@@ -610,7 +610,7 @@ cdef class Farey: if forced_format == 'plain': # output not using xymatrix s = r'\left( -\infty' @@ -691,8 +649,8 @@ diff -up src/sage/modular/arithgroup/farey_symbol.pyx.orig src/sage/modular/arit for i in xrange(len(a)): u = b[i] diff -up src/sage/modular/modsym/heilbronn.pyx.orig src/sage/modular/modsym/heilbronn.pyx ---- src/sage/modular/modsym/heilbronn.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/modular/modsym/heilbronn.pyx 2022-03-04 15:50:57.337269354 -0700 +--- src/sage/modular/modsym/heilbronn.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/modular/modsym/heilbronn.pyx 2022-06-01 10:29:22.939310310 -0600 @@ -211,7 +211,7 @@ cdef class Heilbronn: sig_off() @@ -703,18 +661,9 @@ diff -up src/sage/modular/modsym/heilbronn.pyx.orig src/sage/modular/modsym/heil - ``ans`` - fmpz_poly_t\*; pre-allocated an diff -up src/sage/modules/free_module_element.pyx.orig src/sage/modules/free_module_element.pyx ---- src/sage/modules/free_module_element.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/modules/free_module_element.pyx 2022-03-04 15:50:57.338269355 -0700 -@@ -2387,7 +2387,7 @@ cdef class FreeModuleElement(Vector): - - def plot_step(self, xmin=0, xmax=1, eps=None, res=None, - connect=True, **kwds): -- """ -+ r""" - INPUT: - - - ``xmin`` - (default: 0) start x position to start -@@ -3722,7 +3722,7 @@ cdef class FreeModuleElement(Vector): +--- src/sage/modules/free_module_element.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/modules/free_module_element.pyx 2022-06-01 10:36:28.861107674 -0600 +@@ -3731,7 +3731,7 @@ cdef class FreeModuleElement(Vector): from sage.misc.latex import latex vector_delimiters = latex.vector_delimiters() s = '\\left' + vector_delimiters[0] @@ -724,8 +673,8 @@ diff -up src/sage/modules/free_module_element.pyx.orig src/sage/modules/free_mod def dense_vector(self): diff -up src/sage/numerical/backends/generic_backend.pyx.orig src/sage/numerical/backends/generic_backend.pyx ---- src/sage/numerical/backends/generic_backend.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/numerical/backends/generic_backend.pyx 2022-03-04 15:50:57.338269355 -0700 +--- src/sage/numerical/backends/generic_backend.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/numerical/backends/generic_backend.pyx 2022-06-01 10:29:25.996323229 -0600 @@ -1376,7 +1376,7 @@ cdef class GenericBackend: raise NotImplementedError() @@ -763,10 +712,10 @@ diff -up src/sage/numerical/backends/generic_backend.pyx.orig src/sage/numerical This assumes that the problem has been solved with the simplex method diff -up src/sage/numerical/backends/glpk_backend.pyx.orig src/sage/numerical/backends/glpk_backend.pyx ---- src/sage/numerical/backends/glpk_backend.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/numerical/backends/glpk_backend.pyx 2022-03-04 15:50:57.339269357 -0700 +--- src/sage/numerical/backends/glpk_backend.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/numerical/backends/glpk_backend.pyx 2022-06-01 10:29:25.997323233 -0600 @@ -2312,7 +2312,7 @@ cdef class GLPKBackend(GenericBackend): - + raise ValueError("This parameter is not available.") cpdef bint is_variable_basic(self, int index): - """ @@ -802,8 +751,8 @@ diff -up src/sage/numerical/backends/glpk_backend.pyx.orig src/sage/numerical/ba This assumes that the problem has been solved with the simplex method diff -up src/sage/numerical/backends/interactivelp_backend.pyx.orig src/sage/numerical/backends/interactivelp_backend.pyx ---- src/sage/numerical/backends/interactivelp_backend.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/numerical/backends/interactivelp_backend.pyx 2022-03-04 15:50:57.339269357 -0700 +--- src/sage/numerical/backends/interactivelp_backend.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/numerical/backends/interactivelp_backend.pyx 2022-06-01 10:29:25.997323233 -0600 @@ -1063,7 +1063,7 @@ cdef class InteractiveLPBackend: problem_type, ring, objective_constant_term=d) @@ -857,22 +806,10 @@ diff -up src/sage/numerical/backends/interactivelp_backend.pyx.orig src/sage/num + r""" Return the :class:`InteractiveLPProblem` object associated with this backend. - EXAMPLES:: -diff -up src/sage/quivers/algebra_elements.pyx.orig src/sage/quivers/algebra_elements.pyx ---- src/sage/quivers/algebra_elements.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/quivers/algebra_elements.pyx 2022-03-04 15:50:57.339269357 -0700 -@@ -280,7 +280,7 @@ cdef class PathAlgebraElement(RingElemen - ) - - def _latex_(self): -- """ -+ r""" - Latex string representation. - EXAMPLES:: diff -up src/sage/rings/bernoulli_mod_p.pyx.orig src/sage/rings/bernoulli_mod_p.pyx ---- src/sage/rings/bernoulli_mod_p.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/bernoulli_mod_p.pyx 2022-03-04 15:50:57.339269357 -0700 +--- src/sage/rings/bernoulli_mod_p.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/bernoulli_mod_p.pyx 2022-06-01 10:29:27.580329923 -0600 @@ -41,7 +41,7 @@ from sage.rings.bernmm import bernmm_ber @@ -883,8 +820,8 @@ diff -up src/sage/rings/bernoulli_mod_p.pyx.orig src/sage/rings/bernoulli_mod_p. It checks the identity diff -up src/sage/rings/complex_interval.pyx.orig src/sage/rings/complex_interval.pyx ---- src/sage/rings/complex_interval.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/complex_interval.pyx 2022-03-04 15:50:57.340269358 -0700 +--- src/sage/rings/complex_interval.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/complex_interval.pyx 2022-06-01 10:29:27.580329923 -0600 @@ -732,7 +732,7 @@ cdef class ComplexIntervalFieldElement(s return x @@ -904,8 +841,8 @@ diff -up src/sage/rings/complex_interval.pyx.orig src/sage/rings/complex_interva EXAMPLES:: diff -up src/sage/rings/complex_mpc.pyx.orig src/sage/rings/complex_mpc.pyx ---- src/sage/rings/complex_mpc.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/complex_mpc.pyx 2022-03-04 15:50:57.340269358 -0700 +--- src/sage/rings/complex_mpc.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/complex_mpc.pyx 2022-06-01 10:29:27.581329927 -0600 @@ -137,15 +137,15 @@ cdef inline mpfr_rnd_t rnd_im(mpc_rnd_t sign = '[+-]' digit_ten = '[0123456789]' @@ -1008,8 +945,8 @@ diff -up src/sage/rings/complex_mpc.pyx.orig src/sage/rings/complex_mpc.pyx .. MATH:: diff -up src/sage/rings/finite_rings/hom_finite_field.pyx.orig src/sage/rings/finite_rings/hom_finite_field.pyx ---- src/sage/rings/finite_rings/hom_finite_field.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/finite_rings/hom_finite_field.pyx 2022-03-04 15:50:57.340269358 -0700 +--- src/sage/rings/finite_rings/hom_finite_field.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/finite_rings/hom_finite_field.pyx 2022-06-01 10:29:27.581329927 -0600 @@ -147,7 +147,7 @@ cdef class SectionFiniteFieldHomomorphis @@ -1020,9 +957,9 @@ diff -up src/sage/rings/finite_rings/hom_finite_field.pyx.orig src/sage/rings/fi EXAMPLES:: diff -up src/sage/rings/finite_rings/integer_mod.pyx.orig src/sage/rings/finite_rings/integer_mod.pyx ---- src/sage/rings/finite_rings/integer_mod.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/finite_rings/integer_mod.pyx 2022-03-04 15:50:57.341269359 -0700 -@@ -2241,7 +2241,7 @@ cdef class IntegerMod_gmp(IntegerMod_abs +--- src/sage/rings/finite_rings/integer_mod.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/finite_rings/integer_mod.pyx 2022-06-01 10:29:27.582329931 -0600 +@@ -2247,7 +2247,7 @@ cdef class IntegerMod_gmp(IntegerMod_abs return int(self.lift()) def __pow__(IntegerMod_gmp self, exp, m): # NOTE: m ignored, always use modulus of parent ring @@ -1031,7 +968,7 @@ diff -up src/sage/rings/finite_rings/integer_mod.pyx.orig src/sage/rings/finite_ EXAMPLES:: sage: R = Integers(10^10) -@@ -3541,7 +3541,7 @@ cdef class IntegerMod_int64(IntegerMod_a +@@ -3547,7 +3547,7 @@ cdef class IntegerMod_int64(IntegerMod_a return self._new_c(self.ivalue >> (-k)) def __pow__(IntegerMod_int64 self, exp, m): # NOTE: m ignored, always use modulus of parent ring @@ -1041,8 +978,8 @@ diff -up src/sage/rings/finite_rings/integer_mod.pyx.orig src/sage/rings/finite_ sage: R = Integers(10) diff -up src/sage/rings/number_field/number_field_element.pyx.orig src/sage/rings/number_field/number_field_element.pyx ---- src/sage/rings/number_field/number_field_element.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/number_field/number_field_element.pyx 2022-03-04 15:50:57.342269361 -0700 +--- src/sage/rings/number_field/number_field_element.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/number_field/number_field_element.pyx 2022-06-01 10:29:27.582329931 -0600 @@ -493,7 +493,7 @@ cdef class NumberFieldElement(FieldEleme return codomain(f(im_gens[0])) @@ -1053,8 +990,8 @@ diff -up src/sage/rings/number_field/number_field_element.pyx.orig src/sage/ring EXAMPLES:: diff -up src/sage/rings/number_field/number_field_morphisms.pyx.orig src/sage/rings/number_field/number_field_morphisms.pyx ---- src/sage/rings/number_field/number_field_morphisms.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/number_field/number_field_morphisms.pyx 2022-03-04 15:50:57.342269361 -0700 +--- src/sage/rings/number_field/number_field_morphisms.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/number_field/number_field_morphisms.pyx 2022-06-01 10:29:27.582329931 -0600 @@ -340,7 +340,7 @@ cdef class EmbeddedNumberFieldConversion @@ -1074,9 +1011,9 @@ diff -up src/sage/rings/number_field/number_field_morphisms.pyx.orig src/sage/ri target (with respect to the \code{abs} function). If margin is greater than 1, and x and y are the first and second closest elements to target, diff -up src/sage/rings/padics/local_generic_element.pyx.orig src/sage/rings/padics/local_generic_element.pyx ---- src/sage/rings/padics/local_generic_element.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/padics/local_generic_element.pyx 2022-03-04 15:50:57.342269361 -0700 -@@ -401,7 +401,7 @@ cdef class LocalGenericElement(Commutati +--- src/sage/rings/padics/local_generic_element.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/padics/local_generic_element.pyx 2022-06-01 10:29:27.583329935 -0600 +@@ -408,7 +408,7 @@ cdef class LocalGenericElement(Commutati return ans def _latex_(self): @@ -1086,8 +1023,8 @@ diff -up src/sage/rings/padics/local_generic_element.pyx.orig src/sage/rings/pad EXAMPLES:: diff -up src/sage/rings/padics/padic_capped_absolute_element.pyx.orig src/sage/rings/padics/padic_capped_absolute_element.pyx ---- src/sage/rings/padics/padic_capped_absolute_element.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/padics/padic_capped_absolute_element.pyx 2022-03-04 15:50:57.342269361 -0700 +--- src/sage/rings/padics/padic_capped_absolute_element.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/padics/padic_capped_absolute_element.pyx 2022-06-01 10:29:27.583329935 -0600 @@ -383,7 +383,7 @@ cdef class pAdicCappedAbsoluteElement(CA return ans @@ -1107,8 +1044,8 @@ diff -up src/sage/rings/padics/padic_capped_absolute_element.pyx.orig src/sage/r This is a helper method for :meth:`exp`. diff -up src/sage/rings/padics/padic_fixed_mod_element.pyx.orig src/sage/rings/padics/padic_fixed_mod_element.pyx ---- src/sage/rings/padics/padic_fixed_mod_element.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/padics/padic_fixed_mod_element.pyx 2022-03-04 15:50:57.343269362 -0700 +--- src/sage/rings/padics/padic_fixed_mod_element.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/padics/padic_fixed_mod_element.pyx 2022-06-01 10:29:27.583329935 -0600 @@ -449,7 +449,7 @@ cdef class pAdicFixedModElement(FMElemen return ans @@ -1128,8 +1065,8 @@ diff -up src/sage/rings/padics/padic_fixed_mod_element.pyx.orig src/sage/rings/p This is a helper method for :meth:`exp`. diff -up src/sage/rings/padics/padic_generic_element.pyx.orig src/sage/rings/padics/padic_generic_element.pyx ---- src/sage/rings/padics/padic_generic_element.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/padics/padic_generic_element.pyx 2022-03-04 15:50:57.343269362 -0700 +--- src/sage/rings/padics/padic_generic_element.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/padics/padic_generic_element.pyx 2022-06-01 10:29:27.584329940 -0600 @@ -544,7 +544,7 @@ cdef class pAdicGenericElement(LocalGene return self._repr_(mode=mode) @@ -1158,9 +1095,9 @@ diff -up src/sage/rings/padics/padic_generic_element.pyx.orig src/sage/rings/pad This is a helper method for :meth:`exp`. diff -up src/sage/rings/polynomial/multi_polynomial_libsingular.pyx.orig src/sage/rings/polynomial/multi_polynomial_libsingular.pyx ---- src/sage/rings/polynomial/multi_polynomial_libsingular.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/polynomial/multi_polynomial_libsingular.pyx 2022-03-04 15:50:57.344269364 -0700 -@@ -2520,7 +2520,7 @@ cdef class MPolynomial_libsingular(MPoly +--- src/sage/rings/polynomial/multi_polynomial_libsingular.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/polynomial/multi_polynomial_libsingular.pyx 2022-06-01 10:29:27.585329944 -0600 +@@ -2470,7 +2470,7 @@ cdef class MPolynomial_libsingular(MPoly return char_to_str(s) def _latex_(self): @@ -1170,8 +1107,8 @@ diff -up src/sage/rings/polynomial/multi_polynomial_libsingular.pyx.orig src/sag EXAMPLES:: diff -up src/sage/rings/polynomial/ore_polynomial_element.pyx.orig src/sage/rings/polynomial/ore_polynomial_element.pyx ---- src/sage/rings/polynomial/ore_polynomial_element.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/polynomial/ore_polynomial_element.pyx 2022-03-04 15:50:57.345269365 -0700 +--- src/sage/rings/polynomial/ore_polynomial_element.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/polynomial/ore_polynomial_element.pyx 2022-06-01 10:29:27.585329944 -0600 @@ -1707,8 +1707,8 @@ cdef class OrePolynomial(AlgebraElement) var = "" s += "%s %s"%(x,var) @@ -1184,9 +1121,9 @@ diff -up src/sage/rings/polynomial/ore_polynomial_element.pyx.orig src/sage/ring if s == " ": return "0" diff -up src/sage/rings/polynomial/polynomial_element.pyx.orig src/sage/rings/polynomial/polynomial_element.pyx ---- src/sage/rings/polynomial/polynomial_element.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/polynomial/polynomial_element.pyx 2022-03-04 15:50:57.346269367 -0700 -@@ -2634,8 +2634,8 @@ cdef class Polynomial(CommutativeAlgebra +--- src/sage/rings/polynomial/polynomial_element.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/polynomial/polynomial_element.pyx 2022-06-01 10:29:27.586329948 -0600 +@@ -2741,8 +2741,8 @@ cdef class Polynomial(CommutativeAlgebra var = "" s += "%s %s" % (x, var) s = s.replace(" + -", " - ") @@ -1197,7 +1134,7 @@ diff -up src/sage/rings/polynomial/polynomial_element.pyx.orig src/sage/rings/po s = s.replace("|","") if s == " ": return "0" -@@ -2735,7 +2735,7 @@ cdef class Polynomial(CommutativeAlgebra +@@ -2842,7 +2842,7 @@ cdef class Polynomial(CommutativeAlgebra raise IndexError("polynomials are immutable") cpdef _floordiv_(self, right): @@ -1206,7 +1143,7 @@ diff -up src/sage/rings/polynomial/polynomial_element.pyx.orig src/sage/rings/po Quotient of division of self by other. This is denoted //. If self = quotient \* right + remainder, this function returns -@@ -6532,8 +6532,8 @@ cdef class Polynomial(CommutativeAlgebra +@@ -6639,8 +6639,8 @@ cdef class Polynomial(CommutativeAlgebra where the roots `a` and `b` are to be considered in the algebraic closure of the fraction field of the coefficients and counted with multiplicities. If the polynomials are not monic this quantity is @@ -1218,8 +1155,8 @@ diff -up src/sage/rings/polynomial/polynomial_element.pyx.orig src/sage/rings/po INPUT: diff -up src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx.orig src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx ---- src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx 2022-03-04 15:50:57.346269367 -0700 +--- src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx 2022-06-01 10:29:27.587329952 -0600 @@ -1394,7 +1394,7 @@ cdef class Polynomial_integer_dense_flin return smallInteger(fmpz_poly_degree(self.__poly)) @@ -1230,9 +1167,9 @@ diff -up src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx.orig src/s and an integer `d` such that diff -up src/sage/rings/polynomial/real_roots.pyx.orig src/sage/rings/polynomial/real_roots.pyx ---- src/sage/rings/polynomial/real_roots.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/polynomial/real_roots.pyx 2022-03-04 15:50:57.347269368 -0700 -@@ -1255,7 +1255,7 @@ def de_casteljau_intvec(Vector_integer_d +--- src/sage/rings/polynomial/real_roots.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/polynomial/real_roots.pyx 2022-06-01 10:29:27.588329956 -0600 +@@ -1256,7 +1256,7 @@ def de_casteljau_intvec(Vector_integer_d cdef double half_ulp = ldexp(1.0 * 65/64, -54) def intvec_to_doublevec(Vector_integer_dense b, long err): @@ -1241,7 +1178,7 @@ diff -up src/sage/rings/polynomial/real_roots.pyx.orig src/sage/rings/polynomial Given a vector of integers A = [a1, ..., an], and an integer error bound E, returns a vector of floating-point numbers B = [b1, ..., bn], lower and upper error bounds F1 and F2, and -@@ -2145,7 +2145,7 @@ def subsample_vec_doctest(a, slen, llen) +@@ -2146,7 +2146,7 @@ def subsample_vec_doctest(a, slen, llen) return subsample_vec(a, slen, llen) def maximum_root_first_lambda(p): @@ -1251,8 +1188,8 @@ diff -up src/sage/rings/polynomial/real_roots.pyx.orig src/sage/rings/polynomial on its largest real root, using the first-\lambda algorithm from "Implementations of a New Theorem for Computing Bounds for Positive diff -up src/sage/rings/real_double_element_gsl.pyx.orig src/sage/rings/real_double_element_gsl.pyx ---- src/sage/rings/real_double_element_gsl.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/real_double_element_gsl.pyx 2022-03-04 15:58:11.186882002 -0700 +--- src/sage/rings/real_double_element_gsl.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/real_double_element_gsl.pyx 2022-06-01 10:29:27.588329956 -0600 @@ -227,7 +227,7 @@ cdef class RealDoubleElement_gsl(RealDou return a @@ -1263,8 +1200,8 @@ diff -up src/sage/rings/real_double_element_gsl.pyx.orig src/sage/rings/real_dou INPUT: diff -up src/sage/rings/real_mpfi.pyx.orig src/sage/rings/real_mpfi.pyx ---- src/sage/rings/real_mpfi.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/real_mpfi.pyx 2022-03-04 15:50:57.348269369 -0700 +--- src/sage/rings/real_mpfi.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/real_mpfi.pyx 2022-06-01 10:29:27.588329956 -0600 @@ -1309,7 +1309,7 @@ cdef class RealIntervalFieldElement(Ring return self.str(10) @@ -1275,8 +1212,8 @@ diff -up src/sage/rings/real_mpfi.pyx.orig src/sage/rings/real_mpfi.pyx EXAMPLES:: diff -up src/sage/rings/semirings/tropical_semiring.pyx.orig src/sage/rings/semirings/tropical_semiring.pyx ---- src/sage/rings/semirings/tropical_semiring.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/semirings/tropical_semiring.pyx 2022-03-04 15:50:57.348269369 -0700 +--- src/sage/rings/semirings/tropical_semiring.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/semirings/tropical_semiring.pyx 2022-06-01 10:29:27.589329961 -0600 @@ -99,7 +99,7 @@ cdef class TropicalSemiringElement(Eleme return repr(self._val) @@ -1287,8 +1224,8 @@ diff -up src/sage/rings/semirings/tropical_semiring.pyx.orig src/sage/rings/semi EXAMPLES:: diff -up src/sage/rings/tate_algebra_element.pyx.orig src/sage/rings/tate_algebra_element.pyx ---- src/sage/rings/tate_algebra_element.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/tate_algebra_element.pyx 2022-03-04 15:50:57.349269371 -0700 +--- src/sage/rings/tate_algebra_element.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/tate_algebra_element.pyx 2022-06-01 10:29:27.589329961 -0600 @@ -3447,7 +3447,7 @@ cdef class TateAlgebraElement(Commutativ @coerce_binop @@ -1298,21 +1235,9 @@ diff -up src/sage/rings/tate_algebra_element.pyx.orig src/sage/rings/tate_algebr Return the S-polynomial of this series and ``other``. INPUT: -diff -up src/sage/structure/coerce_maps.pyx.orig src/sage/structure/coerce_maps.pyx ---- src/sage/structure/coerce_maps.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/structure/coerce_maps.pyx 2022-03-04 15:50:57.349269371 -0700 -@@ -312,7 +312,7 @@ cdef class NamedConvertMap(Map): - - cdef class CallableConvertMap(Map): - def __init__(self, domain, codomain, func, parent_as_first_arg=None): -- """ -+ r""" - This lets one easily create maps from any callable object. - - This is especially useful to create maps from bound methods. diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx ---- src/sage/symbolic/expression.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/symbolic/expression.pyx 2022-03-04 16:01:04.179126250 -0700 +--- src/sage/symbolic/expression.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/symbolic/expression.pyx 2022-06-01 10:29:28.934335645 -0600 @@ -7,7 +7,7 @@ # distutils: include_dirs = SINGULAR_INCDIR # pynac/basic.h includes @@ -1322,27 +1247,9 @@ diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx Symbolic Expressions RELATIONAL EXPRESSIONS: -@@ -5202,7 +5202,7 @@ cdef class Expression(Expression_abc): - expand_rational = rational_expand = expand - - def expand_trig(self, full=False, half_angles=False, plus=True, times=True): -- """ -+ r""" - Expand trigonometric and hyperbolic functions of sums of angles - and of multiple angles occurring in self. For best results, self - should already be expanded. -@@ -7930,7 +7930,7 @@ cdef class Expression(Expression_abc): - return new_Expression_from_GEx(self._parent, x) - - def gosper_term(self, n): -- """ -+ r""" - Return Gosper's hypergeometric term for ``self``. - - Suppose ``f``=``self`` is a hypergeometric term such that: diff -up src/sage/symbolic/function.pyx.orig src/sage/symbolic/function.pyx ---- src/sage/symbolic/function.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/symbolic/function.pyx 2022-03-04 15:50:59.211272001 -0700 +--- src/sage/symbolic/function.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/symbolic/function.pyx 2022-06-01 10:29:28.934335645 -0600 @@ -1137,7 +1137,7 @@ cdef class BuiltinFunction(Function): # this is required to read old pickles of erf, elliptic_ec, etc. @@ -1352,24 +1259,3 @@ diff -up src/sage/symbolic/function.pyx.orig src/sage/symbolic/function.pyx EXAMPLES:: sage: cot.__setstate__([1,0]) -diff -up src/sage/symbolic/ring.pyx.orig src/sage/symbolic/ring.pyx ---- src/sage/symbolic/ring.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/symbolic/ring.pyx 2022-03-04 15:50:59.211272001 -0700 -@@ -110,7 +110,7 @@ cdef class SymbolicRing(sage.rings.abc.S - return "Symbolic Ring" - - def _latex_(self): -- """ -+ r""" - Return latex representation of the symbolic ring. - - EXAMPLES:: -@@ -759,7 +759,7 @@ cdef class SymbolicRing(sage.rings.abc.S - asm.forget() - - def var(self, name, latex_name=None, n=None, domain=None): -- """ -+ r""" - Return a symbolic variable as an element of the symbolic ring. - - INPUT: diff --git a/sagemath-intersphinx-disabled-reftypes.patch b/sagemath-intersphinx-disabled-reftypes.patch deleted file mode 100644 index f80e600..0000000 --- a/sagemath-intersphinx-disabled-reftypes.patch +++ /dev/null @@ -1,17 +0,0 @@ -Fix this error: - -[polynomia] updating environment: [new config] 62 added, 0 changed, 0 removed -[polynomia] Extension error (sage.docs.conf): -[polynomia] Handler for event 'missing-reference' threw an exception (exception: No such config value: intersphinx_disabled_reftypes) - -diff -up src/sage/docs/conf.py.orig src/sage/docs/conf.py ---- src/sage/docs/conf.py.orig 2022-03-04 16:33:15.479009340 -0700 -+++ src/sage/docs/conf.py 2022-03-06 18:49:34.742628130 -0700 -@@ -910,6 +910,7 @@ def setup(app): - if app.srcdir.startswith(SAGE_DOC_SRC): - app.add_config_value('intersphinx_mapping', {}, False) - app.add_config_value('intersphinx_cache_limit', 5, False) -+ app.add_config_value('intersphinx_disabled_reftypes', [], False) - app.connect('config-inited', set_intersphinx_mappings) - app.connect('builder-inited', intersphinx.load_mappings) - # We do *not* fully initialize intersphinx since we call it by hand diff --git a/sagemath-latte.patch b/sagemath-latte.patch index 8a52f19..0310862 100644 --- a/sagemath-latte.patch +++ b/sagemath-latte.patch @@ -1,21 +1,21 @@ -diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py ---- src/sage/interfaces/latte.py.orig 2020-10-30 14:03:03.974899895 -0600 -+++ src/sage/interfaces/latte.py 2020-10-30 16:26:14.352878056 -0600 -@@ -117,7 +117,7 @@ def count(arg, ehrhart_polynomial=False, +diff -up src/sage/features/latte.py.orig src/sage/features/latte.py +--- src/sage/features/latte.py.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/features/latte.py 2022-06-01 11:03:23.813894057 -0600 +@@ -21,7 +21,7 @@ class Latte_count(Executable): + sage: isinstance(Latte_count(), Latte_count) + True + """ +- Executable.__init__(self, "count", executable="count", ++ Executable.__init__(self, "count", executable="latte-count", + spkg="latte_int", + url=LATTE_URL) - arg = str_to_bytes(arg) - -- args = ['count'] -+ args = ['latte-count'] - if ehrhart_polynomial and multivariate_generating_function: - raise ValueError - if ehrhart_polynomial: -@@ -317,7 +317,7 @@ def integrate(arg, polynomial=None, algo - - from sage.rings.rational import Rational - -- args = ['integrate'] -+ args = ['latte-integrate'] - - got_polynomial = True if polynomial is not None else False +@@ -38,7 +38,7 @@ class Latte_integrate(Executable): + sage: isinstance(Latte_integrate(), Latte_integrate) + True + """ +- Executable.__init__(self, "integrate", executable="integrate", ++ Executable.__init__(self, "integrate", executable="latte-integrate", + spkg="latte_int", + url=LATTE_URL) diff --git a/sagemath-python3.patch b/sagemath-python3.patch index 0e47fce..08d24db 100644 --- a/sagemath-python3.patch +++ b/sagemath-python3.patch @@ -1,6 +1,6 @@ diff -up src/sage/cpython/debugimpl.c.orig src/sage/cpython/debugimpl.c ---- src/sage/cpython/debugimpl.c.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/cpython/debugimpl.c 2022-03-04 16:16:45.900676037 -0700 +--- src/sage/cpython/debugimpl.c.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/cpython/debugimpl.c 2022-06-01 10:53:46.037463665 -0600 @@ -148,6 +148,7 @@ static void _type_debug(PyTypeObject* tp printf(" tp_basicsize: %ld\n", (long)tp->tp_basicsize); printf(" tp_itemsize: %ld\n", (long)tp->tp_itemsize); @@ -18,8 +18,8 @@ diff -up src/sage/cpython/debugimpl.c.orig src/sage/cpython/debugimpl.c attr_pointer_meth(tp_call, "__call__"); attr_pointer_meth(tp_str, "__str__"); diff -up src/sage/cpython/debug.pyx.orig src/sage/cpython/debug.pyx ---- src/sage/cpython/debug.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/cpython/debug.pyx 2022-03-04 16:16:45.900676037 -0700 +--- src/sage/cpython/debug.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/cpython/debug.pyx 2022-06-01 10:53:46.037463665 -0600 @@ -231,6 +231,7 @@ def type_debug(cls): tp_basicsize: 16 tp_itemsize: 0 @@ -37,9 +37,9 @@ diff -up src/sage/cpython/debug.pyx.orig src/sage/cpython/debug.pyx tp_call (__call__): NULL tp_str (__str__): 0x7fc57d757020 diff -up src/sage/geometry/triangulation/point_configuration.py.orig src/sage/geometry/triangulation/point_configuration.py ---- src/sage/geometry/triangulation/point_configuration.py.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/geometry/triangulation/point_configuration.py 2022-03-04 16:16:45.901676039 -0700 -@@ -619,11 +619,11 @@ class PointConfiguration(UniqueRepresent +--- src/sage/geometry/triangulation/point_configuration.py.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/geometry/triangulation/point_configuration.py 2022-06-01 10:53:46.038463669 -0600 +@@ -618,11 +618,11 @@ class PointConfiguration(UniqueRepresent ['{{0,1,2,4},{1,2,3,4}}'] """ timeout = 600 @@ -54,8 +54,8 @@ diff -up src/sage/geometry/triangulation/point_configuration.py.orig src/sage/ge if verbose: print("#### TOPCOM input ####") diff -up src/sage/interfaces/frobby.py.orig src/sage/interfaces/frobby.py ---- src/sage/interfaces/frobby.py.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/interfaces/frobby.py 2022-03-04 16:16:45.901676039 -0700 +--- src/sage/interfaces/frobby.py.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/interfaces/frobby.py 2022-06-01 10:53:46.038463669 -0600 @@ -78,7 +78,7 @@ class Frobby: print("Frobby command: ", repr(command)) print("Frobby input:\n", input) @@ -66,21 +66,21 @@ diff -up src/sage/interfaces/frobby.py.orig src/sage/interfaces/frobby.py frinput = str_to_bytes(input) else: diff -up src/sage/interfaces/gfan.py.orig src/sage/interfaces/gfan.py ---- src/sage/interfaces/gfan.py.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/interfaces/gfan.py 2022-03-04 16:16:45.901676039 -0700 -@@ -61,7 +61,7 @@ class Gfan(object): - print("gfan input:\n%s" % I) +--- src/sage/interfaces/gfan.py.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/interfaces/gfan.py 2022-06-01 10:56:40.784198738 -0600 +@@ -109,7 +109,7 @@ class Gfan(object): + print("gfan input:\n%s" % input) gfan_processes = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE, - encoding='latin-1') + encoding='utf-8') - ans, err = gfan_processes.communicate(input=I) + ans, err = gfan_processes.communicate(input=input) # sometimes, gfan outputs stuff to stderr even though everything is fine diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py ---- src/sage/interfaces/latte.py.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/interfaces/latte.py 2022-03-04 16:16:45.901676039 -0700 -@@ -162,6 +162,7 @@ def count(arg, ehrhart_polynomial=False, +--- src/sage/interfaces/latte.py.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/interfaces/latte.py 2022-06-01 10:53:46.039463674 -0600 +@@ -159,6 +159,7 @@ def count(arg, ehrhart_polynomial=False, latte_proc = Popen(args, stdin=PIPE, stdout=PIPE, stderr=(None if verbose else PIPE), @@ -88,7 +88,7 @@ diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py cwd=str(SAGE_TMP)) ans, err = latte_proc.communicate(arg) -@@ -385,6 +386,7 @@ def integrate(arg, polynomial=None, algo +@@ -379,6 +380,7 @@ def integrate(arg, polynomial=None, algo latte_proc = Popen(args, stdin=PIPE, stdout=PIPE, stderr=(None if verbose else PIPE), @@ -97,8 +97,8 @@ diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py ans, err = latte_proc.communicate(arg) diff -up src/sage/interfaces/sagespawn.pyx.orig src/sage/interfaces/sagespawn.pyx ---- src/sage/interfaces/sagespawn.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/interfaces/sagespawn.pyx 2022-03-04 16:16:45.902676041 -0700 +--- src/sage/interfaces/sagespawn.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/interfaces/sagespawn.pyx 2022-06-01 10:53:46.039463674 -0600 @@ -1,6 +1,6 @@ """ Sage wrapper around pexpect's ``spawn`` class and @@ -147,8 +147,8 @@ diff -up src/sage/interfaces/sagespawn.pyx.orig src/sage/interfaces/sagespawn.py pass self.fileobj.close() diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.pyx ---- src/sage/libs/coxeter3/coxeter.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/libs/coxeter3/coxeter.pyx 2022-03-04 16:16:45.902676041 -0700 +--- src/sage/libs/coxeter3/coxeter.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/libs/coxeter3/coxeter.pyx 2022-06-01 10:53:46.039463674 -0600 @@ -37,7 +37,7 @@ cdef class String: EXAMPLES:: @@ -282,9 +282,9 @@ diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter. if rank == 0: raise NotImplementedError("Coxeter group of type ['A',0] using Coxeter 3 not yet implemented") diff -up src/sage/misc/sageinspect.py.orig src/sage/misc/sageinspect.py ---- src/sage/misc/sageinspect.py.orig 2022-03-04 15:50:57.336269352 -0700 -+++ src/sage/misc/sageinspect.py 2022-03-04 16:19:08.779910689 -0700 -@@ -504,12 +504,9 @@ class SageArgSpecVisitor(ast.NodeVisitor +--- src/sage/misc/sageinspect.py.orig 2022-06-01 10:29:22.938310306 -0600 ++++ src/sage/misc/sageinspect.py 2022-06-01 10:53:46.040463678 -0600 +@@ -505,12 +505,9 @@ class SageArgSpecVisitor(ast.NodeVisitor """ return node.id @@ -300,7 +300,7 @@ diff -up src/sage/misc/sageinspect.py.orig src/sage/misc/sageinspect.py INPUT: -@@ -523,7 +520,7 @@ class SageArgSpecVisitor(ast.NodeVisitor +@@ -524,7 +521,7 @@ class SageArgSpecVisitor(ast.NodeVisitor sage: import ast, sage.misc.sageinspect as sms sage: visitor = sms.SageArgSpecVisitor() @@ -310,9 +310,9 @@ diff -up src/sage/misc/sageinspect.py.orig src/sage/misc/sageinspect.py [True, False, None] sage: [type(vis(n)) for n in ['True', 'False', 'None']] diff -up src/sage/plot/plot3d/plot3d.py.orig src/sage/plot/plot3d/plot3d.py ---- src/sage/plot/plot3d/plot3d.py.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/plot/plot3d/plot3d.py 2022-03-06 19:41:13.399013881 -0700 -@@ -148,6 +148,7 @@ from .shapes import arrow3d +--- src/sage/plot/plot3d/plot3d.py.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/plot/plot3d/plot3d.py 2022-06-01 10:53:46.040463678 -0600 +@@ -219,6 +219,7 @@ from .shapes import arrow3d from .base import Graphics3dGroup from sage.plot.colors import rainbow from .texture import Texture @@ -320,7 +320,7 @@ diff -up src/sage/plot/plot3d/plot3d.py.orig src/sage/plot/plot3d/plot3d.py from sage.functions.trig import cos, sin from sage.misc.sageinspect import sage_getargspec, is_function_or_cython_function -@@ -182,7 +183,7 @@ class _Coordinates(object): +@@ -255,7 +256,7 @@ class _Coordinates(object): sage: arb((x+z,y*z,z), z, (x,y)) Arbitrary Coordinates coordinate transform (z in terms of x, y) """ @@ -330,9 +330,9 @@ diff -up src/sage/plot/plot3d/plot3d.py.orig src/sage/plot/plot3d/plot3d.py raise ValueError('variables were specified incorrectly for this coordinate system; incorrect variables were %s'%list(set(all_vars).symmetric_difference(set(indep_vars+[dep_var])))) self.dep_var = dep_var diff -up src/sage/rings/integer.pyx.orig src/sage/rings/integer.pyx ---- src/sage/rings/integer.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/integer.pyx 2022-03-04 16:16:45.904676044 -0700 -@@ -7023,7 +7023,7 @@ cdef int mpz_set_str_python(mpz_ptr z, c +--- src/sage/rings/integer.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/integer.pyx 2022-06-01 10:53:46.041463682 -0600 +@@ -7069,7 +7069,7 @@ cdef int mpz_set_str_python(mpz_ptr z, c x += 1 # Strip spaces # Disallow a sign here @@ -342,8 +342,8 @@ diff -up src/sage/rings/integer.pyx.orig src/sage/rings/integer.pyx assert base >= 2 diff -up src/sage/rings/polynomial/pbori/pbori.pyx.orig src/sage/rings/polynomial/pbori/pbori.pyx ---- src/sage/rings/polynomial/pbori/pbori.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/polynomial/pbori/pbori.pyx 2022-03-04 16:16:45.905676046 -0700 +--- src/sage/rings/polynomial/pbori/pbori.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/polynomial/pbori/pbori.pyx 2022-06-01 10:53:46.042463686 -0600 @@ -4730,8 +4730,7 @@ cdef class PolynomialConstruct: # So, it is just a conversion. [Simon King] return (ring)._element_constructor_(x) @@ -355,8 +355,8 @@ diff -up src/sage/rings/polynomial/pbori/pbori.pyx.orig src/sage/rings/polynomia cdef class MonomialConstruct: diff -up src/sage/rings/real_mpfi.pyx.orig src/sage/rings/real_mpfi.pyx ---- src/sage/rings/real_mpfi.pyx.orig 2022-03-04 15:50:57.348269369 -0700 -+++ src/sage/rings/real_mpfi.pyx 2022-03-04 16:16:45.905676046 -0700 +--- src/sage/rings/real_mpfi.pyx.orig 2022-06-01 10:29:27.588329956 -0600 ++++ src/sage/rings/real_mpfi.pyx 2022-06-01 10:53:46.043463690 -0600 @@ -1943,12 +1943,12 @@ cdef class RealIntervalFieldElement(Ring cdef long digits @@ -382,8 +382,8 @@ diff -up src/sage/rings/real_mpfi.pyx.orig src/sage/rings/real_mpfi.pyx mant_string = bytes_to_str(tmp_cstr+1) sign_string = bytes_to_str(b'-') diff -up src/sage/rings/real_mpfr.pyx.orig src/sage/rings/real_mpfr.pyx ---- src/sage/rings/real_mpfr.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/rings/real_mpfr.pyx 2022-03-04 16:16:45.906676047 -0700 +--- src/sage/rings/real_mpfr.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/rings/real_mpfr.pyx 2022-06-01 10:53:46.043463690 -0600 @@ -2092,7 +2092,7 @@ cdef class RealNumber(sage.structure.ele if s is NULL: raise RuntimeError("unable to convert an mpfr number to a string") @@ -394,9 +394,9 @@ diff -up src/sage/rings/real_mpfr.pyx.orig src/sage/rings/real_mpfr.pyx t = char_to_str(s + 1) else: diff -up src/sage/structure/sage_object.pyx.orig src/sage/structure/sage_object.pyx ---- src/sage/structure/sage_object.pyx.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/structure/sage_object.pyx 2022-03-04 16:16:45.906676047 -0700 -@@ -690,7 +690,7 @@ cdef class SageObject: +--- src/sage/structure/sage_object.pyx.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/structure/sage_object.pyx 2022-06-01 10:53:46.044463695 -0600 +@@ -691,7 +691,7 @@ cdef class SageObject: try: s = self._interface_init_(I) except Exception: @@ -406,9 +406,9 @@ diff -up src/sage/structure/sage_object.pyx.orig src/sage/structure/sage_object. if c: try: diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx ---- src/sage/symbolic/expression.pyx.orig 2022-03-04 16:01:04.179126250 -0700 -+++ src/sage/symbolic/expression.pyx 2022-03-04 16:16:45.908676050 -0700 -@@ -14016,7 +14016,7 @@ cdef class hold_class: +--- src/sage/symbolic/expression.pyx.orig 2022-06-01 10:29:28.934335645 -0600 ++++ src/sage/symbolic/expression.pyx 2022-06-01 10:53:46.045463699 -0600 +@@ -14072,7 +14072,7 @@ cdef class hold_class: sage: SR(2)^5 32 """ @@ -417,7 +417,7 @@ diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx def __exit__(self, *args): """ -@@ -14029,7 +14029,7 @@ cdef class hold_class: +@@ -14085,7 +14085,7 @@ cdef class hold_class: sage: SR(2)^5 32 """ diff --git a/sagemath-rubiks.patch b/sagemath-rubiks.patch deleted file mode 100644 index 372312e..0000000 --- a/sagemath-rubiks.patch +++ /dev/null @@ -1,87 +0,0 @@ -diff -up src/sage/features/rubiks.py.orig src/sage/features/rubiks.py ---- src/sage/features/rubiks.py.orig 2020-10-24 11:37:59.000000000 -0600 -+++ src/sage/features/rubiks.py 2020-10-30 16:35:54.828279888 -0600 -@@ -30,7 +30,7 @@ class cu2(Executable): - sage: isinstance(cu2(), cu2) - True - """ -- Executable.__init__(self, "cu2", executable="cu2", -+ Executable.__init__(self, "cu2", executable="rubiks_cu2", - spkg="rubiks") - - -@@ -53,7 +53,7 @@ class size222(Executable): - sage: isinstance(size222(), size222) - True - """ -- Executable.__init__(self, "size222", executable="size222", -+ Executable.__init__(self, "size222", executable="rubiks_size222", - spkg="rubiks") - - -@@ -76,7 +76,7 @@ class optimal(Executable): - sage: isinstance(optimal(), optimal) - True - """ -- Executable.__init__(self, "optimal", executable="optimal", -+ Executable.__init__(self, "optimal", executable="rubiks_optimal", - spkg="rubiks") - - -@@ -99,7 +99,7 @@ class mcube(Executable): - sage: isinstance(mcube(), mcube) - True - """ -- Executable.__init__(self, "mcube", executable="mcube", -+ Executable.__init__(self, "mcube", executable="rubiks_mcube", - spkg="rubiks") - - -@@ -122,7 +122,7 @@ class dikcube(Executable): - sage: isinstance(dikcube(), dikcube) - True - """ -- Executable.__init__(self, "dikcube", executable="dikcube", -+ Executable.__init__(self, "dikcube", executable="rubiks_dikcube", - spkg="rubiks") - - -@@ -145,7 +145,7 @@ class cubex(Executable): - sage: isinstance(cubex(), cubex) - True - """ -- Executable.__init__(self, "cubex", executable="cubex", -+ Executable.__init__(self, "cubex", executable="rubiks_cubex", - spkg="rubiks") - - -diff -up src/sage/interfaces/rubik.py.orig src/sage/interfaces/rubik.py ---- src/sage/interfaces/rubik.py.orig 2020-10-24 11:37:59.000000000 -0600 -+++ src/sage/interfaces/rubik.py 2020-10-30 16:37:38.173193027 -0600 -@@ -96,7 +96,7 @@ class OptimalSolver: - """ - Interface to Michael Reid's optimal Rubik's Cube solver. - """ -- __cmd = "optimal" -+ __cmd = "rubiks_optimal" - - def __init__(self, verbose=False, wait=True): - self.verbose = verbose -@@ -185,7 +185,7 @@ move_map = { - - class CubexSolver: - -- __cmd = "cubex" -+ __cmd = "rubiks_cubex" - - def __call__(self, facets): - return self.solve(facets) -@@ -238,7 +238,7 @@ class CubexSolver: - - class DikSolver: - -- __cmd = "dikcube" -+ __cmd = "rubiks_dikcube" - - def __call__(self, facets): - return self.solve(facets) diff --git a/sagemath-sagedoc.patch b/sagemath-sagedoc.patch index d391959..ad54e2e 100644 --- a/sagemath-sagedoc.patch +++ b/sagemath-sagedoc.patch @@ -1,7 +1,7 @@ diff -up src/sage_docbuild/ext/multidocs.py.orig src/sage_docbuild/ext/multidocs.py ---- src/sage_docbuild/ext/multidocs.py.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage_docbuild/ext/multidocs.py 2022-03-04 16:08:42.795455456 -0700 -@@ -84,8 +84,11 @@ def merge_environment(app, env): +--- src/sage_docbuild/ext/multidocs.py.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage_docbuild/ext/multidocs.py 2022-06-01 10:51:11.630814539 -0600 +@@ -83,8 +83,11 @@ def merge_environment(app, env): for ind in newalldoc: # treat subdocument source as orphaned file and don't complain md = env.metadata.get(ind, dict()) @@ -16,9 +16,9 @@ diff -up src/sage_docbuild/ext/multidocs.py.orig src/sage_docbuild/ext/multidocs newcite = {} for ind, (path, tag, lineno) in citations.items(): diff -up src/sage/interfaces/singular.py.orig src/sage/interfaces/singular.py ---- src/sage/interfaces/singular.py.orig 2022-01-30 06:41:50.000000000 -0700 -+++ src/sage/interfaces/singular.py 2022-03-04 16:09:20.555418442 -0700 -@@ -2330,11 +2330,11 @@ def generate_docstring_dictionary(): +--- src/sage/interfaces/singular.py.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/sage/interfaces/singular.py 2022-06-01 10:51:11.630814539 -0600 +@@ -2327,11 +2327,11 @@ def generate_docstring_dictionary(): L, in_node, curr_node = [], False, None @@ -32,4 +32,4 @@ diff -up src/sage/interfaces/singular.py.orig src/sage/interfaces/singular.py + with gzip.open(singular_info_file, encoding='latin-1') as f: for line in f: - m = re.match(new_node,line) + m = re.match(new_node, line) diff --git a/sagemath-scripts.patch b/sagemath-scripts.patch index e2840c2..bfd9b88 100644 --- a/sagemath-scripts.patch +++ b/sagemath-scripts.patch @@ -1,6 +1,6 @@ diff -up src/bin/sage.orig src/bin/sage ---- src/bin/sage.orig 2021-08-22 02:44:33.000000000 -0600 -+++ src/bin/sage 2021-08-26 13:09:38.262699484 -0600 +--- src/bin/sage.orig 2022-05-15 16:11:11.000000000 -0600 ++++ src/bin/sage 2022-06-01 10:49:26.133371574 -0600 @@ -109,7 +109,6 @@ usage() { echo " --gap [...] -- run Sage's Gap with given arguments" echo " --gp [...] -- run Sage's PARI/GP calculator with given arguments" @@ -9,7 +9,7 @@ diff -up src/bin/sage.orig src/bin/sage echo " --maxima [...] -- run Sage's Maxima with given arguments" echo " --mwrank [...] -- run Sage's mwrank with given arguments" echo " --notebook=[...] -- start the Sage notebook (valid options are" -@@ -160,111 +159,6 @@ if [ -f "${SELF}-env-config" ]; then +@@ -160,60 +159,6 @@ if [ -f "${SELF}-env-config" ]; then fi ##################################################################### @@ -51,77 +51,26 @@ diff -up src/bin/sage.orig src/bin/sage - exit 127 -fi - --# Check for '-i' before sourcing sage-env: running "make" +-# Check for '-i' etc. before sourcing sage-env: running "make" -# should be run outside of the Sage shell. --if [ "$1" = '-f' ]; then -- # -f is an alias for -i -f -- set -- -i "$@" --fi -- --if [ "$1" = '-i' ]; then -- shift -- if [ -z "$MAKE" ]; then -- MAKE="make" -- fi -- -- set -e -- cd "$SAGE_ROOT" -- -- # Parse options -- PACKAGES="" # Packages to install -- INSTALL_OPTIONS="" # Options to sage-spkg -- for OPT in "$@"; do -- case "$OPT" in -- -info|--info) -- echo >&2 "Error: 'sage -i $OPT ' is no longer supported, use 'sage --info ' instead." -- exit 2;; -- -f) FORCE_INSTALL=yes;; -- # Setting SAGE_CHECK here duplicates what we do in sage-spkg -- # but we need it in "make" already when there are (order-only) -- # dependencies on packages providing test infrastructure -- -c) INSTALL_OPTIONS="$INSTALL_OPTIONS $OPT"; export SAGE_CHECK=yes;; -- -w) INSTALL_OPTIONS="$INSTALL_OPTIONS $OPT"; export SAGE_CHECK=warn;; -- -*) INSTALL_OPTIONS="$INSTALL_OPTIONS $OPT";; -- *) PACKAGES="$PACKAGES $OPT";; -- esac -- done -- -- # First, uninstall the packages if -f was given -- if [ "$FORCE_INSTALL" = yes ]; then -- for PKG in $PACKAGES; do -- $MAKE "$PKG-clean" || true # Ignore errors -- done -- fi -- -- # Make sure that the toolchain is up-to-date -- # (which is a dependency of every package) -- $MAKE all-toolchain -- -- ALL_TARGETS="$($MAKE list 2>/dev/null)" -- -- # Now install the packages -- for PKG in $PACKAGES; do -- echo -- # Check that $PKG is actually a Makefile target -- # See https://trac.sagemath.org/ticket/25078 -- if ! echo "$ALL_TARGETS" | grep "^${PKG}$" >/dev/null; then -- echo >&2 "Error: package '$PKG' not found" -- echo >&2 "Note: if it is an old-style package, installing these is no longer supported" -- exit 1 +-case "$1" in +- -i|-f|-p) +- # Delegate further option handling to the non-installed sage-site script. +- # (These options become unavailable if the directory $SAGE_ROOT is removed.) +- if [ -d "$SAGE_ROOT" ]; then +- exec "$SAGE_ROOT/build/bin/sage-site" "$@" +- # fallthrough if there is no sage-site script - fi -- $MAKE SAGE_SPKG="sage-spkg $INSTALL_OPTIONS" "$PKG" -- done -- echo "New packages may have been installed." -- echo "Re-running configure and make in case any dependent packages need updating." -- touch "$SAGE_ROOT/configure" && $MAKE all-build -- exit 0 --fi +- echo "Error: unknown option: $1" +- exit 1 +- ;; +-esac - -##################################################################### # Report information about the Sage environment ##################################################################### -@@ -309,20 +203,6 @@ fi +@@ -264,18 +209,6 @@ fi # Prepare for running Sage, either interactively or non-interactively. sage_setup() { @@ -136,34 +85,11 @@ diff -up src/bin/sage.orig src/bin/sage - echo >&2 '************************************************************************' - exit 1 - fi -- -- maybe_sage_location - if [ ! -d "$IPYTHONDIR" ]; then # make sure that $DOT_SAGE exists so that ipython will happily # create its config directories there. If DOT_SAGE doesn't -@@ -333,20 +213,6 @@ sage_setup() { - } - - --# Check to see if the whole Sage install tree has moved. If so, --# change various hardcoded paths. Skip this if we don't have write --# access to $SAGE_LOCAL (e.g. when running as a different user) or --# if Python and sage-location haven't been installed yet. --maybe_sage_location() --{ -- if [ -n "$SAGE_LOCAL" -a -w "$SAGE_LOCAL" ]; then -- if [ -x "$SAGE_VENV/bin/python" ] && [ -x "$SAGE_VENV/bin/sage-location" ]; then -- sage-location || exit $? -- fi -- fi --} -- -- - # Start an interactive Sage session, this function never returns. - interactive_sage() { - sage_setup -@@ -384,8 +250,6 @@ usage_advanced() { +@@ -323,8 +256,6 @@ usage_advanced() { echo " --nodotsage -- run Sage without using the user's" echo " .sage directory: create and use a temporary" echo " .sage directory instead." @@ -172,7 +98,7 @@ diff -up src/bin/sage.orig src/bin/sage echo " --simple-prompt -- pass the option through to IPython: use" echo " this option with sage-shell mode in emacs" if [ -n "$SAGE_SRC" -a -d "$SAGE_SRC" ]; then -@@ -419,18 +283,9 @@ usage_advanced() { +@@ -358,18 +289,9 @@ usage_advanced() { echo " environment (not Sage), passing additional" echo " additional options to IPython" echo " --jupyter [...] -- run Sage's Jupyter with given arguments" @@ -191,7 +117,7 @@ diff -up src/bin/sage.orig src/bin/sage echo " --python [...], --python3 [...]" echo " -- run the Python 3 interpreter" echo " -R [...] -- run Sage's R with the given arguments" -@@ -677,11 +532,6 @@ if [ "$1" = '-lisp' -o "$1" = '--lisp' ] +@@ -620,11 +542,6 @@ if [ "$1" = '-lisp' -o "$1" = '--lisp' ] exec ecl "$@" fi @@ -203,7 +129,7 @@ diff -up src/bin/sage.orig src/bin/sage if [ "$1" = '-maxima' -o "$1" = '--maxima' ]; then shift maxima_cmd=$(sage-config MAXIMA 2>/dev/null) -@@ -706,11 +556,6 @@ if [ "$1" = '-R' -o "$1" = '--R' ]; then +@@ -649,11 +566,6 @@ if [ "$1" = '-R' -o "$1" = '--R' ]; then exec R "$@" fi @@ -215,19 +141,18 @@ diff -up src/bin/sage.orig src/bin/sage ##################################################################### # sage --sh and sage --buildsh ##################################################################### -@@ -877,11 +722,6 @@ fi +@@ -820,10 +732,6 @@ fi # build_sage, sage -b, sage -br, etc. could be moved to # build/bin/sage-site. See #29111. -build_sage() { -- maybe_sage_location - ( cd "$SAGE_ROOT/build/make" && ./install sagelib-no-deps ) || exit $? -} - if [[ "$1" =~ ^--notebook=.* || "$1" =~ ^-n=.* || "$1" =~ ^-notebook=.* ]] ; then sage-cleaner &>/dev/null & exec sage-notebook "$@" -@@ -892,13 +732,6 @@ if [ "$1" = "-notebook" -o "$1" = '--not +@@ -834,13 +742,6 @@ if [ "$1" = "-notebook" -o "$1" = '--not exec sage-notebook "$@" fi @@ -241,7 +166,7 @@ diff -up src/bin/sage.orig src/bin/sage if [ -n "$SAGE_SRC" -a -d "$SAGE_SRC" ]; then # Source inspection facilities, supported on sage-the-distribution and on distributions # that package the Sage sources. -@@ -915,46 +748,18 @@ if [ -n "$SAGE_SRC" -a -d "$SAGE_SRC" ]; +@@ -857,46 +758,18 @@ if [ -n "$SAGE_SRC" -a -d "$SAGE_SRC" ]; fi fi @@ -289,7 +214,7 @@ diff -up src/bin/sage.orig src/bin/sage if [ "$1" = '-tp' -o "$1" = '-btp' ]; then shift exec-runtests -p "$@" -@@ -964,34 +769,11 @@ if [ "$1" = '-t' -o "$1" = '-bt' -o "$1" +@@ -906,34 +779,11 @@ if [ "$1" = '-t' -o "$1" = '-bt' -o "$1" fi fi @@ -324,59 +249,11 @@ diff -up src/bin/sage.orig src/bin/sage if [ "$1" = '-startuptime' -o "$1" = '--startuptime' ]; then exec sage-startuptime.py "$@" fi -@@ -1014,59 +796,11 @@ fi - # Creating and handling Sage distributions - ##################################################################### - --# The following could be moved to build/bin/sage-site. See #29111. -- --if [ "$1" = '--location' ]; then -- maybe_sage_location -- exit 0 --fi -- -- --install() { -- maybe_sage_location -- -- for PKG in "$@" -- do -- # Check for options -- case "$PKG" in -- -*) -- INSTALL_OPTIONS="$INSTALL_OPTIONS $PKG" -- continue;; -- esac -- -- PKG_NAME=`echo "$PKG" | sed -e "s/\.spkg$//"` -- PKG_NAME=`basename "$PKG_NAME"` -- -- sage-logger \ -- "sage-spkg $INSTALL_OPTIONS '$PKG'" "$SAGE_LOGS/$PKG_NAME.log" -- # Do not try to install further packages if one failed -- if [ $? -ne 0 ]; then -- exit 1 -- fi -- done -- exit 0 --} -- - if [ "$1" = '-installed' -o "$1" = "--installed" ]; then - shift +@@ -989,11 +839,6 @@ if [ "$1" = '-installed' -o "$1" = "--in exec sage-list-packages all --installed-only $@ fi --if [ "$1" = '-p' ]; then -- shift -- # If there are no further arguments, display usage help. -- if [ $# -eq 0 ]; then -- exec sage-spkg -- fi -- install "$@" --fi -- -if [ "$1" = '-sdist' -o "$1" = "--sdist" ]; then -- maybe_sage_location - shift - exec sage-sdist "$@" -fi @@ -384,7 +261,7 @@ diff -up src/bin/sage.orig src/bin/sage ##################################################################### # Debugging tools ##################################################################### -@@ -1110,12 +844,6 @@ if [ "$1" = '-callgrind' -o "$1" = "--ca +@@ -1037,12 +882,6 @@ if [ "$1" = '-callgrind' -o "$1" = "--ca exec sage-callgrind "$@" fi diff --git a/sagemath.spec b/sagemath.spec index acd0429..d636123 100644 --- a/sagemath.spec +++ b/sagemath.spec @@ -7,7 +7,6 @@ %bcond_with bundled_ipython %bcond_without bundled_jupyter_jsmol %bcond_without bundled_memory_allocator -%bcond_without bundled_thebe %bcond_without bundled_threejs %bcond_without install_hack @@ -59,19 +58,15 @@ %endif %global polytopes_db_pkg polytopes_db-20170220 %global sagetex_pkg sagetex-3.5 -%global Sphinx_pkg Sphinx-4.2.0 +%global Sphinx_pkg Sphinx-4.4.0 %global singular_pkg singular-4.2.1p3 -%if %{with bundled_thebe} -%global thebe_ver 9624e0a0 -%global thebe_pkg thebe-%{thebe_ver} -%endif %if %{with bundled_threejs} %global threejs_ver r122 %global threejs_pkg threejs-sage-%{threejs_ver} %endif # Spkg equivalents of required rpms; we pretend they are installed as spkgs. -%global SAGE_REQUIRED_PKGS 4ti2-1.6.9 bliss-0.77 CoCoALib-0.99718 coxeter3-3.1 cryptominisat-5.8.0 database_cremona_ellcurve-%{cremona_ver} gap_packages-4.11.1 libsirocco-2.1.0 lrslib-071b mcqd-1.0.0 meataxe-1.0 primecount-7.2 qepcad-B.1.74 saclib-2.2.8 surf-1.0.6-gcc6 tdlib-0.9.2 +%global SAGE_REQUIRED_PKGS 4ti2-1.6.9 bliss-0.77 CoCoALib-0.99800 coxeter3-3.1 cryptominisat-5.8.0 database_cremona_ellcurve-%{cremona_ver} gap_packages-4.11.1 libsirocco-2.1.0 lrslib-072 mcqd-1.0.0 meataxe-1.0 primecount-7.3 qepcad-B.1.74 saclib-2.2.8 surf-1.0.6-gcc6 tdlib-0.9.2 %ifarch %{ix86} x86_64 %global SAGE_REQUIRED_PKGS %{SAGE_REQUIRED_PKGS} fes-0.2 @@ -88,8 +83,8 @@ Name: sagemath Summary: A free open-source mathematics software system -Version: 9.5 -Release: 2%{?dist} +Version: 9.6 +Release: 1%{?dist} # The file ${SAGE_ROOT}/COPYING.txt is the upstream license breakdown file # Additionally, every $files section has a comment with the license name # before files with that license @@ -171,23 +166,17 @@ Patch17: %{name}-flexiblas.patch # Fix paths to latte-integrale binaries Patch18: %{name}-latte.patch -# Change rubiks binary names to match Fedora -Patch19: %{name}-rubiks.patch - # Adapt to recent tdlib 0.9 -Patch20: %{name}-tdlib.patch +Patch19: %{name}-tdlib.patch # Use local objects.inv for intersphinx since no network on koji builders -Patch21: %{name}-intersphinx.patch +Patch20: %{name}-intersphinx.patch # Fix a typo that leads to infinite recursion -Patch22: %{name}-infinite-recursion.patch +Patch21: %{name}-infinite-recursion.patch # Fix a use-after-free bug -Patch23: %{name}-use-after-free.patch - -# Add a missing Sphinx config value -Patch24: %{name}-intersphinx-disabled-reftypes.patch +Patch22: %{name}-use-after-free.patch BuildRequires: 4ti2 BuildRequires: 4ti2-devel @@ -366,9 +355,11 @@ BuildRequires: %{py3_dist argon2-cffi} %if %{with bundled_ipython} BuildRequires: %{py3_dist backcall} %endif +BuildRequires: %{py3_dist beautifulsoup4} BuildRequires: %{py3_dist beniget} BuildRequires: %{py3_dist brial} BuildRequires: %{py3_dist charset-normalizer} +BuildRequires: %{py3_dist colorlog} BuildRequires: %{py3_dist cppy} BuildRequires: %{py3_dist cvxopt} BuildRequires: %{py3_dist cython} @@ -391,8 +382,10 @@ BuildRequires: %{py3_dist ipywidgets} %if %{with bundled_ipython} BuildRequires: %{py3_dist jedi} %endif +BuildRequires: %{py3_dist jupyter-sphinx} BuildRequires: %{py3_dist jupyterlab-pygments} BuildRequires: %{py3_dist kiwisolver} +BuildRequires: %{py3_dist lrcalc} BuildRequires: %{py3_dist matplotlib} BuildRequires: %{py3_dist matplotlib-inline} BuildRequires: %{py3_dist nbclient} @@ -413,6 +406,7 @@ BuildRequires: %{py3_dist pickleshare} %endif BuildRequires: %{py3_dist pip} BuildRequires: %{py3_dist pkgconfig} +BuildRequires: %{py3_dist platformdirs} BuildRequires: %{py3_dist pluggy} BuildRequires: %{py3_dist ply} BuildRequires: %{py3_dist primecountpy} @@ -433,9 +427,9 @@ BuildRequires: %{py3_dist setuptools_scm_git_archive} BuildRequires: %{py3_dist simplegeneric} %endif BuildRequires: %{py3_dist six} +BuildRequires: %{py3_dist soupsieve} BuildRequires: %{py3_dist sphinx} BuildRequires: %{py3_dist sympy} -BuildRequires: %{py3_dist toml} BuildRequires: %{py3_dist tomli} BuildRequires: %{py3_dist tox} BuildRequires: %{py3_dist typing-extensions} @@ -446,7 +440,6 @@ BuildRequires: %{py3_dist zodb3} BuildRequires: qepcad-B BuildRequires: qhull BuildRequires: R -BuildRequires: ratpoints-devel BuildRequires: rubiks BuildRequires: rw-devel BuildRequires: saclib-devel @@ -459,7 +452,12 @@ BuildRequires: sympow BuildRequires: tachyon BuildRequires: texlive BuildRequires: tex(anyfontsize.sty) +BuildRequires: tex(fncychap.sty) BuildRequires: tex(makecmds.sty) +BuildRequires: tex(subfigure.sty) +BuildRequires: tex(tikz-qtree.sty) +BuildRequires: tex(tkz-berge.sty) +BuildRequires: tex(xy.sty) # For _jsdir macro BuildRequires: web-assets-devel BuildRequires: xorg-x11-fonts-Type1 @@ -476,9 +474,6 @@ Requires: %{name}-doc = %{version}-%{release} Requires: %{name}-jupyter = %{version}-%{release} Requires: %{name}-sagetex = %{version}-%{release} -%if %{with bundled_thebe} -Provides: bundled(thebe) = %{thebe_ver} -%endif %if %{with bundled_threejs} Provides: bundled(threejs) = %{threejs_ver} %endif @@ -567,6 +562,7 @@ Requires: %{py3_dist argcomplete} %if %{with bundled_ipython} Requires: %{py3_dist backcall} %endif +Requires: %{py3_dist beautifulsoup4} Requires: %{py3_dist beniget} Requires: %{py3_dist brial} Requires: %{py3_dist charset-normalizer} @@ -594,6 +590,7 @@ Requires: %{py3_dist ipywidgets} %if %{with bundled_ipython} Requires: %{py3_dist jedi} %endif +Requires: %{py3_dist lrcalc} Requires: %{py3_dist matplotlib} Requires: %{py3_dist nbclient} Requires: %{py3_dist nbconvert} @@ -832,6 +829,7 @@ Summary: Jupyter integration for sagemath Requires: %{name}%{?_isa} = %{version}-%{release} Requires: python-jupyter-filesystem Requires: %{py3_dist argon2-cffi} +Requires: %{py3_dist jupyter-sphinx} Requires: %{py3_dist jupyterlab-pygments} Requires: %{py3_dist matplotlib-inline} Requires: %{py3_dist pari-jupyter} @@ -949,13 +947,6 @@ popd %endif %endif -%if %{with bundled_thebe} -pushd build/pkgs/thebe - unzip ../../../upstream/%{thebe_pkg}.zip - mv %{thebe_pkg}* src -popd -%endif - %if %{with bundled_threejs} pushd build/pkgs/threejs tar zxf ../../../upstream/%{threejs_pkg}.tar.gz @@ -990,8 +981,6 @@ popd %patch20 %patch21 %patch22 -%patch23 -%patch24 sed -i 's|@@SAGE_LOCAL@@|%{SAGE_LOCAL}|' src/sage/env.py @@ -1035,12 +1024,12 @@ sed -i 's/64m/256m/' src/sage/interfaces/gap.py # Fix detection of Fedora sed -i 's/yum/rpm/' build/bin/sage-guess-package-system -# Allow use of gcc 12 -sed -i 's/1\[2-9\]\.\*)/1[3-9].*)/' configure - # Allow use of python 3.11 sed -i 's/3\.11\.0/3.12.0/g' configure +# Allow use of libfplll 5.4.2 +sed -i 's/5\.4\.1/5.4.2/g' configure + # Do not build with -march=native sed -i 's/CFLAGS_MARCH="-march=native"/CFLAGS_MARCH=""/' configure @@ -1362,18 +1351,11 @@ mv %{_builddir}%{python3_sitelib}/jupyter_jsmol* %{buildroot}%{SAGE_PYTHONPATH} mv %{_builddir}%{python3_sitearch}/memory_allocator* %{buildroot}%{SAGE_PYTHONPATH} %endif -#------------------------------------------------------------------------ -%if %{with bundled_thebe} -pushd build/pkgs/thebe - mkdir -p $SAGE_SHARE/thebe - cp -p src/static/main-built.js $SAGE_SHARE/thebe/thebe.js -popd -%endif - #------------------------------------------------------------------------ %if %{with bundled_threejs} pushd build/pkgs/threejs - cp -a src $SAGE_SHARE/threejs + mkdir -p $SAGE_SHARE/threejs-sage + cp -a src/build $SAGE_SHARE/threejs-sage/%{threejs_ver} popd %endif @@ -1402,7 +1384,7 @@ module load surf-geometry-%{_arch} export PATH=$SAGE_LOCAL/bin:\$PATH export SINGULAR_DATA_DIR=%{_datadir} export SINGULAR_BIN_DIR=%{_libdir}/Singular -export SINGULAR_SO=%{_libdir}/libSingular-$singver.so +export LIBSINGULAR_PATH=%{_libdir}/libSingular-$singver.so ##export PYTHONPATH="$SAGE_PYTHONPATH:\$SAGE_LOCAL/bin" export SYMPOW_DIR="\$DOT_SAGE/sympow" # Required for sage -gdb @@ -1458,6 +1440,7 @@ pushd src/doc ln -sf %{buildroot}%{SAGE_DOC} %{buildroot}%{SAGE_SRC}/doc export SAGE_DOC=%{buildroot}%{SAGE_DOC} export SAGE_DOC_SRC=$SAGE_DOC + export JUPYTER_PATH=%{buildroot}%{_datadir}/jupyter # Build with an X server running, required by some doc builders SAGE_NUM_THREADS=2 \ xvfb-run -d %{python3} -m sage_docbuild --no-pdf-links -k all html -j @@ -1784,6 +1767,7 @@ for _, path in ipairs(paths) do end %endif + %files # GPLv2+ %license COPYING.txt @@ -1807,13 +1791,9 @@ end %{_datadir}/icons/hicolor/scalable/apps/%{name}.svg %{_datadir}/applications/org.%{name}.sage.desktop %{_metainfodir}/org.%{name}.sage.metainfo.xml -%if %{with bundled_thebe} -# MIT -%{SAGE_SHARE}/thebe/ -%endif %if %{with bundled_threejs} # MIT -%{SAGE_SHARE}/threejs/ +%{SAGE_SHARE}/threejs-sage/ %endif #------------------------------------------------------------------------ @@ -1895,6 +1875,7 @@ end # GPLv2+ %license COPYING.txt %dir %{SAGE_DOC}/ +%{SAGE_DOC}/index.html %{SAGE_DOC}/common/ %dir %{SAGE_DOC}/html/ @@ -2040,6 +2021,14 @@ end ######################################################################## %changelog +* Wed Jun 1 2022 Jerry James - 9.6-1 +- Version 9.6 +- Fix path to libSingular.so (bz 2073208) +- Fix threejs install location (bz 2081720) +- Drop upstreamed -rubiks and -intersphinx-disabled-reftypes patches +- Drop no longer used ratpoints BR +- Thebe is no longer bundled + * Sun Mar 27 2022 Jerry James - 9.5-2 - Remove all support for 32-bit platforms - Remove the interactive shell argument from /usr/bin/sage (rhbz#2028403) diff --git a/sources b/sources index 6a58dc9..adb6570 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (cremona-2019-10-29.tar.gz) = 32fbb828f26f87191e39123762cfbd796aac9abf346f0dc981e8e3f390435b22d281be3031ea92ae7e18f4ce41af8054784ca0d550a08f17b05c54ca08b4c9c8 -SHA512 (sage-9.5.tar.gz) = 0c3649592b2ddf31f301e48c0727e16870fe9062c92ec8cd24f13728cf6ff1e45cbc263a967ca060a91f976eaee73fc6aa5a0dfd0b95b393e22cfaac1ef6767e +SHA512 (sage-9.6.tar.gz) = 65cd228a7173d0edf5ad865766e966f1c85be3c39baf81dc1a507bcaef4eaaa7b5f3ac98ecd5c68a9823167ff91201f71e9968c46b83f9a708721f9b4fcbef32