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
|
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.orig 2018-12-22 16:37:10.000000000 -0700
|
||||||
+++ src/sage/sandpiles/sandpile.py 2019-01-16 09:43:32.402089611 -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.rings.all import Integer, PolynomialRing, QQ, ZZ
|
||||||
from sage.symbolic.all import I, pi, SR
|
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):
|
def _sandpile_help(cls, usage, verbose=True):
|
||||||
@@ -5150,7 +5147,7 @@ class SandpileDivisor(dict):
|
@@ -5163,7 +5160,7 @@ class SandpileDivisor(dict):
|
||||||
sign_file.close()
|
sign_file.close()
|
||||||
# compute
|
# compute
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
diff -up src/setup.py.orig src/setup.py
|
diff -up src/setup.py.orig src/setup.py
|
||||||
--- src/setup.py.orig 2019-01-04 11:05:11.337077724 -0700
|
--- src/setup.py.orig 2019-01-04 11:05:11.337077724 -0700
|
||||||
+++ src/setup.py 2019-01-16 09:45:32.570933224 -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:
|
with open(self._version_file, 'w') as f:
|
||||||
f.write(self._version_stamp)
|
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
|
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.orig 2018-12-22 16:37:09.000000000 -0700
|
||||||
+++ src/sage/numerical/backends/coin_backend.pyx 2019-01-16 09:45:52.386577640 -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)
|
model.setLogLevel(old_logLevel)
|
||||||
|
|
||||||
# multithreading
|
# multithreading
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
--- src/sage/combinat/crystals/alcove_path.py.orig 2019-01-14 17:16:01.000000000 -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 2019-02-07 15:43:21.188614487 -0700
|
--- 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
|
@@ -383,7 +383,7 @@ class CrystalOfAlcovePaths(UniqueReprese
|
||||||
|
|
||||||
One can compute all vertices of the crystal by finding all the
|
One can compute all vertices of the crystal by finding all the
|
||||||
|
@ -9,39 +10,9 @@
|
||||||
search algorithm.
|
search algorithm.
|
||||||
|
|
||||||
.. WARNING::
|
.. WARNING::
|
||||||
--- src/sage/combinat/crystals/kirillov_reshetikhin.py.orig 2019-01-14 17:16:01.000000000 -0700
|
diff -up src/sage/homology/homology_group.py.orig src/sage/homology/homology_group.py
|
||||||
+++ src/sage/combinat/crystals/kirillov_reshetikhin.py 2019-02-07 15:44:37.612978369 -0700
|
--- src/sage/homology/homology_group.py.orig 2019-03-23 16:20:40.000000000 -0600
|
||||||
@@ -3443,7 +3443,7 @@ class CrystalOfTableaux_E7(CrystalOfTabl
|
+++ src/sage/homology/homology_group.py 2019-04-08 13:33:22.436307576 -0600
|
||||||
<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
|
|
||||||
@@ -109,7 +109,7 @@ class HomologyGroup_class(AdditiveAbelia
|
@@ -109,7 +109,7 @@ class HomologyGroup_class(AdditiveAbelia
|
||||||
sage: from sage.homology.homology_group import HomologyGroup
|
sage: from sage.homology.homology_group import HomologyGroup
|
||||||
sage: H = HomologyGroup(7, ZZ, [4,4,4,4,4,7,7])
|
sage: H = HomologyGroup(7, ZZ, [4,4,4,4,4,7,7])
|
||||||
|
@ -51,14 +22,36 @@
|
||||||
sage: latex(HomologyGroup(6, ZZ))
|
sage: latex(HomologyGroup(6, ZZ))
|
||||||
\ZZ^{6}
|
\ZZ^{6}
|
||||||
"""
|
"""
|
||||||
--- src/sage/rings/number_field/number_field.py.orig 2019-01-14 17:16:04.000000000 -0700
|
diff -up src/sage/rings/function_field/differential.py.orig src/sage/rings/function_field/differential.py
|
||||||
+++ src/sage/rings/number_field/number_field.py 2019-02-07 15:43:21.220614222 -0700
|
--- src/sage/rings/function_field/differential.py.orig 2019-03-23 16:20:42.000000000 -0600
|
||||||
@@ -6622,7 +6622,7 @@ class NumberField_generic(WithEqualityBy
|
+++ src/sage/rings/function_field/differential.py 2019-04-09 10:42:43.202792022 -0600
|
||||||
return U
|
@@ -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"""
|
+ 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
|
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.orig 2019-04-08 12:05:07.092855841 -0600
|
||||||
+++ src/sage/interfaces/latte.py 2019-01-16 09:47:33.355765786 -0700
|
+++ src/sage/interfaces/latte.py 2019-04-08 13:37:31.377803169 -0600
|
||||||
@@ -112,7 +112,7 @@ def count(arg, ehrhart_polynomial=False,
|
@@ -113,7 +113,7 @@ def count(arg, ehrhart_polynomial=False,
|
||||||
# Check that LattE is present
|
# Check that LattE is present
|
||||||
Latte().require()
|
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:
|
if ehrhart_polynomial and multivariate_generating_function:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
if ehrhart_polynomial:
|
if ehrhart_polynomial:
|
||||||
@@ -305,7 +305,7 @@ def integrate(arg, polynomial=None, algo
|
@@ -308,7 +308,7 @@ def integrate(arg, polynomial=None, algo
|
||||||
# Check that LattE is present
|
|
||||||
Latte().require()
|
from sage.rings.rational import Rational
|
||||||
|
|
||||||
- args = ['integrate']
|
- args = ['integrate']
|
||||||
+ args = ['latte-integrate']
|
+ args = ['latte-integrate']
|
||||||
|
|
|
@ -1,27 +1,163 @@
|
||||||
diff -up src/sage/env.py.orig src/sage/env.py
|
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.orig 2019-04-08 12:21:12.403515647 -0600
|
||||||
+++ src/sage/env.py 2019-02-07 16:11:38.887417503 -0700
|
+++ src/sage/env.py 2019-04-08 12:22:37.165993394 -0600
|
||||||
@@ -164,7 +164,7 @@ _add_variable_or_fallback('CONWAY_POLYNO
|
@@ -174,7 +174,7 @@ var('CONWAY_POLYNOMIALS_DATA_DIR', joi
|
||||||
_add_variable_or_fallback('GRAPHS_DATA_DIR', opj('$SAGE_SHARE','graphs'))
|
var('GRAPHS_DATA_DIR', join(SAGE_SHARE, 'graphs'))
|
||||||
_add_variable_or_fallback('ELLCURVE_DATA_DIR',opj('$SAGE_SHARE','ellcurves'))
|
var('ELLCURVE_DATA_DIR', join(SAGE_SHARE, 'ellcurves'))
|
||||||
_add_variable_or_fallback('POLYTOPE_DATA_DIR',opj('$SAGE_SHARE','reflexive_polytopes'))
|
var('POLYTOPE_DATA_DIR', join(SAGE_SHARE, 'reflexive_polytopes'))
|
||||||
-_add_variable_or_fallback('GAP_ROOT_DIR', opj('$SAGE_SHARE','gap'))
|
-var('GAP_ROOT_DIR', join(SAGE_SHARE, 'gap'))
|
||||||
+_add_variable_or_fallback('GAP_ROOT_DIR', opj('/usr','lib','gap'))
|
+var('GAP_ROOT_DIR', join('/usr','lib','gap'))
|
||||||
_add_variable_or_fallback('THEBE_DIR', opj('$SAGE_SHARE','thebe'))
|
var('THEBE_DIR', join(SAGE_SHARE, 'thebe'))
|
||||||
_add_variable_or_fallback('COMBINATORIAL_DESIGN_DATA_DIR', opj('$SAGE_SHARE', 'combinatorial_designs'))
|
var('COMBINATORIAL_DESIGN_DATA_DIR', join(SAGE_SHARE, 'combinatorial_designs'))
|
||||||
_add_variable_or_fallback('CREMONA_MINI_DATA_DIR', opj('$SAGE_SHARE', 'cremona'))
|
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
|
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.orig 2019-03-23 16:20:41.000000000 -0600
|
||||||
+++ src/sage/libs/gap/util.pyx 2019-02-07 16:13:52.658939819 -0700
|
+++ src/sage/libs/gap/util.pyx 2019-04-08 12:37:02.323035697 -0600
|
||||||
@@ -18,6 +18,7 @@ import os
|
@@ -14,19 +14,16 @@ Utility functions for GAP
|
||||||
import signal
|
|
||||||
import warnings
|
|
||||||
|
|
||||||
+from posix.dlfcn cimport dlopen, dlclose, RTLD_NOW, RTLD_GLOBAL
|
from __future__ import print_function, absolute_import
|
||||||
from libc.string cimport strcpy, strlen
|
|
||||||
|
|
||||||
from cpython.exc cimport PyErr_SetObject, PyErr_Occurred, PyErr_Fetch
|
-import os
|
||||||
@@ -181,7 +182,7 @@ def gap_root():
|
-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: from sage.libs.gap.util import gap_root
|
||||||
sage: gap_root() # random output
|
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):
|
if os.path.exists(sage.env.GAP_ROOT_DIR):
|
||||||
return sage.env.GAP_ROOT_DIR
|
return sage.env.GAP_ROOT_DIR
|
||||||
@@ -259,6 +260,18 @@ cdef initialize():
|
@@ -197,7 +194,6 @@ def gap_root():
|
||||||
global _gap_is_initialized, environ
|
|
||||||
if _gap_is_initialized: return
|
|
||||||
|
|
||||||
+ # Hack to ensure that all symbols provided by libgap are loaded into the
|
# To ensure that we call initialize_libgap only once.
|
||||||
+ # global symbol table
|
cdef bint _gap_is_initialized = False
|
||||||
+ # Note: we could use RTLD_NOLOAD and avoid the subsequent dlclose() but
|
-cdef extern char **environ
|
||||||
+ # this isn't portable
|
|
||||||
+ cdef void* handle
|
|
||||||
|
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)
|
+ handle = dlopen("libgap.so", RTLD_NOW | RTLD_GLOBAL)
|
||||||
+ if handle == NULL:
|
if handle is NULL:
|
||||||
+ raise RuntimeError(
|
raise RuntimeError(
|
||||||
+ "Could not dlopen() libgap.so even though it should already "
|
"Could not dlopen() libgap even though it should already "
|
||||||
+ "be loaded!")
|
"be loaded!")
|
||||||
+ dlclose(handle)
|
dlclose(handle)
|
||||||
+
|
|
||||||
# Define argv and environ variables, which we will pass in to
|
- # 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
|
# initialize GAP. Note that we must pass define the memory pool
|
||||||
# size!
|
# 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
|
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.orig 2018-12-22 16:37:09.000000000 -0700
|
||||||
+++ src/sage/rings/complex_mpc.pyx 2019-01-04 11:10:25.217172839 -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
|
cdef RealNumber a,r
|
||||||
a = self.argument()/n
|
a = self.argument()/n
|
||||||
r = self.abs()
|
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
|
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.orig 2018-12-22 16:37:09.000000000 -0700
|
||||||
+++ src/sage/rings/complex_number.pyx 2019-01-04 11:10:25.218172820 -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)
|
rho = abs(self)
|
||||||
arg = self.argument() / n
|
arg = self.argument() / n
|
||||||
mpfr_init2(r, self._prec)
|
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
|
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.orig 2019-01-04 12:22:18.194171036 -0700
|
||||||
+++ src/sage/rings/real_mpfr.pyx 2019-01-16 09:46:36.794780751 -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:
|
if algorithm == 1:
|
||||||
x = self._new()
|
x = self._new()
|
||||||
sig_on()
|
sig_on()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
diff -up src/sage/graphs/graph_generators.py.orig src/sage/graphs/graph_generators.py
|
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.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/graphs/graph_generators.py 2019-01-16 09:45:21.999122930 -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:
|
else:
|
||||||
enc_kwargs = {'encoding': 'latin-1'}
|
enc_kwargs = {'encoding': 'latin-1'}
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,19 @@
|
||||||
diff -up src/module_list.py.orig src/module_list.py
|
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.orig 2019-04-08 15:06:42.789735582 -0600
|
||||||
+++ src/module_list.py 2019-01-16 09:47:21.611976523 -0700
|
+++ src/module_list.py 2019-04-08 15:09:46.553467045 -0600
|
||||||
@@ -11,7 +11,7 @@ SAGE_INC = '/usr/include'
|
@@ -11,20 +11,17 @@ SAGE_INC = '/usr/include'
|
||||||
import pkgconfig
|
import pkgconfig
|
||||||
|
|
||||||
# CBLAS can be one of multiple implementations
|
# CBLAS can be one of multiple implementations
|
||||||
-cblas_pc = pkgconfig.parse('cblas')
|
-cblas_pc = pkgconfig.parse('cblas')
|
||||||
+cblas_pc = pkgconfig.parse('openblas')
|
-cblas_libs = cblas_pc['libraries']
|
||||||
cblas_libs = cblas_pc['libraries']
|
-cblas_library_dirs = cblas_pc['library_dirs']
|
||||||
cblas_library_dirs = cblas_pc['library_dirs']
|
-cblas_include_dirs = cblas_pc['include_dirs']
|
||||||
cblas_include_dirs = cblas_pc['include_dirs']
|
+cblas_libs = ['openblas']
|
||||||
@@ -20,11 +20,9 @@ cblas_include_dirs = cblas_pc['include_d
|
+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'):
|
if os.path.exists('/usr/lib/libblas.dll.a'):
|
||||||
cblas_libs = ['gslcblas']
|
cblas_libs = ['gslcblas']
|
||||||
|
|
||||||
|
@ -26,14 +29,19 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
# GD image library
|
# GD image library
|
||||||
gd_pc = pkgconfig.parse('gdlib')
|
gd_pc = pkgconfig.parse('gdlib')
|
||||||
diff -up src/sage/misc/cython.py.orig src/sage/misc/cython.py
|
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.orig 2019-04-08 15:05:22.838157654 -0600
|
||||||
+++ src/sage/misc/cython.py 2019-01-04 11:18:40.060863533 -0700
|
+++ src/sage/misc/cython.py 2019-04-08 15:11:50.191262902 -0600
|
||||||
@@ -39,7 +39,7 @@ from sage.misc.sage_ostools import resto
|
@@ -38,10 +38,9 @@ from sage.misc.sage_ostools import resto
|
||||||
|
|
||||||
|
|
||||||
# CBLAS can be one of multiple implementations
|
# CBLAS can be one of multiple implementations
|
||||||
-cblas_pc = pkgconfig.parse('cblas')
|
-cblas_pc = pkgconfig.parse('cblas')
|
||||||
+cblas_pc = pkgconfig.parse('openblas')
|
-cblas_libs = list(cblas_pc['libraries'])
|
||||||
cblas_libs = list(cblas_pc['libraries'])
|
-cblas_library_dirs = list(cblas_pc['library_dirs'])
|
||||||
cblas_library_dirs = list(cblas_pc['library_dirs'])
|
-cblas_include_dirs = list(cblas_pc['include_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
|
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/sphinxify.py.orig 2018-11-05 08:45:39.000000000 -0700
|
--- build/pkgs/sagenb/src/sagenb/misc/support.py.orig 2019-02-01 06:34:20.000000000 -0700
|
||||||
+++ build/pkgs/sagenb/src/sagenb/misc/sphinxify.py 2019-01-04 10:34:03.550082474 -0700
|
+++ build/pkgs/sagenb/src/sagenb/misc/support.py 2019-04-08 12:02:29.162692936 -0600
|
||||||
@@ -480,7 +480,7 @@ skip_picklability_check_modules = [
|
@@ -178,7 +178,7 @@ def completions(s, globs, format=False,
|
||||||
#'sage.misc.nested_class_test', # for test only
|
try:
|
||||||
'sage.misc.latex',
|
if not '.' in s and not '(' in s:
|
||||||
'sage.misc.explain_pickle',
|
v = [x for x in globs.keys() if x[:n] == s] + \
|
||||||
- '__builtin__',
|
- [x for x in __builtins__.keys() if x[:n] == s]
|
||||||
+ 'builtins',
|
+ [x for x in builtins.keys() if x[:n] == s]
|
||||||
]
|
else:
|
||||||
|
if not ')' in s:
|
||||||
def check_nested_class_picklability(app, what, name, obj, skip, options):
|
i = s.rfind('.')
|
||||||
@@ -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/notebook/docHTMLProcessor.py.orig build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py
|
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.orig 2019-02-01 05:37:36.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 2019-04-08 11:59:49.259545960 -0600
|
||||||
@@ -25,7 +25,7 @@ This module contains three classes:
|
@@ -25,7 +25,7 @@ This module contains three classes:
|
||||||
|
|
||||||
.. NOTE::
|
.. 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.
|
# 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
|
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.orig 2019-02-01 05:37:36.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 2019-04-08 11:59:49.260545943 -0600
|
||||||
@@ -59,7 +59,7 @@ class Parser:
|
@@ -59,7 +59,7 @@ class Parser:
|
||||||
'parent': r'(?:%s)?' % re.escape(PARENT_PREFIX),
|
'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,
|
'punct': punct_pattern,
|
||||||
}
|
}
|
||||||
diff -up build/pkgs/sagetex/src/extractsagecode.py.orig build/pkgs/sagetex/src/extractsagecode.py
|
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.orig 2019-04-08 11:59:49.261545925 -0600
|
||||||
+++ build/pkgs/sagetex/src/extractsagecode.py 2019-01-04 10:40:25.729978335 -0700
|
+++ build/pkgs/sagetex/src/extractsagecode.py 2019-04-08 12:04:16.915757233 -0600
|
||||||
@@ -45,8 +45,8 @@ See the SageTeX documentation for more d
|
@@ -45,7 +45,7 @@ See the SageTeX documentation for more d
|
||||||
|
|
||||||
try:
|
try:
|
||||||
opts, args = getopt.getopt(sys.argv[1:], 'ho', ['help', 'overwrite'])
|
opts, args = getopt.getopt(sys.argv[1:], 'ho', ['help', 'overwrite'])
|
||||||
-except getopt.GetoptError, err:
|
-except getopt.GetoptError, err:
|
||||||
- print str(err)
|
|
||||||
+except getopt.GetoptError as err:
|
+except getopt.GetoptError as err:
|
||||||
+ print(str(err))
|
print(str(err))
|
||||||
usage()
|
usage()
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
|
|
||||||
diff -up build/pkgs/sagetex/src/makestatic.py.orig build/pkgs/sagetex/src/makestatic.py
|
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.orig 2019-04-08 11:59:49.262545907 -0600
|
||||||
+++ build/pkgs/sagetex/src/makestatic.py 2019-01-04 10:40:50.967509206 -0700
|
+++ build/pkgs/sagetex/src/makestatic.py 2019-04-08 12:04:42.619295492 -0600
|
||||||
@@ -45,8 +45,8 @@ See the SageTeX documentation for more d
|
@@ -45,7 +45,7 @@ See the SageTeX documentation for more d
|
||||||
|
|
||||||
try:
|
try:
|
||||||
opts, args = getopt.getopt(sys.argv[1:], 'ho', ['help', 'overwrite'])
|
opts, args = getopt.getopt(sys.argv[1:], 'ho', ['help', 'overwrite'])
|
||||||
-except getopt.GetoptError, err:
|
-except getopt.GetoptError, err:
|
||||||
- print str(err)
|
|
||||||
+except getopt.GetoptError as err:
|
+except getopt.GetoptError as err:
|
||||||
+ print(str(err))
|
print(str(err))
|
||||||
usage()
|
usage()
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
|
|
||||||
diff -up build/pkgs/sagetex/src/remote-sagetex.py.orig build/pkgs/sagetex/src/remote-sagetex.py
|
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.orig 2019-01-09 09:51:28.000000000 -0700
|
||||||
+++ build/pkgs/sagetex/src/remote-sagetex.py 2019-01-04 10:43:03.728041391 -0700
|
+++ build/pkgs/sagetex/src/remote-sagetex.py 2019-04-08 11:59:49.263545889 -0600
|
||||||
@@ -24,12 +24,11 @@
|
@@ -24,12 +24,11 @@
|
||||||
## You should have received a copy of the GNU General Public License along
|
## You should have received a copy of the GNU General Public License along
|
||||||
## with this program. If not, see <http://www.gnu.org/licenses/>.
|
## 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:
|
if not password:
|
||||||
from getpass import getpass
|
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
|
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.orig 2019-03-23 16:20:31.000000000 -0600
|
||||||
+++ src/doc/common/conf.py 2019-01-04 10:46:46.293895744 -0700
|
+++ src/doc/common/conf.py 2019-04-08 12:05:07.088855913 -0600
|
||||||
@@ -490,7 +490,7 @@ skip_picklability_check_modules = [
|
@@ -547,7 +547,7 @@ skip_picklability_check_modules = [
|
||||||
#'sage.misc.nested_class_test', # for test only
|
#'sage.misc.nested_class_test', # for test only
|
||||||
'sage.misc.latex',
|
'sage.misc.latex',
|
||||||
'sage.misc.explain_pickle',
|
'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):
|
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:
|
if 'SAGE_CHECK_NESTED' in os.environ:
|
||||||
check_nested_class_picklability(app, what, name, obj, skip, options)
|
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)
|
objname = getattr(obj, "__name__", None)
|
||||||
diff -up src/sage/combinat/finite_state_machine.py.orig src/sage/combinat/finite_state_machine.py
|
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.orig 2019-03-23 16:20:38.000000000 -0600
|
||||||
+++ src/sage/combinat/finite_state_machine.py 2019-01-04 10:49:30.519802159 -0700
|
+++ src/sage/combinat/finite_state_machine.py 2019-04-08 12:05:07.090855877 -0600
|
||||||
@@ -934,7 +934,7 @@ import six
|
@@ -932,7 +932,7 @@ import six
|
||||||
from six.moves import range, zip_longest, zip
|
from six.moves import range, zip_longest, zip
|
||||||
from six import itervalues
|
from six import itervalues
|
||||||
|
|
||||||
-import collections
|
-import collections
|
||||||
+import collections.abc
|
+import collections.abc
|
||||||
import itertools
|
import itertools
|
||||||
|
from copy import copy, deepcopy
|
||||||
|
|
||||||
from sage.calculus.var import var
|
@@ -14201,7 +14201,7 @@ def is_FSMProcessIterator(PI):
|
||||||
@@ -14253,7 +14253,7 @@ def is_FSMProcessIterator(PI):
|
|
||||||
|
|
||||||
|
|
||||||
class FSMProcessIterator(SageObject,
|
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
|
This class takes an input, feeds it into a finite state machine
|
||||||
(automaton or transducer, in particular), tests whether this was
|
(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
|
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.orig 2019-03-23 16:20:40.000000000 -0600
|
||||||
+++ src/sage/cpython/dict_del_by_value.pyx 2019-01-04 10:50:27.178734667 -0700
|
+++ 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:
|
@@ -347,8 +347,8 @@ ELIF PY_VERSION_HEX>=0x03060000:
|
||||||
cdef MyPyDictKeysObject * keys = <MyPyDictKeysObject *>(mp.ma_keys)
|
cdef MyPyDictKeysObject * keys = <MyPyDictKeysObject *>(mp.ma_keys)
|
||||||
cdef size_t perturb
|
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:
|
if mp.ma_values != NULL:
|
||||||
print ("del_dictitem_by_exact_value cannot be applied to a shared key dict")
|
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
|
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.orig 2019-03-23 16:20:40.000000000 -0600
|
||||||
+++ src/sage/geometry/triangulation/point_configuration.py 2019-01-15 14:12:54.343637341 -0700
|
+++ src/sage/geometry/triangulation/point_configuration.py 2019-04-08 12:05:07.091855859 -0600
|
||||||
@@ -625,7 +625,7 @@ class PointConfiguration(UniqueRepresent
|
@@ -623,7 +623,7 @@ class PointConfiguration(UniqueRepresent
|
||||||
['{{0,1,2,4},{1,2,3,4}}']
|
['{{0,1,2,4},{1,2,3,4}}']
|
||||||
"""
|
"""
|
||||||
timeout = 600
|
timeout = 600
|
||||||
|
@ -323,8 +201,8 @@ diff -up src/sage/geometry/triangulation/point_configuration.py.orig src/sage/ge
|
||||||
proc.expect(r'\.\.\. done\.')
|
proc.expect(r'\.\.\. done\.')
|
||||||
proc.setecho(0)
|
proc.setecho(0)
|
||||||
diff -up src/sage/interfaces/frobby.py.orig src/sage/interfaces/frobby.py
|
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.orig 2019-03-23 16:20:40.000000000 -0600
|
||||||
+++ src/sage/interfaces/frobby.py 2019-01-15 14:09:39.587064736 -0700
|
+++ src/sage/interfaces/frobby.py 2019-04-08 12:05:07.091855859 -0600
|
||||||
@@ -77,7 +77,7 @@ class Frobby:
|
@@ -77,7 +77,7 @@ class Frobby:
|
||||||
print("Frobby command: ", repr(command))
|
print("Frobby command: ", repr(command))
|
||||||
print("Frobby input:\n", input)
|
print("Frobby input:\n", input)
|
||||||
|
@ -335,8 +213,8 @@ diff -up src/sage/interfaces/frobby.py.orig src/sage/interfaces/frobby.py
|
||||||
|
|
||||||
if verbose:
|
if verbose:
|
||||||
diff -up src/sage/interfaces/gfan.py.orig src/sage/interfaces/gfan.py
|
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.orig 2019-03-23 16:20:41.000000000 -0600
|
||||||
+++ src/sage/interfaces/gfan.py 2019-01-17 16:15:45.185372585 -0700
|
+++ src/sage/interfaces/gfan.py 2019-04-08 12:05:07.092855841 -0600
|
||||||
@@ -66,7 +66,7 @@ class Gfan(object):
|
@@ -66,7 +66,7 @@ class Gfan(object):
|
||||||
if six.PY2:
|
if six.PY2:
|
||||||
enc_kwargs = {}
|
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,
|
gfan_processes = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE,
|
||||||
**enc_kwargs)
|
**enc_kwargs)
|
||||||
diff -up src/sage/interfaces/gp.py.orig src/sage/interfaces/gp.py
|
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.orig 2019-03-23 16:20:41.000000000 -0600
|
||||||
+++ src/sage/interfaces/gp.py 2019-01-15 15:32:12.479565952 -0700
|
+++ src/sage/interfaces/gp.py 2019-04-08 12:05:07.092855841 -0600
|
||||||
@@ -934,17 +934,6 @@ class GpElement(ExpectElement):
|
@@ -934,17 +934,6 @@ class GpElement(ExpectElement):
|
||||||
"""
|
"""
|
||||||
return repr(self.type()) == 't_STR'
|
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.
|
Return Python float.
|
||||||
diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py
|
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.orig 2019-03-23 16:20:41.000000000 -0600
|
||||||
+++ src/sage/interfaces/latte.py 2019-01-16 09:44:45.946769879 -0700
|
+++ src/sage/interfaces/latte.py 2019-04-08 12:05:07.092855841 -0600
|
||||||
@@ -147,6 +147,7 @@ def count(arg, ehrhart_polynomial=False,
|
@@ -148,6 +148,7 @@ def count(arg, ehrhart_polynomial=False,
|
||||||
latte_proc = Popen(args,
|
latte_proc = Popen(args,
|
||||||
stdin=PIPE, stdout=PIPE,
|
stdin=PIPE, stdout=PIPE,
|
||||||
stderr=(None if verbose else 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))
|
cwd=str(SAGE_TMP))
|
||||||
|
|
||||||
ans, err = latte_proc.communicate(arg)
|
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,
|
latte_proc = Popen(args,
|
||||||
stdin=PIPE, stdout=PIPE,
|
stdin=PIPE, stdout=PIPE,
|
||||||
stderr=(None if verbose else 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)
|
ans, err = latte_proc.communicate(arg)
|
||||||
diff -up src/sage/interfaces/sagespawn.pyx.orig src/sage/interfaces/sagespawn.pyx
|
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.orig 2019-03-23 16:20:41.000000000 -0600
|
||||||
+++ src/sage/interfaces/sagespawn.pyx 2019-01-16 12:08:26.371966835 -0700
|
+++ src/sage/interfaces/sagespawn.pyx 2019-04-08 12:05:07.092855841 -0600
|
||||||
@@ -1,6 +1,6 @@
|
@@ -1,6 +1,6 @@
|
||||||
"""
|
"""
|
||||||
Sage wrapper around pexpect's ``spawn`` class and
|
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
|
pass
|
||||||
self.fileobj.close()
|
self.fileobj.close()
|
||||||
diff -up src/sage/misc/parser.pyx.orig src/sage/misc/parser.pyx
|
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.orig 2019-03-23 16:20:41.000000000 -0600
|
||||||
+++ src/sage/misc/parser.pyx 2019-01-04 10:57:51.277367597 -0700
|
+++ src/sage/misc/parser.pyx 2019-04-08 12:05:07.093855823 -0600
|
||||||
@@ -96,7 +96,7 @@ def token_to_str(int token):
|
@@ -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)
|
return self.p_list(tokens)
|
||||||
else:
|
else:
|
||||||
diff -up src/sage/plot/plot3d/plot3d.py.orig src/sage/plot/plot3d/plot3d.py
|
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.orig 2019-03-23 16:20:42.000000000 -0600
|
||||||
+++ src/sage/plot/plot3d/plot3d.py 2019-01-04 10:58:51.476233419 -0700
|
+++ src/sage/plot/plot3d/plot3d.py 2019-04-08 12:05:07.093855823 -0600
|
||||||
@@ -188,7 +188,8 @@ class _Coordinates(object):
|
@@ -188,7 +188,8 @@ class _Coordinates(object):
|
||||||
sage: arb((x+z,y*z,z), z, (x,y))
|
sage: arb((x+z,y*z,z), z, (x,y))
|
||||||
Arbitrary Coordinates coordinate transform (z in terms of 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]))))
|
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
|
self.dep_var = dep_var
|
||||||
diff -up src/sage/plot/point.py.orig src/sage/plot/point.py
|
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.orig 2019-03-23 16:20:42.000000000 -0600
|
||||||
+++ src/sage/plot/point.py 2019-01-04 10:59:15.506780663 -0700
|
+++ src/sage/plot/point.py 2019-04-08 12:05:07.094855805 -0600
|
||||||
@@ -29,7 +29,7 @@ TESTS::
|
@@ -29,7 +29,7 @@ TESTS::
|
||||||
from sage.misc.decorators import options, rename_keyword
|
from sage.misc.decorators import options, rename_keyword
|
||||||
from sage.plot.colors import to_mpl_color
|
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:
|
try:
|
||||||
diff -up src/sage/repl/display/fancy_repr.py.orig src/sage/repl/display/fancy_repr.py
|
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.orig 2019-03-23 16:20:42.000000000 -0600
|
||||||
+++ src/sage/repl/display/fancy_repr.py 2019-01-04 11:00:18.210599287 -0700
|
+++ src/sage/repl/display/fancy_repr.py 2019-04-08 12:05:07.094855805 -0600
|
||||||
@@ -15,7 +15,7 @@ Representations of objects.
|
@@ -15,7 +15,7 @@ Representations of objects.
|
||||||
import types
|
import types
|
||||||
|
|
||||||
|
@ -793,8 +671,8 @@ diff -up src/sage/repl/display/fancy_repr.py.orig src/sage/repl/display/fancy_re
|
||||||
else:
|
else:
|
||||||
# A user-provided repr. Find newlines and replace them with p.break_()
|
# 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
|
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.orig 2019-03-23 16:20:42.000000000 -0600
|
||||||
+++ src/sage/repl/ipython_kernel/interact.py 2019-01-04 11:01:50.722856305 -0700
|
+++ src/sage/repl/ipython_kernel/interact.py 2019-04-08 12:05:07.094855805 -0600
|
||||||
@@ -35,7 +35,8 @@ EXAMPLES::
|
@@ -35,7 +35,8 @@ EXAMPLES::
|
||||||
|
|
||||||
from ipywidgets.widgets import SelectionSlider, ValueWidget, ToggleButtons
|
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 .widgets import EvalText, SageColorPicker
|
||||||
from sage.structure.element import parent
|
from sage.structure.element import parent
|
||||||
from sage.symbolic.ring import SR
|
from sage.symbolic.ring import SR
|
||||||
diff -up src/sage/rings/integer.pyx.orig
|
diff -up src/sage/rings/integer.pyx.orig src/sage/rings/integer.pyx
|
||||||
--- src/sage/rings/integer.pyx.orig 2018-12-22 16:37:09.000000000 -0700
|
--- src/sage/rings/integer.pyx.orig 2019-03-23 16:20:42.000000000 -0600
|
||||||
+++ src/sage/rings/integer.pyx 2019-01-04 11:02:56.122624135 -0700
|
+++ src/sage/rings/integer.pyx 2019-04-08 12:05:07.095855787 -0600
|
||||||
@@ -6976,7 +6976,7 @@ cdef int mpz_set_str_python(mpz_ptr z, c
|
@@ -6989,7 +6989,7 @@ cdef int mpz_set_str_python(mpz_ptr z, c
|
||||||
while x[0] == c' ': x += 1 # Strip spaces
|
while x[0] == c' ': x += 1 # Strip spaces
|
||||||
|
|
||||||
# Disallow a sign here
|
# Disallow a sign here
|
||||||
|
@ -818,9 +696,9 @@ diff -up src/sage/rings/integer.pyx.orig
|
||||||
|
|
||||||
assert base >= 2
|
assert base >= 2
|
||||||
diff -up src/sage/rings/polynomial/pbori.pyx.orig src/sage/rings/polynomial/pbori.pyx
|
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.orig 2019-03-23 16:20:42.000000000 -0600
|
||||||
+++ src/sage/rings/polynomial/pbori.pyx 2019-01-04 12:21:06.204500703 -0700
|
+++ src/sage/rings/polynomial/pbori.pyx 2019-04-08 12:05:07.096855769 -0600
|
||||||
@@ -4782,8 +4782,7 @@ cdef class PolynomialConstruct:
|
@@ -4774,8 +4774,7 @@ cdef class PolynomialConstruct:
|
||||||
# So, it is just a conversion. [Simon King]
|
# So, it is just a conversion. [Simon King]
|
||||||
return (<BooleanPolynomialRing>ring)._element_constructor_(x)
|
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:
|
cdef class MonomialConstruct:
|
||||||
diff -up src/sage/rings/real_mpfi.pyx.orig src/sage/rings/real_mpfi.pyx
|
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.orig 2019-03-23 16:20:42.000000000 -0600
|
||||||
+++ src/sage/rings/real_mpfi.pyx 2019-01-04 11:03:53.650540277 -0700
|
+++ src/sage/rings/real_mpfi.pyx 2019-04-08 12:05:07.097855751 -0600
|
||||||
@@ -1951,12 +1951,12 @@ cdef class RealIntervalFieldElement(Ring
|
@@ -1943,12 +1943,12 @@ cdef class RealIntervalFieldElement(Ring
|
||||||
|
|
||||||
cdef long digits
|
cdef long digits
|
||||||
digits = strlen(lower_s)
|
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
|
digits -= 1
|
||||||
upper_expo -= digits
|
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")
|
raise MemoryError("Unable to allocate memory for the mantissa of an interval")
|
||||||
mpz_get_str(tmp_cstr, base, lower_mpz)
|
mpz_get_str(tmp_cstr, base, lower_mpz)
|
||||||
digits = strlen(tmp_cstr)
|
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)
|
mant_string = bytes_to_str(tmp_cstr+1)
|
||||||
sign_string = bytes_to_str(b'-')
|
sign_string = bytes_to_str(b'-')
|
||||||
diff -up src/sage/rings/real_mpfr.pyx.orig src/sage/rings/real_mpfr.pyx
|
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.orig 2019-03-23 16:20:42.000000000 -0600
|
||||||
+++ src/sage/rings/real_mpfr.pyx 2019-01-04 12:22:18.194171036 -0700
|
+++ src/sage/rings/real_mpfr.pyx 2019-04-08 12:05:07.098855733 -0600
|
||||||
@@ -2032,7 +2032,7 @@ cdef class RealNumber(sage.structure.ele
|
@@ -2039,7 +2039,7 @@ cdef class RealNumber(sage.structure.ele
|
||||||
if s is NULL:
|
if s is NULL:
|
||||||
raise RuntimeError("unable to convert an mpfr number to a string")
|
raise RuntimeError("unable to convert an mpfr number to a string")
|
||||||
# t contains just digits (no sign, decimal point or exponent)
|
# 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)
|
t = char_to_str(s + 1)
|
||||||
else:
|
else:
|
||||||
diff -up src/sage/structure/sage_object.pyx.orig src/sage/structure/sage_object.pyx
|
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.orig 2019-03-23 16:20:43.000000000 -0600
|
||||||
+++ src/sage/structure/sage_object.pyx 2019-01-04 13:48:09.055790438 -0700
|
+++ src/sage/structure/sage_object.pyx 2019-04-08 12:05:07.098855733 -0600
|
||||||
@@ -665,7 +665,7 @@ cdef class SageObject:
|
@@ -665,7 +665,7 @@ cdef class SageObject:
|
||||||
try:
|
try:
|
||||||
s = self._interface_init_(I)
|
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:
|
if c:
|
||||||
try:
|
try:
|
||||||
diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx
|
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.orig 2019-03-23 16:20:43.000000000 -0600
|
||||||
+++ src/sage/symbolic/expression.pyx 2019-01-04 11:04:35.829745704 -0700
|
+++ src/sage/symbolic/expression.pyx 2019-04-08 12:05:07.100855697 -0600
|
||||||
@@ -12955,7 +12955,7 @@ cdef class hold_class:
|
@@ -12915,7 +12915,7 @@ cdef class hold_class:
|
||||||
sage: SR(2)^5
|
sage: SR(2)^5
|
||||||
32
|
32
|
||||||
"""
|
"""
|
||||||
|
@ -893,7 +771,7 @@ diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx
|
||||||
|
|
||||||
def __exit__(self, *args):
|
def __exit__(self, *args):
|
||||||
"""
|
"""
|
||||||
@@ -12968,7 +12968,7 @@ cdef class hold_class:
|
@@ -12928,7 +12928,7 @@ cdef class hold_class:
|
||||||
sage: SR(2)^5
|
sage: SR(2)^5
|
||||||
32
|
32
|
||||||
"""
|
"""
|
||||||
|
@ -903,9 +781,9 @@ diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx
|
||||||
def start(self):
|
def start(self):
|
||||||
"""
|
"""
|
||||||
diff -up src/setup.py.orig src/setup.py
|
diff -up src/setup.py.orig src/setup.py
|
||||||
--- src/setup.py.orig 2019-01-04 10:27:47.032123257 -0700
|
--- src/setup.py.orig 2019-04-08 11:45:58.283274716 -0600
|
||||||
+++ src/setup.py 2019-01-04 11:05:11.337077724 -0700
|
+++ src/setup.py 2019-04-08 12:05:07.101855679 -0600
|
||||||
@@ -284,7 +284,7 @@ class sage_build_cython(Command):
|
@@ -232,7 +232,7 @@ class sage_build_cython(Command):
|
||||||
cdivision=True,
|
cdivision=True,
|
||||||
embedsignature=True,
|
embedsignature=True,
|
||||||
fast_getattr=True,
|
fast_getattr=True,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
diff -up src/sage/interfaces/qepcad.py.orig src/sage/interfaces/qepcad.py
|
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.orig 2019-03-23 16:20:41.000000000 -0600
|
||||||
+++ src/sage/interfaces/qepcad.py 2019-01-16 09:46:44.714638633 -0700
|
+++ src/sage/interfaces/qepcad.py 2019-04-08 13:32:00.509789984 -0600
|
||||||
@@ -530,7 +530,7 @@ TESTS:
|
@@ -530,7 +530,7 @@ TESTS:
|
||||||
|
|
||||||
Check the qepcad configuration file::
|
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]
|
....: f.readlines()[-1]
|
||||||
'SINGULAR .../bin\n'
|
'SINGULAR .../bin\n'
|
||||||
|
|
||||||
@@ -608,7 +608,6 @@ from __future__ import print_function
|
@@ -607,7 +607,6 @@ AUTHORS:
|
||||||
from __future__ import absolute_import
|
from __future__ import print_function, absolute_import
|
||||||
from six import string_types
|
from six import string_types
|
||||||
|
|
||||||
-from sage.env import SAGE_LOCAL
|
-from sage.env import SAGE_LOCAL
|
||||||
import pexpect
|
import pexpect
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
@@ -621,6 +620,8 @@ from sage.docs.instancedoc import instan
|
@@ -621,6 +620,8 @@ from .expect import Expect, ExpectFuncti
|
||||||
from .expect import Expect, ExpectFunction, AsciiArtString
|
from sage.interfaces.interface import AsciiArtString
|
||||||
|
|
||||||
|
|
||||||
+QEPCAD_LOCAL = "/usr/share/qepcad"
|
+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
|
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.orig 2019-04-08 11:45:44.437520141 -0600
|
||||||
+++ src/module_list.py 2019-01-16 09:42:41.397004883 -0700
|
+++ src/module_list.py 2019-04-08 11:45:58.268274982 -0600
|
||||||
@@ -2,7 +2,7 @@ import os
|
@@ -2,7 +2,7 @@ import os
|
||||||
from distutils.extension import Extension
|
from distutils.extension import Extension
|
||||||
from sage.env import SAGE_LOCAL
|
from sage.env import SAGE_LOCAL
|
||||||
|
@ -11,21 +11,21 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
#########################################################
|
#########################################################
|
||||||
### pkg-config setup
|
### pkg-config setup
|
||||||
diff -up src/sage/misc/cython.py.orig src/sage/misc/cython.py
|
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.orig 2019-04-08 11:45:58.269274964 -0600
|
||||||
+++ src/sage/misc/cython.py 2019-01-04 10:27:47.031123276 -0700
|
+++ src/sage/misc/cython.py 2019-04-08 11:48:23.582699337 -0600
|
||||||
@@ -600,7 +600,7 @@ def cython(filename, verbose=0, compile_
|
@@ -49,7 +49,7 @@ standard_libs = [
|
||||||
ext = Extension(name,
|
] + cblas_libs + [
|
||||||
sources=[pyxfile] + extra_sources,
|
'ntl']
|
||||||
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)
|
|
||||||
|
|
||||||
|
-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
|
diff -up src/setup.py.orig src/setup.py
|
||||||
--- src/setup.py.orig 2018-12-22 16:37:10.000000000 -0700
|
--- src/setup.py.orig 2019-03-23 16:20:43.000000000 -0600
|
||||||
+++ src/setup.py 2019-01-04 10:27:47.032123257 -0700
|
+++ src/setup.py 2019-04-08 11:45:58.283274716 -0600
|
||||||
@@ -371,9 +371,8 @@ class sage_build_cython(Command):
|
@@ -318,9 +318,8 @@ class sage_build_cython(Command):
|
||||||
# Debugging
|
# Debugging
|
||||||
gdb_debug=self.debug,
|
gdb_debug=self.debug,
|
||||||
output_dir=os.path.join(self.build_lib, "sage"),
|
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
|
# 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)
|
install.run(self)
|
||||||
self.install_kernel_spec()
|
self.install_kernel_spec()
|
||||||
log.info('Cleaning up stale installed files....')
|
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):
|
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.
|
# the install_data directory for installing our Jupyter files.
|
||||||
SageKernelSpec.update(prefix=self.install_data)
|
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
|
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.orig 2019-03-23 16:20:40.000000000 -0600
|
||||||
+++ src/sage/doctest/control.py 2019-01-16 09:42:51.238828275 -0700
|
+++ src/sage/doctest/control.py 2019-04-08 11:49:50.428160023 -0600
|
||||||
@@ -106,7 +106,6 @@ class DocTestDefaults(SageObject):
|
@@ -106,7 +106,6 @@ class DocTestDefaults(SageObject):
|
||||||
self.valgrind = False
|
self.valgrind = False
|
||||||
self.massif = 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
|
# Non-interactive debuggers: 48 hours
|
||||||
options.timeout = int(os.getenv('SAGE_TIMEOUT_VALGRIND', 48 * 60 * 60))
|
options.timeout = int(os.getenv('SAGE_TIMEOUT_VALGRIND', 48 * 60 * 60))
|
||||||
elif options.long:
|
elif options.long:
|
||||||
@@ -1099,13 +1098,8 @@ class DocTestController(SageObject):
|
@@ -1105,13 +1104,8 @@ class DocTestController(SageObject):
|
||||||
elif opt.cachegrind:
|
elif opt.cachegrind:
|
||||||
toolname = "cachegrind"
|
toolname = "cachegrind"
|
||||||
flags = os.getenv("SAGE_CACHEGRIND_FLAGS", "")
|
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:
|
if "%s" in flags:
|
||||||
flags %= toolname + ".%p" # replace %s with toolname
|
flags %= toolname + ".%p" # replace %s with toolname
|
||||||
cmd += flags + sage_cmd
|
cmd += flags + sage_cmd
|
||||||
@@ -1190,10 +1184,10 @@ class DocTestController(SageObject):
|
@@ -1196,10 +1190,10 @@ class DocTestController(SageObject):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
opt = self.options
|
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()
|
return self.run_val_gdb()
|
||||||
else:
|
else:
|
||||||
diff -up src/sage/interfaces/singular.py.orig src/sage/interfaces/singular.py
|
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.orig 2019-03-23 16:20:41.000000000 -0600
|
||||||
+++ src/sage/interfaces/singular.py 2019-01-16 09:42:51.240828239 -0700
|
+++ src/sage/interfaces/singular.py 2019-04-08 11:54:23.579318505 -0600
|
||||||
@@ -2264,7 +2264,7 @@ def generate_docstring_dictionary():
|
@@ -2261,7 +2261,7 @@ def generate_docstring_dictionary():
|
||||||
|
nodes.clear()
|
||||||
node_names.clear()
|
node_names.clear()
|
||||||
|
|
||||||
import os
|
|
||||||
- singular_docdir = os.environ['SINGULARPATH']+"/../info/"
|
- singular_docdir = os.environ['SINGULARPATH']+"/../info/"
|
||||||
+ singular_docdir = "/usr/share/info/"
|
+ singular_docdir = "/usr/share/info/"
|
||||||
|
|
||||||
new_node = re.compile(r"File: singular\.hlp, Node: ([^,]*),.*")
|
new_node = re.compile(r"File: singular\.hlp, Node: ([^,]*),.*")
|
||||||
new_lookup = re.compile(r"\* ([^:]*):*([^.]*)\..*")
|
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
|
L, in_node, curr_node = [], False, None
|
||||||
|
|
||||||
# singular.hlp contains a few iso-5559-1 encoded special characters
|
# 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:
|
- encoding='latin-1') as f:
|
||||||
+ import gzip
|
+ import gzip
|
||||||
+ with gzip.open(os.path.join(singular_doctir, 'singular.hlp.gz'),
|
+ 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:
|
for line in f:
|
||||||
m = re.match(new_node,line)
|
m = re.match(new_node,line)
|
||||||
if m:
|
if m:
|
||||||
diff -up src/sage_setup/docbuild/ext/multidocs.py.orig src/sage_setup/docbuild/ext/multidocs.py
|
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.orig 2019-03-23 16:20:43.000000000 -0600
|
||||||
+++ src/sage_setup/docbuild/ext/multidocs.py 2019-01-16 09:42:51.241828221 -0700
|
+++ src/sage_setup/docbuild/ext/multidocs.py 2019-04-08 11:49:50.430159987 -0600
|
||||||
@@ -84,8 +84,11 @@ def merge_environment(app, env):
|
@@ -84,8 +84,11 @@ def merge_environment(app, env):
|
||||||
for ind in newalldoc:
|
for ind in newalldoc:
|
||||||
# treat subdocument source as orphaned file and don't complain
|
# treat subdocument source as orphaned file and don't complain
|
||||||
|
@ -87,22 +87,22 @@ diff -up src/sage_setup/docbuild/ext/multidocs.py.orig src/sage_setup/docbuild/e
|
||||||
newcite = {}
|
newcite = {}
|
||||||
citations = docenv.domaindata["std"]["citations"]
|
citations = docenv.domaindata["std"]["citations"]
|
||||||
diff -up src/sage_setup/docbuild/__init__.py.orig src/sage_setup/docbuild/__init__.py
|
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.orig 2019-04-08 11:49:50.431159970 -0600
|
||||||
+++ src/sage_setup/docbuild/__init__.py 2019-01-16 09:42:51.242828203 -0700
|
+++ src/sage_setup/docbuild/__init__.py 2019-04-08 11:56:02.609563240 -0600
|
||||||
@@ -279,13 +279,14 @@ def build_many(target, args):
|
@@ -287,13 +287,14 @@ if not (CYGWIN_VERSION and CYGWIN_VERSIO
|
||||||
# map_async handles KeyboardInterrupt correctly. Plain map and
|
# map_async handles KeyboardInterrupt correctly. Plain map and
|
||||||
# apply_async does not, so don't use it.
|
# apply_async does not, so don't use it.
|
||||||
x = pool.map_async(target, args, 1)
|
x = pool.map_async(target, args, 1)
|
||||||
+ ret = []
|
+ ret = []
|
||||||
try:
|
try:
|
||||||
- ret = x.get(99999)
|
- ret = x.get(99999)
|
||||||
+ ret = x.get(3600)
|
+ ret = x.get(3600)
|
||||||
pool.close()
|
pool.close()
|
||||||
pool.join()
|
pool.join()
|
||||||
except Exception:
|
except Exception:
|
||||||
- pool.terminate()
|
- pool.terminate()
|
||||||
if ABORT_ON_ERROR:
|
if ABORT_ON_ERROR:
|
||||||
+ pool.terminate()
|
+ pool.terminate()
|
||||||
raise
|
raise
|
||||||
return ret
|
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
|
diff -up src/bin/sage.orig src/bin/sage
|
||||||
--- src/bin/sage.orig 2018-12-22 16:37:06.000000000 -0700
|
--- src/bin/sage.orig 2019-03-23 16:20:31.000000000 -0600
|
||||||
+++ src/bin/sage 2019-01-16 09:42:10.064567132 -0700
|
+++ src/bin/sage 2019-04-08 11:42:38.305818631 -0600
|
||||||
@@ -26,13 +26,10 @@ usage() {
|
@@ -26,13 +26,10 @@ usage() {
|
||||||
echo " file.[sage|py|spyx] -- run given .sage, .py or .spyx file"
|
echo " file.[sage|py|spyx] -- run given .sage, .py or .spyx file"
|
||||||
echo " -advanced -- list all command line options"
|
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 " -inotebook [...] -- start the *insecure* Sage notebook (deprecated)"
|
||||||
echo " -n, -notebook [...] -- start the default Sage notebook (options are the"
|
echo " -n, -notebook [...] -- start the default Sage notebook (options are the"
|
||||||
echo " same as for the notebook command in Sage). See the"
|
echo " same as for the notebook command in Sage). See the"
|
||||||
@@ -118,18 +105,11 @@ usage_advanced() {
|
@@ -119,18 +106,11 @@ usage_advanced() {
|
||||||
echo " -ipython [...] -- run Sage's IPython using the default environment (not"
|
|
||||||
echo " Sage), passing additional options to IPython"
|
echo " Sage), passing additional options to IPython"
|
||||||
echo " -ipython3 [...] -- same as above, but using Python 3"
|
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"
|
- echo " -kash [...] -- run Sage's Kash with given arguments"
|
||||||
- command -v kash &>/dev/null || \
|
- command -v kash &>/dev/null || \
|
||||||
- echo " (not installed currently, run sage -i kash)"
|
- 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 || \
|
- command -v polymake &>/dev/null || \
|
||||||
- echo " (not installed currently, run sage -i polymake)"
|
- echo " (not installed currently, run sage -i polymake)"
|
||||||
echo " -python [...] -- run the Python interpreter"
|
echo " -python [...] -- run the Python interpreter"
|
||||||
echo " -R [...] -- run Sage's R with given arguments"
|
echo " -python2 [...] -- run the Python 2 interpreter"
|
||||||
echo " -scons [...] -- run Sage's scons"
|
echo " -python3 [...] -- run the Python 3 interpreter"
|
||||||
@@ -141,55 +121,7 @@ usage_advanced() {
|
@@ -144,55 +124,7 @@ usage_advanced() {
|
||||||
echo
|
echo
|
||||||
#### 1.......................26..................................................78
|
#### 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 " -startuptime [module] -- display how long each component of Sage takes to"
|
||||||
echo " start up; optionally specify a module to get more"
|
echo " start up; optionally specify a module to get more"
|
||||||
echo " details about that particular module"
|
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 " -coverage <files> -- give info about doctest coverage of files"
|
||||||
echo " -coverageall -- give summary info about doctest coverage of all"
|
echo " -coverageall -- give summary info about doctest coverage of all"
|
||||||
echo " files in the Sage library"
|
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_src <string> -- search through all the Sage library code for string"
|
||||||
echo " -search_doc <string> -- search through the Sage documentation for string"
|
echo " -search_doc <string> -- search through the Sage documentation for string"
|
||||||
echo " -grep <string> -- same as -search_src"
|
echo " -grep <string> -- same as -search_src"
|
||||||
@@ -249,16 +180,6 @@ usage_advanced() {
|
@@ -252,16 +183,6 @@ usage_advanced() {
|
||||||
echo
|
echo
|
||||||
#### 1.......................26..................................................78
|
#### 1.......................26..................................................78
|
||||||
#### |.....................--.|...................................................|
|
#### |.....................--.|...................................................|
|
||||||
|
@ -156,7 +156,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
||||||
echo "Valgrind memory debugging:"
|
echo "Valgrind memory debugging:"
|
||||||
echo " -cachegrind -- run Sage using Valgrind's cachegrind tool. The log"
|
echo " -cachegrind -- run Sage using Valgrind's cachegrind tool. The log"
|
||||||
echo " files are named sage-cachegrind.PID can be found in"
|
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 " -memcheck -- run Sage using Valgrind's memcheck tool. The log"
|
||||||
echo " files are named sage-memcheck.PID can be found in"
|
echo " files are named sage-memcheck.PID can be found in"
|
||||||
echo " $DOT_SAGE"
|
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 " -valgrind -- this is an alias for -memcheck"
|
||||||
echo
|
echo
|
||||||
echo "You can also use -- before a long option, e.g., 'sage --optional'."
|
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
|
# Report information about the Sage environment
|
||||||
#####################################################################
|
#####################################################################
|
||||||
|
|
||||||
@@ -421,35 +230,8 @@ if [ $# -gt 0 ]; then
|
@@ -424,35 +233,8 @@ if [ $# -gt 0 ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
@ -318,7 +318,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
||||||
if [ ! -d "$IPYTHONDIR" ]; then
|
if [ ! -d "$IPYTHONDIR" ]; then
|
||||||
# make sure that $DOT_SAGE exists so that ipython will happily
|
# make sure that $DOT_SAGE exists so that ipython will happily
|
||||||
# create its config directories there. If DOT_SAGE doesn't
|
# 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.
|
# Start an interactive Sage session, this function never returns.
|
||||||
interactive_sage() {
|
interactive_sage() {
|
||||||
sage_setup
|
sage_setup
|
||||||
@@ -557,16 +325,6 @@ if [ "$1" = '-lisp' -o "$1" = '--lisp' ]
|
@@ -560,16 +328,6 @@ if [ "$1" = '-lisp' -o "$1" = '--lisp' ]
|
||||||
exec ecl "$@"
|
exec ecl "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -356,7 +356,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
||||||
if [ "$1" = '-maxima' -o "$1" = '--maxima' ]; then
|
if [ "$1" = '-maxima' -o "$1" = '--maxima' ]; then
|
||||||
shift
|
shift
|
||||||
exec maxima "$@"
|
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 "$@"
|
exec sage-python23 -m pip "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -368,8 +368,8 @@ diff -up src/bin/sage.orig src/bin/sage
|
||||||
if [ "$1" = '-python' -o "$1" = '--python' ]; then
|
if [ "$1" = '-python' -o "$1" = '--python' ]; then
|
||||||
shift
|
shift
|
||||||
if [ "$SAGE_PYTHON3" = 'yes' ]; then
|
if [ "$SAGE_PYTHON3" = 'yes' ]; then
|
||||||
@@ -631,16 +384,6 @@ if [ "$1" = '-ipython3' -o "$1" = '--ipy
|
@@ -639,16 +392,6 @@ if [ "$1" = '-jupyter' -o "$1" = '--jupy
|
||||||
exec ipython3 "$@"
|
exec jupyter "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
-if [ "$1" = '-git' -o "$1" = '--git' ]; then
|
-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
|
if [ "$1" = '-sh' -o "$1" = '--sh' ]; then
|
||||||
# AUTHORS:
|
# AUTHORS:
|
||||||
# - Carl Witty and William Stein: initial version
|
# - Carl Witty and William Stein: initial version
|
||||||
@@ -760,20 +503,6 @@ EOF
|
@@ -768,20 +511,6 @@ EOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#####################################################################
|
#####################################################################
|
||||||
|
@ -406,7 +406,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
||||||
# File conversion
|
# File conversion
|
||||||
#####################################################################
|
#####################################################################
|
||||||
|
|
||||||
@@ -804,11 +533,6 @@ fi
|
@@ -812,11 +541,6 @@ fi
|
||||||
# Run Sage's versions of the standard Algebra/Geometry etc. software
|
# 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
|
if [[ "$1" =~ ^--notebook=.* || "$1" =~ ^-n=.* || "$1" =~ ^-notebook=.* ]] ; then
|
||||||
sage-cleaner &>/dev/null &
|
sage-cleaner &>/dev/null &
|
||||||
exec sage-notebook "$@"
|
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 "$@"
|
exec sage-notebook "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -432,7 +432,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
||||||
if [ "$1" = "-inotebook" -o "$1" = '--inotebook' ]; then
|
if [ "$1" = "-inotebook" -o "$1" = '--inotebook' ]; then
|
||||||
shift
|
shift
|
||||||
sage-cleaner &>/dev/null &
|
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
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -469,7 +469,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
||||||
shift
|
shift
|
||||||
exec sage-runtests -p "$@"
|
exec sage-runtests -p "$@"
|
||||||
else
|
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
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -481,7 +481,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
||||||
shift
|
shift
|
||||||
sage_setup
|
sage_setup
|
||||||
export PYTHONIOENCODING="utf-8" # Fix encoding for doctests
|
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 "$@"
|
exec sage-eval "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -604,7 +604,7 @@ diff -up src/bin/sage.orig src/bin/sage
|
||||||
if [ "$1" = '-gdb' -o "$1" = "--gdb" ]; then
|
if [ "$1" = '-gdb' -o "$1" = "--gdb" ]; then
|
||||||
shift
|
shift
|
||||||
sage_setup
|
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 "$@"
|
exec sage-callgrind "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -618,8 +618,8 @@ diff -up src/bin/sage.orig src/bin/sage
|
||||||
exec sage-startuptime.py "$@"
|
exec sage-startuptime.py "$@"
|
||||||
fi
|
fi
|
||||||
diff -up src/bin/sage-runtests.orig src/bin/sage-runtests
|
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.orig 2019-03-23 16:20:31.000000000 -0600
|
||||||
+++ src/bin/sage-runtests 2019-01-16 09:42:10.065567115 -0700
|
+++ src/bin/sage-runtests 2019-04-08 11:40:35.881987545 -0600
|
||||||
@@ -79,10 +79,6 @@ if __name__ == "__main__":
|
@@ -79,10 +79,6 @@ if __name__ == "__main__":
|
||||||
help="run doctests using Valgrind's cachegrind tool. The log "
|
help="run doctests using Valgrind's cachegrind tool. The log "
|
||||||
"files are named sage-cachegrind.PID and can be found in " +
|
"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,
|
parser.add_option("-f", "--failed", action="store_true", default=False,
|
||||||
help="doctest only those files that failed in the previous run")
|
help="doctest only those files that failed in the previous run")
|
||||||
diff -up src/bin/sage-valgrind.orig src/bin/sage-valgrind
|
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.orig 2019-03-23 16:20:31.000000000 -0600
|
||||||
+++ src/bin/sage-valgrind 2019-01-16 09:42:10.065567115 -0700
|
+++ src/bin/sage-valgrind 2019-04-08 11:40:35.881987545 -0600
|
||||||
@@ -1,16 +1,6 @@
|
@@ -1,16 +1,6 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
|
|
@ -1,21 +1,15 @@
|
||||||
diff -up src/sage/env.py.orig src/sage/env.py
|
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.orig 2019-04-08 12:41:09.686920533 -0600
|
||||||
+++ src/sage/env.py 2019-01-16 09:46:26.932957717 -0700
|
+++ src/sage/env.py 2019-04-08 12:42:41.240282849 -0600
|
||||||
@@ -117,7 +117,7 @@ _add_variable_or_fallback('HOSTNAME',
|
@@ -159,9 +159,9 @@ var('SAGE_DOC', join(SAGE_SHA
|
||||||
_add_variable_or_fallback('LOCAL_IDENTIFIER','$HOSTNAME.%s'%os.getpid())
|
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
|
%global prompt_tookit_pkg prompt_toolkit-1.0.15
|
||||||
%endif
|
%endif
|
||||||
%if %{with bundled_ipywidgets}
|
%if %{with bundled_ipywidgets}
|
||||||
%global ipywidgets_pkg ipywidgets-7.2.0
|
%global ipywidgets_pkg ipywidgets-7.4.2
|
||||||
%endif
|
%endif
|
||||||
%if %{with bundled_pexpect}
|
%if %{with bundled_pexpect}
|
||||||
%global pexpect_pkg pexpect-4.6.0
|
%global pexpect_pkg pexpect-4.6.0
|
||||||
%endif
|
%endif
|
||||||
%global polytopes_db_pkg polytopes_db-20170220
|
%global polytopes_db_pkg polytopes_db-20170220
|
||||||
%global rubiks_pkg rubiks-20070912
|
%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 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 Sphinx_pkg Sphinx-1.7.6
|
||||||
%global singular_pkg singular-4.1.1p3
|
%global singular_pkg singular-4.1.1p3
|
||||||
%if %{with bundled_thebe}
|
%if %{with bundled_thebe}
|
||||||
|
@ -67,13 +67,13 @@
|
||||||
%global threejs_pkg threejs-r80
|
%global threejs_pkg threejs-r80
|
||||||
%endif
|
%endif
|
||||||
%if %{with bundled_widgetsnbextension}
|
%if %{with bundled_widgetsnbextension}
|
||||||
%global widgetsnbextension_pkg widgetsnbextension-3.2.0
|
%global widgetsnbextension_pkg widgetsnbextension-3.4.2
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Spkg equivalents of required rpms; we pretend they are installed as spkgs.
|
# 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
|
# The version numbers shown are those of the latest released spkg, if the Fedora
|
||||||
# version is not behind.
|
# 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_ROOT %{_libdir}/sagemath
|
||||||
%global SAGE_LOCAL %{SAGE_ROOT}/local
|
%global SAGE_LOCAL %{SAGE_ROOT}/local
|
||||||
|
@ -86,7 +86,7 @@
|
||||||
|
|
||||||
Name: sagemath
|
Name: sagemath
|
||||||
Summary: A free open-source mathematics software system
|
Summary: A free open-source mathematics software system
|
||||||
Version: 8.6
|
Version: 8.7
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
# The file ${SAGE_ROOT}/COPYING.txt is the upstream license breakdown file
|
# The file ${SAGE_ROOT}/COPYING.txt is the upstream license breakdown file
|
||||||
# Additionally, every $files section has a comment with the license name
|
# 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
|
# Fix ecm interact() command
|
||||||
Patch0: %{name}-ecm.patch
|
Patch0: %{name}-ecm.patch
|
||||||
|
|
||||||
# Adapt a giac doctest to recent versions of giac
|
# Fix a "random" bit chooser that always chooses 0
|
||||||
Patch1: %{name}-giac.patch
|
Patch1: %{name}-random.patch
|
||||||
|
|
||||||
# Set of patches to work with system wide packages
|
# Set of patches to work with system wide packages
|
||||||
Patch2: %{name}-scripts.patch
|
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
|
# Upstream fixes for random SIGFPEs due to ecl messing with the fp state
|
||||||
Patch28: %{name}-sigfpe.patch
|
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: 4ti2
|
||||||
BuildRequires: arb-devel
|
BuildRequires: arb-devel
|
||||||
BuildRequires: boost-devel
|
BuildRequires: boost-devel
|
||||||
|
@ -273,6 +279,7 @@ BuildRequires: python3-devel
|
||||||
BuildRequires: python3-cypari2-devel
|
BuildRequires: python3-cypari2-devel
|
||||||
BuildRequires: python3-cysignals-devel
|
BuildRequires: python3-cysignals-devel
|
||||||
BuildRequires: python3-pillow-devel
|
BuildRequires: python3-pillow-devel
|
||||||
|
BuildRequires: python3-pplpy-devel
|
||||||
BuildRequires: python3dist(brial)
|
BuildRequires: python3dist(brial)
|
||||||
%if %{with sphinx_hack}
|
%if %{with sphinx_hack}
|
||||||
BuildRequires: python3dist(configparser)
|
BuildRequires: python3dist(configparser)
|
||||||
|
@ -416,6 +423,7 @@ Requires: python3dist(pexpect)
|
||||||
%endif
|
%endif
|
||||||
Requires: python3dist(pickleshare)
|
Requires: python3dist(pickleshare)
|
||||||
Requires: python3dist(pillow)
|
Requires: python3dist(pillow)
|
||||||
|
Requires: python3dist(pplpy)
|
||||||
Requires: python3dist(psutil)
|
Requires: python3dist(psutil)
|
||||||
Requires: python3dist(ptyprocess)
|
Requires: python3dist(ptyprocess)
|
||||||
Requires: python3dist(pycryptosat)
|
Requires: python3dist(pycryptosat)
|
||||||
|
@ -874,6 +882,8 @@ popd
|
||||||
%patch26
|
%patch26
|
||||||
%patch27
|
%patch27
|
||||||
%patch28
|
%patch28
|
||||||
|
%patch29
|
||||||
|
%patch30
|
||||||
|
|
||||||
sed -e 's|@@SAGE_ROOT@@|%{SAGE_ROOT}|' \
|
sed -e 's|@@SAGE_ROOT@@|%{SAGE_ROOT}|' \
|
||||||
-e 's|@@SAGE_DOC@@|%{SAGE_DOC}|' \
|
-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
|
-i build/pkgs/ipython/src/IPython/utils/_process_posix.py
|
||||||
%endif
|
%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
|
# GAP does not have enough memory to load the entire workspace
|
||||||
sed -i 's/64m/128m/' src/sage/libs/gap/util.pyx
|
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
|
# More wrong buildroot references
|
||||||
perl -pi -e 's|%{buildroot}||g;' \
|
perl -pi -e 's|%{buildroot}||g;' \
|
||||||
-e "s|$PWD/src/doc|%{SAGE_DOC}|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
|
# with docs
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
@ -1826,6 +1834,14 @@ rm -fr $DOT_SAGE
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
%changelog
|
%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
|
* Mon Feb 18 2019 Jerry James <loganjerry@gmail.com> - 8.6-1
|
||||||
- Update to sagemath 8.6
|
- Update to sagemath 8.6
|
||||||
- Install an SVG icon instead of a fixed size (128x128) icon
|
- 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