mirror of
https://src.fedoraproject.org/rpms/sagemath.git
synced 2025-04-18 18:29:01 -04:00
Update to sagemath 8.7.
- Drop upstreamed -giac patch. - Add -sagetex patch to fix a python indentation error. - Add -rubiks patch to fix compilation of the rubiks library. - Add -random patch to fix a non-random random bit generator. - Drop pip3 workaround; the binary is now named just pip again.
This commit is contained in:
parent
b6408b9313
commit
05337076b6
21 changed files with 898 additions and 442 deletions
|
@ -1,7 +1,7 @@
|
|||
diff -up src/sage/sandpiles/sandpile.py.orig src/sage/sandpiles/sandpile.py
|
||||
--- src/sage/sandpiles/sandpile.py.orig 2018-12-22 16:37:10.000000000 -0700
|
||||
+++ src/sage/sandpiles/sandpile.py 2019-01-16 09:43:32.402089611 -0700
|
||||
@@ -344,9 +344,6 @@ from sage.arith.all import falling_facto
|
||||
@@ -346,9 +346,6 @@ from sage.arith.all import falling_facto
|
||||
from sage.rings.all import Integer, PolynomialRing, QQ, ZZ
|
||||
from sage.symbolic.all import I, pi, SR
|
||||
|
||||
|
@ -11,7 +11,7 @@ diff -up src/sage/sandpiles/sandpile.py.orig src/sage/sandpiles/sandpile.py
|
|||
|
||||
|
||||
def _sandpile_help(cls, usage, verbose=True):
|
||||
@@ -5150,7 +5147,7 @@ class SandpileDivisor(dict):
|
||||
@@ -5163,7 +5160,7 @@ class SandpileDivisor(dict):
|
||||
sign_file.close()
|
||||
# compute
|
||||
try:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
diff -up src/setup.py.orig src/setup.py
|
||||
--- src/setup.py.orig 2019-01-04 11:05:11.337077724 -0700
|
||||
+++ src/setup.py 2019-01-16 09:45:32.570933224 -0700
|
||||
@@ -387,6 +387,9 @@ class sage_build_cython(Command):
|
||||
@@ -334,6 +334,9 @@ class sage_build_cython(Command):
|
||||
with open(self._version_file, 'w') as f:
|
||||
f.write(self._version_stamp)
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
diff -up src/sage/numerical/backends/coin_backend.pyx.orig src/sage/numerical/backends/coin_backend.pyx
|
||||
--- src/sage/numerical/backends/coin_backend.pyx.orig 2018-12-22 16:37:09.000000000 -0700
|
||||
+++ src/sage/numerical/backends/coin_backend.pyx 2019-01-16 09:45:52.386577640 -0700
|
||||
@@ -765,8 +765,8 @@ cdef class CoinBackend(GenericBackend):
|
||||
@@ -780,8 +780,8 @@ cdef class CoinBackend(GenericBackend):
|
||||
model.setLogLevel(old_logLevel)
|
||||
|
||||
# multithreading
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
--- src/sage/combinat/crystals/alcove_path.py.orig 2019-01-14 17:16:01.000000000 -0700
|
||||
+++ src/sage/combinat/crystals/alcove_path.py 2019-02-07 15:43:21.188614487 -0700
|
||||
diff -up src/sage/combinat/crystals/alcove_path.py.orig src/sage/combinat/crystals/alcove_path.py
|
||||
--- src/sage/combinat/crystals/alcove_path.py.orig 2019-03-23 16:20:34.000000000 -0600
|
||||
+++ src/sage/combinat/crystals/alcove_path.py 2019-04-08 13:33:18.101386015 -0600
|
||||
@@ -383,7 +383,7 @@ class CrystalOfAlcovePaths(UniqueReprese
|
||||
|
||||
One can compute all vertices of the crystal by finding all the
|
||||
|
@ -9,39 +10,9 @@
|
|||
search algorithm.
|
||||
|
||||
.. WARNING::
|
||||
--- src/sage/combinat/crystals/kirillov_reshetikhin.py.orig 2019-01-14 17:16:01.000000000 -0700
|
||||
+++ src/sage/combinat/crystals/kirillov_reshetikhin.py 2019-02-07 15:44:37.612978369 -0700
|
||||
@@ -3443,7 +3443,7 @@ class CrystalOfTableaux_E7(CrystalOfTabl
|
||||
<sage.combinat.crystals.kirillov_reshetikhin.KR_type_E7>` `B^{7,s}`.
|
||||
"""
|
||||
def module_generator(self, shape):
|
||||
- """
|
||||
+ r"""
|
||||
Return the module generator of ``self`` with shape ``shape``.
|
||||
|
||||
.. NOTE::
|
||||
@@ -3496,7 +3496,7 @@ class KR_type_E7(KirillovReshetikhinGene
|
||||
|
||||
@cached_method
|
||||
def A7_decomposition(self):
|
||||
- """
|
||||
+ r"""
|
||||
Return the decomposition of ``self`` into `A_7` highest
|
||||
weight crystals.
|
||||
|
||||
--- src/sage/groups/perm_gps/permgroup_named.py.orig 2019-01-14 17:16:02.000000000 -0700
|
||||
+++ src/sage/groups/perm_gps/permgroup_named.py 2019-02-07 15:51:38.530055246 -0700
|
||||
@@ -3027,7 +3027,7 @@ class SuzukiGroup(PermutationGroup_uniqu
|
||||
return "The Suzuki group over %s" % self.base_ring()
|
||||
|
||||
class ComplexReflectionGroup(PermutationGroup_unique):
|
||||
- """
|
||||
+ r"""
|
||||
A finite complex reflection group as a permutation group.
|
||||
|
||||
We can realize `G(m,1,n)` as `m` copies of the symmetric group
|
||||
--- src/sage/homology/homology_group.py.orig 2019-01-14 17:16:03.000000000 -0700
|
||||
+++ src/sage/homology/homology_group.py 2019-02-07 15:43:21.197614413 -0700
|
||||
diff -up src/sage/homology/homology_group.py.orig src/sage/homology/homology_group.py
|
||||
--- src/sage/homology/homology_group.py.orig 2019-03-23 16:20:40.000000000 -0600
|
||||
+++ src/sage/homology/homology_group.py 2019-04-08 13:33:22.436307576 -0600
|
||||
@@ -109,7 +109,7 @@ class HomologyGroup_class(AdditiveAbelia
|
||||
sage: from sage.homology.homology_group import HomologyGroup
|
||||
sage: H = HomologyGroup(7, ZZ, [4,4,4,4,4,7,7])
|
||||
|
@ -51,14 +22,36 @@
|
|||
sage: latex(HomologyGroup(6, ZZ))
|
||||
\ZZ^{6}
|
||||
"""
|
||||
--- src/sage/rings/number_field/number_field.py.orig 2019-01-14 17:16:04.000000000 -0700
|
||||
+++ src/sage/rings/number_field/number_field.py 2019-02-07 15:43:21.220614222 -0700
|
||||
@@ -6622,7 +6622,7 @@ class NumberField_generic(WithEqualityBy
|
||||
return U
|
||||
diff -up src/sage/rings/function_field/differential.py.orig src/sage/rings/function_field/differential.py
|
||||
--- src/sage/rings/function_field/differential.py.orig 2019-03-23 16:20:42.000000000 -0600
|
||||
+++ src/sage/rings/function_field/differential.py 2019-04-09 10:42:43.202792022 -0600
|
||||
@@ -360,7 +360,7 @@ class FunctionFieldDifferential_global(F
|
||||
return to_R(c)
|
||||
|
||||
def S_unit_solutions(self, S=[], prec=106, include_exponents=False, include_bound=False, proof=None):
|
||||
def cartier(self):
|
||||
- """
|
||||
+ r"""
|
||||
Return all solutions to the S-unit equation ``x + y = 1`` over K.
|
||||
Return the image of the differential by the Cartier operator.
|
||||
|
||||
INPUT:
|
||||
The Cartier operator operates on differentials. Let `x` be a separating
|
||||
diff -up src/sage/rings/function_field/divisor.py.orig src/sage/rings/function_field/divisor.py
|
||||
--- src/sage/rings/function_field/divisor.py.orig 2019-03-23 16:20:42.000000000 -0600
|
||||
+++ src/sage/rings/function_field/divisor.py 2019-04-09 10:42:22.061135616 -0600
|
||||
@@ -531,7 +531,7 @@ class FunctionFieldDivisor(ModuleElement
|
||||
return basis, coordinates_func
|
||||
|
||||
def basis_differential_space(self):
|
||||
- """
|
||||
+ r"""
|
||||
Return a basis of the space of differentials `\Omega(D)`
|
||||
for the divisor `D`.
|
||||
|
||||
@@ -554,7 +554,7 @@ class FunctionFieldDivisor(ModuleElement
|
||||
return [W.element_class(W, f) for f in fbasis]
|
||||
|
||||
def differential_space(self):
|
||||
- """
|
||||
+ r"""
|
||||
Return the vector space of the differential space `\Omega(D)` of the divisor `D`.
|
||||
|
||||
OUTPUT:
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
diff -up src/sage/interfaces/giac.py.orig src/sage/interfaces/giac.py
|
||||
--- src/sage/interfaces/giac.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||
+++ src/sage/interfaces/giac.py 2019-01-15 15:10:47.399759655 -0700
|
||||
@@ -617,10 +617,7 @@ If you got giac from the spkg then ``$PR
|
||||
'4\n3'
|
||||
sage: s='g(x):={\nx+1;\nx+2;\n}'
|
||||
sage: giac(s)
|
||||
- (x)->{
|
||||
- x+1;
|
||||
- x+2;
|
||||
- }
|
||||
+ (x)->[x+1,x+2]
|
||||
sage: giac.g(5)
|
||||
7
|
||||
"""
|
|
@ -1,7 +1,7 @@
|
|||
diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py
|
||||
--- src/sage/interfaces/latte.py.orig 2019-01-16 09:44:45.946769879 -0700
|
||||
+++ src/sage/interfaces/latte.py 2019-01-16 09:47:33.355765786 -0700
|
||||
@@ -112,7 +112,7 @@ def count(arg, ehrhart_polynomial=False,
|
||||
--- src/sage/interfaces/latte.py.orig 2019-04-08 12:05:07.092855841 -0600
|
||||
+++ src/sage/interfaces/latte.py 2019-04-08 13:37:31.377803169 -0600
|
||||
@@ -113,7 +113,7 @@ def count(arg, ehrhart_polynomial=False,
|
||||
# Check that LattE is present
|
||||
Latte().require()
|
||||
|
||||
|
@ -10,9 +10,9 @@ diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py
|
|||
if ehrhart_polynomial and multivariate_generating_function:
|
||||
raise ValueError
|
||||
if ehrhart_polynomial:
|
||||
@@ -305,7 +305,7 @@ def integrate(arg, polynomial=None, algo
|
||||
# Check that LattE is present
|
||||
Latte().require()
|
||||
@@ -308,7 +308,7 @@ def integrate(arg, polynomial=None, algo
|
||||
|
||||
from sage.rings.rational import Rational
|
||||
|
||||
- args = ['integrate']
|
||||
+ args = ['latte-integrate']
|
||||
|
|
|
@ -1,27 +1,163 @@
|
|||
diff -up src/sage/env.py.orig src/sage/env.py
|
||||
--- src/sage/env.py.orig 2019-01-14 17:16:02.000000000 -0700
|
||||
+++ src/sage/env.py 2019-02-07 16:11:38.887417503 -0700
|
||||
@@ -164,7 +164,7 @@ _add_variable_or_fallback('CONWAY_POLYNO
|
||||
_add_variable_or_fallback('GRAPHS_DATA_DIR', opj('$SAGE_SHARE','graphs'))
|
||||
_add_variable_or_fallback('ELLCURVE_DATA_DIR',opj('$SAGE_SHARE','ellcurves'))
|
||||
_add_variable_or_fallback('POLYTOPE_DATA_DIR',opj('$SAGE_SHARE','reflexive_polytopes'))
|
||||
-_add_variable_or_fallback('GAP_ROOT_DIR', opj('$SAGE_SHARE','gap'))
|
||||
+_add_variable_or_fallback('GAP_ROOT_DIR', opj('/usr','lib','gap'))
|
||||
_add_variable_or_fallback('THEBE_DIR', opj('$SAGE_SHARE','thebe'))
|
||||
_add_variable_or_fallback('COMBINATORIAL_DESIGN_DATA_DIR', opj('$SAGE_SHARE', 'combinatorial_designs'))
|
||||
_add_variable_or_fallback('CREMONA_MINI_DATA_DIR', opj('$SAGE_SHARE', 'cremona'))
|
||||
--- src/sage/env.py.orig 2019-04-08 12:21:12.403515647 -0600
|
||||
+++ src/sage/env.py 2019-04-08 12:22:37.165993394 -0600
|
||||
@@ -174,7 +174,7 @@ var('CONWAY_POLYNOMIALS_DATA_DIR', joi
|
||||
var('GRAPHS_DATA_DIR', join(SAGE_SHARE, 'graphs'))
|
||||
var('ELLCURVE_DATA_DIR', join(SAGE_SHARE, 'ellcurves'))
|
||||
var('POLYTOPE_DATA_DIR', join(SAGE_SHARE, 'reflexive_polytopes'))
|
||||
-var('GAP_ROOT_DIR', join(SAGE_SHARE, 'gap'))
|
||||
+var('GAP_ROOT_DIR', join('/usr','lib','gap'))
|
||||
var('THEBE_DIR', join(SAGE_SHARE, 'thebe'))
|
||||
var('COMBINATORIAL_DESIGN_DATA_DIR', join(SAGE_SHARE, 'combinatorial_designs'))
|
||||
var('CREMONA_MINI_DATA_DIR', join(SAGE_SHARE, 'cremona'))
|
||||
diff -up src/sage/interfaces/tests.py.orig src/sage/interfaces/tests.py
|
||||
--- src/sage/interfaces/tests.py.orig 2019-03-23 16:20:41.000000000 -0600
|
||||
+++ src/sage/interfaces/tests.py 2019-04-08 12:32:57.223857758 -0600
|
||||
@@ -33,7 +33,7 @@ Test that write errors to stderr are han
|
||||
sage: kwds = dict(shell=True, stdout=f, stderr=f)
|
||||
sage: subprocess.call("echo syntax error | ecl", **kwds)
|
||||
0
|
||||
- sage: subprocess.call("echo syntax error | gap", **kwds)
|
||||
+ sage: subprocess.call("echo syntax error | gap", **kwds) in (0, 1)
|
||||
0
|
||||
sage: subprocess.call("echo syntax error | gp", **kwds)
|
||||
0
|
||||
diff -up src/sage/libs/gap/gap_includes.pxd.orig src/sage/libs/gap/gap_includes.pxd
|
||||
--- src/sage/libs/gap/gap_includes.pxd.orig 2019-03-23 16:20:41.000000000 -0600
|
||||
+++ src/sage/libs/gap/gap_includes.pxd 2019-04-08 12:34:27.782231417 -0600
|
||||
@@ -76,18 +76,16 @@ cdef extern from "<gap/io.h>":
|
||||
|
||||
|
||||
cdef extern from "<gap/libgap-api.h>":
|
||||
- ctypedef void (*CallbackFunc)()
|
||||
- void GAP_Initialize(int argc, char ** argv, char ** env,
|
||||
- CallbackFunc, CallbackFunc)
|
||||
+ """
|
||||
+ #define sig_GAP_Enter() {int t = GAP_Enter(); if (!t) sig_error();}
|
||||
+ """
|
||||
+ ctypedef void (*GAP_CallbackFunc)()
|
||||
+ void GAP_Initialize(int argc, char ** argv,
|
||||
+ GAP_CallbackFunc markBagsCallback, GAP_CallbackFunc errorCallback,
|
||||
+ int handleSignals)
|
||||
Obj GAP_EvalString(const char *) except *
|
||||
Obj GAP_EvalStringNoExcept "GAP_EvalString"(const char *)
|
||||
Obj GAP_ValueGlobalVariable(const char *)
|
||||
-
|
||||
-
|
||||
-cdef extern from "<gap/libgap-api.h>" nogil:
|
||||
- """
|
||||
- #define sig_GAP_Enter() {int t = GAP_Enter(); if (!t) sig_error();}
|
||||
- """
|
||||
cdef void GAP_EnterStack()
|
||||
cdef void GAP_LeaveStack()
|
||||
cdef int GAP_Enter() except 0
|
||||
@@ -121,26 +119,31 @@ cdef extern from "<gap/objects.h>":
|
||||
UInt TNUM_OBJ(Obj obj)
|
||||
char* TNAM_OBJ(Obj obj)
|
||||
|
||||
- cdef int T_INTPOS
|
||||
- cdef int T_INTNEG
|
||||
- cdef int T_RAT
|
||||
- cdef int T_CYC
|
||||
- cdef int T_FFE
|
||||
- cdef int T_PERM2
|
||||
- cdef int T_PERM4
|
||||
- cdef int T_BOOL
|
||||
- cdef int T_CHAR
|
||||
- cdef int T_FUNCTION
|
||||
- cdef int T_MACFLOAT
|
||||
- cdef int T_PLIST
|
||||
- cdef int T_PLIST_CYC
|
||||
- cdef int T_BLIST
|
||||
- cdef int T_STRING
|
||||
- cdef int T_COMOBJ
|
||||
- cdef int T_POSOBJ
|
||||
- cdef int T_DATOBJ
|
||||
- cdef int T_WPOBJ
|
||||
-
|
||||
+ cdef enum TNUM:
|
||||
+ T_INT
|
||||
+ T_INTPOS
|
||||
+ T_INTNEG
|
||||
+ T_RAT
|
||||
+ T_CYC
|
||||
+ T_FFE
|
||||
+ T_MACFLOAT
|
||||
+ T_PERM2
|
||||
+ T_PERM4
|
||||
+ T_TRANS2
|
||||
+ T_TRANS4
|
||||
+ T_PPERM2
|
||||
+ T_PPERM4
|
||||
+ T_BOOL
|
||||
+ T_CHAR
|
||||
+ T_FUNCTION
|
||||
+ T_PLIST
|
||||
+ T_PLIST_CYC
|
||||
+ T_BLIST
|
||||
+ T_STRING
|
||||
+ T_COMOBJ
|
||||
+ T_POSOBJ
|
||||
+ T_DATOBJ
|
||||
+ T_WPOBJ
|
||||
|
||||
cdef extern from "<gap/precord.h>":
|
||||
Obj NEW_PREC(int len)
|
||||
diff -up src/sage/libs/gap/libgap.pyx.orig src/sage/libs/gap/libgap.pyx
|
||||
--- src/sage/libs/gap/libgap.pyx.orig 2019-03-23 16:20:41.000000000 -0600
|
||||
+++ src/sage/libs/gap/libgap.pyx 2019-04-08 12:25:35.700787082 -0600
|
||||
@@ -233,14 +233,6 @@ from sage.misc.superseded import depreca
|
||||
############################################################################
|
||||
|
||||
|
||||
-cdef void report(Obj bag):
|
||||
- print(TNAM_OBJ(bag), <int>SIZE_OBJ(bag))
|
||||
-
|
||||
-
|
||||
-cdef void print_gasman_objects():
|
||||
- CallbackForAllBags(report)
|
||||
-
|
||||
-
|
||||
from sage.misc.lazy_import import is_during_startup
|
||||
if is_during_startup():
|
||||
import sys, traceback
|
||||
diff -up src/sage/libs/gap/util.pyx.orig src/sage/libs/gap/util.pyx
|
||||
--- src/sage/libs/gap/util.pyx.orig 2019-01-14 17:16:03.000000000 -0700
|
||||
+++ src/sage/libs/gap/util.pyx 2019-02-07 16:13:52.658939819 -0700
|
||||
@@ -18,6 +18,7 @@ import os
|
||||
import signal
|
||||
import warnings
|
||||
--- src/sage/libs/gap/util.pyx.orig 2019-03-23 16:20:41.000000000 -0600
|
||||
+++ src/sage/libs/gap/util.pyx 2019-04-08 12:37:02.323035697 -0600
|
||||
@@ -14,19 +14,16 @@ Utility functions for GAP
|
||||
|
||||
+from posix.dlfcn cimport dlopen, dlclose, RTLD_NOW, RTLD_GLOBAL
|
||||
from libc.string cimport strcpy, strlen
|
||||
from __future__ import print_function, absolute_import
|
||||
|
||||
from cpython.exc cimport PyErr_SetObject, PyErr_Occurred, PyErr_Fetch
|
||||
@@ -181,7 +182,7 @@ def gap_root():
|
||||
-import os
|
||||
-import signal
|
||||
-import warnings
|
||||
+from libc.signal cimport signal, SIGCHLD, SIG_DFL
|
||||
from posix.dlfcn cimport dlopen, dlclose, RTLD_NOW, RTLD_GLOBAL
|
||||
-from libc.string cimport strcpy, strlen
|
||||
|
||||
from cpython.exc cimport PyErr_Fetch, PyErr_Restore
|
||||
from cpython.object cimport Py_LT, Py_LE, Py_EQ, Py_NE, Py_GT, Py_GE
|
||||
from cpython.ref cimport PyObject, Py_XINCREF, Py_XDECREF
|
||||
-from cysignals.memory cimport sig_malloc
|
||||
-from cysignals.pysignals import containsignals
|
||||
-from cysignals.signals cimport sig_on, sig_off, sig_error
|
||||
+from cysignals.signals cimport sig_on, sig_off
|
||||
|
||||
+import os
|
||||
+import warnings
|
||||
import sage.env
|
||||
|
||||
from .gap_includes cimport *
|
||||
@@ -105,7 +102,7 @@ cdef class ObjWrapper(object):
|
||||
sage: hash(x)
|
||||
0
|
||||
"""
|
||||
- return <int>(self.value)
|
||||
+ return <Py_hash_t>(self.value)
|
||||
|
||||
|
||||
cdef ObjWrapper wrap_obj(Obj obj):
|
||||
@@ -178,7 +175,7 @@ def gap_root():
|
||||
|
||||
sage: from sage.libs.gap.util import gap_root
|
||||
sage: gap_root() # random output
|
||||
|
@ -30,22 +166,118 @@ diff -up src/sage/libs/gap/util.pyx.orig src/sage/libs/gap/util.pyx
|
|||
"""
|
||||
if os.path.exists(sage.env.GAP_ROOT_DIR):
|
||||
return sage.env.GAP_ROOT_DIR
|
||||
@@ -259,6 +260,18 @@ cdef initialize():
|
||||
global _gap_is_initialized, environ
|
||||
if _gap_is_initialized: return
|
||||
@@ -197,7 +194,6 @@ def gap_root():
|
||||
|
||||
+ # Hack to ensure that all symbols provided by libgap are loaded into the
|
||||
+ # global symbol table
|
||||
+ # Note: we could use RTLD_NOLOAD and avoid the subsequent dlclose() but
|
||||
+ # this isn't portable
|
||||
+ cdef void* handle
|
||||
# To ensure that we call initialize_libgap only once.
|
||||
cdef bint _gap_is_initialized = False
|
||||
-cdef extern char **environ
|
||||
|
||||
|
||||
cdef char* _reset_error_output_cmd = """\
|
||||
@@ -216,33 +212,6 @@ MakeImmutable(libgap_errout);
|
||||
"""
|
||||
|
||||
|
||||
-cdef char** copy_environ(char** env):
|
||||
- """
|
||||
- Make a copy of the environment block given by ``env``.
|
||||
-
|
||||
- Returns a pointer to the copy, which is the caller's responsibility to
|
||||
- free.
|
||||
- """
|
||||
-
|
||||
- cdef char** env_copy
|
||||
- cdef int envc = 0;
|
||||
- cdef int idx
|
||||
- cdef size_t size
|
||||
-
|
||||
- while env[envc]:
|
||||
- envc += 1
|
||||
-
|
||||
- env_copy = <char**>sig_malloc((envc + 1) * sizeof(char*))
|
||||
-
|
||||
- for idx in range(envc):
|
||||
- size = strlen(env[idx]) + 1
|
||||
- env_copy[idx] = <char*>sig_malloc(size)
|
||||
- strcpy(env_copy[idx], env[idx])
|
||||
-
|
||||
- env_copy[envc] = NULL
|
||||
- return env_copy
|
||||
-
|
||||
-
|
||||
cdef initialize():
|
||||
"""
|
||||
Initialize the GAP library, if it hasn't already been
|
||||
@@ -253,25 +222,23 @@ cdef initialize():
|
||||
sage: libgap(123) # indirect doctest
|
||||
123
|
||||
"""
|
||||
- global _gap_is_initialized, environ
|
||||
+ global _gap_is_initialized
|
||||
if _gap_is_initialized: return
|
||||
# Hack to ensure that all symbols provided by libgap are loaded into the
|
||||
# global symbol table
|
||||
# Note: we could use RTLD_NOLOAD and avoid the subsequent dlclose() but
|
||||
# this isn't portable
|
||||
cdef void* handle
|
||||
- libgapname = str_to_bytes(sage.env.GAP_SO)
|
||||
- handle = dlopen(libgapname, RTLD_NOW | RTLD_GLOBAL)
|
||||
+ handle = dlopen("libgap.so", RTLD_NOW | RTLD_GLOBAL)
|
||||
+ if handle == NULL:
|
||||
+ raise RuntimeError(
|
||||
+ "Could not dlopen() libgap.so even though it should already "
|
||||
+ "be loaded!")
|
||||
+ dlclose(handle)
|
||||
+
|
||||
# Define argv and environ variables, which we will pass in to
|
||||
if handle is NULL:
|
||||
raise RuntimeError(
|
||||
"Could not dlopen() libgap even though it should already "
|
||||
"be loaded!")
|
||||
dlclose(handle)
|
||||
|
||||
- # Define argv and environ variables, which we will pass in to
|
||||
+ # Define argv variable, which we will pass in to
|
||||
# initialize GAP. Note that we must pass define the memory pool
|
||||
# size!
|
||||
- cdef char** env
|
||||
cdef char* argv[18]
|
||||
argv[0] = "sage"
|
||||
argv[1] = "-l"
|
||||
@@ -318,21 +285,15 @@ cdef initialize():
|
||||
|
||||
argv[argc] = NULL
|
||||
|
||||
- env = copy_environ(environ)
|
||||
+ sig_on()
|
||||
+ # Initialize GAP but disable their SIGINT handler
|
||||
+ GAP_Initialize(argc, argv, gasman_callback, error_handler,
|
||||
+ handleSignals=False)
|
||||
+ sig_off()
|
||||
|
||||
- # Need to save/restore current SIGINT handling since GAP_Initialize
|
||||
- # currently clobbers it; it doesn't matter what we set SIGINT to
|
||||
- # temporarily.
|
||||
- with containsignals():
|
||||
- sig_on()
|
||||
- try:
|
||||
- # Initialize GAP and capture any error messages. The
|
||||
- # initialization just prints any errors and does not
|
||||
- # use the error handler.
|
||||
- GAP_Initialize(argc, argv, env, &gasman_callback,
|
||||
- &error_handler)
|
||||
- finally:
|
||||
- sig_off()
|
||||
+ # Disable GAP's SIGCHLD handler ChildStatusChanged(), which calls
|
||||
+ # waitpid() on random child processes.
|
||||
+ signal(SIGCHLD, SIG_DFL)
|
||||
|
||||
# Set the ERROR_OUTPUT global in GAP to an output stream in which to
|
||||
# receive error output
|
||||
diff -up src/sage/tests/books/judson-abstract-algebra/sylow-sage.py.orig src/sage/tests/books/judson-abstract-algebra/sylow-sage.py
|
||||
--- src/sage/tests/books/judson-abstract-algebra/sylow-sage.py.orig 2019-03-23 16:20:43.000000000 -0600
|
||||
+++ src/sage/tests/books/judson-abstract-algebra/sylow-sage.py 2019-04-08 12:37:39.859183332 -0600
|
||||
@@ -225,8 +225,8 @@ r"""
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ ::
|
||||
|
||||
- sage: gap.version()
|
||||
- '4.10.0'
|
||||
+ sage: gap.version() # random
|
||||
+ '4.10.1'
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ ::
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ diff -up src/sage/libs/mpfr/__init__.pxd.orig src/sage/libs/mpfr/__init__.pxd
|
|||
diff -up src/sage/rings/complex_mpc.pyx.orig src/sage/rings/complex_mpc.pyx
|
||||
--- src/sage/rings/complex_mpc.pyx.orig 2018-12-22 16:37:09.000000000 -0700
|
||||
+++ src/sage/rings/complex_mpc.pyx 2019-01-04 11:10:25.217172839 -0700
|
||||
@@ -2222,7 +2222,7 @@ cdef class MPComplexNumber(sage.structur
|
||||
@@ -2203,7 +2203,7 @@ cdef class MPComplexNumber(sage.structur
|
||||
cdef RealNumber a,r
|
||||
a = self.argument()/n
|
||||
r = self.abs()
|
||||
|
@ -24,7 +24,7 @@ diff -up src/sage/rings/complex_mpc.pyx.orig src/sage/rings/complex_mpc.pyx
|
|||
diff -up src/sage/rings/complex_number.pyx.orig src/sage/rings/complex_number.pyx
|
||||
--- src/sage/rings/complex_number.pyx.orig 2018-12-22 16:37:09.000000000 -0700
|
||||
+++ src/sage/rings/complex_number.pyx 2019-01-04 11:10:25.218172820 -0700
|
||||
@@ -2276,7 +2276,7 @@ cdef class ComplexNumber(sage.structure.
|
||||
@@ -2265,7 +2265,7 @@ cdef class ComplexNumber(sage.structure.
|
||||
rho = abs(self)
|
||||
arg = self.argument() / n
|
||||
mpfr_init2(r, self._prec)
|
||||
|
@ -36,7 +36,7 @@ diff -up src/sage/rings/complex_number.pyx.orig src/sage/rings/complex_number.py
|
|||
diff -up src/sage/rings/real_mpfr.pyx.orig src/sage/rings/real_mpfr.pyx
|
||||
--- src/sage/rings/real_mpfr.pyx.orig 2019-01-04 12:22:18.194171036 -0700
|
||||
+++ src/sage/rings/real_mpfr.pyx 2019-01-16 09:46:36.794780751 -0700
|
||||
@@ -5384,7 +5384,7 @@ cdef class RealNumber(sage.structure.ele
|
||||
@@ -5386,7 +5386,7 @@ cdef class RealNumber(sage.structure.ele
|
||||
if algorithm == 1:
|
||||
x = self._new()
|
||||
sig_on()
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
diff -up src/sage/graphs/graph_generators.py.orig src/sage/graphs/graph_generators.py
|
||||
--- src/sage/graphs/graph_generators.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||
+++ src/sage/graphs/graph_generators.py 2019-01-16 09:45:21.999122930 -0700
|
||||
@@ -912,7 +912,7 @@ class GraphGenerators():
|
||||
@@ -924,7 +924,7 @@ class GraphGenerators():
|
||||
else:
|
||||
enc_kwargs = {'encoding': 'latin-1'}
|
||||
|
||||
|
|
|
@ -1,16 +1,19 @@
|
|||
diff -up src/module_list.py.orig src/module_list.py
|
||||
--- src/module_list.py.orig 2019-01-16 09:47:07.804224297 -0700
|
||||
+++ src/module_list.py 2019-01-16 09:47:21.611976523 -0700
|
||||
@@ -11,7 +11,7 @@ SAGE_INC = '/usr/include'
|
||||
--- src/module_list.py.orig 2019-04-08 15:06:42.789735582 -0600
|
||||
+++ src/module_list.py 2019-04-08 15:09:46.553467045 -0600
|
||||
@@ -11,20 +11,17 @@ SAGE_INC = '/usr/include'
|
||||
import pkgconfig
|
||||
|
||||
# CBLAS can be one of multiple implementations
|
||||
-cblas_pc = pkgconfig.parse('cblas')
|
||||
+cblas_pc = pkgconfig.parse('openblas')
|
||||
cblas_libs = cblas_pc['libraries']
|
||||
cblas_library_dirs = cblas_pc['library_dirs']
|
||||
cblas_include_dirs = cblas_pc['include_dirs']
|
||||
@@ -20,11 +20,9 @@ cblas_include_dirs = cblas_pc['include_d
|
||||
-cblas_libs = cblas_pc['libraries']
|
||||
-cblas_library_dirs = cblas_pc['library_dirs']
|
||||
-cblas_include_dirs = cblas_pc['include_dirs']
|
||||
+cblas_libs = ['openblas']
|
||||
+cblas_library_dirs = ['/usr/lib']
|
||||
+cblas_include_dirs = ['/usr/include/openblas']
|
||||
|
||||
# TODO: Remove Cygwin hack by installing a suitable cblas.pc
|
||||
if os.path.exists('/usr/lib/libblas.dll.a'):
|
||||
cblas_libs = ['gslcblas']
|
||||
|
||||
|
@ -26,14 +29,19 @@ diff -up src/module_list.py.orig src/module_list.py
|
|||
# GD image library
|
||||
gd_pc = pkgconfig.parse('gdlib')
|
||||
diff -up src/sage/misc/cython.py.orig src/sage/misc/cython.py
|
||||
--- src/sage/misc/cython.py.orig 2019-01-04 10:27:47.031123276 -0700
|
||||
+++ src/sage/misc/cython.py 2019-01-04 11:18:40.060863533 -0700
|
||||
@@ -39,7 +39,7 @@ from sage.misc.sage_ostools import resto
|
||||
--- src/sage/misc/cython.py.orig 2019-04-08 15:05:22.838157654 -0600
|
||||
+++ src/sage/misc/cython.py 2019-04-08 15:11:50.191262902 -0600
|
||||
@@ -38,10 +38,9 @@ from sage.misc.sage_ostools import resto
|
||||
|
||||
|
||||
# CBLAS can be one of multiple implementations
|
||||
-cblas_pc = pkgconfig.parse('cblas')
|
||||
+cblas_pc = pkgconfig.parse('openblas')
|
||||
cblas_libs = list(cblas_pc['libraries'])
|
||||
cblas_library_dirs = list(cblas_pc['library_dirs'])
|
||||
cblas_include_dirs = list(cblas_pc['include_dirs'])
|
||||
-cblas_libs = list(cblas_pc['libraries'])
|
||||
-cblas_library_dirs = list(cblas_pc['library_dirs'])
|
||||
-cblas_include_dirs = list(cblas_pc['include_dirs'])
|
||||
+cblas_libs = ['openblas']
|
||||
+cblas_library_dirs = ['/usr/lib']
|
||||
+cblas_include_dirs = ['/usr/include/openblas']
|
||||
|
||||
standard_libs = [
|
||||
'mpfr', 'gmp', 'gmpxx', 'stdc++', 'pari', 'm',
|
||||
|
|
|
@ -1,27 +1,18 @@
|
|||
diff -up build/pkgs/sagenb/src/sagenb/misc/sphinxify.py.orig build/pkgs/sagenb/src/sagenb/misc/sphinxify.py
|
||||
--- build/pkgs/sagenb/src/sagenb/misc/sphinxify.py.orig 2018-11-05 08:45:39.000000000 -0700
|
||||
+++ build/pkgs/sagenb/src/sagenb/misc/sphinxify.py 2019-01-04 10:34:03.550082474 -0700
|
||||
@@ -480,7 +480,7 @@ skip_picklability_check_modules = [
|
||||
#'sage.misc.nested_class_test', # for test only
|
||||
'sage.misc.latex',
|
||||
'sage.misc.explain_pickle',
|
||||
- '__builtin__',
|
||||
+ 'builtins',
|
||||
]
|
||||
|
||||
def check_nested_class_picklability(app, what, name, obj, skip, options):
|
||||
@@ -531,7 +531,7 @@ def skip_member(app, what, name, obj, sk
|
||||
if 'SAGE_CHECK_NESTED' in os.environ:
|
||||
check_nested_class_picklability(app, what, name, obj, skip, options)
|
||||
|
||||
- if getattr(obj, '__module__', None) == '__builtin__':
|
||||
+ if getattr(obj, '__module__', None) == 'builtins':
|
||||
return True
|
||||
|
||||
if (hasattr(obj, '__name__') and obj.__name__.find('.') != -1 and
|
||||
diff -up build/pkgs/sagenb/src/sagenb/misc/support.py.orig build/pkgs/sagenb/src/sagenb/misc/support.py
|
||||
--- build/pkgs/sagenb/src/sagenb/misc/support.py.orig 2019-02-01 06:34:20.000000000 -0700
|
||||
+++ build/pkgs/sagenb/src/sagenb/misc/support.py 2019-04-08 12:02:29.162692936 -0600
|
||||
@@ -178,7 +178,7 @@ def completions(s, globs, format=False,
|
||||
try:
|
||||
if not '.' in s and not '(' in s:
|
||||
v = [x for x in globs.keys() if x[:n] == s] + \
|
||||
- [x for x in __builtins__.keys() if x[:n] == s]
|
||||
+ [x for x in builtins.keys() if x[:n] == s]
|
||||
else:
|
||||
if not ')' in s:
|
||||
i = s.rfind('.')
|
||||
diff -up build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py.orig build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py
|
||||
--- build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py.orig 2018-11-05 08:45:39.000000000 -0700
|
||||
+++ build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py 2019-01-04 10:39:26.659076379 -0700
|
||||
--- build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py.orig 2019-02-01 05:37:36.000000000 -0700
|
||||
+++ build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py 2019-04-08 11:59:49.259545960 -0600
|
||||
@@ -25,7 +25,7 @@ This module contains three classes:
|
||||
|
||||
.. NOTE::
|
||||
|
@ -41,8 +32,8 @@ diff -up build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py.orig build/pk
|
|||
# HTMLParser, and may never actually be visibly called here.
|
||||
|
||||
diff -up build/pkgs/sagenb/src/sagenb/notebook/wiki2html.py.orig build/pkgs/sagenb/src/sagenb/notebook/wiki2html.py
|
||||
--- build/pkgs/sagenb/src/sagenb/notebook/wiki2html.py.orig 2018-11-05 08:45:39.000000000 -0700
|
||||
+++ build/pkgs/sagenb/src/sagenb/notebook/wiki2html.py 2019-01-05 10:36:28.072250833 -0700
|
||||
--- build/pkgs/sagenb/src/sagenb/notebook/wiki2html.py.orig 2019-02-01 05:37:36.000000000 -0700
|
||||
+++ build/pkgs/sagenb/src/sagenb/notebook/wiki2html.py 2019-04-08 11:59:49.260545943 -0600
|
||||
@@ -59,7 +59,7 @@ class Parser:
|
||||
'parent': r'(?:%s)?' % re.escape(PARENT_PREFIX),
|
||||
}
|
||||
|
@ -53,36 +44,32 @@ diff -up build/pkgs/sagenb/src/sagenb/notebook/wiki2html.py.orig build/pkgs/sage
|
|||
'punct': punct_pattern,
|
||||
}
|
||||
diff -up build/pkgs/sagetex/src/extractsagecode.py.orig build/pkgs/sagetex/src/extractsagecode.py
|
||||
--- build/pkgs/sagetex/src/extractsagecode.py.orig 2015-08-26 17:28:42.000000000 -0600
|
||||
+++ build/pkgs/sagetex/src/extractsagecode.py 2019-01-04 10:40:25.729978335 -0700
|
||||
@@ -45,8 +45,8 @@ See the SageTeX documentation for more d
|
||||
--- build/pkgs/sagetex/src/extractsagecode.py.orig 2019-04-08 11:59:49.261545925 -0600
|
||||
+++ build/pkgs/sagetex/src/extractsagecode.py 2019-04-08 12:04:16.915757233 -0600
|
||||
@@ -45,7 +45,7 @@ See the SageTeX documentation for more d
|
||||
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], 'ho', ['help', 'overwrite'])
|
||||
-except getopt.GetoptError, err:
|
||||
- print str(err)
|
||||
+except getopt.GetoptError as err:
|
||||
+ print(str(err))
|
||||
print(str(err))
|
||||
usage()
|
||||
sys.exit(2)
|
||||
|
||||
diff -up build/pkgs/sagetex/src/makestatic.py.orig build/pkgs/sagetex/src/makestatic.py
|
||||
--- build/pkgs/sagetex/src/makestatic.py.orig 2015-08-26 17:28:42.000000000 -0600
|
||||
+++ build/pkgs/sagetex/src/makestatic.py 2019-01-04 10:40:50.967509206 -0700
|
||||
@@ -45,8 +45,8 @@ See the SageTeX documentation for more d
|
||||
--- build/pkgs/sagetex/src/makestatic.py.orig 2019-04-08 11:59:49.262545907 -0600
|
||||
+++ build/pkgs/sagetex/src/makestatic.py 2019-04-08 12:04:42.619295492 -0600
|
||||
@@ -45,7 +45,7 @@ See the SageTeX documentation for more d
|
||||
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], 'ho', ['help', 'overwrite'])
|
||||
-except getopt.GetoptError, err:
|
||||
- print str(err)
|
||||
+except getopt.GetoptError as err:
|
||||
+ print(str(err))
|
||||
print(str(err))
|
||||
usage()
|
||||
sys.exit(2)
|
||||
|
||||
diff -up build/pkgs/sagetex/src/remote-sagetex.py.orig build/pkgs/sagetex/src/remote-sagetex.py
|
||||
--- build/pkgs/sagetex/src/remote-sagetex.py.orig 2015-08-26 17:28:42.000000000 -0600
|
||||
+++ build/pkgs/sagetex/src/remote-sagetex.py 2019-01-04 10:43:03.728041391 -0700
|
||||
--- build/pkgs/sagetex/src/remote-sagetex.py.orig 2019-01-09 09:51:28.000000000 -0700
|
||||
+++ build/pkgs/sagetex/src/remote-sagetex.py 2019-04-08 11:59:49.263545889 -0600
|
||||
@@ -24,12 +24,11 @@
|
||||
## You should have received a copy of the GNU General Public License along
|
||||
## with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
@ -145,119 +132,10 @@ diff -up build/pkgs/sagetex/src/remote-sagetex.py.orig build/pkgs/sagetex/src/re
|
|||
|
||||
if not password:
|
||||
from getpass import getpass
|
||||
diff -up build/pkgs/sagetex/src/run-sagetex-if-necessary.py.orig build/pkgs/sagetex/src/run-sagetex-if-necessary.py
|
||||
--- build/pkgs/sagetex/src/run-sagetex-if-necessary.py.orig 2015-08-26 17:28:42.000000000 -0600
|
||||
+++ build/pkgs/sagetex/src/run-sagetex-if-necessary.py 2019-01-04 10:44:12.087770682 -0700
|
||||
@@ -58,7 +58,7 @@ with open(src + '.tex') as texf:
|
||||
break
|
||||
|
||||
if not uses_sagetex:
|
||||
- print src + ".tex doesn't seem to use SageTeX, exiting."
|
||||
+ print(src + ".tex doesn't seem to use SageTeX, exiting.")
|
||||
sys.exit(0)
|
||||
|
||||
# if something goes wrong, assume we need to run Sage
|
||||
@@ -72,7 +72,7 @@ try:
|
||||
if not re.search(ignore, line):
|
||||
h.update(line)
|
||||
except IOError:
|
||||
- print '{0}.sagetex.sage not found, I think you need to typeset {0}.tex first.'.format(src)
|
||||
+ print('{0}.sagetex.sage not found, I think you need to typeset {0}.tex first.'.format(src))
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
@@ -80,8 +80,8 @@ try:
|
||||
for line in outf:
|
||||
m = re.match('%([0-9a-f]+)% md5sum', line)
|
||||
if m:
|
||||
- print 'computed md5:', h.hexdigest()
|
||||
- print 'sagetex.sout md5:', m.group(1)
|
||||
+ print('computed md5:', h.hexdigest())
|
||||
+ print('sagetex.sout md5:', m.group(1))
|
||||
if h.hexdigest() == m.group(1):
|
||||
run_sage = False
|
||||
break
|
||||
@@ -89,7 +89,7 @@ except IOError:
|
||||
pass
|
||||
|
||||
if run_sage:
|
||||
- print 'Need to run Sage on {0}.'.format(src)
|
||||
+ print('Need to run Sage on {0}.'.format(src))
|
||||
sys.exit(subprocess.call([path_to_sage, src + '.sagetex.sage']))
|
||||
else:
|
||||
- print 'Not necessary to run Sage on {0}.'.format(src)
|
||||
+ print('Not necessary to run Sage on {0}.'.format(src))
|
||||
diff -up build/pkgs/sagetex/src/sagetexparse.py.orig build/pkgs/sagetex/src/sagetexparse.py
|
||||
--- build/pkgs/sagetex/src/sagetexparse.py.orig 2015-08-26 17:28:42.000000000 -0600
|
||||
+++ build/pkgs/sagetex/src/sagetexparse.py 2019-01-04 10:44:35.398337372 -0700
|
||||
@@ -52,7 +52,7 @@ class SoutParser():
|
||||
try:
|
||||
OneOrMore(parselabel).parseFile(fn)
|
||||
except IOError:
|
||||
- print 'Error accessing %s; exiting. Does your .sout file exist?' % fn
|
||||
+ print('Error accessing %s; exiting. Does your .sout file exist?' % fn)
|
||||
sys.exit(1)
|
||||
def newlabel(self, s, l, t):
|
||||
self.label.append(t.result[1:-1])
|
||||
diff -up build/pkgs/sagetex/src/sagetex.py.orig build/pkgs/sagetex/src/sagetex.py
|
||||
--- build/pkgs/sagetex/src/sagetex.py.orig 2015-08-26 17:28:42.000000000 -0600
|
||||
+++ build/pkgs/sagetex/src/sagetex.py 2019-01-04 10:46:09.685584716 -0700
|
||||
@@ -73,10 +73,10 @@ from your current version of Sage; see
|
||||
http://www.sagemath.org/doc/installation/sagetex.html.""".format(jobname,
|
||||
version, pyversion)
|
||||
if version_check:
|
||||
- raise VersionError, errstr
|
||||
+ raise VersionError(errstr)
|
||||
else:
|
||||
- print '**** WARNING! Skipping version check for .sty and .py files, and'
|
||||
- print errstr
|
||||
+ print('**** WARNING! Skipping version check for .sty and .py files, and')
|
||||
+ print(errstr)
|
||||
if ' ' in jobname:
|
||||
jobname = jobname.strip('"')
|
||||
self.progress('Processing Sage code for {0}.tex...'.format(jobname))
|
||||
@@ -116,7 +116,7 @@ http://www.sagemath.org/doc/installation
|
||||
elif labelname == 'sagecmdline':
|
||||
pass # output message already printed
|
||||
else:
|
||||
- raise ValueError, 'inline() got a bad labelname "{0}"'.format(labelname)
|
||||
+ raise ValueError('inline() got a bad labelname "{0}"'.format(labelname))
|
||||
self.souttmp.write(r'\newlabel{@' + labelname + str(counter) +
|
||||
'}{{%\n' + s.rstrip() + '}{}{}{}{}}\n')
|
||||
def savecmd(self, s):
|
||||
@@ -178,7 +178,7 @@ http://www.sagemath.org/doc/installation
|
||||
latex(result),
|
||||
r' \end{displaymath}']
|
||||
except SyntaxError:
|
||||
- exec preparse(splitup[i][2]) in globals, locals
|
||||
+ exec(preparse(splitup[i][2]), globals, locals)
|
||||
self.inline(counter, '\n'.join(tex_strs))
|
||||
def commandline(self, counter, s, globals, locals, text_output):
|
||||
self.progress('Sage commandline {0} (line {1})'.format(counter, self.current_tex_line))
|
||||
@@ -208,7 +208,7 @@ http://www.sagemath.org/doc/installation
|
||||
latex(result) +
|
||||
r'\end{displaymath}')
|
||||
except SyntaxError:
|
||||
- exec preparse(splitup[i][2]) in globals, locals
|
||||
+ exec(preparse(splitup[i][2]), globals, locals)
|
||||
if 'displaymath' not in tex_strs[-1]:
|
||||
tex_strs.append(skip)
|
||||
self.inline(counter, '\n'.join(tex_strs), labelname='sagecmdline')
|
||||
@@ -233,8 +233,8 @@ http://www.sagemath.org/doc/installation
|
||||
except ValueError as inst:
|
||||
if re.match('filetype .*not supported by save', str(inst)):
|
||||
newfilename = plotfilename[:-3] + 'png'
|
||||
- print ' saving {0} failed; saving to {1} instead.'.format(
|
||||
- plotfilename, newfilename)
|
||||
+ print(' saving {0} failed; saving to {1} instead.'.format(
|
||||
+ plotfilename, newfilename))
|
||||
_p_.save(filename=newfilename, **kwargs)
|
||||
break
|
||||
else:
|
||||
diff -up src/doc/common/conf.py.orig src/doc/common/conf.py
|
||||
--- src/doc/common/conf.py.orig 2018-12-22 16:37:06.000000000 -0700
|
||||
+++ src/doc/common/conf.py 2019-01-04 10:46:46.293895744 -0700
|
||||
@@ -490,7 +490,7 @@ skip_picklability_check_modules = [
|
||||
--- src/doc/common/conf.py.orig 2019-03-23 16:20:31.000000000 -0600
|
||||
+++ src/doc/common/conf.py 2019-04-08 12:05:07.088855913 -0600
|
||||
@@ -547,7 +547,7 @@ skip_picklability_check_modules = [
|
||||
#'sage.misc.nested_class_test', # for test only
|
||||
'sage.misc.latex',
|
||||
'sage.misc.explain_pickle',
|
||||
|
@ -266,7 +144,7 @@ diff -up src/doc/common/conf.py.orig src/doc/common/conf.py
|
|||
]
|
||||
|
||||
def check_nested_class_picklability(app, what, name, obj, skip, options):
|
||||
@@ -539,7 +539,7 @@ def skip_member(app, what, name, obj, sk
|
||||
@@ -596,7 +596,7 @@ def skip_member(app, what, name, obj, sk
|
||||
if 'SAGE_CHECK_NESTED' in os.environ:
|
||||
check_nested_class_picklability(app, what, name, obj, skip, options)
|
||||
|
||||
|
@ -276,18 +154,18 @@ diff -up src/doc/common/conf.py.orig src/doc/common/conf.py
|
|||
|
||||
objname = getattr(obj, "__name__", None)
|
||||
diff -up src/sage/combinat/finite_state_machine.py.orig src/sage/combinat/finite_state_machine.py
|
||||
--- src/sage/combinat/finite_state_machine.py.orig 2018-12-22 16:37:07.000000000 -0700
|
||||
+++ src/sage/combinat/finite_state_machine.py 2019-01-04 10:49:30.519802159 -0700
|
||||
@@ -934,7 +934,7 @@ import six
|
||||
--- src/sage/combinat/finite_state_machine.py.orig 2019-03-23 16:20:38.000000000 -0600
|
||||
+++ src/sage/combinat/finite_state_machine.py 2019-04-08 12:05:07.090855877 -0600
|
||||
@@ -932,7 +932,7 @@ import six
|
||||
from six.moves import range, zip_longest, zip
|
||||
from six import itervalues
|
||||
|
||||
-import collections
|
||||
+import collections.abc
|
||||
import itertools
|
||||
from copy import copy, deepcopy
|
||||
|
||||
from sage.calculus.var import var
|
||||
@@ -14253,7 +14253,7 @@ def is_FSMProcessIterator(PI):
|
||||
@@ -14201,7 +14201,7 @@ def is_FSMProcessIterator(PI):
|
||||
|
||||
|
||||
class FSMProcessIterator(SageObject,
|
||||
|
@ -297,8 +175,8 @@ diff -up src/sage/combinat/finite_state_machine.py.orig src/sage/combinat/finite
|
|||
This class takes an input, feeds it into a finite state machine
|
||||
(automaton or transducer, in particular), tests whether this was
|
||||
diff -up src/sage/cpython/dict_del_by_value.pyx.orig src/sage/cpython/dict_del_by_value.pyx
|
||||
--- src/sage/cpython/dict_del_by_value.pyx.orig 2018-12-22 16:37:08.000000000 -0700
|
||||
+++ src/sage/cpython/dict_del_by_value.pyx 2019-01-04 10:50:27.178734667 -0700
|
||||
--- src/sage/cpython/dict_del_by_value.pyx.orig 2019-03-23 16:20:40.000000000 -0600
|
||||
+++ src/sage/cpython/dict_del_by_value.pyx 2019-04-08 12:05:07.091855859 -0600
|
||||
@@ -347,8 +347,8 @@ ELIF PY_VERSION_HEX>=0x03060000:
|
||||
cdef MyPyDictKeysObject * keys = <MyPyDictKeysObject *>(mp.ma_keys)
|
||||
cdef size_t perturb
|
||||
|
@ -311,9 +189,9 @@ diff -up src/sage/cpython/dict_del_by_value.pyx.orig src/sage/cpython/dict_del_b
|
|||
if mp.ma_values != NULL:
|
||||
print ("del_dictitem_by_exact_value cannot be applied to a shared key dict")
|
||||
diff -up src/sage/geometry/triangulation/point_configuration.py.orig src/sage/geometry/triangulation/point_configuration.py
|
||||
--- src/sage/geometry/triangulation/point_configuration.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||
+++ src/sage/geometry/triangulation/point_configuration.py 2019-01-15 14:12:54.343637341 -0700
|
||||
@@ -625,7 +625,7 @@ class PointConfiguration(UniqueRepresent
|
||||
--- src/sage/geometry/triangulation/point_configuration.py.orig 2019-03-23 16:20:40.000000000 -0600
|
||||
+++ src/sage/geometry/triangulation/point_configuration.py 2019-04-08 12:05:07.091855859 -0600
|
||||
@@ -623,7 +623,7 @@ class PointConfiguration(UniqueRepresent
|
||||
['{{0,1,2,4},{1,2,3,4}}']
|
||||
"""
|
||||
timeout = 600
|
||||
|
@ -323,8 +201,8 @@ diff -up src/sage/geometry/triangulation/point_configuration.py.orig src/sage/ge
|
|||
proc.expect(r'\.\.\. done\.')
|
||||
proc.setecho(0)
|
||||
diff -up src/sage/interfaces/frobby.py.orig src/sage/interfaces/frobby.py
|
||||
--- src/sage/interfaces/frobby.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||
+++ src/sage/interfaces/frobby.py 2019-01-15 14:09:39.587064736 -0700
|
||||
--- src/sage/interfaces/frobby.py.orig 2019-03-23 16:20:40.000000000 -0600
|
||||
+++ src/sage/interfaces/frobby.py 2019-04-08 12:05:07.091855859 -0600
|
||||
@@ -77,7 +77,7 @@ class Frobby:
|
||||
print("Frobby command: ", repr(command))
|
||||
print("Frobby input:\n", input)
|
||||
|
@ -335,8 +213,8 @@ diff -up src/sage/interfaces/frobby.py.orig src/sage/interfaces/frobby.py
|
|||
|
||||
if verbose:
|
||||
diff -up src/sage/interfaces/gfan.py.orig src/sage/interfaces/gfan.py
|
||||
--- src/sage/interfaces/gfan.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||
+++ src/sage/interfaces/gfan.py 2019-01-17 16:15:45.185372585 -0700
|
||||
--- src/sage/interfaces/gfan.py.orig 2019-03-23 16:20:41.000000000 -0600
|
||||
+++ src/sage/interfaces/gfan.py 2019-04-08 12:05:07.092855841 -0600
|
||||
@@ -66,7 +66,7 @@ class Gfan(object):
|
||||
if six.PY2:
|
||||
enc_kwargs = {}
|
||||
|
@ -347,8 +225,8 @@ diff -up src/sage/interfaces/gfan.py.orig src/sage/interfaces/gfan.py
|
|||
gfan_processes = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE,
|
||||
**enc_kwargs)
|
||||
diff -up src/sage/interfaces/gp.py.orig src/sage/interfaces/gp.py
|
||||
--- src/sage/interfaces/gp.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||
+++ src/sage/interfaces/gp.py 2019-01-15 15:32:12.479565952 -0700
|
||||
--- src/sage/interfaces/gp.py.orig 2019-03-23 16:20:41.000000000 -0600
|
||||
+++ src/sage/interfaces/gp.py 2019-04-08 12:05:07.092855841 -0600
|
||||
@@ -934,17 +934,6 @@ class GpElement(ExpectElement):
|
||||
"""
|
||||
return repr(self.type()) == 't_STR'
|
||||
|
@ -368,9 +246,9 @@ diff -up src/sage/interfaces/gp.py.orig src/sage/interfaces/gp.py
|
|||
"""
|
||||
Return Python float.
|
||||
diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py
|
||||
--- src/sage/interfaces/latte.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||
+++ src/sage/interfaces/latte.py 2019-01-16 09:44:45.946769879 -0700
|
||||
@@ -147,6 +147,7 @@ def count(arg, ehrhart_polynomial=False,
|
||||
--- src/sage/interfaces/latte.py.orig 2019-03-23 16:20:41.000000000 -0600
|
||||
+++ src/sage/interfaces/latte.py 2019-04-08 12:05:07.092855841 -0600
|
||||
@@ -148,6 +148,7 @@ def count(arg, ehrhart_polynomial=False,
|
||||
latte_proc = Popen(args,
|
||||
stdin=PIPE, stdout=PIPE,
|
||||
stderr=(None if verbose else PIPE),
|
||||
|
@ -378,7 +256,7 @@ diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py
|
|||
cwd=str(SAGE_TMP))
|
||||
|
||||
ans, err = latte_proc.communicate(arg)
|
||||
@@ -352,6 +353,7 @@ def integrate(arg, polynomial=None, algo
|
||||
@@ -355,6 +356,7 @@ def integrate(arg, polynomial=None, algo
|
||||
latte_proc = Popen(args,
|
||||
stdin=PIPE, stdout=PIPE,
|
||||
stderr=(None if verbose else PIPE),
|
||||
|
@ -387,8 +265,8 @@ diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py
|
|||
|
||||
ans, err = latte_proc.communicate(arg)
|
||||
diff -up src/sage/interfaces/sagespawn.pyx.orig src/sage/interfaces/sagespawn.pyx
|
||||
--- src/sage/interfaces/sagespawn.pyx.orig 2018-12-22 16:37:08.000000000 -0700
|
||||
+++ src/sage/interfaces/sagespawn.pyx 2019-01-16 12:08:26.371966835 -0700
|
||||
--- src/sage/interfaces/sagespawn.pyx.orig 2019-03-23 16:20:41.000000000 -0600
|
||||
+++ src/sage/interfaces/sagespawn.pyx 2019-04-08 12:05:07.092855841 -0600
|
||||
@@ -1,6 +1,6 @@
|
||||
"""
|
||||
Sage wrapper around pexpect's ``spawn`` class and
|
||||
|
@ -437,8 +315,8 @@ diff -up src/sage/interfaces/sagespawn.pyx.orig src/sage/interfaces/sagespawn.py
|
|||
pass
|
||||
self.fileobj.close()
|
||||
diff -up src/sage/misc/parser.pyx.orig src/sage/misc/parser.pyx
|
||||
--- src/sage/misc/parser.pyx.orig 2018-12-22 16:37:09.000000000 -0700
|
||||
+++ src/sage/misc/parser.pyx 2019-01-04 10:57:51.277367597 -0700
|
||||
--- src/sage/misc/parser.pyx.orig 2019-03-23 16:20:41.000000000 -0600
|
||||
+++ src/sage/misc/parser.pyx 2019-04-08 12:05:07.093855823 -0600
|
||||
@@ -96,7 +96,7 @@ def token_to_str(int token):
|
||||
|
||||
|
||||
|
@ -738,8 +616,8 @@ diff -up src/sage/misc/parser.pyx.orig src/sage/misc/parser.pyx
|
|||
return self.p_list(tokens)
|
||||
else:
|
||||
diff -up src/sage/plot/plot3d/plot3d.py.orig src/sage/plot/plot3d/plot3d.py
|
||||
--- src/sage/plot/plot3d/plot3d.py.orig 2018-12-22 16:37:09.000000000 -0700
|
||||
+++ src/sage/plot/plot3d/plot3d.py 2019-01-04 10:58:51.476233419 -0700
|
||||
--- src/sage/plot/plot3d/plot3d.py.orig 2019-03-23 16:20:42.000000000 -0600
|
||||
+++ src/sage/plot/plot3d/plot3d.py 2019-04-08 12:05:07.093855823 -0600
|
||||
@@ -188,7 +188,8 @@ class _Coordinates(object):
|
||||
sage: arb((x+z,y*z,z), z, (x,y))
|
||||
Arbitrary Coordinates coordinate transform (z in terms of x, y)
|
||||
|
@ -751,8 +629,8 @@ diff -up src/sage/plot/plot3d/plot3d.py.orig src/sage/plot/plot3d/plot3d.py
|
|||
raise ValueError('variables were specified incorrectly for this coordinate system; incorrect variables were %s'%list(set(all_vars).symmetric_difference(set(indep_vars+[dep_var]))))
|
||||
self.dep_var = dep_var
|
||||
diff -up src/sage/plot/point.py.orig src/sage/plot/point.py
|
||||
--- src/sage/plot/point.py.orig 2018-12-22 16:37:09.000000000 -0700
|
||||
+++ src/sage/plot/point.py 2019-01-04 10:59:15.506780663 -0700
|
||||
--- src/sage/plot/point.py.orig 2019-03-23 16:20:42.000000000 -0600
|
||||
+++ src/sage/plot/point.py 2019-04-08 12:05:07.094855805 -0600
|
||||
@@ -29,7 +29,7 @@ TESTS::
|
||||
from sage.misc.decorators import options, rename_keyword
|
||||
from sage.plot.colors import to_mpl_color
|
||||
|
@ -772,8 +650,8 @@ diff -up src/sage/plot/point.py.orig src/sage/plot/point.py
|
|||
|
||||
try:
|
||||
diff -up src/sage/repl/display/fancy_repr.py.orig src/sage/repl/display/fancy_repr.py
|
||||
--- src/sage/repl/display/fancy_repr.py.orig 2018-12-22 16:37:09.000000000 -0700
|
||||
+++ src/sage/repl/display/fancy_repr.py 2019-01-04 11:00:18.210599287 -0700
|
||||
--- src/sage/repl/display/fancy_repr.py.orig 2019-03-23 16:20:42.000000000 -0600
|
||||
+++ src/sage/repl/display/fancy_repr.py 2019-04-08 12:05:07.094855805 -0600
|
||||
@@ -15,7 +15,7 @@ Representations of objects.
|
||||
import types
|
||||
|
||||
|
@ -793,8 +671,8 @@ diff -up src/sage/repl/display/fancy_repr.py.orig src/sage/repl/display/fancy_re
|
|||
else:
|
||||
# A user-provided repr. Find newlines and replace them with p.break_()
|
||||
diff -up src/sage/repl/ipython_kernel/interact.py.orig src/sage/repl/ipython_kernel/interact.py
|
||||
--- src/sage/repl/ipython_kernel/interact.py.orig 2018-12-22 16:37:09.000000000 -0700
|
||||
+++ src/sage/repl/ipython_kernel/interact.py 2019-01-04 11:01:50.722856305 -0700
|
||||
--- src/sage/repl/ipython_kernel/interact.py.orig 2019-03-23 16:20:42.000000000 -0600
|
||||
+++ src/sage/repl/ipython_kernel/interact.py 2019-04-08 12:05:07.094855805 -0600
|
||||
@@ -35,7 +35,8 @@ EXAMPLES::
|
||||
|
||||
from ipywidgets.widgets import SelectionSlider, ValueWidget, ToggleButtons
|
||||
|
@ -805,10 +683,10 @@ diff -up src/sage/repl/ipython_kernel/interact.py.orig src/sage/repl/ipython_ker
|
|||
from .widgets import EvalText, SageColorPicker
|
||||
from sage.structure.element import parent
|
||||
from sage.symbolic.ring import SR
|
||||
diff -up src/sage/rings/integer.pyx.orig
|
||||
--- src/sage/rings/integer.pyx.orig 2018-12-22 16:37:09.000000000 -0700
|
||||
+++ src/sage/rings/integer.pyx 2019-01-04 11:02:56.122624135 -0700
|
||||
@@ -6976,7 +6976,7 @@ cdef int mpz_set_str_python(mpz_ptr z, c
|
||||
diff -up src/sage/rings/integer.pyx.orig src/sage/rings/integer.pyx
|
||||
--- src/sage/rings/integer.pyx.orig 2019-03-23 16:20:42.000000000 -0600
|
||||
+++ src/sage/rings/integer.pyx 2019-04-08 12:05:07.095855787 -0600
|
||||
@@ -6989,7 +6989,7 @@ cdef int mpz_set_str_python(mpz_ptr z, c
|
||||
while x[0] == c' ': x += 1 # Strip spaces
|
||||
|
||||
# Disallow a sign here
|
||||
|
@ -818,9 +696,9 @@ diff -up src/sage/rings/integer.pyx.orig
|
|||
|
||||
assert base >= 2
|
||||
diff -up src/sage/rings/polynomial/pbori.pyx.orig src/sage/rings/polynomial/pbori.pyx
|
||||
--- src/sage/rings/polynomial/pbori.pyx.orig 2018-12-22 16:37:10.000000000 -0700
|
||||
+++ src/sage/rings/polynomial/pbori.pyx 2019-01-04 12:21:06.204500703 -0700
|
||||
@@ -4782,8 +4782,7 @@ cdef class PolynomialConstruct:
|
||||
--- src/sage/rings/polynomial/pbori.pyx.orig 2019-03-23 16:20:42.000000000 -0600
|
||||
+++ src/sage/rings/polynomial/pbori.pyx 2019-04-08 12:05:07.096855769 -0600
|
||||
@@ -4774,8 +4774,7 @@ cdef class PolynomialConstruct:
|
||||
# So, it is just a conversion. [Simon King]
|
||||
return (<BooleanPolynomialRing>ring)._element_constructor_(x)
|
||||
|
||||
|
@ -831,9 +709,9 @@ diff -up src/sage/rings/polynomial/pbori.pyx.orig src/sage/rings/polynomial/pbor
|
|||
|
||||
cdef class MonomialConstruct:
|
||||
diff -up src/sage/rings/real_mpfi.pyx.orig src/sage/rings/real_mpfi.pyx
|
||||
--- src/sage/rings/real_mpfi.pyx.orig 2018-12-22 16:37:10.000000000 -0700
|
||||
+++ src/sage/rings/real_mpfi.pyx 2019-01-04 11:03:53.650540277 -0700
|
||||
@@ -1951,12 +1951,12 @@ cdef class RealIntervalFieldElement(Ring
|
||||
--- src/sage/rings/real_mpfi.pyx.orig 2019-03-23 16:20:42.000000000 -0600
|
||||
+++ src/sage/rings/real_mpfi.pyx 2019-04-08 12:05:07.097855751 -0600
|
||||
@@ -1943,12 +1943,12 @@ cdef class RealIntervalFieldElement(Ring
|
||||
|
||||
cdef long digits
|
||||
digits = strlen(lower_s)
|
||||
|
@ -848,7 +726,7 @@ diff -up src/sage/rings/real_mpfi.pyx.orig src/sage/rings/real_mpfi.pyx
|
|||
digits -= 1
|
||||
upper_expo -= digits
|
||||
|
||||
@@ -2125,7 +2125,7 @@ cdef class RealIntervalFieldElement(Ring
|
||||
@@ -2117,7 +2117,7 @@ cdef class RealIntervalFieldElement(Ring
|
||||
raise MemoryError("Unable to allocate memory for the mantissa of an interval")
|
||||
mpz_get_str(tmp_cstr, base, lower_mpz)
|
||||
digits = strlen(tmp_cstr)
|
||||
|
@ -858,9 +736,9 @@ diff -up src/sage/rings/real_mpfi.pyx.orig src/sage/rings/real_mpfi.pyx
|
|||
mant_string = bytes_to_str(tmp_cstr+1)
|
||||
sign_string = bytes_to_str(b'-')
|
||||
diff -up src/sage/rings/real_mpfr.pyx.orig src/sage/rings/real_mpfr.pyx
|
||||
--- src/sage/rings/real_mpfr.pyx.orig 2018-12-22 16:37:10.000000000 -0700
|
||||
+++ src/sage/rings/real_mpfr.pyx 2019-01-04 12:22:18.194171036 -0700
|
||||
@@ -2032,7 +2032,7 @@ cdef class RealNumber(sage.structure.ele
|
||||
--- src/sage/rings/real_mpfr.pyx.orig 2019-03-23 16:20:42.000000000 -0600
|
||||
+++ src/sage/rings/real_mpfr.pyx 2019-04-08 12:05:07.098855733 -0600
|
||||
@@ -2039,7 +2039,7 @@ cdef class RealNumber(sage.structure.ele
|
||||
if s is NULL:
|
||||
raise RuntimeError("unable to convert an mpfr number to a string")
|
||||
# t contains just digits (no sign, decimal point or exponent)
|
||||
|
@ -870,8 +748,8 @@ diff -up src/sage/rings/real_mpfr.pyx.orig src/sage/rings/real_mpfr.pyx
|
|||
t = char_to_str(s + 1)
|
||||
else:
|
||||
diff -up src/sage/structure/sage_object.pyx.orig src/sage/structure/sage_object.pyx
|
||||
--- src/sage/structure/sage_object.pyx.orig 2018-12-22 16:37:10.000000000 -0700
|
||||
+++ src/sage/structure/sage_object.pyx 2019-01-04 13:48:09.055790438 -0700
|
||||
--- src/sage/structure/sage_object.pyx.orig 2019-03-23 16:20:43.000000000 -0600
|
||||
+++ src/sage/structure/sage_object.pyx 2019-04-08 12:05:07.098855733 -0600
|
||||
@@ -665,7 +665,7 @@ cdef class SageObject:
|
||||
try:
|
||||
s = self._interface_init_(I)
|
||||
|
@ -882,9 +760,9 @@ diff -up src/sage/structure/sage_object.pyx.orig src/sage/structure/sage_object.
|
|||
if c:
|
||||
try:
|
||||
diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx
|
||||
--- src/sage/symbolic/expression.pyx.orig 2018-12-22 16:37:10.000000000 -0700
|
||||
+++ src/sage/symbolic/expression.pyx 2019-01-04 11:04:35.829745704 -0700
|
||||
@@ -12955,7 +12955,7 @@ cdef class hold_class:
|
||||
--- src/sage/symbolic/expression.pyx.orig 2019-03-23 16:20:43.000000000 -0600
|
||||
+++ src/sage/symbolic/expression.pyx 2019-04-08 12:05:07.100855697 -0600
|
||||
@@ -12915,7 +12915,7 @@ cdef class hold_class:
|
||||
sage: SR(2)^5
|
||||
32
|
||||
"""
|
||||
|
@ -893,7 +771,7 @@ diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx
|
|||
|
||||
def __exit__(self, *args):
|
||||
"""
|
||||
@@ -12968,7 +12968,7 @@ cdef class hold_class:
|
||||
@@ -12928,7 +12928,7 @@ cdef class hold_class:
|
||||
sage: SR(2)^5
|
||||
32
|
||||
"""
|
||||
|
@ -903,9 +781,9 @@ diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx
|
|||
def start(self):
|
||||
"""
|
||||
diff -up src/setup.py.orig src/setup.py
|
||||
--- src/setup.py.orig 2019-01-04 10:27:47.032123257 -0700
|
||||
+++ src/setup.py 2019-01-04 11:05:11.337077724 -0700
|
||||
@@ -284,7 +284,7 @@ class sage_build_cython(Command):
|
||||
--- src/setup.py.orig 2019-04-08 11:45:58.283274716 -0600
|
||||
+++ src/setup.py 2019-04-08 12:05:07.101855679 -0600
|
||||
@@ -232,7 +232,7 @@ class sage_build_cython(Command):
|
||||
cdivision=True,
|
||||
embedsignature=True,
|
||||
fast_getattr=True,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
diff -up src/sage/interfaces/qepcad.py.orig src/sage/interfaces/qepcad.py
|
||||
--- src/sage/interfaces/qepcad.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||
+++ src/sage/interfaces/qepcad.py 2019-01-16 09:46:44.714638633 -0700
|
||||
--- src/sage/interfaces/qepcad.py.orig 2019-03-23 16:20:41.000000000 -0600
|
||||
+++ src/sage/interfaces/qepcad.py 2019-04-08 13:32:00.509789984 -0600
|
||||
@@ -530,7 +530,7 @@ TESTS:
|
||||
|
||||
Check the qepcad configuration file::
|
||||
|
@ -10,16 +10,16 @@ diff -up src/sage/interfaces/qepcad.py.orig src/sage/interfaces/qepcad.py
|
|||
....: f.readlines()[-1]
|
||||
'SINGULAR .../bin\n'
|
||||
|
||||
@@ -608,7 +608,6 @@ from __future__ import print_function
|
||||
from __future__ import absolute_import
|
||||
@@ -607,7 +607,6 @@ AUTHORS:
|
||||
from __future__ import print_function, absolute_import
|
||||
from six import string_types
|
||||
|
||||
-from sage.env import SAGE_LOCAL
|
||||
import pexpect
|
||||
import re
|
||||
import sys
|
||||
@@ -621,6 +620,8 @@ from sage.docs.instancedoc import instan
|
||||
from .expect import Expect, ExpectFunction, AsciiArtString
|
||||
@@ -621,6 +620,8 @@ from .expect import Expect, ExpectFuncti
|
||||
from sage.interfaces.interface import AsciiArtString
|
||||
|
||||
|
||||
+QEPCAD_LOCAL = "/usr/share/qepcad"
|
||||
|
|
32
sagemath-random.patch
Normal file
32
sagemath-random.patch
Normal file
|
@ -0,0 +1,32 @@
|
|||
diff -up src/sage/misc/binary_tree.pyx.orig src/sage/misc/binary_tree.pyx
|
||||
--- src/sage/misc/binary_tree.pyx.orig 2019-03-23 16:20:41.000000000 -0600
|
||||
+++ src/sage/misc/binary_tree.pyx 2019-04-09 13:55:17.152716497 -0600
|
||||
@@ -13,6 +13,8 @@ from cysignals.memory cimport sig_malloc
|
||||
|
||||
from cpython.ref cimport PyObject, Py_INCREF, Py_XDECREF
|
||||
|
||||
+from sage.misc.prandom import randint
|
||||
+
|
||||
cdef binary_tree_node *BinaryTreeNode(int key, object value):
|
||||
cdef binary_tree_node *t
|
||||
t = <binary_tree_node *>sig_malloc(sizeof(binary_tree_node))
|
||||
@@ -122,10 +124,7 @@ cdef binary_tree_node *binary_tree_right
|
||||
cdef binary_tree_node *binary_tree_head_excise(binary_tree_node *self):
|
||||
cdef binary_tree_node *cur
|
||||
cdef int right
|
||||
- # We have a pointer we're about to free. Chances are, we'll never
|
||||
- # see this pointer again. Thus, its least significant bit is
|
||||
- # "random" enough to resist bias.
|
||||
- right = (<int>self)&1
|
||||
+ right = randint(0, 1)
|
||||
if self.right == NULL:
|
||||
return self.left
|
||||
if self.left == NULL:
|
||||
@@ -502,7 +501,6 @@ class Test:
|
||||
|
||||
sage: sage.misc.binary_tree.Test().random()
|
||||
"""
|
||||
- from sage.misc.prandom import randint
|
||||
t = BinaryTree()
|
||||
for i in xrange(cycles):
|
||||
r = randint(0,8)
|
|
@ -1,6 +1,6 @@
|
|||
diff -up src/module_list.py.orig src/module_list.py
|
||||
--- src/module_list.py.orig 2019-01-16 09:42:29.021226961 -0700
|
||||
+++ src/module_list.py 2019-01-16 09:42:41.397004883 -0700
|
||||
--- src/module_list.py.orig 2019-04-08 11:45:44.437520141 -0600
|
||||
+++ src/module_list.py 2019-04-08 11:45:58.268274982 -0600
|
||||
@@ -2,7 +2,7 @@ import os
|
||||
from distutils.extension import Extension
|
||||
from sage.env import SAGE_LOCAL
|
||||
|
@ -11,21 +11,21 @@ diff -up src/module_list.py.orig src/module_list.py
|
|||
#########################################################
|
||||
### pkg-config setup
|
||||
diff -up src/sage/misc/cython.py.orig src/sage/misc/cython.py
|
||||
--- src/sage/misc/cython.py.orig 2018-12-22 16:37:09.000000000 -0700
|
||||
+++ src/sage/misc/cython.py 2019-01-04 10:27:47.031123276 -0700
|
||||
@@ -600,7 +600,7 @@ def cython(filename, verbose=0, compile_
|
||||
ext = Extension(name,
|
||||
sources=[pyxfile] + extra_sources,
|
||||
libraries=libs,
|
||||
- library_dirs=[os.path.join(SAGE_LOCAL, "lib")] + libdirs,
|
||||
+ library_dirs=[os.path.realpath(os.path.join(SAGE_LOCAL, "lib"))] + libdirs,
|
||||
extra_compile_args=extra_args,
|
||||
language=language)
|
||||
--- src/sage/misc/cython.py.orig 2019-04-08 11:45:58.269274964 -0600
|
||||
+++ src/sage/misc/cython.py 2019-04-08 11:48:23.582699337 -0600
|
||||
@@ -49,7 +49,7 @@ standard_libs = [
|
||||
] + cblas_libs + [
|
||||
'ntl']
|
||||
|
||||
-standard_libdirs = [os.path.join(SAGE_LOCAL, "lib")] + cblas_library_dirs
|
||||
+standard_libdirs = [os.path.realpath(os.path.join(SAGE_LOCAL, "lib"))] + cblas_library_dirs
|
||||
|
||||
|
||||
################################################################
|
||||
diff -up src/setup.py.orig src/setup.py
|
||||
--- src/setup.py.orig 2018-12-22 16:37:10.000000000 -0700
|
||||
+++ src/setup.py 2019-01-04 10:27:47.032123257 -0700
|
||||
@@ -371,9 +371,8 @@ class sage_build_cython(Command):
|
||||
--- src/setup.py.orig 2019-03-23 16:20:43.000000000 -0600
|
||||
+++ src/setup.py 2019-04-08 11:45:58.283274716 -0600
|
||||
@@ -318,9 +318,8 @@ class sage_build_cython(Command):
|
||||
# Debugging
|
||||
gdb_debug=self.debug,
|
||||
output_dir=os.path.join(self.build_lib, "sage"),
|
||||
|
@ -37,7 +37,7 @@ diff -up src/setup.py.orig src/setup.py
|
|||
)
|
||||
|
||||
# Filter out extensions with skip_build=True
|
||||
@@ -882,9 +881,6 @@ class sage_install(install):
|
||||
@@ -829,9 +828,6 @@ class sage_install(install):
|
||||
install.run(self)
|
||||
self.install_kernel_spec()
|
||||
log.info('Cleaning up stale installed files....')
|
||||
|
@ -47,7 +47,7 @@ diff -up src/setup.py.orig src/setup.py
|
|||
|
||||
def install_kernel_spec(self):
|
||||
"""
|
||||
@@ -901,40 +897,6 @@ class sage_install(install):
|
||||
@@ -848,40 +844,6 @@ class sage_install(install):
|
||||
# the install_data directory for installing our Jupyter files.
|
||||
SageKernelSpec.update(prefix=self.install_data)
|
||||
|
||||
|
|
306
sagemath-rubiks.patch
Normal file
306
sagemath-rubiks.patch
Normal file
|
@ -0,0 +1,306 @@
|
|||
diff -up build/pkgs/rubiks/src/dik/cube.c.orig build/pkgs/rubiks/src/dik/cube.c
|
||||
--- build/pkgs/rubiks/src/dik/cube.c.orig 2008-01-04 01:26:59.000000000 -0700
|
||||
+++ build/pkgs/rubiks/src/dik/cube.c 2019-04-09 13:25:49.060985774 -0600
|
||||
@@ -6,6 +6,7 @@ static void read_position();
|
||||
|
||||
static int do_repeat = 0;
|
||||
|
||||
+int
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
diff -up build/pkgs/rubiks/src/dik/globals.h.orig build/pkgs/rubiks/src/dik/globals.h
|
||||
--- build/pkgs/rubiks/src/dik/globals.h.orig 2008-01-04 01:26:59.000000000 -0700
|
||||
+++ build/pkgs/rubiks/src/dik/globals.h 2019-04-09 15:47:20.736919992 -0600
|
||||
@@ -1,4 +1,6 @@
|
||||
#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
|
||||
#define MAX_MOVES 30
|
||||
|
||||
diff -up build/pkgs/rubiks/src/dik/permcube.c.orig build/pkgs/rubiks/src/dik/permcube.c
|
||||
--- build/pkgs/rubiks/src/dik/permcube.c.orig 2008-01-04 01:26:59.000000000 -0700
|
||||
+++ build/pkgs/rubiks/src/dik/permcube.c 2019-04-09 13:24:49.733911356 -0600
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "globals.h"
|
||||
|
||||
+int
|
||||
perm_cube()
|
||||
{
|
||||
int i, j, k, tmp;
|
||||
diff -up build/pkgs/rubiks/src/dik/prntsol.c.orig build/pkgs/rubiks/src/dik/prntsol.c
|
||||
--- build/pkgs/rubiks/src/dik/prntsol.c.orig 2008-01-04 01:26:59.000000000 -0700
|
||||
+++ build/pkgs/rubiks/src/dik/prntsol.c 2019-04-09 13:25:14.869519211 -0600
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
static char m[] = "FRUBLD";
|
||||
|
||||
+void
|
||||
prnt_sol()
|
||||
{
|
||||
int i, j, k;
|
||||
diff -up build/pkgs/rubiks/src/dik/setcube.c.orig build/pkgs/rubiks/src/dik/setcube.c
|
||||
--- build/pkgs/rubiks/src/dik/setcube.c.orig 2008-01-04 01:26:59.000000000 -0700
|
||||
+++ build/pkgs/rubiks/src/dik/setcube.c 2019-04-09 13:26:52.427996988 -0600
|
||||
@@ -24,7 +24,7 @@ static char edges[12][2][2] = {
|
||||
{"FR", "RF"},
|
||||
{"FL", "LF"}};
|
||||
|
||||
-static cube_found, orient_found;
|
||||
+static int cube_found, orient_found;
|
||||
|
||||
static void find_corner(c)
|
||||
char *c;
|
||||
diff -up build/pkgs/rubiks/src/dik/size222.c.orig build/pkgs/rubiks/src/dik/size222.c
|
||||
--- build/pkgs/rubiks/src/dik/size222.c.orig 2008-01-04 01:26:59.000000000 -0700
|
||||
+++ build/pkgs/rubiks/src/dik/size222.c 2019-04-09 13:29:43.371327964 -0600
|
||||
@@ -1,4 +1,6 @@
|
||||
#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
|
||||
#define NOMAX
|
||||
#include "trans/perm7.a"
|
||||
@@ -17,6 +19,7 @@ int maximal;
|
||||
int gcount;
|
||||
int givemax;
|
||||
|
||||
+void
|
||||
do_pr(turns, count)
|
||||
int turns, count;
|
||||
{
|
||||
@@ -29,6 +32,7 @@ int turns, count;
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
+int
|
||||
try_one(num, count)
|
||||
int num, count;
|
||||
{
|
||||
@@ -64,6 +68,7 @@ int i, j, nnum, counted = 0, k, l, max =
|
||||
return counted;
|
||||
}
|
||||
|
||||
+void
|
||||
try(count)
|
||||
int count;
|
||||
{
|
||||
@@ -93,6 +98,7 @@ TYPE j;
|
||||
do_pr(count + 1, counted);
|
||||
}
|
||||
|
||||
+int
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
diff -up build/pkgs/rubiks/src/dik/size333c.c.orig build/pkgs/rubiks/src/dik/size333c.c
|
||||
--- build/pkgs/rubiks/src/dik/size333c.c.orig 2008-01-04 01:26:59.000000000 -0700
|
||||
+++ build/pkgs/rubiks/src/dik/size333c.c 2019-04-09 13:30:16.257814499 -0600
|
||||
@@ -1,4 +1,6 @@
|
||||
#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
|
||||
#define EQUIV
|
||||
#define NOMAX
|
||||
@@ -38,6 +40,7 @@ int maximal;
|
||||
int gcount;
|
||||
int givemax;
|
||||
|
||||
+void
|
||||
do_pr(turns, count)
|
||||
int turns, count;
|
||||
{
|
||||
@@ -50,6 +53,7 @@ int turns, count;
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
+int
|
||||
try_one(num, count)
|
||||
int num, count;
|
||||
{
|
||||
@@ -122,6 +126,7 @@ int i, j, nnum, counted = 0, k, l, max,
|
||||
return wcounted;
|
||||
}
|
||||
|
||||
+void
|
||||
try(count)
|
||||
int count;
|
||||
{
|
||||
@@ -151,6 +156,7 @@ TYPE j;
|
||||
do_pr(count + 1, counted);
|
||||
}
|
||||
|
||||
+int
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
diff -up build/pkgs/rubiks/src/dik/sizedom.c.orig build/pkgs/rubiks/src/dik/sizedom.c
|
||||
--- build/pkgs/rubiks/src/dik/sizedom.c.orig 2008-01-04 01:26:59.000000000 -0700
|
||||
+++ build/pkgs/rubiks/src/dik/sizedom.c 2019-04-09 13:33:16.473000709 -0600
|
||||
@@ -1,4 +1,6 @@
|
||||
#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
|
||||
#define SUBGROUP
|
||||
#define EQUIV
|
||||
@@ -39,6 +41,7 @@ int maximal;
|
||||
int gcount;
|
||||
int givemax;
|
||||
|
||||
+void
|
||||
do_pr(turns, count)
|
||||
int turns, count;
|
||||
{
|
||||
@@ -51,6 +54,7 @@ int turns, count;
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
+int
|
||||
try_one(num, count)
|
||||
int num, count;
|
||||
{
|
||||
@@ -175,6 +179,7 @@ int i, j, nnum, counted = 0, k, l, max,
|
||||
return wcounted;
|
||||
}
|
||||
|
||||
+void
|
||||
try(count)
|
||||
int count;
|
||||
{
|
||||
@@ -273,6 +278,7 @@ int cperm, eperm;
|
||||
init_turn(cperm, eperm);
|
||||
}
|
||||
|
||||
+int
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
diff -up build/pkgs/rubiks/src/dik/sizekoc1.c.orig build/pkgs/rubiks/src/dik/sizekoc1.c
|
||||
--- build/pkgs/rubiks/src/dik/sizekoc1.c.orig 2008-01-04 01:26:59.000000000 -0700
|
||||
+++ build/pkgs/rubiks/src/dik/sizekoc1.c 2019-04-09 13:34:37.327738285 -0600
|
||||
@@ -1,4 +1,6 @@
|
||||
#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
|
||||
#define EQUIV
|
||||
#define NOMAX
|
||||
@@ -28,6 +30,7 @@ int maximal;
|
||||
int gcount;
|
||||
int givemax;
|
||||
|
||||
+void
|
||||
do_pr(turns, count)
|
||||
int turns, count;
|
||||
{
|
||||
@@ -40,6 +43,7 @@ int turns, count;
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
+int
|
||||
try_one(num, count)
|
||||
int num, count;
|
||||
{
|
||||
@@ -91,6 +95,7 @@ int i, j, nnum, counted = 0, k, l, max,
|
||||
return wcounted;
|
||||
}
|
||||
|
||||
+void
|
||||
try(count)
|
||||
int count;
|
||||
{
|
||||
@@ -120,6 +125,7 @@ TYPE j;
|
||||
do_pr(count + 1, counted);
|
||||
}
|
||||
|
||||
+int
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
diff -up build/pkgs/rubiks/src/dik/sizekoc2.c.orig build/pkgs/rubiks/src/dik/sizekoc2.c
|
||||
--- build/pkgs/rubiks/src/dik/sizekoc2.c.orig 2008-01-04 01:26:59.000000000 -0700
|
||||
+++ build/pkgs/rubiks/src/dik/sizekoc2.c 2019-04-09 13:35:21.151052650 -0600
|
||||
@@ -1,4 +1,6 @@
|
||||
#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
|
||||
#define EQUIV
|
||||
#define NOMAX
|
||||
@@ -28,6 +30,7 @@ int maximal;
|
||||
int gcount;
|
||||
int givemax;
|
||||
|
||||
+void
|
||||
do_pr(turns, count)
|
||||
int turns, count;
|
||||
{
|
||||
@@ -40,6 +43,7 @@ int turns, count;
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
+int
|
||||
try_one(num, count)
|
||||
int num, count;
|
||||
{
|
||||
@@ -128,6 +132,7 @@ int i, j, nnum, counted = 0, k, l, max,
|
||||
return wcounted;
|
||||
}
|
||||
|
||||
+void
|
||||
try(count)
|
||||
int count;
|
||||
{
|
||||
@@ -157,6 +162,7 @@ TYPE j;
|
||||
do_pr(count + 1, counted);
|
||||
}
|
||||
|
||||
+int
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
diff -up build/pkgs/rubiks/src/dik/sizesquare.c.orig build/pkgs/rubiks/src/dik/sizesquare.c
|
||||
--- build/pkgs/rubiks/src/dik/sizesquare.c.orig 2008-01-04 01:26:59.000000000 -0700
|
||||
+++ build/pkgs/rubiks/src/dik/sizesquare.c 2019-04-09 13:31:57.537233176 -0600
|
||||
@@ -1,4 +1,6 @@
|
||||
#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
|
||||
#define NOMAX
|
||||
#include "trans/perm4.a"
|
||||
@@ -16,6 +18,7 @@ int maximal;
|
||||
int gcount;
|
||||
int givemax;
|
||||
|
||||
+void
|
||||
do_pr(turns, count)
|
||||
int turns, count;
|
||||
{
|
||||
@@ -28,6 +31,7 @@ int turns, count;
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
+int
|
||||
try_one(num, count)
|
||||
int num, count;
|
||||
{
|
||||
@@ -56,6 +60,7 @@ int i, j, nnum, counted = 0, k, l, max =
|
||||
return counted;
|
||||
}
|
||||
|
||||
+void
|
||||
try(count)
|
||||
int count;
|
||||
{
|
||||
@@ -85,6 +90,7 @@ TYPE j;
|
||||
do_pr(count + 1, counted);
|
||||
}
|
||||
|
||||
+int
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
|
@ -1,6 +1,6 @@
|
|||
diff -up src/sage/doctest/control.py.orig src/sage/doctest/control.py
|
||||
--- src/sage/doctest/control.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||
+++ src/sage/doctest/control.py 2019-01-16 09:42:51.238828275 -0700
|
||||
--- src/sage/doctest/control.py.orig 2019-03-23 16:20:40.000000000 -0600
|
||||
+++ src/sage/doctest/control.py 2019-04-08 11:49:50.428160023 -0600
|
||||
@@ -106,7 +106,6 @@ class DocTestDefaults(SageObject):
|
||||
self.valgrind = False
|
||||
self.massif = False
|
||||
|
@ -18,7 +18,7 @@ diff -up src/sage/doctest/control.py.orig src/sage/doctest/control.py
|
|||
# Non-interactive debuggers: 48 hours
|
||||
options.timeout = int(os.getenv('SAGE_TIMEOUT_VALGRIND', 48 * 60 * 60))
|
||||
elif options.long:
|
||||
@@ -1099,13 +1098,8 @@ class DocTestController(SageObject):
|
||||
@@ -1105,13 +1104,8 @@ class DocTestController(SageObject):
|
||||
elif opt.cachegrind:
|
||||
toolname = "cachegrind"
|
||||
flags = os.getenv("SAGE_CACHEGRIND_FLAGS", "")
|
||||
|
@ -32,7 +32,7 @@ diff -up src/sage/doctest/control.py.orig src/sage/doctest/control.py
|
|||
if "%s" in flags:
|
||||
flags %= toolname + ".%p" # replace %s with toolname
|
||||
cmd += flags + sage_cmd
|
||||
@@ -1190,10 +1184,10 @@ class DocTestController(SageObject):
|
||||
@@ -1196,10 +1190,10 @@ class DocTestController(SageObject):
|
||||
|
||||
"""
|
||||
opt = self.options
|
||||
|
@ -46,18 +46,18 @@ diff -up src/sage/doctest/control.py.orig src/sage/doctest/control.py
|
|||
return self.run_val_gdb()
|
||||
else:
|
||||
diff -up src/sage/interfaces/singular.py.orig src/sage/interfaces/singular.py
|
||||
--- src/sage/interfaces/singular.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||
+++ src/sage/interfaces/singular.py 2019-01-16 09:42:51.240828239 -0700
|
||||
@@ -2264,7 +2264,7 @@ def generate_docstring_dictionary():
|
||||
--- src/sage/interfaces/singular.py.orig 2019-03-23 16:20:41.000000000 -0600
|
||||
+++ src/sage/interfaces/singular.py 2019-04-08 11:54:23.579318505 -0600
|
||||
@@ -2261,7 +2261,7 @@ def generate_docstring_dictionary():
|
||||
nodes.clear()
|
||||
node_names.clear()
|
||||
|
||||
import os
|
||||
- singular_docdir = os.environ['SINGULARPATH']+"/../info/"
|
||||
+ singular_docdir = "/usr/share/info/"
|
||||
|
||||
new_node = re.compile(r"File: singular\.hlp, Node: ([^,]*),.*")
|
||||
new_lookup = re.compile(r"\* ([^:]*):*([^.]*)\..*")
|
||||
@@ -2272,8 +2272,9 @@ def generate_docstring_dictionary():
|
||||
@@ -2269,8 +2269,9 @@ def generate_docstring_dictionary():
|
||||
L, in_node, curr_node = [], False, None
|
||||
|
||||
# singular.hlp contains a few iso-5559-1 encoded special characters
|
||||
|
@ -65,13 +65,13 @@ diff -up src/sage/interfaces/singular.py.orig src/sage/interfaces/singular.py
|
|||
- encoding='latin-1') as f:
|
||||
+ import gzip
|
||||
+ with gzip.open(os.path.join(singular_doctir, 'singular.hlp.gz'),
|
||||
+ encoding='latin-1') as f:
|
||||
+ encoding='utf-8') as f:
|
||||
for line in f:
|
||||
m = re.match(new_node,line)
|
||||
if m:
|
||||
diff -up src/sage_setup/docbuild/ext/multidocs.py.orig src/sage_setup/docbuild/ext/multidocs.py
|
||||
--- src/sage_setup/docbuild/ext/multidocs.py.orig 2018-12-22 16:37:10.000000000 -0700
|
||||
+++ src/sage_setup/docbuild/ext/multidocs.py 2019-01-16 09:42:51.241828221 -0700
|
||||
--- src/sage_setup/docbuild/ext/multidocs.py.orig 2019-03-23 16:20:43.000000000 -0600
|
||||
+++ src/sage_setup/docbuild/ext/multidocs.py 2019-04-08 11:49:50.430159987 -0600
|
||||
@@ -84,8 +84,11 @@ def merge_environment(app, env):
|
||||
for ind in newalldoc:
|
||||
# treat subdocument source as orphaned file and don't complain
|
||||
|
@ -87,9 +87,9 @@ diff -up src/sage_setup/docbuild/ext/multidocs.py.orig src/sage_setup/docbuild/e
|
|||
newcite = {}
|
||||
citations = docenv.domaindata["std"]["citations"]
|
||||
diff -up src/sage_setup/docbuild/__init__.py.orig src/sage_setup/docbuild/__init__.py
|
||||
--- src/sage_setup/docbuild/__init__.py.orig 2018-12-22 16:37:10.000000000 -0700
|
||||
+++ src/sage_setup/docbuild/__init__.py 2019-01-16 09:42:51.242828203 -0700
|
||||
@@ -279,13 +279,14 @@ def build_many(target, args):
|
||||
--- src/sage_setup/docbuild/__init__.py.orig 2019-04-08 11:49:50.431159970 -0600
|
||||
+++ src/sage_setup/docbuild/__init__.py 2019-04-08 11:56:02.609563240 -0600
|
||||
@@ -287,13 +287,14 @@ if not (CYGWIN_VERSION and CYGWIN_VERSIO
|
||||
# map_async handles KeyboardInterrupt correctly. Plain map and
|
||||
# apply_async does not, so don't use it.
|
||||
x = pool.map_async(target, args, 1)
|
||||
|
@ -105,4 +105,4 @@ diff -up src/sage_setup/docbuild/__init__.py.orig src/sage_setup/docbuild/__init
|
|||
+ pool.terminate()
|
||||
raise
|
||||
return ret
|
||||
|
||||
else:
|
||||
|
|
12
sagemath-sagetex.patch
Normal file
12
sagemath-sagetex.patch
Normal file
|
@ -0,0 +1,12 @@
|
|||
diff -up build/pkgs/sagetex/src/run-sagetex-if-necessary.py.orig build/pkgs/sagetex/src/run-sagetex-if-necessary.py
|
||||
--- build/pkgs/sagetex/src/run-sagetex-if-necessary.py.orig 2019-01-09 09:51:28.000000000 -0700
|
||||
+++ build/pkgs/sagetex/src/run-sagetex-if-necessary.py 2019-04-09 11:39:25.457566883 -0600
|
||||
@@ -63,7 +63,7 @@ if not uses_sagetex:
|
||||
|
||||
# if something goes wrong, assume we need to run Sage
|
||||
run_sage = True
|
||||
- ignore = r"^( _st_.goboom|print('SageT| ?_st_.current_tex_line))"
|
||||
+ignore = r"^( _st_.goboom|print('SageT| ?_st_.current_tex_line))"
|
||||
|
||||
try:
|
||||
with open(src + '.sagetex.sage', 'r') as sagef:
|
|
@ -1,6 +1,6 @@
|
|||
diff -up src/bin/sage.orig src/bin/sage
|
||||
--- src/bin/sage.orig 2018-12-22 16:37:06.000000000 -0700
|
||||
+++ src/bin/sage 2019-01-16 09:42:10.064567132 -0700
|
||||
--- src/bin/sage.orig 2019-03-23 16:20:31.000000000 -0600
|
||||
+++ src/bin/sage 2019-04-08 11:42:38.305818631 -0600
|
||||
@@ -26,13 +26,10 @@ usage() {
|
||||
echo " file.[sage|py|spyx] -- run given .sage, .py or .spyx file"
|
||||
echo " -advanced -- list all command line options"
|
||||
|
@ -55,10 +55,10 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
echo " -inotebook [...] -- start the *insecure* Sage notebook (deprecated)"
|
||||
echo " -n, -notebook [...] -- start the default Sage notebook (options are the"
|
||||
echo " same as for the notebook command in Sage). See the"
|
||||
@@ -118,18 +105,11 @@ usage_advanced() {
|
||||
echo " -ipython [...] -- run Sage's IPython using the default environment (not"
|
||||
@@ -119,18 +106,11 @@ usage_advanced() {
|
||||
echo " Sage), passing additional options to IPython"
|
||||
echo " -ipython3 [...] -- same as above, but using Python 3"
|
||||
echo " -jupyter [...] -- run Sage's Jupyter with given arguments"
|
||||
- echo " -kash [...] -- run Sage's Kash with given arguments"
|
||||
- command -v kash &>/dev/null || \
|
||||
- echo " (not installed currently, run sage -i kash)"
|
||||
|
@ -72,9 +72,9 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
- command -v polymake &>/dev/null || \
|
||||
- echo " (not installed currently, run sage -i polymake)"
|
||||
echo " -python [...] -- run the Python interpreter"
|
||||
echo " -R [...] -- run Sage's R with given arguments"
|
||||
echo " -scons [...] -- run Sage's scons"
|
||||
@@ -141,55 +121,7 @@ usage_advanced() {
|
||||
echo " -python2 [...] -- run the Python 2 interpreter"
|
||||
echo " -python3 [...] -- run the Python 3 interpreter"
|
||||
@@ -144,55 +124,7 @@ usage_advanced() {
|
||||
echo
|
||||
#### 1.......................26..................................................78
|
||||
#### |.....................--.|...................................................|
|
||||
|
@ -131,7 +131,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
echo " -startuptime [module] -- display how long each component of Sage takes to"
|
||||
echo " start up; optionally specify a module to get more"
|
||||
echo " details about that particular module"
|
||||
@@ -223,7 +155,6 @@ usage_advanced() {
|
||||
@@ -226,7 +158,6 @@ usage_advanced() {
|
||||
echo " -coverage <files> -- give info about doctest coverage of files"
|
||||
echo " -coverageall -- give summary info about doctest coverage of all"
|
||||
echo " files in the Sage library"
|
||||
|
@ -139,7 +139,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
echo " -search_src <string> -- search through all the Sage library code for string"
|
||||
echo " -search_doc <string> -- search through the Sage documentation for string"
|
||||
echo " -grep <string> -- same as -search_src"
|
||||
@@ -249,16 +180,6 @@ usage_advanced() {
|
||||
@@ -252,16 +183,6 @@ usage_advanced() {
|
||||
echo
|
||||
#### 1.......................26..................................................78
|
||||
#### |.....................--.|...................................................|
|
||||
|
@ -156,7 +156,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
echo "Valgrind memory debugging:"
|
||||
echo " -cachegrind -- run Sage using Valgrind's cachegrind tool. The log"
|
||||
echo " files are named sage-cachegrind.PID can be found in"
|
||||
@@ -272,9 +193,6 @@ usage_advanced() {
|
||||
@@ -275,9 +196,6 @@ usage_advanced() {
|
||||
echo " -memcheck -- run Sage using Valgrind's memcheck tool. The log"
|
||||
echo " files are named sage-memcheck.PID can be found in"
|
||||
echo " $DOT_SAGE"
|
||||
|
@ -166,7 +166,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
echo " -valgrind -- this is an alias for -memcheck"
|
||||
echo
|
||||
echo "You can also use -- before a long option, e.g., 'sage --optional'."
|
||||
@@ -284,115 +202,6 @@ usage_advanced() {
|
||||
@@ -287,115 +205,6 @@ usage_advanced() {
|
||||
|
||||
|
||||
#####################################################################
|
||||
|
@ -282,7 +282,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
# Report information about the Sage environment
|
||||
#####################################################################
|
||||
|
||||
@@ -421,35 +230,8 @@ if [ $# -gt 0 ]; then
|
||||
@@ -424,35 +233,8 @@ if [ $# -gt 0 ]; then
|
||||
fi
|
||||
|
||||
|
||||
|
@ -318,7 +318,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
|
||||
@@ -460,20 +242,6 @@ sage_setup() {
|
||||
@@ -463,20 +245,6 @@ sage_setup() {
|
||||
}
|
||||
|
||||
|
||||
|
@ -339,7 +339,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
# Start an interactive Sage session, this function never returns.
|
||||
interactive_sage() {
|
||||
sage_setup
|
||||
@@ -557,16 +325,6 @@ if [ "$1" = '-lisp' -o "$1" = '--lisp' ]
|
||||
@@ -560,16 +328,6 @@ if [ "$1" = '-lisp' -o "$1" = '--lisp' ]
|
||||
exec ecl "$@"
|
||||
fi
|
||||
|
||||
|
@ -356,7 +356,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
if [ "$1" = '-maxima' -o "$1" = '--maxima' ]; then
|
||||
shift
|
||||
exec maxima "$@"
|
||||
@@ -592,11 +350,6 @@ if [ "$1" = '-pip' -o "$1" = '--pip' ];
|
||||
@@ -595,11 +353,6 @@ if [ "$1" = '-pip' -o "$1" = '--pip' ];
|
||||
exec sage-python23 -m pip "$@"
|
||||
fi
|
||||
|
||||
|
@ -368,8 +368,8 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
if [ "$1" = '-python' -o "$1" = '--python' ]; then
|
||||
shift
|
||||
if [ "$SAGE_PYTHON3" = 'yes' ]; then
|
||||
@@ -631,16 +384,6 @@ if [ "$1" = '-ipython3' -o "$1" = '--ipy
|
||||
exec ipython3 "$@"
|
||||
@@ -639,16 +392,6 @@ if [ "$1" = '-jupyter' -o "$1" = '--jupy
|
||||
exec jupyter "$@"
|
||||
fi
|
||||
|
||||
-if [ "$1" = '-git' -o "$1" = '--git' ]; then
|
||||
|
@ -385,7 +385,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
if [ "$1" = '-sh' -o "$1" = '--sh' ]; then
|
||||
# AUTHORS:
|
||||
# - Carl Witty and William Stein: initial version
|
||||
@@ -760,20 +503,6 @@ EOF
|
||||
@@ -768,20 +511,6 @@ EOF
|
||||
fi
|
||||
|
||||
#####################################################################
|
||||
|
@ -406,7 +406,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
# File conversion
|
||||
#####################################################################
|
||||
|
||||
@@ -804,11 +533,6 @@ fi
|
||||
@@ -812,11 +541,6 @@ fi
|
||||
# Run Sage's versions of the standard Algebra/Geometry etc. software
|
||||
#####################################################################
|
||||
|
||||
|
@ -418,7 +418,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 "$@"
|
||||
@@ -819,13 +543,6 @@ if [ "$1" = "-notebook" -o "$1" = '--not
|
||||
@@ -827,13 +551,6 @@ if [ "$1" = "-notebook" -o "$1" = '--not
|
||||
exec sage-notebook "$@"
|
||||
fi
|
||||
|
||||
|
@ -432,7 +432,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
if [ "$1" = "-inotebook" -o "$1" = '--inotebook' ]; then
|
||||
shift
|
||||
sage-cleaner &>/dev/null &
|
||||
@@ -844,34 +561,15 @@ if [ "$1" = '-grepdoc' -o "$1" = "--grep
|
||||
@@ -852,34 +569,15 @@ if [ "$1" = '-grepdoc' -o "$1" = "--grep
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
@ -469,7 +469,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
shift
|
||||
exec sage-runtests -p "$@"
|
||||
else
|
||||
@@ -880,10 +578,7 @@ if [ "$1" = '-t' -o "$1" = '-bt' -o "$1"
|
||||
@@ -888,10 +586,7 @@ if [ "$1" = '-t' -o "$1" = '-bt' -o "$1"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -481,7 +481,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
shift
|
||||
sage_setup
|
||||
export PYTHONIOENCODING="utf-8" # Fix encoding for doctests
|
||||
@@ -904,122 +599,6 @@ if [ "$1" = '-c' ]; then
|
||||
@@ -912,122 +607,6 @@ if [ "$1" = '-c' ]; then
|
||||
exec sage-eval "$@"
|
||||
fi
|
||||
|
||||
|
@ -604,7 +604,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
if [ "$1" = '-gdb' -o "$1" = "--gdb" ]; then
|
||||
shift
|
||||
sage_setup
|
||||
@@ -1069,12 +648,6 @@ if [ "$1" = '-callgrind' -o "$1" = "--ca
|
||||
@@ -1077,12 +656,6 @@ if [ "$1" = '-callgrind' -o "$1" = "--ca
|
||||
exec sage-callgrind "$@"
|
||||
fi
|
||||
|
||||
|
@ -618,8 +618,8 @@ diff -up src/bin/sage.orig src/bin/sage
|
|||
exec sage-startuptime.py "$@"
|
||||
fi
|
||||
diff -up src/bin/sage-runtests.orig src/bin/sage-runtests
|
||||
--- src/bin/sage-runtests.orig 2018-12-22 16:37:06.000000000 -0700
|
||||
+++ src/bin/sage-runtests 2019-01-16 09:42:10.065567115 -0700
|
||||
--- src/bin/sage-runtests.orig 2019-03-23 16:20:31.000000000 -0600
|
||||
+++ src/bin/sage-runtests 2019-04-08 11:40:35.881987545 -0600
|
||||
@@ -79,10 +79,6 @@ if __name__ == "__main__":
|
||||
help="run doctests using Valgrind's cachegrind tool. The log "
|
||||
"files are named sage-cachegrind.PID and can be found in " +
|
||||
|
@ -632,8 +632,8 @@ diff -up src/bin/sage-runtests.orig src/bin/sage-runtests
|
|||
parser.add_option("-f", "--failed", action="store_true", default=False,
|
||||
help="doctest only those files that failed in the previous run")
|
||||
diff -up src/bin/sage-valgrind.orig src/bin/sage-valgrind
|
||||
--- src/bin/sage-valgrind.orig 2018-12-22 16:37:06.000000000 -0700
|
||||
+++ src/bin/sage-valgrind 2019-01-16 09:42:10.065567115 -0700
|
||||
--- src/bin/sage-valgrind.orig 2019-03-23 16:20:31.000000000 -0600
|
||||
+++ src/bin/sage-valgrind 2019-04-08 11:40:35.881987545 -0600
|
||||
@@ -1,16 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
|
|
|
@ -1,21 +1,15 @@
|
|||
diff -up src/sage/env.py.orig src/sage/env.py
|
||||
--- src/sage/env.py.orig 2019-01-04 11:08:22.825475344 -0700
|
||||
+++ src/sage/env.py 2019-01-16 09:46:26.932957717 -0700
|
||||
@@ -117,7 +117,7 @@ _add_variable_or_fallback('HOSTNAME',
|
||||
_add_variable_or_fallback('LOCAL_IDENTIFIER','$HOSTNAME.%s'%os.getpid())
|
||||
--- src/sage/env.py.orig 2019-04-08 12:41:09.686920533 -0600
|
||||
+++ src/sage/env.py 2019-04-08 12:42:41.240282849 -0600
|
||||
@@ -159,9 +159,9 @@ var('SAGE_DOC', join(SAGE_SHA
|
||||
var('SAGE_SPKG_INST', join(SAGE_LOCAL, 'var', 'lib', 'sage', 'installed'))
|
||||
var('SAGE_LIB', os.path.dirname(os.path.dirname(sage.__file__)))
|
||||
|
||||
-var('SAGE_ROOT') # no fallback for SAGE_ROOT
|
||||
+var('SAGE_ROOT', '@@SAGE_ROOT@@')
|
||||
var('SAGE_SRC', join(SAGE_ROOT, 'src'), SAGE_LIB)
|
||||
-var('SAGE_DOC_SRC', join(SAGE_SRC, 'doc'))
|
||||
+var('SAGE_DOC_SRC', '@@SAGE_DOC@@')
|
||||
var('SAGE_PKGS', join(SAGE_ROOT, 'build', 'pkgs'))
|
||||
var('SAGE_ROOT_GIT', join(SAGE_ROOT, '.git'))
|
||||
|
||||
# bunch of sage directories and files
|
||||
-_add_variable_or_fallback('SAGE_ROOT', None)
|
||||
+_add_variable_or_fallback('SAGE_ROOT', '@@SAGE_ROOT@@')
|
||||
_add_variable_or_fallback('SAGE_LOCAL', None)
|
||||
_add_variable_or_fallback('SAGE_ETC', opj('$SAGE_LOCAL', 'etc'))
|
||||
_add_variable_or_fallback('SAGE_INC', opj('$SAGE_LOCAL', 'include'))
|
||||
@@ -141,7 +141,7 @@ _add_variable_or_fallback('SAGE_PKGS', o
|
||||
_add_variable_or_fallback('SAGE_EXTCODE', opj('$SAGE_SHARE', 'sage', 'ext'))
|
||||
_add_variable_or_fallback('SAGE_LOGS', opj('$SAGE_ROOT', 'logs', 'pkgs'))
|
||||
_add_variable_or_fallback('SAGE_SPKG_INST', opj('$SAGE_LOCAL', 'var', 'lib', 'sage', 'installed'))
|
||||
-_add_variable_or_fallback('SAGE_DOC_SRC', opj('$SAGE_SRC', 'doc'))
|
||||
+_add_variable_or_fallback('SAGE_DOC_SRC', '@@SAGE_DOC@@')
|
||||
_add_variable_or_fallback('SAGE_DOC', opj('$SAGE_SHARE', 'doc', 'sage'))
|
||||
_add_variable_or_fallback('DOT_SAGE', opj(os.environ.get('HOME','$SAGE_ROOT'), '.sage'))
|
||||
_add_variable_or_fallback('SAGE_DOT_GIT', opj('$SAGE_ROOT', '.git'))
|
||||
|
|
|
@ -48,16 +48,16 @@
|
|||
%global prompt_tookit_pkg prompt_toolkit-1.0.15
|
||||
%endif
|
||||
%if %{with bundled_ipywidgets}
|
||||
%global ipywidgets_pkg ipywidgets-7.2.0
|
||||
%global ipywidgets_pkg ipywidgets-7.4.2
|
||||
%endif
|
||||
%if %{with bundled_pexpect}
|
||||
%global pexpect_pkg pexpect-4.6.0
|
||||
%endif
|
||||
%global polytopes_db_pkg polytopes_db-20170220
|
||||
%global rubiks_pkg rubiks-20070912
|
||||
%global sagenb_pkg sagenb-1.1.1
|
||||
%global sagenb_pkg sagenb-1.1.2
|
||||
%global sagenb_export_pkg sagenb_export-3.2
|
||||
%global sagetex_pkg sagetex-3.0
|
||||
%global sagetex_pkg sagetex-3.2
|
||||
%global Sphinx_pkg Sphinx-1.7.6
|
||||
%global singular_pkg singular-4.1.1p3
|
||||
%if %{with bundled_thebe}
|
||||
|
@ -67,13 +67,13 @@
|
|||
%global threejs_pkg threejs-r80
|
||||
%endif
|
||||
%if %{with bundled_widgetsnbextension}
|
||||
%global widgetsnbextension_pkg widgetsnbextension-3.2.0
|
||||
%global widgetsnbextension_pkg widgetsnbextension-3.4.2
|
||||
%endif
|
||||
|
||||
# Spkg equivalents of required rpms; we pretend they are installed as spkgs.
|
||||
# The version numbers shown are those of the latest released spkg, if the Fedora
|
||||
# version is not behind.
|
||||
%global SAGE_REQUIRED_PKGS 4ti2-1.6.7 cbc-2.9.4 CoCoALib-0.99564 cryptominisat-5.0.1 gap_packages-4.10.0 gmp-6.1.2 gmpy2-2.1.0a4.p0 lrslib-062+autotools-2017-03-03 qepcad-B.1.71 saclib-2.2.7 sirocco-2.0 surf-1.0.6-gcc6
|
||||
%global SAGE_REQUIRED_PKGS 4ti2-1.6.7 cbc-2.9.4 CoCoALib-0.99564 cryptominisat-5.6.6 gap_packages-4.10.1 gmp-6.1.2 libsirocco-2.0 lrslib-062+autotools-2017-03-03 qepcad-B.1.71 saclib-2.2.7 surf-1.0.6-gcc6
|
||||
|
||||
%global SAGE_ROOT %{_libdir}/sagemath
|
||||
%global SAGE_LOCAL %{SAGE_ROOT}/local
|
||||
|
@ -86,7 +86,7 @@
|
|||
|
||||
Name: sagemath
|
||||
Summary: A free open-source mathematics software system
|
||||
Version: 8.6
|
||||
Version: 8.7
|
||||
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
|
||||
|
@ -101,8 +101,8 @@ ExclusiveArch: aarch64 %{arm} %{ix86} x86_64 ppc sparcv9
|
|||
# Fix ecm interact() command
|
||||
Patch0: %{name}-ecm.patch
|
||||
|
||||
# Adapt a giac doctest to recent versions of giac
|
||||
Patch1: %{name}-giac.patch
|
||||
# Fix a "random" bit chooser that always chooses 0
|
||||
Patch1: %{name}-random.patch
|
||||
|
||||
# Set of patches to work with system wide packages
|
||||
Patch2: %{name}-scripts.patch
|
||||
|
@ -198,6 +198,12 @@ Patch27: %{name}-latte.patch
|
|||
# Upstream fixes for random SIGFPEs due to ecl messing with the fp state
|
||||
Patch28: %{name}-sigfpe.patch
|
||||
|
||||
# Add some missing #includes and types in the rubiks code
|
||||
Patch29: %{name}-rubiks.patch
|
||||
|
||||
# Fix an indentation error in sagetex
|
||||
Patch30: %{name}-sagetex.patch
|
||||
|
||||
BuildRequires: 4ti2
|
||||
BuildRequires: arb-devel
|
||||
BuildRequires: boost-devel
|
||||
|
@ -273,6 +279,7 @@ BuildRequires: python3-devel
|
|||
BuildRequires: python3-cypari2-devel
|
||||
BuildRequires: python3-cysignals-devel
|
||||
BuildRequires: python3-pillow-devel
|
||||
BuildRequires: python3-pplpy-devel
|
||||
BuildRequires: python3dist(brial)
|
||||
%if %{with sphinx_hack}
|
||||
BuildRequires: python3dist(configparser)
|
||||
|
@ -416,6 +423,7 @@ Requires: python3dist(pexpect)
|
|||
%endif
|
||||
Requires: python3dist(pickleshare)
|
||||
Requires: python3dist(pillow)
|
||||
Requires: python3dist(pplpy)
|
||||
Requires: python3dist(psutil)
|
||||
Requires: python3dist(ptyprocess)
|
||||
Requires: python3dist(pycryptosat)
|
||||
|
@ -874,6 +882,8 @@ popd
|
|||
%patch26
|
||||
%patch27
|
||||
%patch28
|
||||
%patch29
|
||||
%patch30
|
||||
|
||||
sed -e 's|@@SAGE_ROOT@@|%{SAGE_ROOT}|' \
|
||||
-e 's|@@SAGE_DOC@@|%{SAGE_DOC}|' \
|
||||
|
@ -927,9 +937,6 @@ sed -e "s|'%{_bindir}/env', 'which'|'%{_bindir}/which'|" \
|
|||
-i build/pkgs/ipython/src/IPython/utils/_process_posix.py
|
||||
%endif
|
||||
|
||||
# fix path to pip for python 3
|
||||
sed -i 's/"pip",/"pip3",/' src/sage/misc/package.py
|
||||
|
||||
# GAP does not have enough memory to load the entire workspace
|
||||
sed -i 's/64m/128m/' src/sage/libs/gap/util.pyx
|
||||
|
||||
|
@ -1414,7 +1421,8 @@ sed -i 's|%{buildroot}||g' $SAGE_DOC/test.log
|
|||
# More wrong buildroot references
|
||||
perl -pi -e 's|%{buildroot}||g;' \
|
||||
-e "s|$PWD/src/doc|%{SAGE_DOC}|g;" \
|
||||
%{buildroot}%{SAGE_DOC}/output/html/en/reference/todolist.html
|
||||
%{buildroot}%{SAGE_DOC}/html/en/reference/combinat/sage/combinat/posets/poset_examples.html \
|
||||
%{buildroot}%{SAGE_DOC}/html/en/reference/graphs/sage/graphs/graph_generators.html
|
||||
# with docs
|
||||
%endif
|
||||
|
||||
|
@ -1826,6 +1834,14 @@ rm -fr $DOT_SAGE
|
|||
|
||||
########################################################################
|
||||
%changelog
|
||||
* Sat Apr 27 2019 Jerry James <loganjerry@gmail.com> - 8.7-1
|
||||
- Update to sagemath 8.7
|
||||
- Drop upstreamed -giac patch
|
||||
- Add -sagetex patch to fix a python indentation error
|
||||
- Add -rubiks patch to fix compilation of the rubiks library
|
||||
- Add -random patch to fix a non-random random bit generator
|
||||
- Drop pip3 workaround; the binary is now named just pip again
|
||||
|
||||
* Mon Feb 18 2019 Jerry James <loganjerry@gmail.com> - 8.6-1
|
||||
- Update to sagemath 8.6
|
||||
- Install an SVG icon instead of a fixed size (128x128) icon
|
||||
|
|
2
sources
2
sources
|
@ -1 +1 @@
|
|||
SHA512 (sage-8.6.tar.gz) = cbadb485e645ac44e9f55defc011e934e9d89d82058312c69ae6e87bb5a30228d484d3e54d99a088bf5b8d9b2b464e8b59fdd63d9cc575a519cab5734950c1f1
|
||||
SHA512 (sage-8.7.tar.gz) = 6d89ad388d667c67970f4378fe1208115436d70e913d53e81241766996677b827cd5e97348325d1dc069e5de03b755a25c02c7487c6dc2a15103ffbf25c00a1d
|
||||
|
|
Loading…
Add table
Reference in a new issue