diff --git a/sagemath-cremona.patch b/sagemath-cremona.patch index 9bc2ea9..fcfb82b 100644 --- a/sagemath-cremona.patch +++ b/sagemath-cremona.patch @@ -1,6 +1,6 @@ diff -up src/sage/databases/cremona.py.orig src/sage/databases/cremona.py ---- src/sage/databases/cremona.py.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/databases/cremona.py 2021-05-28 11:39:00.005575551 -0600 +--- src/sage/databases/cremona.py.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/databases/cremona.py 2021-08-26 13:33:03.200366675 -0600 @@ -885,7 +885,8 @@ class MiniCremonaDatabase(SQLDatabase): message = "There is no elliptic curve with label " \ + label + " in the default database; try installing " \ @@ -11,11 +11,11 @@ diff -up src/sage/databases/cremona.py.orig src/sage/databases/cremona.py raise ValueError(message) ainvs = eval(c[0]) data = {'cremona_label': label, -@@ -1663,6 +1664,7 @@ class LargeCremonaDatabase(MiniCremonaDa +@@ -1670,6 +1671,7 @@ class LargeCremonaDatabase(MiniCremonaDa con.executemany("UPDATE t_curve SET gens=? WHERE curve=?", curve_data) print("Committing...") + self.commit() - if largest_conductor and int(v[0]) > largest_conductor: break - + if largest_conductor and int(v[0]) > largest_conductor: + break diff --git a/sagemath-eclib.patch b/sagemath-eclib.patch deleted file mode 100644 index 761b0de..0000000 --- a/sagemath-eclib.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff -up src/sage/libs/eclib/mwrank.pyx.orig src/sage/libs/eclib/mwrank.pyx ---- src/sage/libs/eclib/mwrank.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/libs/eclib/mwrank.pyx 2021-07-07 09:31:20.972526814 -0600 -@@ -55,7 +55,7 @@ cdef extern from "wrap.cpp": - char* mw_getbasis(mw* m) - double mw_regulator(mw* m) - int mw_rank(mw* m) -- int mw_saturate(mw* m, bigint* index, char** unsat, -+ int mw_saturate(mw* m, long* index, char** unsat, - long sat_bd, int odd_primes_only) - void mw_search(mw* m, char* h_lim, int moduli_option, int verb) - -@@ -894,12 +894,12 @@ cdef class _mw: - - - """ -- cdef _bigint index -+ cdef long index - cdef char* s - cdef int ok - sig_on() -- index = _bigint() -- ok = mw_saturate(self.x, index.x, &s, sat_bd, odd_primes_only) -+ index = 0 -+ ok = mw_saturate(self.x, &index, &s, sat_bd, odd_primes_only) - unsat = string_sigoff(s) - return ok, index, unsat - -diff -up src/sage/libs/eclib/wrap.cpp.orig src/sage/libs/eclib/wrap.cpp ---- src/sage/libs/eclib/wrap.cpp.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/libs/eclib/wrap.cpp 2021-07-06 17:38:03.377018615 -0600 -@@ -178,7 +178,7 @@ int mw_rank(struct mw* m) - } - - /* Returns index and unsat long array, which user must deallocate */ --int mw_saturate(struct mw* m, bigint* index, char** unsat, -+int mw_saturate(struct mw* m, long* index, char** unsat, - long sat_bd, int odd_primes_only) - { - vector v; diff --git a/sagemath-env.patch b/sagemath-env.patch index 7d2c26d..8c8e6e2 100644 --- a/sagemath-env.patch +++ b/sagemath-env.patch @@ -1,7 +1,23 @@ +diff -up src/bin/sage-env.orig src/bin/sage-env +--- src/bin/sage-env.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/bin/sage-env 2021-08-27 08:49:17.252812930 -0600 +@@ -333,10 +333,8 @@ if [ -n "$SAGE_LOCAL" ]; then + export CPATH="$SAGE_LOCAL/include${CPATH}" + fi + +-if [ -n "$SAGE_LOCAL" ]; then +- SINGULARPATH="$SAGE_LOCAL/share/singular" && export SINGULARPATH +- SINGULAR_EXECUTABLE="$SAGE_LOCAL/bin/Singular" && export SINGULAR_EXECUTABLE +-fi ++SINGULARPATH="/usr/share/singular" && export SINGULARPATH ++SINGULAR_EXECUTABLE="/usr/bin/Singular" && export SINGULAR_EXECUTABLE + + if [ -z "$SAGE_REPO_ANONYMOUS" ]; then + SAGE_REPO_ANONYMOUS="https://gitlab.com/sagemath/dev/tracmirror.git" diff -up src/sage/env.py.orig src/sage/env.py ---- src/sage/env.py.orig 2021-05-29 21:01:26.503474025 -0600 -+++ src/sage/env.py 2021-05-29 21:03:06.389635554 -0600 -@@ -166,16 +166,16 @@ SAGE_DATE = var("SAGE_DATE", version.dat +--- src/sage/env.py.orig 2021-08-27 08:46:35.399958049 -0600 ++++ src/sage/env.py 2021-08-27 08:46:48.584192481 -0600 +@@ -166,15 +166,15 @@ SAGE_DATE = var("SAGE_DATE", version.dat SAGE_VERSION_BANNER = var("SAGE_VERSION_BANNER", version.banner) # virtual environment where sagelib is installed @@ -10,21 +26,18 @@ diff -up src/sage/env.py.orig src/sage/env.py SAGE_LIB = var("SAGE_LIB", os.path.dirname(os.path.dirname(sage.__file__))) -SAGE_EXTCODE = var("SAGE_EXTCODE", join(SAGE_LIB, "sage", "ext_data")) +SAGE_EXTCODE = var("SAGE_EXTCODE", join("/usr", "share", "sagemath", "etc")) + SAGE_VENV_SPKG_INST = var("SAGE_VENV_SPKG_INST", join(SAGE_VENV, "var", "lib", "sage", "installed")) # prefix hierarchy where non-Python packages are installed SAGE_LOCAL = var("SAGE_LOCAL", SAGE_VENV) --SAGE_ETC = var("SAGE_ETC", join(SAGE_LOCAL, "etc")) --SAGE_INC = var("SAGE_INC", join(SAGE_LOCAL, "include")) -SAGE_SHARE = var("SAGE_SHARE", join(SAGE_LOCAL, "share")) -SAGE_DOC = var("SAGE_DOC", join(SAGE_SHARE, "doc", "sage")) -+SAGE_ETC = var("SAGE_ETC", join("/usr", "share", "sagemath", "etc")) -+SAGE_INC = var("SAGE_INC", join("/usr", "include")) +SAGE_SHARE = var("SAGE_SHARE", join("/usr", "share", "sagemath")) +SAGE_DOC = var("SAGE_DOC", join("/usr", "share", "doc", "sagemath")) SAGE_SPKG_INST = var("SAGE_SPKG_INST", join(SAGE_LOCAL, "var", "lib", "sage", "installed")) # source tree of the Sage distribution -@@ -199,12 +199,12 @@ THEBE_DIR = var("THEBE_DIR", join(SAGE_S +@@ -202,11 +202,11 @@ 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")) @@ -34,14 +47,13 @@ diff -up src/sage/env.py.orig src/sage/env.py +JMOL_DIR = var("JMOL_DIR", join("/usr", "share", "java", "jmol")) +MATHJAX_DIR = var("MATHJAX_DIR", join("/usr", "share", "javascript", "mathjax")) +MTXLIB = var("MTXLIB", join(DOT_SAGE, "meataxe")) - THREEJS_DIR = var("THREEJS_DIR", join(SAGE_SHARE, "threejs")) - SINGULARPATH = var("SINGULARPATH", join(SAGE_SHARE, "singular")) + THREEJS_DIR = var("THREEJS_DIR", join(SAGE_SHARE, "threejs-sage")) -PPLPY_DOCS = var("PPLPY_DOCS", join(SAGE_SHARE, "doc", "pplpy")) +PPLPY_DOCS = var("PPLPY_DOCS", join("/usr", "share", "doc", "python3-pplpy")) MAXIMA = var("MAXIMA", "maxima") MAXIMA_FAS = var("MAXIMA_FAS") - SAGE_NAUTY_BINS_PREFIX = var("SAGE_NAUTY_BINS_PREFIX", "") -@@ -301,10 +301,10 @@ def _get_shared_lib_path(*libnames: str) + KENZO_FAS = var("KENZO_FAS") +@@ -309,10 +309,10 @@ def _get_shared_lib_path(*libnames: str) # locate singular shared object # On Debian it's libsingular-Singular so try that as well @@ -53,4 +65,4 @@ diff -up src/sage/env.py.orig src/sage/env.py +GAP_SO = var("GAP_SO", "@@LIBDIR@@/libgap.so") # post process - if ' ' in DOT_SAGE: + if DOT_SAGE is not None and ' ' in DOT_SAGE: diff --git a/sagemath-escape.patch b/sagemath-escape.patch index 15c4b16..c2ffcc4 100644 --- a/sagemath-escape.patch +++ b/sagemath-escape.patch @@ -1,6 +1,6 @@ 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx 2021-05-28 11:01:33.728273279 -0600 +--- src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx 2021-08-26 13:02:37.375205416 -0600 @@ -229,7 +229,7 @@ cdef class FreeAlgebraElement_letterplac return '0' @@ -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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/algebras/letterplace/free_algebra_letterplace.pyx 2021-05-28 11:01:33.729273279 -0600 +--- src/sage/algebras/letterplace/free_algebra_letterplace.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/algebras/letterplace/free_algebra_letterplace.pyx 2021-08-26 13:02:37.376205417 -0600 @@ -618,7 +618,7 @@ cdef class FreeAlgebra_letterplace(Algeb # Auxiliar methods @@ -23,8 +23,8 @@ diff -up src/sage/algebras/letterplace/free_algebra_letterplace.pyx.orig src/sag EXAMPLES:: diff -up src/sage/coding/binary_code.pyx.orig src/sage/coding/binary_code.pyx ---- src/sage/coding/binary_code.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/coding/binary_code.pyx 2021-05-28 11:01:40.344274499 -0600 +--- src/sage/coding/binary_code.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/coding/binary_code.pyx 2021-08-26 13:02:37.377205418 -0600 @@ -517,7 +517,7 @@ cdef codeword permute_word_by_wp(WordPer return image @@ -35,8 +35,8 @@ diff -up src/sage/coding/binary_code.pyx.orig src/sage/coding/binary_code.pyx function. diff -up src/sage/coding/codecan/codecan.pyx.orig src/sage/coding/codecan/codecan.pyx ---- src/sage/coding/codecan/codecan.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/coding/codecan/codecan.pyx 2021-05-28 11:01:40.345274500 -0600 +--- src/sage/coding/codecan/codecan.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/coding/codecan/codecan.pyx 2021-08-26 13:02:37.378205419 -0600 @@ -369,7 +369,7 @@ cdef class InnerGroup: return self.transporter @@ -56,8 +56,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/combinat/crystals/letters.pyx 2021-05-28 11:01:40.347274500 -0600 +--- src/sage/combinat/crystals/letters.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/combinat/crystals/letters.pyx 2021-08-26 13:02:37.379205420 -0600 @@ -558,7 +558,7 @@ cdef class EmptyLetter(Element): return 'E' @@ -68,8 +68,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/combinat/crystals/tensor_product_element.pyx 2021-05-28 11:01:40.348274500 -0600 +--- src/sage/combinat/crystals/tensor_product_element.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/combinat/crystals/tensor_product_element.pyx 2021-08-26 13:02:37.380205422 -0600 @@ -145,8 +145,8 @@ cdef class TensorProductOfCrystalsElemen """ from sage.misc.latex import latex @@ -90,18 +90,21 @@ diff -up src/sage/combinat/crystals/tensor_product_element.pyx.orig src/sage/com Return a string representation of ``self`` as a diagram. EXAMPLES:: -diff -up src/sage/functions/prime_pi.pyx.orig src/sage/functions/prime_pi.pyx ---- src/sage/functions/prime_pi.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/functions/prime_pi.pyx 2021-05-28 11:01:40.349274500 -0600 -@@ -1,4 +1,4 @@ --""" -+r""" - Counting Primes +diff -up src/sage/combinat/posets/poset_examples.py.orig src/sage/combinat/posets/poset_examples.py +--- src/sage/combinat/posets/poset_examples.py.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/combinat/posets/poset_examples.py 2021-08-27 08:10:25.616669419 -0600 +@@ -155,7 +155,7 @@ class Posets(metaclass=ClasscallMetaclas - AUTHORS: + @staticmethod + def BooleanLattice(n, facade=None, use_subsets=False): +- """ ++ r""" + Return the Boolean lattice containing `2^n` elements. + + - ``n`` -- integer; number of elements will be `2^n` diff -up src/sage/graphs/matchpoly.pyx.orig src/sage/graphs/matchpoly.pyx ---- src/sage/graphs/matchpoly.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/graphs/matchpoly.pyx 2021-05-28 11:01:40.349274500 -0600 +--- src/sage/graphs/matchpoly.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/graphs/matchpoly.pyx 2021-08-26 13:02:41.117209797 -0600 @@ -50,7 +50,7 @@ x = polygen(ZZ, 'x') @@ -112,8 +115,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/graphs/strongly_regular_db.pyx 2021-05-28 11:01:40.351274500 -0600 +--- src/sage/graphs/strongly_regular_db.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/graphs/strongly_regular_db.pyx 2021-08-26 13:02:41.118209798 -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 @@ -124,9 +127,9 @@ 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/groups/group.pyx 2021-05-28 11:01:40.352274501 -0600 -@@ -50,7 +50,7 @@ def is_Group(x): +--- src/sage/groups/group.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/groups/group.pyx 2021-08-26 13:02:41.119209799 -0600 +@@ -51,7 +51,7 @@ def is_Group(x): cdef class Group(Parent): @@ -135,7 +138,7 @@ diff -up src/sage/groups/group.pyx.orig src/sage/groups/group.pyx Base class for all groups TESTS:: -@@ -189,7 +189,7 @@ cdef class Group(Parent): +@@ -190,7 +190,7 @@ cdef class Group(Parent): return self.order() != infinity def is_multiplicative(self): @@ -145,8 +148,8 @@ diff -up src/sage/groups/group.pyx.orig src/sage/groups/group.pyx +). 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/groups/perm_gps/partn_ref2/refinement_generic.pyx 2021-05-28 11:01:40.353274501 -0600 +--- src/sage/groups/perm_gps/partn_ref2/refinement_generic.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/groups/perm_gps/partn_ref2/refinement_generic.pyx 2021-08-26 13:02:41.119209799 -0600 @@ -913,7 +913,7 @@ cdef class PartitionRefinement_generic: "\\begin{tikzpicture}\n" + "\\tikzset{level distance=3cm, edge from parent/.style=" + @@ -157,8 +160,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/groups/perm_gps/partn_ref/data_structures.pyx 2021-05-28 11:01:40.354274501 -0600 +--- src/sage/groups/perm_gps/partn_ref/data_structures.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/groups/perm_gps/partn_ref/data_structures.pyx 2021-08-26 13:02:41.120209801 -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('|') @@ -174,8 +177,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/groups/perm_gps/partn_ref/refinement_binary.pyx 2021-05-28 11:01:40.355274501 -0600 +--- src/sage/groups/perm_gps/partn_ref/refinement_binary.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/groups/perm_gps/partn_ref/refinement_binary.pyx 2021-08-26 13:02:41.121209802 -0600 @@ -105,7 +105,7 @@ cdef class LinearBinaryCodeStruct(Binary self.ith_word = &ith_word_linear @@ -213,8 +216,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/groups/perm_gps/permgroup_element.pyx 2021-05-28 11:01:40.356274502 -0600 +--- src/sage/groups/perm_gps/permgroup_element.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/groups/perm_gps/permgroup_element.pyx 2021-08-26 13:02:41.122209803 -0600 @@ -1175,7 +1175,7 @@ cdef class PermutationGroupElement(Multi return result @@ -234,8 +237,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/libs/eclib/newforms.pyx 2021-05-28 11:01:40.357274501 -0600 +--- src/sage/libs/eclib/newforms.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/libs/eclib/newforms.pyx 2021-08-26 13:02:41.122209803 -0600 @@ -22,7 +22,7 @@ from sage.modular.all import Cusp @@ -246,8 +249,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/libs/fes.pyx 2021-05-28 11:01:40.357274501 -0600 +--- src/sage/libs/fes.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/libs/fes.pyx 2021-08-26 13:02:41.123209804 -0600 @@ -292,7 +292,7 @@ def find_coordinate_change(As, max_tries @@ -258,8 +261,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/libs/ntl/ntl_GF2E.pyx 2021-05-28 11:01:40.358274502 -0600 +--- src/sage/libs/ntl/ntl_GF2E.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/libs/ntl/ntl_GF2E.pyx 2021-08-26 13:02:41.123209804 -0600 @@ -73,7 +73,7 @@ def ntl_GF2E_random(ntl_GF2EContext_clas cdef class ntl_GF2E(object): @@ -279,8 +282,8 @@ diff -up src/sage/libs/ntl/ntl_GF2E.pyx.orig src/sage/libs/ntl/ntl_GF2E.pyx 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/libs/ntl/ntl_GF2X.pyx 2021-05-28 11:01:40.359274502 -0600 +--- src/sage/libs/ntl/ntl_GF2X.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/libs/ntl/ntl_GF2X.pyx 2021-08-26 13:02:41.124209805 -0600 @@ -484,7 +484,7 @@ cdef class ntl_GF2X(object): return [self[i] for i in range(GF2X_deg(self.x)+1)] @@ -300,8 +303,8 @@ diff -up src/sage/libs/ntl/ntl_GF2X.pyx.orig src/sage/libs/ntl/ntl_GF2X.pyx 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/libs/ntl/ntl_mat_GF2E.pyx 2021-05-28 11:01:40.360274502 -0600 +--- src/sage/libs/ntl/ntl_mat_GF2E.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/libs/ntl/ntl_mat_GF2E.pyx 2021-08-26 13:02:41.124209805 -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())) @@ -321,8 +324,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/libs/ntl/ntl_mat_GF2.pyx 2021-05-28 11:01:40.361274502 -0600 +--- src/sage/libs/ntl/ntl_mat_GF2.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/libs/ntl/ntl_mat_GF2.pyx 2021-08-26 13:02:41.125209807 -0600 @@ -5,7 +5,7 @@ # distutils: extra_link_args = NTL_LIBEXTRA # distutils: language = c++ @@ -351,8 +354,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/libs/ntl/ntl_mat_ZZ.pyx 2021-05-28 11:01:40.362274502 -0600 +--- src/sage/libs/ntl/ntl_mat_ZZ.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/libs/ntl/ntl_mat_ZZ.pyx 2021-08-26 13:02:41.126209808 -0600 @@ -73,7 +73,7 @@ cdef class ntl_mat_ZZ(object): The \class{mat_ZZ} class implements arithmetic with matrices over $\Z$. """ @@ -372,8 +375,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/libs/ntl/ntl_ZZ_pEX.pyx 2021-05-28 11:01:40.363274503 -0600 +--- src/sage/libs/ntl/ntl_ZZ_pEX.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/libs/ntl/ntl_ZZ_pEX.pyx 2021-08-26 13:02:41.127209809 -0600 @@ -5,7 +5,7 @@ # distutils: extra_link_args = NTL_LIBEXTRA # distutils: language = c++ @@ -384,8 +387,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/libs/ntl/ntl_ZZX.pyx 2021-05-28 11:01:40.364274503 -0600 +--- src/sage/libs/ntl/ntl_ZZX.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/libs/ntl/ntl_ZZX.pyx 2021-08-26 13:02:41.127209809 -0600 @@ -692,7 +692,7 @@ cdef class ntl_ZZX(object): return (self*other).quo_rem(g)[0] @@ -396,8 +399,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/pynac/pynac.pyx.orig src/sage/libs/pynac/pynac.pyx ---- src/sage/libs/pynac/pynac.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/libs/pynac/pynac.pyx 2021-05-28 11:01:40.366274503 -0600 +--- src/sage/libs/pynac/pynac.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/libs/pynac/pynac.pyx 2021-08-26 13:02:41.128209810 -0600 @@ -385,7 +385,7 @@ cdef stdstring* string_from_pystr(py_str return new stdstring(s) @@ -426,8 +429,8 @@ diff -up src/sage/libs/pynac/pynac.pyx.orig src/sage/libs/pynac/pynac.pyx py_res = ostr + fstr return string_from_pystr(py_res) diff -up src/sage/libs/singular/polynomial.pyx.orig src/sage/libs/singular/polynomial.pyx ---- src/sage/libs/singular/polynomial.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/libs/singular/polynomial.pyx 2021-05-28 11:01:40.366274503 -0600 +--- src/sage/libs/singular/polynomial.pyx.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/libs/singular/polynomial.pyx 2021-08-26 13:02:41.129209811 -0600 @@ -22,7 +22,7 @@ cdef extern from *: # hack to get at cyt int unlikely(int) @@ -438,8 +441,8 @@ diff -up src/sage/libs/singular/polynomial.pyx.orig src/sage/libs/singular/polyn from sage.cpython.string cimport bytes_to_str, str_to_bytes diff -up src/sage/libs/symmetrica/sc.pxi.orig src/sage/libs/symmetrica/sc.pxi ---- src/sage/libs/symmetrica/sc.pxi.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/libs/symmetrica/sc.pxi 2021-05-28 11:01:40.367274504 -0600 +--- src/sage/libs/symmetrica/sc.pxi.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/libs/symmetrica/sc.pxi 2021-08-26 13:02:41.129209811 -0600 @@ -103,7 +103,7 @@ def charvalue_symmetrica(irred, cls, tab @@ -449,19 +452,31 @@ diff -up src/sage/libs/symmetrica/sc.pxi.orig src/sage/libs/symmetrica/sc.pxi you enter the INTEGER objects, say a and b, and res becomes a 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/manifolds/chart.py.orig src/sage/manifolds/chart.py +--- src/sage/manifolds/chart.py.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/sage/manifolds/chart.py 2021-08-27 08:12:45.706133989 -0600 +@@ -2059,7 +2059,7 @@ class RealChart(Chart): + return self._bounds[i-self._sindex] + + def codomain(self): +- """ ++ r""" + Return the codomain of ``self`` as a set. + + EXAMPLES:: diff -up src/sage/matrix/matrix0.pyx.orig src/sage/matrix/matrix0.pyx ---- src/sage/matrix/matrix0.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/matrix/matrix0.pyx 2021-05-28 11:01:40.369274504 -0600 -@@ -2245,7 +2245,7 @@ cdef class Matrix(sage.structure.element +--- src/sage/matrix/matrix0.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/matrix/matrix0.pyx 2021-08-26 13:04:22.095328354 -0600 +@@ -2292,7 +2292,7 @@ cdef class Matrix(sage.structure.element # Functions ################################################### def act_on_polynomial(self, f): - """ + r""" - Returns the polynomial f(self\*x). + Return the polynomial f(self\*x). INPUT: -@@ -2311,7 +2311,7 @@ cdef class Matrix(sage.structure.element +@@ -2358,7 +2358,7 @@ cdef class Matrix(sage.structure.element # Arithmetic ################################################### def commutator(self, other): @@ -470,19 +485,19 @@ diff -up src/sage/matrix/matrix0.pyx.orig src/sage/matrix/matrix0.pyx Return the commutator self\*other - other\*self. EXAMPLES:: -@@ -4915,7 +4915,7 @@ cdef class Matrix(sage.structure.element +@@ -4958,7 +4958,7 @@ cdef class Matrix(sage.structure.element # Arithmetic ################################################### cdef _vector_times_matrix_(self, Vector v): - """ + r""" - Returns the vector times matrix product. + Return the vector times matrix product. INPUT: diff -up src/sage/matrix/matrix2.pyx.orig src/sage/matrix/matrix2.pyx ---- src/sage/matrix/matrix2.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/matrix/matrix2.pyx 2021-05-28 11:01:40.374274505 -0600 -@@ -9594,7 +9594,7 @@ cdef class Matrix(Matrix1): +--- src/sage/matrix/matrix2.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/matrix/matrix2.pyx 2021-08-26 13:02:41.138209822 -0600 +@@ -9630,7 +9630,7 @@ cdef class Matrix(Matrix1): return img def density(self): @@ -492,8 +507,8 @@ 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/matrix/matrix_integer_dense.pyx 2021-05-28 11:01:40.376274505 -0600 +--- src/sage/matrix/matrix_integer_dense.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/matrix/matrix_integer_dense.pyx 2021-08-26 13:02:41.140209824 -0600 @@ -746,7 +746,7 @@ cdef class Matrix_integer_dense(Matrix_d return ans @@ -504,9 +519,9 @@ 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/matrix/matrix_modn_dense_template.pxi 2021-05-28 11:01:40.377274505 -0600 -@@ -664,7 +664,7 @@ cdef class Matrix_modn_dense_template(Ma +--- src/sage/matrix/matrix_modn_dense_template.pxi.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/matrix/matrix_modn_dense_template.pxi 2021-08-26 13:02:41.141209825 -0600 +@@ -635,7 +635,7 @@ cdef class Matrix_modn_dense_template(Ma return (word_size, little_endian, s), 10 def _unpickle(self, data, int version): @@ -515,7 +530,7 @@ diff -up src/sage/matrix/matrix_modn_dense_template.pxi.orig src/sage/matrix/mat TESTS: Test for char-sized modulus:: -@@ -2526,7 +2526,7 @@ cdef class Matrix_modn_dense_template(Ma +@@ -2247,7 +2247,7 @@ cdef class Matrix_modn_dense_template(Ma return Matrix_dense.determinant(self) cdef xgcd_eliminate(self, celement * row1, celement* row2, Py_ssize_t start_col): @@ -525,8 +540,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/matrix/matrix_polynomial_dense.pyx 2021-05-28 11:01:40.377274505 -0600 +--- src/sage/matrix/matrix_polynomial_dense.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/matrix/matrix_polynomial_dense.pyx 2021-08-26 13:02:41.142209826 -0600 @@ -49,16 +49,16 @@ cdef class Matrix_polynomial_dense(Matri commonly used in the literature. @@ -553,8 +568,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/matrix/matrix_rational_dense.pyx 2021-05-28 11:01:40.379274506 -0600 +--- src/sage/matrix/matrix_rational_dense.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/matrix/matrix_rational_dense.pyx 2021-08-26 13:02:41.143209828 -0600 @@ -507,7 +507,7 @@ cdef class Matrix_rational_dense(Matrix_ return rich_to_bool(op, 0) @@ -583,8 +598,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/matroids/basis_exchange_matroid.pyx 2021-05-28 11:01:40.380274506 -0600 +--- src/sage/matroids/basis_exchange_matroid.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/matroids/basis_exchange_matroid.pyx 2021-08-26 13:02:41.144209829 -0600 @@ -2115,7 +2115,7 @@ cdef class BasisExchangeMatroid(Matroid) return EQ[0] @@ -595,9 +610,9 @@ 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/matroids/linear_matroid.pyx 2021-05-28 11:01:40.381274506 -0600 -@@ -796,7 +796,7 @@ cdef class LinearMatroid(BasisExchangeMa +--- src/sage/matroids/linear_matroid.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/matroids/linear_matroid.pyx 2021-08-26 13:02:41.147209832 -0600 +@@ -804,7 +804,7 @@ cdef class LinearMatroid(BasisExchangeMa # (field) isomorphism cpdef bint _is_field_isomorphism(self, LinearMatroid other, morphism): # not safe if self == other @@ -606,7 +621,7 @@ diff -up src/sage/matroids/linear_matroid.pyx.orig src/sage/matroids/linear_matr Version of :meth:`` that does no type checking. -@@ -962,7 +962,7 @@ cdef class LinearMatroid(BasisExchangeMa +@@ -970,7 +970,7 @@ cdef class LinearMatroid(BasisExchangeMa return self._is_field_isomorphism(other, morphism) cpdef is_field_isomorphism(self, other, morphism): @@ -616,8 +631,8 @@ 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/matroids/matroid.pyx 2021-05-28 11:01:40.383274506 -0600 +--- src/sage/matroids/matroid.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/matroids/matroid.pyx 2021-08-26 13:02:41.148209833 -0600 @@ -3076,7 +3076,7 @@ cdef class Matroid(SageObject): return Polyhedron(vertices) @@ -673,8 +688,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/misc/cachefunc.pyx 2021-05-28 11:01:40.384274506 -0600 +--- src/sage/misc/cachefunc.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/misc/cachefunc.pyx 2021-08-26 13:02:41.149209835 -0600 @@ -835,7 +835,7 @@ cdef class CachedFunction(object): ## forward other questions to the cached function. @@ -685,10 +700,10 @@ 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/misc/sageinspect.py 2021-05-28 11:01:40.384274506 -0600 -@@ -843,7 +843,7 @@ class SageArgSpecVisitor(ast.NodeVisitor - return -self.visit(node.operand) +--- src/sage/misc/sageinspect.py.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/misc/sageinspect.py 2021-08-26 13:02:41.150209836 -0600 +@@ -848,7 +848,7 @@ class SageArgSpecVisitor(ast.NodeVisitor + def _grep_first_pair_of_parentheses(s): - """ @@ -696,8 +711,8 @@ 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: -@@ -898,7 +898,7 @@ def _grep_first_pair_of_parentheses(s): - raise SyntaxError("The given string does not contain balanced parentheses") +@@ -903,7 +903,7 @@ def _grep_first_pair_of_parentheses(s): + def _split_syntactical_unit(s): - """ @@ -706,8 +721,8 @@ 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/modular/arithgroup/arithgroup_element.pyx 2021-05-28 11:01:40.385274507 -0600 +--- src/sage/modular/arithgroup/arithgroup_element.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/modular/arithgroup/arithgroup_element.pyx 2021-08-26 13:02:41.150209836 -0600 @@ -194,7 +194,7 @@ cdef class ArithmeticSubgroupElement(Mul return richcmp(self.__x, right.__x, op) @@ -718,8 +733,8 @@ diff -up src/sage/modular/arithgroup/arithgroup_element.pyx.orig src/sage/modula 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/modular/arithgroup/farey_symbol.pyx 2021-05-28 11:01:40.385274507 -0600 +--- src/sage/modular/arithgroup/farey_symbol.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/modular/arithgroup/farey_symbol.pyx 2021-08-26 13:02:41.151209837 -0600 @@ -614,7 +614,7 @@ cdef class Farey: if forced_format == 'plain': # output not using xymatrix @@ -730,8 +745,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/modular/modsym/heilbronn.pyx 2021-05-28 11:01:40.385274507 -0600 +--- src/sage/modular/modsym/heilbronn.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/modular/modsym/heilbronn.pyx 2021-08-26 13:02:41.151209837 -0600 @@ -211,7 +211,7 @@ cdef class Heilbronn: sig_off() @@ -742,9 +757,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/modules/free_module_element.pyx 2021-05-28 11:04:51.953309813 -0600 -@@ -2346,7 +2346,7 @@ cdef class FreeModuleElement(Vector): +--- src/sage/modules/free_module_element.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/modules/free_module_element.pyx 2021-08-26 13:02:41.153209839 -0600 +@@ -2373,7 +2373,7 @@ cdef class FreeModuleElement(Vector): def plot_step(self, xmin=0, xmax=1, eps=None, res=None, connect=True, **kwds): @@ -753,7 +768,7 @@ diff -up src/sage/modules/free_module_element.pyx.orig src/sage/modules/free_mod INPUT: - ``xmin`` - (default: 0) start x position to start -@@ -3615,7 +3615,7 @@ cdef class FreeModuleElement(Vector): +@@ -3708,7 +3708,7 @@ cdef class FreeModuleElement(Vector): from sage.misc.latex import latex vector_delimiters = latex.vector_delimiters() s = '\\left' + vector_delimiters[0] @@ -763,9 +778,9 @@ 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/numerical/backends/generic_backend.pyx 2021-05-28 11:01:40.386274507 -0600 -@@ -1373,7 +1373,7 @@ cdef class GenericBackend: +--- src/sage/numerical/backends/generic_backend.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/numerical/backends/generic_backend.pyx 2021-08-26 13:02:41.153209839 -0600 +@@ -1376,7 +1376,7 @@ cdef class GenericBackend: raise NotImplementedError() cpdef bint is_variable_basic(self, int index): @@ -774,7 +789,7 @@ diff -up src/sage/numerical/backends/generic_backend.pyx.orig src/sage/numerical Test whether the given variable is basic. This assumes that the problem has been solved with the simplex method -@@ -1403,7 +1403,7 @@ cdef class GenericBackend: +@@ -1406,7 +1406,7 @@ cdef class GenericBackend: raise NotImplementedError() cpdef bint is_variable_nonbasic_at_lower_bound(self, int index): @@ -783,7 +798,7 @@ diff -up src/sage/numerical/backends/generic_backend.pyx.orig src/sage/numerical Test whether the given variable is nonbasic at lower bound. This assumes that the problem has been solved with the simplex method -@@ -1433,7 +1433,7 @@ cdef class GenericBackend: +@@ -1436,7 +1436,7 @@ cdef class GenericBackend: raise NotImplementedError() cpdef bint is_slack_variable_basic(self, int index): @@ -792,7 +807,7 @@ diff -up src/sage/numerical/backends/generic_backend.pyx.orig src/sage/numerical Test whether the slack variable of the given row is basic. This assumes that the problem has been solved with the simplex method -@@ -1463,7 +1463,7 @@ cdef class GenericBackend: +@@ -1466,7 +1466,7 @@ cdef class GenericBackend: raise NotImplementedError() cpdef bint is_slack_variable_nonbasic_at_lower_bound(self, int index): @@ -802,9 +817,9 @@ 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/numerical/backends/glpk_backend.pyx 2021-05-28 11:01:40.387274507 -0600 -@@ -2327,7 +2327,7 @@ cdef class GLPKBackend(GenericBackend): +--- src/sage/numerical/backends/glpk_backend.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/numerical/backends/glpk_backend.pyx 2021-08-26 13:02:41.154209841 -0600 +@@ -2320,7 +2320,7 @@ cdef class GLPKBackend(GenericBackend): cpdef bint is_variable_basic(self, int index): @@ -813,7 +828,7 @@ diff -up src/sage/numerical/backends/glpk_backend.pyx.orig src/sage/numerical/ba Test whether the given variable is basic. This assumes that the problem has been solved with the simplex method -@@ -2358,7 +2358,7 @@ cdef class GLPKBackend(GenericBackend): +@@ -2351,7 +2351,7 @@ cdef class GLPKBackend(GenericBackend): return self.get_col_stat(index) == GLP_BS cpdef bint is_variable_nonbasic_at_lower_bound(self, int index): @@ -822,7 +837,7 @@ diff -up src/sage/numerical/backends/glpk_backend.pyx.orig src/sage/numerical/ba Test whether the given variable is nonbasic at lower bound. This assumes that the problem has been solved with the simplex method and a basis is available. Otherwise an exception will be raised. -@@ -2388,7 +2388,7 @@ cdef class GLPKBackend(GenericBackend): +@@ -2381,7 +2381,7 @@ cdef class GLPKBackend(GenericBackend): return self.get_col_stat(index) == GLP_NL cpdef bint is_slack_variable_basic(self, int index): @@ -831,7 +846,7 @@ diff -up src/sage/numerical/backends/glpk_backend.pyx.orig src/sage/numerical/ba Test whether the slack variable of the given row is basic. This assumes that the problem has been solved with the simplex method -@@ -2419,7 +2419,7 @@ cdef class GLPKBackend(GenericBackend): +@@ -2412,7 +2412,7 @@ cdef class GLPKBackend(GenericBackend): return self.get_row_stat(index) == GLP_BS cpdef bint is_slack_variable_nonbasic_at_lower_bound(self, int index): @@ -841,9 +856,9 @@ 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/numerical/backends/interactivelp_backend.pyx 2021-05-28 11:01:40.387274507 -0600 -@@ -1071,7 +1071,7 @@ cdef class InteractiveLPBackend: +--- src/sage/numerical/backends/interactivelp_backend.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/numerical/backends/interactivelp_backend.pyx 2021-08-26 13:02:41.154209841 -0600 +@@ -1063,7 +1063,7 @@ cdef class InteractiveLPBackend: problem_type, ring, objective_constant_term=d) cpdef bint is_variable_basic(self, int index): @@ -852,7 +867,7 @@ diff -up src/sage/numerical/backends/interactivelp_backend.pyx.orig src/sage/num Test whether the given variable is basic. This assumes that the problem has been solved with the simplex method -@@ -1101,7 +1101,7 @@ cdef class InteractiveLPBackend: +@@ -1093,7 +1093,7 @@ cdef class InteractiveLPBackend: return self.lp_std_form.decision_variables()[index] in self.final_dictionary.basic_variables() cpdef bint is_variable_nonbasic_at_lower_bound(self, int index): @@ -861,7 +876,7 @@ diff -up src/sage/numerical/backends/interactivelp_backend.pyx.orig src/sage/num Test whether the given variable is nonbasic at lower bound. This assumes that the problem has been solved with the simplex method -@@ -1131,7 +1131,7 @@ cdef class InteractiveLPBackend: +@@ -1123,7 +1123,7 @@ cdef class InteractiveLPBackend: return self.lp_std_form.decision_variables()[index] in self.final_dictionary.nonbasic_variables() cpdef bint is_slack_variable_basic(self, int index): @@ -870,7 +885,7 @@ diff -up src/sage/numerical/backends/interactivelp_backend.pyx.orig src/sage/num Test whether the slack variable of the given row is basic. This assumes that the problem has been solved with the simplex method -@@ -1161,7 +1161,7 @@ cdef class InteractiveLPBackend: +@@ -1153,7 +1153,7 @@ cdef class InteractiveLPBackend: return self.lp_std_form.slack_variables()[index] in self.final_dictionary.basic_variables() cpdef bint is_slack_variable_nonbasic_at_lower_bound(self, int index): @@ -879,7 +894,7 @@ diff -up src/sage/numerical/backends/interactivelp_backend.pyx.orig src/sage/num Test whether the given variable is nonbasic at lower bound. This assumes that the problem has been solved with the simplex method -@@ -1193,7 +1193,7 @@ cdef class InteractiveLPBackend: +@@ -1185,7 +1185,7 @@ cdef class InteractiveLPBackend: cpdef dictionary(self): # Proposed addition to the general interface, # which would for other solvers return backend dictionaries (#18804) @@ -888,7 +903,7 @@ diff -up src/sage/numerical/backends/interactivelp_backend.pyx.orig src/sage/num Return a dictionary representing the current basis. EXAMPLES:: -@@ -1228,7 +1228,7 @@ cdef class InteractiveLPBackend: +@@ -1220,7 +1220,7 @@ cdef class InteractiveLPBackend: cpdef interactive_lp_problem(self): @@ -898,8 +913,8 @@ diff -up src/sage/numerical/backends/interactivelp_backend.pyx.orig src/sage/num EXAMPLES:: diff -up src/sage/quivers/algebra_elements.pyx.orig src/sage/quivers/algebra_elements.pyx ---- src/sage/quivers/algebra_elements.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/quivers/algebra_elements.pyx 2021-05-28 11:01:40.388274507 -0600 +--- src/sage/quivers/algebra_elements.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/quivers/algebra_elements.pyx 2021-08-26 13:02:41.155209842 -0600 @@ -280,7 +280,7 @@ cdef class PathAlgebraElement(RingElemen ) @@ -910,8 +925,8 @@ diff -up src/sage/quivers/algebra_elements.pyx.orig src/sage/quivers/algebra_ele 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/bernoulli_mod_p.pyx 2021-05-28 11:01:40.388274507 -0600 +--- src/sage/rings/bernoulli_mod_p.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/bernoulli_mod_p.pyx 2021-08-26 13:02:41.155209842 -0600 @@ -41,7 +41,7 @@ from sage.rings.bernmm import bernmm_ber @@ -922,8 +937,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/complex_interval.pyx 2021-05-28 11:01:40.388274507 -0600 +--- src/sage/rings/complex_interval.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/complex_interval.pyx 2021-08-26 13:02:41.155209842 -0600 @@ -729,7 +729,7 @@ cdef class ComplexIntervalFieldElement(s return x @@ -943,9 +958,9 @@ 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/complex_mpc.pyx 2021-05-28 11:01:40.388274507 -0600 -@@ -150,15 +150,15 @@ cdef inline mpfr_rnd_t rnd_im(mpc_rnd_t +--- src/sage/rings/complex_mpc.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/complex_mpc.pyx 2021-08-26 13:02:41.156209843 -0600 +@@ -137,15 +137,15 @@ cdef inline mpfr_rnd_t rnd_im(mpc_rnd_t sign = '[+-]' digit_ten = '[0123456789]' exponent_ten = '[e@]' + sign + '?[0123456789]+' @@ -969,7 +984,7 @@ diff -up src/sage/rings/complex_mpc.pyx.orig src/sage/rings/complex_mpc.pyx cpdef inline split_complex_string(string, int base=10): """ -@@ -198,17 +198,17 @@ cpdef inline split_complex_string(string +@@ -185,17 +185,17 @@ cpdef inline split_complex_string(string # Warning: number, imaginary, and complex should be enclosed in parentheses # when used as regexp because of alternatives '|' @@ -995,7 +1010,7 @@ diff -up src/sage/rings/complex_mpc.pyx.orig src/sage/rings/complex_mpc.pyx x, y = None, None if z is not None: -@@ -220,18 +220,18 @@ cpdef inline split_complex_string(string +@@ -207,18 +207,18 @@ cpdef inline split_complex_string(string return None if z.group(prefix + '_re_abs') is not None: @@ -1019,7 +1034,7 @@ diff -up src/sage/rings/complex_mpc.pyx.orig src/sage/rings/complex_mpc.pyx return x, y -@@ -1704,7 +1704,7 @@ cdef class MPComplexNumber(sage.structur +@@ -1691,7 +1691,7 @@ cdef class MPComplexNumber(sage.structur return z def cosh(self): @@ -1028,7 +1043,7 @@ diff -up src/sage/rings/complex_mpc.pyx.orig src/sage/rings/complex_mpc.pyx Return the hyperbolic cosine of this complex number: .. MATH:: -@@ -1724,7 +1724,7 @@ cdef class MPComplexNumber(sage.structur +@@ -1711,7 +1711,7 @@ cdef class MPComplexNumber(sage.structur return z def sinh(self): @@ -1037,7 +1052,7 @@ diff -up src/sage/rings/complex_mpc.pyx.orig src/sage/rings/complex_mpc.pyx Return the hyperbolic sine of this complex number: .. MATH:: -@@ -2066,7 +2066,7 @@ cdef class MPComplexNumber(sage.structur +@@ -2053,7 +2053,7 @@ cdef class MPComplexNumber(sage.structur return z def exp(self): @@ -1047,8 +1062,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/finite_rings/hom_finite_field.pyx 2021-05-28 11:01:40.389274507 -0600 +--- src/sage/rings/finite_rings/hom_finite_field.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/finite_rings/hom_finite_field.pyx 2021-08-26 13:02:41.294210004 -0600 @@ -147,7 +147,7 @@ cdef class SectionFiniteFieldHomomorphis @@ -1059,9 +1074,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/finite_rings/integer_mod.pyx 2021-05-28 11:01:40.389274507 -0600 -@@ -2173,7 +2173,7 @@ cdef class IntegerMod_gmp(IntegerMod_abs +--- src/sage/rings/finite_rings/integer_mod.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/finite_rings/integer_mod.pyx 2021-08-26 13:02:41.296210007 -0600 +@@ -2179,7 +2179,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 @@ -1070,7 +1085,7 @@ diff -up src/sage/rings/finite_rings/integer_mod.pyx.orig src/sage/rings/finite_ EXAMPLES:: sage: R = Integers(10^10) -@@ -3436,7 +3436,7 @@ cdef class IntegerMod_int64(IntegerMod_a +@@ -3442,7 +3442,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 @@ -1080,8 +1095,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/number_field/number_field_element.pyx 2021-05-28 11:01:43.185275025 -0600 +--- src/sage/rings/number_field/number_field_element.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/number_field/number_field_element.pyx 2021-08-26 13:02:41.297210008 -0600 @@ -490,7 +490,7 @@ cdef class NumberFieldElement(FieldEleme return codomain(f(im_gens[0])) @@ -1092,8 +1107,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/number_field/number_field_morphisms.pyx 2021-05-28 11:01:43.186275025 -0600 +--- src/sage/rings/number_field/number_field_morphisms.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/number_field/number_field_morphisms.pyx 2021-08-26 13:02:41.298210009 -0600 @@ -340,7 +340,7 @@ cdef class EmbeddedNumberFieldConversion @@ -1113,8 +1128,8 @@ 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/padics/local_generic_element.pyx 2021-05-28 11:01:43.187275025 -0600 +--- src/sage/rings/padics/local_generic_element.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/padics/local_generic_element.pyx 2021-08-26 13:02:41.298210009 -0600 @@ -401,7 +401,7 @@ cdef class LocalGenericElement(Commutati return ans @@ -1125,8 +1140,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/padics/padic_capped_absolute_element.pyx 2021-05-28 11:01:43.187275025 -0600 +--- src/sage/rings/padics/padic_capped_absolute_element.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/padics/padic_capped_absolute_element.pyx 2021-08-26 13:02:41.299210010 -0600 @@ -383,7 +383,7 @@ cdef class pAdicCappedAbsoluteElement(CA return ans @@ -1144,31 +1159,10 @@ diff -up src/sage/rings/padics/padic_capped_absolute_element.pyx.orig src/sage/r + r""" Compute the exponential power series of this element - This is a helper method for :meth:`exp`. -diff -up src/sage/rings/padics/padic_capped_relative_element.pyx.orig src/sage/rings/padics/padic_capped_relative_element.pyx ---- src/sage/rings/padics/padic_capped_relative_element.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/padics/padic_capped_relative_element.pyx 2021-05-28 11:01:43.188275025 -0600 -@@ -436,7 +436,7 @@ cdef class pAdicCappedRelativeElement(CR - return ans - - def _exp_binary_splitting(self, aprec): -- """ -+ r""" - Compute the exponential power series of this element - - This is a helper method for :meth:`exp`. -@@ -498,7 +498,7 @@ cdef class pAdicCappedRelativeElement(CR - return ans - - def _exp_newton(self, aprec, log_algorithm=None): -- """ -+ r""" - Compute the exponential power series of this element - 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/padics/padic_fixed_mod_element.pyx 2021-05-28 11:01:43.189275026 -0600 +--- src/sage/rings/padics/padic_fixed_mod_element.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/padics/padic_fixed_mod_element.pyx 2021-08-26 13:02:43.006212006 -0600 @@ -449,7 +449,7 @@ cdef class pAdicFixedModElement(FMElemen return ans @@ -1186,32 +1180,11 @@ diff -up src/sage/rings/padics/padic_fixed_mod_element.pyx.orig src/sage/rings/p + r""" Compute the exponential power series of this element - This is a helper method for :meth:`exp`. -diff -up src/sage/rings/padics/padic_floating_point_element.pyx.orig src/sage/rings/padics/padic_floating_point_element.pyx ---- src/sage/rings/padics/padic_floating_point_element.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/padics/padic_floating_point_element.pyx 2021-05-28 11:01:43.189275026 -0600 -@@ -321,7 +321,7 @@ cdef class pAdicFloatingPointElement(FPE - return Mod(selfvalue, modulus) - - def _exp_binary_splitting(self, aprec): -- """ -+ r""" - Compute the exponential power series of this element - - This is a helper method for :meth:`exp`. -@@ -382,7 +382,7 @@ cdef class pAdicFloatingPointElement(FPE - return ans - - def _exp_newton(self, aprec, log_algorithm=None): -- """ -+ r""" - Compute the exponential power series of this element - 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/padics/padic_generic_element.pyx 2021-05-28 11:01:43.191275026 -0600 -@@ -543,7 +543,7 @@ cdef class pAdicGenericElement(LocalGene +--- src/sage/rings/padics/padic_generic_element.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/padics/padic_generic_element.pyx 2021-08-26 13:02:44.199213403 -0600 +@@ -544,7 +544,7 @@ cdef class pAdicGenericElement(LocalGene return self._repr_(mode=mode) def _repr_(self, mode=None, do_latex=False): @@ -1220,7 +1193,7 @@ diff -up src/sage/rings/padics/padic_generic_element.pyx.orig src/sage/rings/pad Returns a string representation of this element. INPUT: -@@ -3022,7 +3022,7 @@ cdef class pAdicGenericElement(LocalGene +@@ -3024,7 +3024,7 @@ cdef class pAdicGenericElement(LocalGene return series_unit*nfactorial_unit.inverse_of_unit()<<(series_val-nfactorial_val) def _exp_binary_splitting(self, aprec): @@ -1229,8 +1202,8 @@ diff -up src/sage/rings/padics/padic_generic_element.pyx.orig src/sage/rings/pad Compute the exponential power series of this element This is a helper method for :meth:`exp`. -@@ -3068,7 +3068,7 @@ cdef class pAdicGenericElement(LocalGene - raise NotImplementedError("The binary splitting algorithm is not implemented for the parent: %s" % self.parent()) +@@ -3070,7 +3070,7 @@ cdef class pAdicGenericElement(LocalGene + raise NotImplementedError("the binary splitting algorithm is not implemented for the parent: %s" % self.parent()) def _exp_newton(self, aprec, log_algorithm=None): - """ @@ -1238,31 +1211,10 @@ diff -up src/sage/rings/padics/padic_generic_element.pyx.orig src/sage/rings/pad Compute the exponential power series of this element This is a helper method for :meth:`exp`. -diff -up src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx.orig src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx ---- src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx 2021-05-28 11:01:43.193275026 -0600 -@@ -908,7 +908,7 @@ cdef class pAdicZZpXFMElement(pAdicZZpXE - return ans - - def add_bigoh(self, absprec): -- """ -+ r""" - Return a new element truncated modulo \pi^absprec. - - This is only implemented for unramified extension at -@@ -986,7 +986,7 @@ cdef class pAdicZZpXFMElement(pAdicZZpXE - return ans - - def matrix_mod_pn(self): -- """ -+ r""" - Returns the matrix of right multiplication by the element on - the power basis `1, x, x^2, \ldots, x^{d-1}` for this - extension field. Thus the \emph{rows} of this matrix give the 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/polynomial/multi_polynomial_libsingular.pyx 2021-05-28 11:01:44.993275358 -0600 -@@ -2508,7 +2508,7 @@ cdef class MPolynomial_libsingular(MPoly +--- src/sage/rings/polynomial/multi_polynomial_libsingular.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/polynomial/multi_polynomial_libsingular.pyx 2021-08-26 13:02:44.204213409 -0600 +@@ -2506,7 +2506,7 @@ cdef class MPolynomial_libsingular(MPoly return char_to_str(s) def _latex_(self): @@ -1272,8 +1224,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/polynomial/ore_polynomial_element.pyx 2021-05-28 11:01:44.994275358 -0600 +--- src/sage/rings/polynomial/ore_polynomial_element.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/polynomial/ore_polynomial_element.pyx 2021-08-26 13:02:44.205213410 -0600 @@ -1705,8 +1705,8 @@ cdef class OrePolynomial(AlgebraElement) var = "" s += "%s %s"%(x,var) @@ -1286,9 +1238,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/polynomial/polynomial_element.pyx 2021-05-28 11:01:44.999275359 -0600 -@@ -2707,8 +2707,8 @@ cdef class Polynomial(CommutativeAlgebra +--- src/sage/rings/polynomial/polynomial_element.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/polynomial/polynomial_element.pyx 2021-08-26 13:02:44.209213414 -0600 +@@ -2712,8 +2712,8 @@ cdef class Polynomial(CommutativeAlgebra var = "" s += "%s %s" % (x, var) s = s.replace(" + -", " - ") @@ -1299,7 +1251,7 @@ diff -up src/sage/rings/polynomial/polynomial_element.pyx.orig src/sage/rings/po s = s.replace("|","") if s == " ": return "0" -@@ -2808,7 +2808,7 @@ cdef class Polynomial(CommutativeAlgebra +@@ -2813,7 +2813,7 @@ cdef class Polynomial(CommutativeAlgebra raise IndexError("polynomials are immutable") cpdef _floordiv_(self, right): @@ -1308,7 +1260,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 -@@ -6564,8 +6564,8 @@ cdef class Polynomial(CommutativeAlgebra +@@ -6609,8 +6609,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 @@ -1320,9 +1272,9 @@ 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx 2021-05-28 11:01:45.000275359 -0600 -@@ -1379,7 +1379,7 @@ cdef class Polynomial_integer_dense_flin +--- src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx 2021-08-26 13:02:44.210213416 -0600 +@@ -1389,7 +1389,7 @@ cdef class Polynomial_integer_dense_flin return smallInteger(fmpz_poly_degree(self.__poly)) def pseudo_divrem(self, B): @@ -1332,8 +1284,8 @@ 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/polynomial/real_roots.pyx 2021-05-28 11:01:45.002275359 -0600 +--- src/sage/rings/polynomial/real_roots.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/polynomial/real_roots.pyx 2021-08-26 13:02:44.212213418 -0600 @@ -1252,7 +1252,7 @@ def de_casteljau_intvec(Vector_integer_d cdef double half_ulp = ldexp(1.0 * 65/64, -54) @@ -1353,8 +1305,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.pyx.orig src/sage/rings/real_double.pyx ---- src/sage/rings/real_double.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/real_double.pyx 2021-05-28 11:01:45.004275360 -0600 +--- src/sage/rings/real_double.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/real_double.pyx 2021-08-26 13:02:44.214213420 -0600 @@ -2092,7 +2092,7 @@ cdef class RealDoubleElement(FieldElemen return a @@ -1365,8 +1317,8 @@ diff -up src/sage/rings/real_double.pyx.orig src/sage/rings/real_double.pyx INPUT: diff -up src/sage/rings/real_mpfi.pyx.orig src/sage/rings/real_mpfi.pyx ---- src/sage/rings/real_mpfi.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/real_mpfi.pyx 2021-05-28 11:01:45.006275360 -0600 +--- src/sage/rings/real_mpfi.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/real_mpfi.pyx 2021-08-26 13:02:44.216213423 -0600 @@ -1310,7 +1310,7 @@ cdef class RealIntervalFieldElement(Ring return self.str(10) @@ -1377,8 +1329,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/semirings/tropical_semiring.pyx 2021-05-28 11:01:45.007275360 -0600 +--- src/sage/rings/semirings/tropical_semiring.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/semirings/tropical_semiring.pyx 2021-08-26 13:02:44.216213423 -0600 @@ -99,7 +99,7 @@ cdef class TropicalSemiringElement(Eleme return repr(self._val) @@ -1389,8 +1341,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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/rings/tate_algebra_element.pyx 2021-05-28 11:01:45.009275361 -0600 +--- src/sage/rings/tate_algebra_element.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/rings/tate_algebra_element.pyx 2021-08-26 13:02:44.218213425 -0600 @@ -3447,7 +3447,7 @@ cdef class TateAlgebraElement(Commutativ @coerce_binop @@ -1401,8 +1353,8 @@ diff -up src/sage/rings/tate_algebra_element.pyx.orig src/sage/rings/tate_algebr INPUT: diff -up src/sage/structure/coerce_maps.pyx.orig src/sage/structure/coerce_maps.pyx ---- src/sage/structure/coerce_maps.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/structure/coerce_maps.pyx 2021-05-28 11:01:45.010275361 -0600 +--- src/sage/structure/coerce_maps.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/structure/coerce_maps.pyx 2021-08-26 13:02:44.219213426 -0600 @@ -312,7 +312,7 @@ cdef class NamedConvertMap(Map): cdef class CallableConvertMap(Map): @@ -1412,9 +1364,21 @@ diff -up src/sage/structure/coerce_maps.pyx.orig src/sage/structure/coerce_maps. 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_conversions.py.orig src/sage/symbolic/expression_conversions.py +--- src/sage/symbolic/expression_conversions.py.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/symbolic/expression_conversions.py 2021-08-27 08:13:43.289141017 -0600 +@@ -969,7 +969,7 @@ class FriCASConverter(InterfaceInit): + super(FriCASConverter, self).__init__(sage.interfaces.fricas.fricas) + + def pyobject(self, ex, obj): +- """ ++ r""" + Return a string which, when evaluated by FriCAS, returns the + object as an expression. + diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx ---- src/sage/symbolic/expression.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/symbolic/expression.pyx 2021-05-28 11:01:45.016275362 -0600 +--- src/sage/symbolic/expression.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/symbolic/expression.pyx 2021-08-26 13:02:44.223213431 -0600 @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -""" @@ -1422,7 +1386,7 @@ diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx Symbolic Expressions RELATIONAL EXPRESSIONS: -@@ -4911,7 +4911,7 @@ cdef class Expression(CommutativeRingEle +@@ -4979,7 +4979,7 @@ cdef class Expression(CommutativeRingEle expand_rational = rational_expand = expand def expand_trig(self, full=False, half_angles=False, plus=True, times=True): @@ -1431,7 +1395,7 @@ diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx Expand trigonometric and hyperbolic functions of sums of angles and of multiple angles occurring in self. For best results, self should already be expanded. -@@ -7472,7 +7472,7 @@ cdef class Expression(CommutativeRingEle +@@ -7567,7 +7567,7 @@ cdef class Expression(CommutativeRingEle return new_Expression_from_GEx(self._parent, x) def gosper_term(self, n): @@ -1441,20 +1405,20 @@ diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/symbolic/function.pyx 2021-05-28 11:01:45.017275362 -0600 -@@ -1588,7 +1588,7 @@ cdef class DeprecatedSFunction(SymbolicF - evalf_params_first, pickled_functions)) +--- src/sage/symbolic/function.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/symbolic/function.pyx 2021-08-26 13:02:44.224213432 -0600 +@@ -1283,7 +1283,7 @@ cdef class BuiltinFunction(Function): + # this is required to read old pickles of erf, elliptic_ec, etc. def __setstate__(self, state): - """ + r""" EXAMPLES:: - sage: from sage.symbolic.function import DeprecatedSFunction + sage: cot.__setstate__([1,0]) diff -up src/sage/symbolic/ring.pyx.orig src/sage/symbolic/ring.pyx ---- src/sage/symbolic/ring.pyx.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/symbolic/ring.pyx 2021-05-28 11:01:45.018275362 -0600 +--- src/sage/symbolic/ring.pyx.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage/symbolic/ring.pyx 2021-08-26 13:02:44.225213433 -0600 @@ -86,7 +86,7 @@ cdef class SymbolicRing(CommutativeRing) return "Symbolic Ring" @@ -1464,7 +1428,7 @@ diff -up src/sage/symbolic/ring.pyx.orig src/sage/symbolic/ring.pyx Return latex representation of the symbolic ring. EXAMPLES:: -@@ -484,7 +484,7 @@ cdef class SymbolicRing(CommutativeRing) +@@ -504,7 +504,7 @@ cdef class SymbolicRing(CommutativeRing) return new_Expression_from_GEx(self, exp) def wild(self, unsigned int n=0): @@ -1473,8 +1437,8 @@ diff -up src/sage/symbolic/ring.pyx.orig src/sage/symbolic/ring.pyx Return the n-th wild-card for pattern matching and substitution. INPUT: -@@ -750,7 +750,7 @@ cdef class SymbolicRing(CommutativeRing) - return e +@@ -859,7 +859,7 @@ cdef class SymbolicRing(CommutativeRing) + asm.forget() def var(self, name, latex_name=None, n=None, domain=None): - """ diff --git a/sagemath-flexiblas.patch b/sagemath-flexiblas.patch index 409ec7c..8c05e9b 100644 --- a/sagemath-flexiblas.patch +++ b/sagemath-flexiblas.patch @@ -1,7 +1,7 @@ diff -up configure.orig configure ---- configure.orig 2021-05-09 16:01:38.000000000 -0600 -+++ configure 2021-06-03 06:44:51.137915577 -0600 -@@ -12184,12 +12184,12 @@ if test -n "$OPENBLAS_CFLAGS"; then +--- configure.orig 2021-08-22 02:45:52.000000000 -0600 ++++ configure 2021-08-26 13:40:30.029000877 -0600 +@@ -12703,12 +12703,12 @@ if test -n "$OPENBLAS_CFLAGS"; then pkg_cv_OPENBLAS_CFLAGS="$OPENBLAS_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ @@ -17,7 +17,7 @@ diff -up configure.orig configure test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes -@@ -12201,12 +12201,12 @@ if test -n "$OPENBLAS_LIBS"; then +@@ -12720,12 +12720,12 @@ if test -n "$OPENBLAS_LIBS"; then pkg_cv_OPENBLAS_LIBS="$OPENBLAS_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ @@ -33,7 +33,7 @@ diff -up configure.orig configure test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes -@@ -12227,9 +12227,9 @@ else +@@ -12746,9 +12746,9 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then @@ -45,7 +45,7 @@ diff -up configure.orig configure fi # Put the nasty error message in config.log where it belongs echo "$OPENBLAS_PKG_ERRORS" >&5 -@@ -12257,16 +12257,16 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ +@@ -12776,16 +12776,16 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ #ifdef __cplusplus extern "C" #endif @@ -65,7 +65,7 @@ diff -up configure.orig configure if test -z "$ac_lib"; then ac_res="none required" else -@@ -12319,22 +12319,22 @@ else +@@ -12835,22 +12835,22 @@ else /* end confdefs.h. */ #include @@ -95,7 +95,7 @@ diff -up configure.orig configure return 1; ; return 0; -@@ -12387,7 +12387,7 @@ return cblas_dgemm (); +@@ -12903,7 +12903,7 @@ return cblas_dgemm (); return 0; } _ACEOF @@ -104,7 +104,7 @@ diff -up configure.orig configure if test -z "$ac_lib"; then ac_res="none required" else -@@ -12451,7 +12451,7 @@ return dgeqrf (); +@@ -12967,7 +12967,7 @@ return dgeqrf (); return 0; } _ACEOF @@ -113,7 +113,7 @@ diff -up configure.orig configure if test -z "$ac_lib"; then ac_res="none required" else -@@ -12515,7 +12515,7 @@ return dgeqrf_ (); +@@ -13031,7 +13031,7 @@ return dgeqrf_ (); return 0; } _ACEOF @@ -122,7 +122,7 @@ diff -up configure.orig configure if test -z "$ac_lib"; then ac_res="none required" else -@@ -12579,7 +12579,7 @@ return DGEQRF (); +@@ -13095,7 +13095,7 @@ return DGEQRF (); return 0; } _ACEOF @@ -131,7 +131,7 @@ diff -up configure.orig configure if test -z "$ac_lib"; then ac_res="none required" else -@@ -12643,7 +12643,7 @@ return DGEQRF_ (); +@@ -13159,7 +13159,7 @@ return DGEQRF_ (); return 0; } _ACEOF @@ -140,7 +140,7 @@ diff -up configure.orig configure if test -z "$ac_lib"; then ac_res="none required" else -@@ -12731,16 +12731,16 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ +@@ -13247,16 +13247,16 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ #ifdef __cplusplus extern "C" #endif @@ -160,7 +160,7 @@ diff -up configure.orig configure if test -z "$ac_lib"; then ac_res="none required" else -@@ -12793,22 +12793,22 @@ else +@@ -13306,22 +13306,22 @@ else /* end confdefs.h. */ #include @@ -190,7 +190,7 @@ diff -up configure.orig configure return 1; ; return 0; -@@ -12861,7 +12861,7 @@ return cblas_dgemm (); +@@ -13374,7 +13374,7 @@ return cblas_dgemm (); return 0; } _ACEOF @@ -199,7 +199,7 @@ diff -up configure.orig configure if test -z "$ac_lib"; then ac_res="none required" else -@@ -12925,7 +12925,7 @@ return dgeqrf (); +@@ -13438,7 +13438,7 @@ return dgeqrf (); return 0; } _ACEOF @@ -208,7 +208,7 @@ diff -up configure.orig configure if test -z "$ac_lib"; then ac_res="none required" else -@@ -12989,7 +12989,7 @@ return dgeqrf_ (); +@@ -13502,7 +13502,7 @@ return dgeqrf_ (); return 0; } _ACEOF @@ -217,7 +217,7 @@ diff -up configure.orig configure if test -z "$ac_lib"; then ac_res="none required" else -@@ -13053,7 +13053,7 @@ return DGEQRF (); +@@ -13566,7 +13566,7 @@ return DGEQRF (); return 0; } _ACEOF @@ -226,7 +226,7 @@ diff -up configure.orig configure if test -z "$ac_lib"; then ac_res="none required" else -@@ -13117,7 +13117,7 @@ return DGEQRF_ (); +@@ -13630,7 +13630,7 @@ return DGEQRF_ (); return 0; } _ACEOF @@ -235,7 +235,7 @@ diff -up configure.orig configure if test -z "$ac_lib"; then ac_res="none required" else -@@ -13192,12 +13192,12 @@ if test -n "$OPENBLASPCDIR"; then +@@ -13705,12 +13705,12 @@ if test -n "$OPENBLASPCDIR"; then pkg_cv_OPENBLASPCDIR="$OPENBLASPCDIR" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ @@ -251,7 +251,7 @@ diff -up configure.orig configure test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes -@@ -13412,7 +13412,7 @@ fi +@@ -13925,7 +13925,7 @@ fi if test x$sage_spkg_install_openblas != xyes; then : @@ -261,10 +261,10 @@ diff -up configure.orig configure if test x$sage_install_blas_pc = xyes; then : diff -up src/sage/env.py.orig src/sage/env.py ---- src/sage/env.py.orig 2021-06-16 13:13:15.378722205 -0600 -+++ src/sage/env.py 2021-06-16 13:42:26.443996772 -0600 -@@ -209,7 +209,7 @@ MAXIMA = var("MAXIMA", "maxima") - MAXIMA_FAS = var("MAXIMA_FAS") +--- src/sage/env.py.orig 2021-08-26 13:39:46.040938448 -0600 ++++ src/sage/env.py 2021-08-26 13:40:30.029000877 -0600 +@@ -212,7 +212,7 @@ MAXIMA_FAS = var("MAXIMA_FAS") + KENZO_FAS = var("KENZO_FAS") SAGE_NAUTY_BINS_PREFIX = var("SAGE_NAUTY_BINS_PREFIX", "") ARB_LIBRARY = var("ARB_LIBRARY", "arb") -CBLAS_PC_MODULES = var("CBLAS_PC_MODULES", "cblas:openblas:blas") @@ -272,9 +272,9 @@ diff -up src/sage/env.py.orig src/sage/env.py ECL_CONFIG = var("ECL_CONFIG", "ecl-config") NTL_INCDIR = var("NTL_INCDIR") NTL_LIBDIR = var("NTL_LIBDIR") -@@ -408,7 +408,7 @@ def cython_aliases(): - for lib in ['fflas-ffpack', 'givaro', 'gsl', 'linbox', 'Singular', - 'libpng', 'gdlib', 'm4ri', 'zlib', 'cblas', 'lapack']: +@@ -456,7 +456,7 @@ def cython_aliases(required_modules=('ff + for lib, required in itertools.chain(((lib, True) for lib in required_modules), + ((lib, False) for lib in optional_modules)): var = lib.upper().replace("-", "") + "_" - if lib == 'cblas': + if lib == 'cblas' or lib == 'lapack': diff --git a/sagemath-readonly.patch b/sagemath-readonly.patch deleted file mode 100644 index c85529c..0000000 --- a/sagemath-readonly.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -up src/sage/all.py.orig src/sage/all.py ---- src/sage/all.py.orig 2020-10-24 11:37:59.000000000 -0600 -+++ src/sage/all.py 2020-10-30 13:56:32.674557350 -0600 -@@ -324,11 +324,11 @@ def _write_started_file(): - Check that the file exists when Sage is running (note, this file is not - necessarily installed or used by downstream packages of Sage):: - -- sage: started_file = os.path.join(SAGE_LOCAL, 'etc', 'sage-started.txt') -+ sage: started_file = os.path.join(DOT_SAGE, 'sage-started.txt') - sage: os.path.isfile(started_file) # optional - build - True - """ -- started_file = os.path.join(SAGE_LOCAL, 'etc', 'sage-started.txt') -+ started_file = os.path.join(DOT_SAGE, 'sage-started.txt') - - # Current time with a resolution of 1 second - import datetime diff --git a/sagemath-rpmbuild.patch b/sagemath-rpmbuild.patch index 1cfd48f..4d4b173 100644 --- a/sagemath-rpmbuild.patch +++ b/sagemath-rpmbuild.patch @@ -1,12 +1,12 @@ diff -up src/sage/misc/cython.py.orig src/sage/misc/cython.py ---- src/sage/misc/cython.py.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/misc/cython.py 2021-05-28 11:28:14.608518654 -0600 -@@ -53,7 +53,7 @@ def _standard_libs_libdirs_incdirs_alias - 'ec', 'gsl', - ] + aliases["CBLAS_LIBRARIES"] + [ +--- src/sage/misc/cython.py.orig 2021-08-26 13:10:09.114735665 -0600 ++++ src/sage/misc/cython.py 2021-08-26 13:11:01.734797359 -0600 +@@ -55,7 +55,7 @@ def _standard_libs_libdirs_incdirs_alias 'ntl'] -- standard_libdirs = [os.path.join(SAGE_LOCAL, "lib")] + aliases["CBLAS_LIBDIR"] + aliases["NTL_LIBDIR"] -+ standard_libdirs = [os.path.realpath(os.path.join(SAGE_LOCAL, "lib"))] + aliases["CBLAS_LIBDIR"] + aliases["NTL_LIBDIR"] + standard_libdirs = [] + if SAGE_LOCAL: +- standard_libdirs.append(os.path.join(SAGE_LOCAL, "lib")) ++ standard_libdirs.append(os.path.realpath(os.path.join(SAGE_LOCAL, "lib"))) + standard_libdirs.extend(aliases["CBLAS_LIBDIR"] + aliases["NTL_LIBDIR"]) standard_incdirs = sage_include_directories() + aliases["CBLAS_INCDIR"] + aliases["NTL_INCDIR"] return standard_libs, standard_libdirs, standard_incdirs, aliases - diff --git a/sagemath-sagedoc.patch b/sagemath-sagedoc.patch index b51c71a..1835eef 100644 --- a/sagemath-sagedoc.patch +++ b/sagemath-sagedoc.patch @@ -1,6 +1,6 @@ diff -up src/sage_docbuild/ext/multidocs.py.orig src/sage_docbuild/ext/multidocs.py ---- src/sage_docbuild/ext/multidocs.py.orig 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage_docbuild/ext/multidocs.py 2021-05-28 11:32:20.056542939 -0600 +--- src/sage_docbuild/ext/multidocs.py.orig 2021-08-22 02:44:34.000000000 -0600 ++++ src/sage_docbuild/ext/multidocs.py 2021-08-26 13:11:24.937824557 -0600 @@ -84,8 +84,11 @@ def merge_environment(app, env): for ind in newalldoc: # treat subdocument source as orphaned file and don't complain @@ -16,26 +16,20 @@ 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 2021-05-09 16:00:11.000000000 -0600 -+++ src/sage/interfaces/singular.py 2021-05-28 11:29:00.597523201 -0600 -@@ -2365,7 +2365,7 @@ def generate_docstring_dictionary(): - nodes.clear() - node_names.clear() +--- src/sage/interfaces/singular.py.orig 2021-08-26 13:11:24.940824561 -0600 ++++ src/sage/interfaces/singular.py 2021-08-26 13:17:49.831262334 -0600 +@@ -2370,11 +2370,11 @@ def generate_docstring_dictionary(): -- singular_docdir = SINGULARPATH + "/../info/" -+ singular_docdir = "/usr/share/info/" - - new_node = re.compile(r"File: singular\.hlp, Node: ([^,]*),.*") - new_lookup = re.compile(r"\* ([^:]*):*([^.]*)\..*") -@@ -2373,8 +2373,9 @@ def generate_docstring_dictionary(): L, in_node, curr_node = [], False, None - # singular.hlp contains a few iso-5559-1 encoded special characters -- with io.open(os.path.join(singular_docdir, 'singular.hlp'), -- encoding='latin-1') as f: +- from sage.libs.singular.singular import get_resource +- singular_info_file = get_resource('i') ++ singular_info_file = '/usr/share/info/singular.hlp.gz' + + # singular.hlp contains a few iso-8859-1 encoded special characters +- with io.open(singular_info_file, + import gzip -+ with gzip.open(os.path.join(singular_docdir, 'singular.hlp.gz'), -+ encoding='utf-8') as f: ++ with gzip.open(singular_info_file, + encoding='latin-1') as f: for line in f: m = re.match(new_node,line) - if m: diff --git a/sagemath-scripts.patch b/sagemath-scripts.patch index f8a6ccd..e2840c2 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-05-09 16:00:11.000000000 -0600 -+++ src/bin/sage 2021-05-28 11:16:43.936440802 -0600 +--- src/bin/sage.orig 2021-08-22 02:44:33.000000000 -0600 ++++ src/bin/sage 2021-08-26 13:09:38.262699484 -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" -@@ -159,111 +158,6 @@ if [ -f "${SELF}-env-config" ]; then +@@ -160,111 +159,6 @@ if [ -f "${SELF}-env-config" ]; then fi ##################################################################### @@ -121,12 +121,12 @@ diff -up src/bin/sage.orig src/bin/sage # Report information about the Sage environment ##################################################################### -@@ -308,20 +202,6 @@ fi +@@ -309,20 +203,6 @@ fi # Prepare for running Sage, either interactively or non-interactively. sage_setup() { - # Check that we're not in a source tarball which hasn't been built yet (#13561). -- if [ ! -z "$SAGE_LOCAL" ] && [ ! -x "$SAGE_LOCAL/bin/sage" ]; then +- if [ "$SAGE_SRC_ENV_CONFIG" = 1 ] && [ ! -z "$SAGE_VENV" ] && [ ! -x "$SAGE_VENV/bin/sage" ]; then - echo >&2 '************************************************************************' - echo >&2 'It seems that you are attempting to run Sage from an unpacked source' - echo >&2 'tarball, but you have not compiled it yet (or maybe the build has not' @@ -142,7 +142,7 @@ diff -up src/bin/sage.orig src/bin/sage 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 -@@ -332,20 +212,6 @@ sage_setup() { +@@ -333,20 +213,6 @@ sage_setup() { } @@ -153,7 +153,7 @@ diff -up src/bin/sage.orig src/bin/sage -maybe_sage_location() -{ - if [ -n "$SAGE_LOCAL" -a -w "$SAGE_LOCAL" ]; then -- if [ -x "$SAGE_LOCAL/bin/python" ] && [ -x "$SAGE_LOCAL/bin/sage-location" ]; then +- if [ -x "$SAGE_VENV/bin/python" ] && [ -x "$SAGE_VENV/bin/sage-location" ]; then - sage-location || exit $? - fi - fi @@ -163,7 +163,7 @@ diff -up src/bin/sage.orig src/bin/sage # Start an interactive Sage session, this function never returns. interactive_sage() { sage_setup -@@ -383,8 +249,6 @@ usage_advanced() { +@@ -384,8 +250,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 +172,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 -@@ -418,18 +282,9 @@ usage_advanced() { +@@ -419,18 +283,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 +191,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" -@@ -678,11 +533,6 @@ if [ "$1" = '-lisp' -o "$1" = '--lisp' ] +@@ -677,11 +532,6 @@ if [ "$1" = '-lisp' -o "$1" = '--lisp' ] exec ecl "$@" fi @@ -203,7 +203,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) -@@ -707,11 +557,6 @@ if [ "$1" = '-R' -o "$1" = '--R' ]; then +@@ -706,11 +556,6 @@ if [ "$1" = '-R' -o "$1" = '--R' ]; then exec R "$@" fi @@ -215,7 +215,7 @@ diff -up src/bin/sage.orig src/bin/sage ##################################################################### # sage --sh and sage --buildsh ##################################################################### -@@ -883,11 +728,6 @@ fi +@@ -877,11 +722,6 @@ fi # build_sage, sage -b, sage -br, etc. could be moved to # build/bin/sage-site. See #29111. @@ -227,7 +227,7 @@ diff -up src/bin/sage.orig src/bin/sage if [[ "$1" =~ ^--notebook=.* || "$1" =~ ^-n=.* || "$1" =~ ^-notebook=.* ]] ; then sage-cleaner &>/dev/null & exec sage-notebook "$@" -@@ -898,13 +738,6 @@ if [ "$1" = "-notebook" -o "$1" = '--not +@@ -892,13 +732,6 @@ if [ "$1" = "-notebook" -o "$1" = '--not exec sage-notebook "$@" fi @@ -241,7 +241,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. -@@ -921,36 +754,11 @@ if [ -n "$SAGE_SRC" -a -d "$SAGE_SRC" ]; +@@ -915,46 +748,18 @@ if [ -n "$SAGE_SRC" -a -d "$SAGE_SRC" ]; fi fi @@ -278,7 +278,6 @@ diff -up src/bin/sage.orig src/bin/sage exec-runtests() { sage_setup export PYTHONIOENCODING="utf-8" # Fix encoding for doctests -@@ -967,10 +775,7 @@ exec-runtests() { exec sage-runtests "$@" } @@ -290,7 +289,7 @@ diff -up src/bin/sage.orig src/bin/sage if [ "$1" = '-tp' -o "$1" = '-btp' ]; then shift exec-runtests -p "$@" -@@ -980,34 +785,11 @@ if [ "$1" = '-t' -o "$1" = '-bt' -o "$1" +@@ -964,34 +769,11 @@ if [ "$1" = '-t' -o "$1" = '-bt' -o "$1" fi fi @@ -325,7 +324,7 @@ diff -up src/bin/sage.orig src/bin/sage if [ "$1" = '-startuptime' -o "$1" = '--startuptime' ]; then exec sage-startuptime.py "$@" fi -@@ -1030,59 +812,11 @@ fi +@@ -1014,59 +796,11 @@ fi # Creating and handling Sage distributions ##################################################################### @@ -385,7 +384,7 @@ diff -up src/bin/sage.orig src/bin/sage ##################################################################### # Debugging tools ##################################################################### -@@ -1126,12 +860,6 @@ if [ "$1" = '-callgrind' -o "$1" = "--ca +@@ -1110,12 +844,6 @@ if [ "$1" = '-callgrind' -o "$1" = "--ca exec sage-callgrind "$@" fi diff --git a/sagemath.spec b/sagemath.spec index 1173b01..356108e 100644 --- a/sagemath.spec +++ b/sagemath.spec @@ -5,8 +5,8 @@ %bcond_with bundled_pexpect %bcond_with bundled_ipython -%bcond_without bundled_ipywidgets %bcond_without bundled_jupyter_jsmol +%bcond_without bundled_memory_allocator %bcond_without bundled_thebe %bcond_without bundled_threejs %bcond_without install_hack @@ -19,7 +19,7 @@ %endif # use a workaround to match upstream sagemath patched sphinx -%bcond_without sphinx_hack +%bcond_with sphinx_hack # use workaround to match upstream sagemath patched cython %bcond_with cython_hack @@ -41,26 +41,26 @@ %global elliptic_curves_pkg elliptic_curves-0.8.1 %global graphs_pkg graphs-20210214 %if %{with bundled_ipython} -%global ipython_ver 7.13.0 +%global ipython_ver 7.16.1 %global ipython_pkg ipython-%{ipython_ver} %global prompt_toolkit_ver 3.0.5 %global prompt_tookit_pkg prompt_toolkit-%{prompt_toolkit_ver} %endif -%if %{with bundled_ipywidgets} -%global ipywidgets_ver 7.6.3 -%global ipywidgets_pkg ipywidgets-%{ipywidgets_ver} -%endif %if %{with bundled_jupyter_jsmol} %global jupyter_jsmol_ver 0.2.4 %global jupyter_jsmol_pkg jupyter_jsmol-%{jupyter_jsmol_ver} %endif +%if %{with bundled_memory_allocator} +%global memory_allocator_ver 0.1.0 +%global memory_allocator_pkg memory_allocator-%{memory_allocator_ver} +%endif %if %{with bundled_pexpect} %global pexpect_pkg pexpect-4.8.0 %endif %global polytopes_db_pkg polytopes_db-20170220 %global sagetex_pkg sagetex-3.5 -%global Sphinx_pkg Sphinx-3.1.2 -%global singular_pkg singular-4.2.0p2 +%global Sphinx_pkg Sphinx-4.0.1 +%global singular_pkg singular-4.2.0p3 %if %{with bundled_thebe} %global thebe_ver 9624e0a0 %global thebe_pkg thebe-%{thebe_ver} @@ -71,7 +71,7 @@ %endif # Spkg equivalents of required rpms; we pretend they are installed as spkgs. -%global SAGE_REQUIRED_PKGS 4ti2-1.6.9 bliss-0.73 CoCoALib-0.99712 coxeter3-3.1 cryptominisat-5.8.0 database_cremona_ellcurve-%{cremona_ver} gap_packages-4.11.0 libsirocco-2.0.2 lrslib-071a mcqd-1.0 meataxe-1.0 primecount-7.0 qepcad-B.1.74 saclib-2.2.8 surf-1.0.6-gcc6 tdlib-0.9.0 +%global SAGE_REQUIRED_PKGS 4ti2-1.6.9 bliss-0.73 CoCoALib-0.99713 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 meataxe-1.0 primecount-7.1 qepcad-B.1.74 saclib-2.2.8 surf-1.0.6-gcc6 tdlib-0.9.1 %ifarch %{ix86} x86_64 %global SAGE_REQUIRED_PKGS %{SAGE_REQUIRED_PKGS} fes-0.2 @@ -88,8 +88,8 @@ Name: sagemath Summary: A free open-source mathematics software system -Version: 9.3 -Release: 5%{?dist} +Version: 9.4 +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 @@ -127,9 +127,6 @@ Patch4: %{name}-rpmbuild.patch # build documentation in buildroot environment Patch5: %{name}-sagedoc.patch -# do not attempt to create state files in system directories -Patch6: %{name}-readonly.patch - # work with all maxima-runtime lisp backend packages Patch7: %{name}-maxima.patch @@ -188,9 +185,6 @@ Patch23: %{name}-intersphinx.patch # Remove an unused call to a primecount function that no longer exists Patch24: %{name}-primecount.patch -# Adapt to recent changes in eclib -Patch25: %{name}-eclib.patch - BuildRequires: 4ti2 BuildRequires: appstream BuildRequires: arb-devel @@ -198,6 +192,7 @@ BuildRequires: bc BuildRequires: bliss-devel BuildRequires: boost-devel BuildRequires: brial-devel +BuildRequires: chrpath BuildRequires: cmake BuildRequires: cddlib-devel BuildRequires: cddlib-tools @@ -331,7 +326,6 @@ BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(pynac) BuildRequires: pkgconfig(readline) BuildRequires: pkgconfig(Singular) -BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(tk) BuildRequires: pkgconfig(zlib) BuildRequires: planarity-devel @@ -366,6 +360,7 @@ BuildRequires: %{py3_dist ipykernel} %if %{without bundled_ipython} BuildRequires: %{py3_dist ipython} %endif +BuildRequires: %{py3_dist ipywidgets} %if %{with bundled_ipython} BuildRequires: %{py3_dist jedi} %endif @@ -385,8 +380,10 @@ BuildRequires: %{py3_dist pickleshare} %endif BuildRequires: %{py3_dist pip} BuildRequires: %{py3_dist pkgconfig} +BuildRequires: %{py3_dist pluggy} BuildRequires: %{py3_dist psutil} BuildRequires: %{py3_dist ptyprocess} +BuildRequires: %{py3_dist py} BuildRequires: %{py3_dist pycryptosat} BuildRequires: %{py3_dist pyopenssl} %if %{with bundled_ipython} @@ -403,7 +400,9 @@ BuildRequires: %{py3_dist simplegeneric} BuildRequires: %{py3_dist six} BuildRequires: %{py3_dist sphinx} BuildRequires: %{py3_dist sympy} +BuildRequires: %{py3_dist toml} BuildRequires: %{py3_dist tox} +BuildRequires: %{py3_dist typing-extensions} BuildRequires: %{py3_dist wheel} BuildRequires: %{py3_dist widgetsnbextension} BuildRequires: %{py3_dist zodb3} @@ -542,6 +541,7 @@ Requires: %{py3_dist ipykernel} %if %{without bundled_ipython} Requires: %{py3_dist ipython} %endif +Requires: %{py3_dist ipywidgets} %if %{with bundled_ipython} Requires: %{py3_dist jedi} %endif @@ -581,12 +581,12 @@ Requires: texlive Provides: bundled(ipython) = %{ipython_ver} Provides: bundled(prompt_toolkit) = %{prompt_toolkit_ver} %endif -%if %{with bundled_ipywidgets} -Provides: bundled(ipywidgets) = %{ipywidgets_ver} -%endif %if %{with bundled_jupyter_jsmol} Provides: bundled(jupyter-jsmol) = %{jupyter_jsmol_ver} %endif +%if %{with bundled_memory_allocator} +Provides: bundled(memory-allocator) = %{memory_allocator_ver} +%endif %description core This package contains the core sagemath python modules. @@ -841,13 +841,6 @@ pushd build/pkgs/prompt_toolkit popd %endif -%if %{with bundled_ipywidgets} -pushd build/pkgs/ipywidgets - tar zxf ../../../upstream/%{ipywidgets_pkg}.tar.gz - mv %{ipywidgets_pkg} src -popd -%endif - %if %{with bundled_jupyter_jsmol} pushd build/pkgs/jupyter_jsmol tar zxf ../../../upstream/%{jupyter_jsmol_pkg}.tar.gz @@ -855,6 +848,13 @@ pushd build/pkgs/jupyter_jsmol popd %endif +%if %{with bundled_memory_allocator} +pushd build/pkgs/memory_allocator + tar zxf ../../../upstream/%{memory_allocator_pkg}.tar.gz + mv %{memory_allocator_pkg} src +popd +%endif + %if %{with bundled_pexpect} pushd build/pkgs/pexpect tar zxf ../../../upstream/%{pexpect_pkg}.tar.gz @@ -898,9 +898,8 @@ popd %if %{with bundled_threejs} pushd build/pkgs/threejs - mkdir src - cd src - tar zxf ../../../../upstream/%{threejs_pkg}.tar.gz + tar zxf ../../../upstream/%{threejs_pkg}.tar.gz + mv %{threejs_pkg} src popd %endif @@ -910,7 +909,6 @@ popd %patch3 %patch4 %patch5 -%patch6 %patch7 %patch8 %patch9 @@ -932,11 +930,8 @@ popd %patch22 %patch23 %patch24 -%patch25 -sed -e 's|@@SAGE_ROOT@@|%{SAGE_ROOT}|' \ - -e 's|@@SAGE_DOC@@|%{SAGE_DOC}|' \ - -e 's|@@SAGE_LOCAL@@|%{SAGE_LOCAL}|' \ +sed -e 's|@@SAGE_LOCAL@@|%{SAGE_LOCAL}|' \ -e 's|@@LIBDIR@@|%{_libdir}|g' \ -i src/sage/env.py @@ -975,7 +970,6 @@ sed -i 's,%{_bindir}/python,&3,' src/sage/misc/dev_tools.py sed -e 's,local/bin/python,bin/python,' \ -e 's,#!%{_bindir}/python,&3,' \ -i src/sage/repl/preparse.py -sed -i 's,$SAGE_LOCAL/bin/python,%{_bindir}/python,g' src/bin/sage %if %{with bundled_ipython} sed -e "s|'%{_bindir}/env', 'which'|'%{_bindir}/which'|" \ -i build/pkgs/ipython/src/IPython/utils/_process_posix.py @@ -993,20 +987,6 @@ sed -i 's/yum/rpm/' build/bin/sage-guess-package-system # Allow use of python 3.10 sed -i 's/3\.10\.0/3.11.0/g' configure -# Allow use of GCC 11 -sed -i 's/1\[1-9\]/1[2-9]/' configure - -# Allow use of pari 2.13.1 -sed -e 's/Mod(0, 2)/0/' \ - -e 's,share/doc/pari/pari\.cfg,%{_lib}/pari/pari.cfg,' \ - -i configure - -# Allow use of fplll 5.4.1 -sed -i 's/5\.4\.0/5.4.1/g' configure - -# Allow use of giac 1.7 -sed -i 's/1\.6\.999/1.7.999/g' configure - # Do not build with -march=native sed -i 's/CFLAGS_MARCH="-march=native"/CFLAGS_MARCH=""/' configure @@ -1044,13 +1024,14 @@ ln -sf %{_datadir} $SAGE_LOCAL/share export PATH=%{buildroot}%{_bindir}:$PATH export PYTHON=%{_bindir}/python3 -export PYTHONPATH=%{buildroot}%{python3_sitearch}:$PYTHONPATH +export PYTHONPATH=%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}:$PYTHONPATH #------------------------------------------------------------------------ # Run the configure script to generate files export GSL_LIBS="-lgsl -lflexiblas -lm" %configure \ --prefix=$SAGE_LOCAL \ + --disable-rpath \ --disable-silent-rules \ --enable-4ti2 \ --enable-bliss \ @@ -1091,15 +1072,15 @@ pushd build/pkgs/prompt_toolkit/src popd %endif -%if %{with bundled_ipywidgets} -pushd build/pkgs/ipywidgets/src +%if %{with bundled_jupyter_jsmol} +pushd build/pkgs/jupyter_jsmol/src %{python3} setup.py build %{python3} setup.py install --root %{_builddir} popd %endif -%if %{with bundled_jupyter_jsmol} -pushd build/pkgs/jupyter_jsmol/src +%if %{with bundled_memory_allocator} +pushd build/pkgs/memory_allocator/src %{python3} setup.py build %{python3} setup.py install --root %{_builddir} popd @@ -1119,6 +1100,7 @@ popd # Restore environment used to generate bundled interfaces export PATH=$save_PATH export SAGE_LOCAL=$save_LOCAL +export PYTHONPATH=$PYTHONPATH:%{_builddir}%{python3_sitelib}:%{_builddir}%{python3_sitearch} mkdir -p %{buildroot}%{SAGE_SPKG_INST} mkdir -p %{buildroot}%{_libdir}/sagemath/build/pkgs @@ -1158,8 +1140,8 @@ mkdir -p $DOT_SAGE/tmp export PATH=%{buildroot}%{_bindir}:$PATH export PYTHON=%{_bindir}/python3 -export PYTHONPATH=%{buildroot}%{python3_sitearch}:$PYTHONPATH -export PYTHONPATH=%{_builddir}%{python3_sitearch}:$PYTHONPATH +export PYTHONPATH=%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}:$PYTHONPATH +export PYTHONPATH=%{_builddir}%{python3_sitearch}:%{_builddir}%{python3_sitelib}:$PYTHONPATH #------------------------------------------------------------------------ mkdir -p %{buildroot}%{_bindir} @@ -1315,13 +1297,13 @@ mv %{_builddir}%{_bindir}/ip* %{buildroot}%{SAGE_LOCAL}/bin %endif #------------------------------------------------------------------------ -%if %{with bundled_ipywidgets} -mv %{_builddir}%{python3_sitelib}/ipywidgets* %{buildroot}%{SAGE_PYTHONPATH} +%if %{with bundled_jupyter_jsmol} +mv %{_builddir}%{python3_sitelib}/jupyter_jsmol* %{buildroot}%{SAGE_PYTHONPATH} %endif #------------------------------------------------------------------------ -%if %{with bundled_jupyter_jsmol} -mv %{_builddir}%{python3_sitelib}/jupyter_jsmol* %{buildroot}%{SAGE_PYTHONPATH} +%if %{with bundled_memory_allocator} +mv %{_builddir}%{python3_sitearch}/memory_allocator* %{buildroot}%{SAGE_PYTHONPATH} %endif #------------------------------------------------------------------------ @@ -1408,7 +1390,7 @@ pushd src/doc export PATH=%{buildroot}%{_bindir}:$SAGE_LOCAL/bin:$PATH export SINGULARPATH=%{_datadir}/singular/LIB export SINGULAR_BIN_DIR=%{_libdir}/Singular - export PYTHONPATH=$SAGE_SETUP:%{buildroot}%{python3_sitearch}:$SAGE_PYTHONPATH:$SAGE_SRC + export PYTHONPATH=$SAGE_SETUP:%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}:$SAGE_PYTHONPATH:$SAGE_SRC %if %{with sphinx_hack} pushd ../../build/pkgs/sphinx/src @@ -1458,6 +1440,13 @@ perl -pi -e 's|%{buildroot}||g;' \ # with docs %endif +# Even more wrong buildroot references +for shared in $(find %{buildroot}%{python3_sitearch} -name \*.so); do + if chrpath -l $shared | grep -Fq BUILDROOT; then + chrpath -r %{SAGE_LOCAL}/lib $shared + fi +done + #------------------------------------------------------------------------ # Fix links export SAGE_SRC=%{buildroot}%{SAGE_SRC} @@ -1617,7 +1606,7 @@ popd #------------------------------------------------------------------------ # Build the large Cremona database export PATH=%{buildroot}%{SAGE_LOCAL}/bin:$PATH -export PYTHONPATH=%{buildroot}%{SAGE_PYTHONPATH}:%{buildroot}%{python3_sitearch} +export PYTHONPATH=%{buildroot}%{SAGE_PYTHONPATH}:%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib} touch %{buildroot}%{SAGE_SHARE}/cremona/cremona.db cat > cremona.sage << EOF import sage.env @@ -1784,12 +1773,12 @@ end %{SAGE_PYTHONPATH}/IPython %{SAGE_PYTHONPATH}/prompt_toolkit* %endif -%if %{with bundled_ipywidgets} -%{SAGE_PYTHONPATH}/ipywidgets* -%endif %if %{with bundled_jupyter_jsmol} %{SAGE_PYTHONPATH}/jupyter_jsmol* %endif +%if %{with bundled_memory_allocator} +%{SAGE_PYTHONPATH}/memory_allocator* +%endif #------------------------------------------------------------------------ %files data @@ -1985,7 +1974,7 @@ end %{SAGE_ETC}/notebook-ipython/ # LGPLv2+ %{_datadir}/jupyter/kernels/sagemath/ -%{_datadir}/jupyter/nbextensions/threejs +%{_datadir}/jupyter/nbextensions/threejs-sage #------------------------------------------------------------------------ %files sagetex @@ -1997,6 +1986,13 @@ end ######################################################################## %changelog +* Fri Aug 27 2021 Jerry James - 9.4-1 +- Version 9.4 +- Drop upstreamed -eclib patch +- Drop unnecessary -readonly patch +- Unbundle ipywidgets +- Bundle memory_allocator for now + * Wed Aug 18 2021 Jerry James - 9.3-5 - Unbundle flintqs - Require gp2c and pari-nftables diff --git a/sources b/sources index 5b8e834..169d375 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (cremona-2019-10-29.tar.gz) = 32fbb828f26f87191e39123762cfbd796aac9abf346f0dc981e8e3f390435b22d281be3031ea92ae7e18f4ce41af8054784ca0d550a08f17b05c54ca08b4c9c8 -SHA512 (sage-9.3.tar.gz) = e5775aeff52fde3176f73340050e373e010a96f965c4b939b2ab105a941260d163185be2495ad38de6fbcaed81e897b6ad4180874ccfc778542beb79287bc912 +SHA512 (sage-9.4.tar.gz) = cb634a14c5c594e1f76b1d1aa0fdd38560ffc5190df440e9e7d580eee7ddd7f7935d11fb993521eb26c6f68b7c76d1e4c146c53d3bc14435b9c8fb7dc9e56517