mirror of
https://src.fedoraproject.org/rpms/sagemath.git
synced 2025-04-18 18:29:01 -04:00
Update to sagemath 8.5.
Also: - Bundle ipython again; Fedora version is too far ahead. Also have to bundle prompt_toolkit since Fedora version is too far ahead of bundled ipython. - Drop LANGUAGES variable setting, now ignored by the sagemath build system. - Drop unused SAGE_CBLAS variable from /usr/bin/sage. - Do not force the C locale when launching sagemath. - Allow the user to override SAGE_DEBUG in /usr/bin/sage. - Add -ecm, -giac, and -latte patches to fix interactions with external tools. - Add -sigfpe patch from upstream.
This commit is contained in:
parent
eaa777c690
commit
55beead27c
31 changed files with 674 additions and 684 deletions
|
@ -1,6 +1,6 @@
|
||||||
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-10-17 17:14:17.000000000 -0600
|
--- src/sage/sandpiles/sandpile.py.orig 2018-12-22 16:37:10.000000000 -0700
|
||||||
+++ src/sage/sandpiles/sandpile.py 2018-10-25 13:18:34.198894883 -0600
|
+++ src/sage/sandpiles/sandpile.py 2019-01-16 09:43:32.402089611 -0700
|
||||||
@@ -344,9 +344,6 @@ from sage.arith.all import falling_facto
|
@@ -344,9 +344,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
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
diff -up src/sage/libs/arb/acb_hypgeom.pxd.orig src/sage/libs/arb/acb_hypgeom.pxd
|
diff -up src/sage/libs/arb/acb_hypgeom.pxd.orig src/sage/libs/arb/acb_hypgeom.pxd
|
||||||
--- src/sage/libs/arb/acb_hypgeom.pxd.orig 2018-08-03 05:10:08.000000000 -0600
|
--- src/sage/libs/arb/acb_hypgeom.pxd.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/libs/arb/acb_hypgeom.pxd 2018-08-29 10:43:48.572622995 -0600
|
+++ src/sage/libs/arb/acb_hypgeom.pxd 2019-01-16 09:46:54.148469344 -0700
|
||||||
@@ -2,7 +2,7 @@
|
@@ -2,7 +2,7 @@
|
||||||
|
|
||||||
from sage.libs.arb.types cimport *
|
from sage.libs.arb.types cimport *
|
||||||
|
@ -11,8 +11,8 @@ diff -up src/sage/libs/arb/acb_hypgeom.pxd.orig src/sage/libs/arb/acb_hypgeom.px
|
||||||
long acb_hypgeom_pfq_choose_n(acb_srcptr a, long p, acb_srcptr b, long q, const acb_t z, long prec)
|
long acb_hypgeom_pfq_choose_n(acb_srcptr a, long p, acb_srcptr b, long q, const acb_t z, long prec)
|
||||||
void acb_hypgeom_pfq_sum_forward(acb_t s, acb_t t, acb_srcptr a, long p, acb_srcptr b, long q, const acb_t z, long n, long prec)
|
void acb_hypgeom_pfq_sum_forward(acb_t s, acb_t t, acb_srcptr a, long p, acb_srcptr b, long q, const acb_t z, long n, long prec)
|
||||||
diff -up src/sage/libs/arb/acb_mat.pxd.orig src/sage/libs/arb/acb_mat.pxd
|
diff -up src/sage/libs/arb/acb_mat.pxd.orig src/sage/libs/arb/acb_mat.pxd
|
||||||
--- src/sage/libs/arb/acb_mat.pxd.orig 2018-08-03 05:10:08.000000000 -0600
|
--- src/sage/libs/arb/acb_mat.pxd.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/libs/arb/acb_mat.pxd 2018-08-29 10:43:48.572622995 -0600
|
+++ src/sage/libs/arb/acb_mat.pxd 2019-01-16 09:46:54.148469344 -0700
|
||||||
@@ -1,6 +1,6 @@
|
@@ -1,6 +1,6 @@
|
||||||
from sage.libs.arb.types cimport acb_t, acb_mat_t, acb_poly_t
|
from sage.libs.arb.types cimport acb_t, acb_mat_t, acb_poly_t
|
||||||
|
|
||||||
|
@ -22,8 +22,8 @@ diff -up src/sage/libs/arb/acb_mat.pxd.orig src/sage/libs/arb/acb_mat.pxd
|
||||||
unsigned int acb_mat_ncols(acb_mat_t mat)
|
unsigned int acb_mat_ncols(acb_mat_t mat)
|
||||||
acb_t acb_mat_entry(acb_mat_t mat, unsigned long i, unsigned long j)
|
acb_t acb_mat_entry(acb_mat_t mat, unsigned long i, unsigned long j)
|
||||||
diff -up src/sage/libs/arb/acb_modular.pxd.orig src/sage/libs/arb/acb_modular.pxd
|
diff -up src/sage/libs/arb/acb_modular.pxd.orig src/sage/libs/arb/acb_modular.pxd
|
||||||
--- src/sage/libs/arb/acb_modular.pxd.orig 2018-08-03 05:10:08.000000000 -0600
|
--- src/sage/libs/arb/acb_modular.pxd.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/libs/arb/acb_modular.pxd 2018-08-29 10:43:48.572622995 -0600
|
+++ src/sage/libs/arb/acb_modular.pxd 2019-01-16 09:46:54.149469326 -0700
|
||||||
@@ -3,7 +3,7 @@
|
@@ -3,7 +3,7 @@
|
||||||
from sage.libs.arb.types cimport *
|
from sage.libs.arb.types cimport *
|
||||||
from sage.libs.flint.types cimport fmpz_poly_t
|
from sage.libs.flint.types cimport fmpz_poly_t
|
||||||
|
@ -34,8 +34,8 @@ diff -up src/sage/libs/arb/acb_modular.pxd.orig src/sage/libs/arb/acb_modular.px
|
||||||
void acb_modular_j(acb_t z, const acb_t tau, long prec)
|
void acb_modular_j(acb_t z, const acb_t tau, long prec)
|
||||||
void acb_modular_eta(acb_t z, const acb_t tau, long prec)
|
void acb_modular_eta(acb_t z, const acb_t tau, long prec)
|
||||||
diff -up src/sage/libs/arb/acb_poly.pxd.orig src/sage/libs/arb/acb_poly.pxd
|
diff -up src/sage/libs/arb/acb_poly.pxd.orig src/sage/libs/arb/acb_poly.pxd
|
||||||
--- src/sage/libs/arb/acb_poly.pxd.orig 2018-08-03 05:10:08.000000000 -0600
|
--- src/sage/libs/arb/acb_poly.pxd.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/libs/arb/acb_poly.pxd 2018-08-29 10:43:48.572622995 -0600
|
+++ src/sage/libs/arb/acb_poly.pxd 2019-01-16 09:46:54.149469326 -0700
|
||||||
@@ -3,7 +3,7 @@
|
@@ -3,7 +3,7 @@
|
||||||
from sage.libs.arb.types cimport *
|
from sage.libs.arb.types cimport *
|
||||||
from sage.libs.flint.types cimport fmpz_poly_t, fmpq_poly_t
|
from sage.libs.flint.types cimport fmpz_poly_t, fmpq_poly_t
|
||||||
|
@ -46,8 +46,8 @@ diff -up src/sage/libs/arb/acb_poly.pxd.orig src/sage/libs/arb/acb_poly.pxd
|
||||||
void acb_poly_clear(acb_poly_t poly)
|
void acb_poly_clear(acb_poly_t poly)
|
||||||
void acb_poly_fit_length(acb_poly_t poly, long len)
|
void acb_poly_fit_length(acb_poly_t poly, long len)
|
||||||
diff -up src/sage/libs/arb/acb.pxd.orig src/sage/libs/arb/acb.pxd
|
diff -up src/sage/libs/arb/acb.pxd.orig src/sage/libs/arb/acb.pxd
|
||||||
--- src/sage/libs/arb/acb.pxd.orig 2018-08-03 05:10:08.000000000 -0600
|
--- src/sage/libs/arb/acb.pxd.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/libs/arb/acb.pxd 2018-08-29 10:43:48.571623007 -0600
|
+++ src/sage/libs/arb/acb.pxd 2019-01-16 09:46:54.149469326 -0700
|
||||||
@@ -3,7 +3,7 @@
|
@@ -3,7 +3,7 @@
|
||||||
from sage.libs.arb.types cimport *
|
from sage.libs.arb.types cimport *
|
||||||
from sage.libs.flint.types cimport fmpz_t, fmpq_t
|
from sage.libs.flint.types cimport fmpz_t, fmpq_t
|
||||||
|
@ -58,8 +58,8 @@ diff -up src/sage/libs/arb/acb.pxd.orig src/sage/libs/arb/acb.pxd
|
||||||
arb_t acb_realref(acb_t x)
|
arb_t acb_realref(acb_t x)
|
||||||
arb_t acb_imagref(acb_t x)
|
arb_t acb_imagref(acb_t x)
|
||||||
diff -up src/sage/libs/arb/arf.pxd.orig src/sage/libs/arb/arf.pxd
|
diff -up src/sage/libs/arb/arf.pxd.orig src/sage/libs/arb/arf.pxd
|
||||||
--- src/sage/libs/arb/arf.pxd.orig 2018-08-03 05:10:08.000000000 -0600
|
--- src/sage/libs/arb/arf.pxd.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/libs/arb/arf.pxd 2018-08-29 10:43:48.572622995 -0600
|
+++ src/sage/libs/arb/arf.pxd 2019-01-16 09:46:54.149469326 -0700
|
||||||
@@ -5,7 +5,7 @@ from sage.libs.gmp.types cimport mpz_t
|
@@ -5,7 +5,7 @@ from sage.libs.gmp.types cimport mpz_t
|
||||||
from sage.libs.flint.types cimport fmpz_t
|
from sage.libs.flint.types cimport fmpz_t
|
||||||
from sage.libs.mpfr.types cimport mpfr_t, mpfr_rnd_t
|
from sage.libs.mpfr.types cimport mpfr_t, mpfr_rnd_t
|
||||||
|
@ -70,8 +70,8 @@ diff -up src/sage/libs/arb/arf.pxd.orig src/sage/libs/arb/arf.pxd
|
||||||
void arf_clear(arf_t x)
|
void arf_clear(arf_t x)
|
||||||
void arf_zero(arf_t x)
|
void arf_zero(arf_t x)
|
||||||
diff -up src/sage/libs/arb/bernoulli.pxd.orig src/sage/libs/arb/bernoulli.pxd
|
diff -up src/sage/libs/arb/bernoulli.pxd.orig src/sage/libs/arb/bernoulli.pxd
|
||||||
--- src/sage/libs/arb/bernoulli.pxd.orig 2018-08-03 05:10:08.000000000 -0600
|
--- src/sage/libs/arb/bernoulli.pxd.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/libs/arb/bernoulli.pxd 2018-08-29 10:43:48.572622995 -0600
|
+++ src/sage/libs/arb/bernoulli.pxd 2019-01-16 09:46:54.149469326 -0700
|
||||||
@@ -2,5 +2,5 @@
|
@@ -2,5 +2,5 @@
|
||||||
|
|
||||||
from ..flint.types cimport fmpq_t, ulong
|
from ..flint.types cimport fmpq_t, ulong
|
||||||
|
@ -80,8 +80,8 @@ diff -up src/sage/libs/arb/bernoulli.pxd.orig src/sage/libs/arb/bernoulli.pxd
|
||||||
+cdef extern from "arb/bernoulli.h":
|
+cdef extern from "arb/bernoulli.h":
|
||||||
void bernoulli_fmpq_ui(fmpq_t b, ulong n)
|
void bernoulli_fmpq_ui(fmpq_t b, ulong n)
|
||||||
diff -up src/sage/libs/arb/mag.pxd.orig src/sage/libs/arb/mag.pxd
|
diff -up src/sage/libs/arb/mag.pxd.orig src/sage/libs/arb/mag.pxd
|
||||||
--- src/sage/libs/arb/mag.pxd.orig 2018-08-03 05:10:08.000000000 -0600
|
--- src/sage/libs/arb/mag.pxd.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/libs/arb/mag.pxd 2018-08-29 10:43:48.573622983 -0600
|
+++ src/sage/libs/arb/mag.pxd 2019-01-16 09:46:54.150469309 -0700
|
||||||
@@ -3,7 +3,7 @@
|
@@ -3,7 +3,7 @@
|
||||||
from sage.libs.arb.types cimport *
|
from sage.libs.arb.types cimport *
|
||||||
from sage.libs.flint.types cimport fmpz_t, fmpq_t
|
from sage.libs.flint.types cimport fmpz_t, fmpq_t
|
||||||
|
@ -92,8 +92,8 @@ diff -up src/sage/libs/arb/mag.pxd.orig src/sage/libs/arb/mag.pxd
|
||||||
void mag_clear(mag_t x)
|
void mag_clear(mag_t x)
|
||||||
void mag_init_set(mag_t x, const mag_t y)
|
void mag_init_set(mag_t x, const mag_t y)
|
||||||
diff -up src/sage/libs/arb/types.pxd.orig src/sage/libs/arb/types.pxd
|
diff -up src/sage/libs/arb/types.pxd.orig src/sage/libs/arb/types.pxd
|
||||||
--- src/sage/libs/arb/types.pxd.orig 2018-08-03 05:10:08.000000000 -0600
|
--- src/sage/libs/arb/types.pxd.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/libs/arb/types.pxd 2018-08-29 10:43:48.573622983 -0600
|
+++ src/sage/libs/arb/types.pxd 2019-01-16 09:46:54.150469309 -0700
|
||||||
@@ -1,4 +1,4 @@
|
@@ -1,4 +1,4 @@
|
||||||
-cdef extern from "mag.h":
|
-cdef extern from "mag.h":
|
||||||
+cdef extern from "arb/mag.h":
|
+cdef extern from "arb/mag.h":
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
--- src/setup.py.orig 2018-10-16 09:07:30.086993782 -0600
|
diff -up src/setup.py.orig src/setup.py
|
||||||
+++ src/setup.py 2018-10-16 09:10:20.586710425 -0600
|
--- src/setup.py.orig 2019-01-04 11:05:11.337077724 -0700
|
||||||
|
+++ src/setup.py 2019-01-16 09:45:32.570933224 -0700
|
||||||
@@ -387,6 +387,9 @@ class sage_build_cython(Command):
|
@@ -387,6 +387,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-05-16 13:40:23.571130540 -0600
|
--- src/sage/numerical/backends/coin_backend.pyx.orig 2018-12-22 16:37:09.000000000 -0700
|
||||||
+++ src/sage/numerical/backends/coin_backend.pyx 2018-05-16 13:41:06.750534427 -0600
|
+++ src/sage/numerical/backends/coin_backend.pyx 2019-01-16 09:45:52.386577640 -0700
|
||||||
@@ -762,8 +762,8 @@ cdef class CoinBackend(GenericBackend):
|
@@ -765,8 +765,8 @@ cdef class CoinBackend(GenericBackend):
|
||||||
model.setLogLevel(old_logLevel)
|
model.setLogLevel(old_logLevel)
|
||||||
|
|
||||||
# multithreading
|
# multithreading
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
diff -up src/sage/databases/cremona.py.orig src/sage/databases/cremona.py
|
diff -up src/sage/databases/cremona.py.orig src/sage/databases/cremona.py
|
||||||
--- src/sage/databases/cremona.py.orig 2018-10-17 17:13:36.000000000 -0600
|
--- src/sage/databases/cremona.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/databases/cremona.py 2018-10-25 13:24:02.644939224 -0600
|
+++ src/sage/databases/cremona.py 2019-01-04 10:29:55.578694061 -0700
|
||||||
@@ -53,7 +53,6 @@ from sage.misc.prandom import randint
|
@@ -53,7 +53,6 @@ from sage.misc.prandom import randint
|
||||||
|
|
||||||
import sage.schemes.elliptic_curves.constructor as elliptic
|
import sage.schemes.elliptic_curves.constructor as elliptic
|
||||||
|
@ -9,7 +9,7 @@ diff -up src/sage/databases/cremona.py.orig src/sage/databases/cremona.py
|
||||||
from sage.env import CREMONA_MINI_DATA_DIR, CREMONA_LARGE_DATA_DIR
|
from sage.env import CREMONA_MINI_DATA_DIR, CREMONA_LARGE_DATA_DIR
|
||||||
from sage.misc.all import walltime
|
from sage.misc.all import walltime
|
||||||
|
|
||||||
@@ -825,14 +824,6 @@ class MiniCremonaDatabase(SQLDatabase):
|
@@ -835,14 +834,6 @@ class MiniCremonaDatabase(SQLDatabase):
|
||||||
if N < self.largest_conductor():
|
if N < self.largest_conductor():
|
||||||
message = "There is no elliptic curve with label " + label \
|
message = "There is no elliptic curve with label " + label \
|
||||||
+ " in the database"
|
+ " in the database"
|
||||||
|
@ -24,7 +24,7 @@ diff -up src/sage/databases/cremona.py.orig src/sage/databases/cremona.py
|
||||||
raise ValueError(message)
|
raise ValueError(message)
|
||||||
ainvs = eval(c[0])
|
ainvs = eval(c[0])
|
||||||
data = {'cremona_label': label,
|
data = {'cremona_label': label,
|
||||||
@@ -1673,10 +1664,12 @@ def CremonaDatabase(name=None,mini=None,
|
@@ -1683,10 +1674,12 @@ def CremonaDatabase(name=None,mini=None,
|
||||||
if name is None and not set_global:
|
if name is None and not set_global:
|
||||||
return _db
|
return _db
|
||||||
if set_global and name is None:
|
if set_global and name is None:
|
||||||
|
|
12
sagemath-ecm.patch
Normal file
12
sagemath-ecm.patch
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
diff -up src/sage/interfaces/ecm.py.orig src/sage/interfaces/ecm.py
|
||||||
|
--- src/sage/interfaces/ecm.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
|
+++ src/sage/interfaces/ecm.py 2019-01-15 10:26:31.060040736 -0700
|
||||||
|
@@ -256,7 +256,7 @@ class ECM(SageObject):
|
||||||
|
"""
|
||||||
|
print("Enter numbers to run ECM on them.")
|
||||||
|
print("Press control-C to exit.")
|
||||||
|
- os.system(self._cmd)
|
||||||
|
+ os.system(' '.join(self._cmd))
|
||||||
|
|
||||||
|
# Recommended settings from
|
||||||
|
# http://www.mersennewiki.org/index.php/Elliptic_Curve_Method
|
|
@ -1,92 +1,7 @@
|
||||||
--- build/pkgs/sagenb/src/sagenb/misc/sphinxify.py.orig 2018-10-25 14:14:33.031253545 -0600
|
diff -up src/sage/combinat/crystals/alcove_path.py.orig src/sage/combinat/crystals/alcove_path.py
|
||||||
+++ build/pkgs/sagenb/src/sagenb/misc/sphinxify.py 2018-10-25 15:33:56.358876835 -0600
|
--- src/sage/combinat/crystals/alcove_path.py.orig 2018-12-22 16:37:07.000000000 -0700
|
||||||
@@ -133,7 +133,7 @@ def sphinxify(docstring, format='html'):
|
+++ src/sage/combinat/crystals/alcove_path.py 2019-01-04 11:16:55.320833974 -0700
|
||||||
# "/media/...path.../blah.png"
|
@@ -383,7 +383,7 @@ class CrystalOfAlcovePaths(UniqueReprese
|
||||||
# to
|
|
||||||
# "/doc/static/reference/media/...path.../blah.png"
|
|
||||||
- output = re.sub("""src=['"](/?\.\.)*/?media/([^"']*)['"]""",
|
|
||||||
+ output = re.sub("""src=['"](/?\\.\\.)*/?media/([^"']*)['"]""",
|
|
||||||
'src="/doc/static/reference/media/\\2"',
|
|
||||||
output)
|
|
||||||
# Remove spurious \(, \), \[, \].
|
|
||||||
--- build/pkgs/sagenb/src/sagenb/misc/support.py.orig 2018-10-25 13:30:02.499892169 -0600
|
|
||||||
+++ build/pkgs/sagenb/src/sagenb/misc/support.py 2018-10-25 14:14:33.032253542 -0600
|
|
||||||
@@ -550,7 +550,7 @@ try:
|
|
||||||
return args[0].__getattribute__(str(self))(*args[1:], **kwds)
|
|
||||||
|
|
||||||
def automatic_name_eval(s, globals, max_names=10000):
|
|
||||||
- """
|
|
||||||
+ r"""
|
|
||||||
Exec the string ``s`` in the scope of the ``globals``
|
|
||||||
dictionary, and if any :exc:`NameError`\ s are raised, try to
|
|
||||||
fix them by defining the variable that caused the error to be
|
|
||||||
--- build/pkgs/sagenb/src/sagenb/notebook/cell.py.orig 2018-10-25 13:30:55.707737342 -0600
|
|
||||||
+++ build/pkgs/sagenb/src/sagenb/notebook/cell.py 2018-10-25 14:14:33.032253542 -0600
|
|
||||||
@@ -441,7 +441,7 @@ class Cell_generic(object):
|
|
||||||
return isinstance(self, Cell)
|
|
||||||
|
|
||||||
def is_auto_cell(self):
|
|
||||||
- """
|
|
||||||
+ r"""
|
|
||||||
Returns whether this is an automatically evaluated generic
|
|
||||||
cell. This is always false for :class:`Cell_generic`\ s and
|
|
||||||
:class:`TextCell`\ s.
|
|
||||||
@@ -647,7 +647,7 @@ class TextCell(Cell_generic):
|
|
||||||
return self._text
|
|
||||||
|
|
||||||
def set_cell_output_type(self, typ='wrap'):
|
|
||||||
- """
|
|
||||||
+ r"""
|
|
||||||
Sets this text cell's output type. This does nothing for
|
|
||||||
:class:`TextCell`\ s.
|
|
||||||
|
|
||||||
@@ -1320,8 +1320,8 @@ class Cell(Cell_generic):
|
|
||||||
if len(s) == 0:
|
|
||||||
return False
|
|
||||||
s = s[0]
|
|
||||||
- return bool(re.search('(?<!\w)interact\s*\(.*\).*', s) or
|
|
||||||
- re.search('\s*@\s*interact', s))
|
|
||||||
+ return bool(re.search(r'(?<!\w)interact\s*\(.*\).*', s) or
|
|
||||||
+ re.search(r'\s*@\s*interact', s))
|
|
||||||
|
|
||||||
def is_interacting(self):
|
|
||||||
r"""
|
|
||||||
@@ -1344,7 +1344,7 @@ class Cell(Cell_generic):
|
|
||||||
return hasattr(self, 'interact')
|
|
||||||
|
|
||||||
def stop_interacting(self):
|
|
||||||
- """
|
|
||||||
+ r"""
|
|
||||||
Stops :func:`sagenb.notebook.interact.interact`\ ion for this
|
|
||||||
compute cell.
|
|
||||||
|
|
||||||
--- build/pkgs/sagenb/src/sagenb/notebook/worksheet.py.orig 2018-05-22 10:01:48.000000000 -0600
|
|
||||||
+++ build/pkgs/sagenb/src/sagenb/notebook/worksheet.py 2018-10-17 14:41:08.634154908 -0600
|
|
||||||
@@ -61,8 +61,8 @@ from flask_babel import gettext, lazy_ge
|
|
||||||
_ = gettext
|
|
||||||
|
|
||||||
# Set some constants that will be used for regular expressions below.
|
|
||||||
-whitespace = re.compile('\s') # Match any whitespace character
|
|
||||||
-non_whitespace = re.compile('\S')
|
|
||||||
+whitespace = re.compile(r'\s') # Match any whitespace character
|
|
||||||
+non_whitespace = re.compile(r'\S')
|
|
||||||
|
|
||||||
# The file to which the Sage code that will be evaluated is written.
|
|
||||||
CODE_PY = "___code___.py"
|
|
||||||
--- src/sage/combinat/cluster_algebra_quiver/quiver_mutation_type.py.orig 2018-10-17 17:13:35.000000000 -0600
|
|
||||||
+++ src/sage/combinat/cluster_algebra_quiver/quiver_mutation_type.py 2018-10-25 14:14:33.033253539 -0600
|
|
||||||
@@ -2023,7 +2023,7 @@ class QuiverMutationType_Reducible(Quive
|
|
||||||
|
|
||||||
@cached_method
|
|
||||||
def class_size(self):
|
|
||||||
- """
|
|
||||||
+ r"""
|
|
||||||
If it is known, the size of the mutation class of all quivers
|
|
||||||
which are mutation equivalent to the standard quiver of
|
|
||||||
``self`` (up to isomorphism) is returned.
|
|
||||||
--- src/sage/combinat/crystals/alcove_path.py.orig 2018-10-17 17:13:35.000000000 -0600
|
|
||||||
+++ src/sage/combinat/crystals/alcove_path.py 2018-10-25 15:37:04.294360718 -0600
|
|
||||||
@@ -389,7 +389,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
|
||||||
admissible subsets of the `\lambda`-chain (see method
|
admissible subsets of the `\lambda`-chain (see method
|
||||||
|
@ -95,8 +10,9 @@
|
||||||
search algorithm.
|
search algorithm.
|
||||||
|
|
||||||
.. WARNING::
|
.. WARNING::
|
||||||
--- src/sage/homology/homology_group.py.orig 2018-10-17 17:13:47.000000000 -0600
|
diff -up src/sage/homology/homology_group.py.orig src/sage/homology/homology_group.py
|
||||||
+++ src/sage/homology/homology_group.py 2018-10-25 15:54:54.683421705 -0600
|
--- src/sage/homology/homology_group.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
|
+++ src/sage/homology/homology_group.py 2019-01-04 11:17:37.136047323 -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])
|
||||||
|
@ -106,3 +22,15 @@
|
||||||
sage: latex(HomologyGroup(6, ZZ))
|
sage: latex(HomologyGroup(6, ZZ))
|
||||||
\ZZ^{6}
|
\ZZ^{6}
|
||||||
"""
|
"""
|
||||||
|
diff -up src/sage/rings/number_field/number_field.py.orig src/sage/rings/number_field/number_field.py
|
||||||
|
--- src/sage/rings/number_field/number_field.py.orig 2018-12-22 16:37:10.000000000 -0700
|
||||||
|
+++ src/sage/rings/number_field/number_field.py 2019-01-08 16:25:39.730547708 -0700
|
||||||
|
@@ -6613,7 +6613,7 @@ class NumberField_generic(WithEqualityBy
|
||||||
|
return U
|
||||||
|
|
||||||
|
def S_unit_solutions(self, S=[], prec=106, include_exponents=False, include_bound=False, proof=None):
|
||||||
|
- """
|
||||||
|
+ r"""
|
||||||
|
Return all solutions to the S-unit equation ``x + y = 1`` over K.
|
||||||
|
|
||||||
|
INPUT:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
diff -up src/module_list.py.orig src/module_list.py
|
diff -up src/module_list.py.origsrc/module_list.py
|
||||||
--- src/module_list.py.orig 2018-10-17 17:13:35.000000000 -0600
|
--- src/module_list.py.orig 2018-12-22 16:37:06.000000000 -0700
|
||||||
+++ src/module_list.py 2018-10-25 11:33:55.361930982 -0600
|
+++ src/module_list.py 2019-01-16 09:42:29.021226961 -0700
|
||||||
@@ -358,16 +358,16 @@ ext_modules = [
|
@@ -357,16 +357,16 @@ ext_modules = [
|
||||||
Extension('sage.graphs.matchpoly',
|
Extension('sage.graphs.matchpoly',
|
||||||
sources = ['sage/graphs/matchpoly.pyx']),
|
sources = ['sage/graphs/matchpoly.pyx']),
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
|
|
||||||
Extension('sage.graphs.planarity',
|
Extension('sage.graphs.planarity',
|
||||||
sources = ['sage/graphs/planarity.pyx'],
|
sources = ['sage/graphs/planarity.pyx'],
|
||||||
@@ -386,10 +386,10 @@ ext_modules = [
|
@@ -385,10 +385,10 @@ ext_modules = [
|
||||||
Extension('sage.graphs.graph_decompositions.cutwidth',
|
Extension('sage.graphs.graph_decompositions.cutwidth',
|
||||||
sources = ['sage/graphs/graph_decompositions/cutwidth.pyx']),
|
sources = ['sage/graphs/graph_decompositions/cutwidth.pyx']),
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
|
|
||||||
Extension('sage.graphs.spanning_tree',
|
Extension('sage.graphs.spanning_tree',
|
||||||
sources = ['sage/graphs/spanning_tree.pyx']),
|
sources = ['sage/graphs/spanning_tree.pyx']),
|
||||||
@@ -461,21 +461,20 @@ ext_modules = [
|
@@ -460,21 +460,20 @@ ext_modules = [
|
||||||
##
|
##
|
||||||
################################
|
################################
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
|
|
||||||
Extension('sage.libs.flint.flint',
|
Extension('sage.libs.flint.flint',
|
||||||
sources = ["sage/libs/flint/flint.pyx"],
|
sources = ["sage/libs/flint/flint.pyx"],
|
||||||
@@ -841,10 +840,10 @@ ext_modules = [
|
@@ -840,10 +839,10 @@ ext_modules = [
|
||||||
Extension('sage.matrix.matrix_window',
|
Extension('sage.matrix.matrix_window',
|
||||||
sources = ['sage/matrix/matrix_window.pyx']),
|
sources = ['sage/matrix/matrix_window.pyx']),
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
|
|
||||||
Extension('sage.matrix.misc',
|
Extension('sage.matrix.misc',
|
||||||
sources = ['sage/matrix/misc.pyx']),
|
sources = ['sage/matrix/misc.pyx']),
|
||||||
@@ -1021,26 +1020,25 @@ ext_modules = [
|
@@ -1020,26 +1019,25 @@ ext_modules = [
|
||||||
Extension("sage.numerical.backends.interactivelp_backend",
|
Extension("sage.numerical.backends.interactivelp_backend",
|
||||||
["sage/numerical/backends/interactivelp_backend.pyx"]),
|
["sage/numerical/backends/interactivelp_backend.pyx"]),
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
diff -up src/sage/libs/fes.pyx.orig src/sage/libs/fes.pyx
|
diff -up src/sage/libs/fes.pyx.orig src/sage/libs/fes.pyx
|
||||||
--- src/sage/libs/fes.pyx.orig 2017-11-08 08:26:29.835214502 -0500
|
--- src/sage/libs/fes.pyx.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/libs/fes.pyx 2017-11-08 08:26:38.707214842 -0500
|
+++ src/sage/libs/fes.pyx 2019-01-17 09:46:02.925523575 -0700
|
||||||
@@ -86,8 +86,8 @@ from sage.rings.polynomial.pbori import
|
@@ -86,8 +86,8 @@ from sage.rings.polynomial.pbori import
|
||||||
from sage.arith.all import binomial
|
from sage.arith.all import binomial
|
||||||
from sage.combinat.subset import Subsets
|
from sage.combinat.subset import Subsets
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
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 2018-08-29 08:35:19.927079956 -0600
|
--- src/module_list.py.orig 2019-01-16 09:45:43.332740109 -0700
|
||||||
+++ src/module_list.py 2018-08-29 10:41:05.127643255 -0600
|
+++ src/module_list.py 2019-01-16 09:46:10.613250567 -0700
|
||||||
@@ -471,10 +471,10 @@ ext_modules = [
|
@@ -470,10 +470,10 @@ ext_modules = [
|
||||||
Extension('sage.libs.ecl',
|
Extension('sage.libs.ecl',
|
||||||
sources = ["sage/libs/ecl.pyx"]),
|
sources = ["sage/libs/ecl.pyx"]),
|
||||||
|
|
||||||
|
|
15
sagemath-giac.patch
Normal file
15
sagemath-giac.patch
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
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/module_list.py.orig src/module_list.py
|
diff -up src/module_list.py.orig src/module_list.py
|
||||||
--- src/module_list.py.orig 2018-10-25 11:40:44.400943439 -0600
|
--- src/module_list.py.orig 2019-01-16 09:46:10.613250567 -0700
|
||||||
+++ src/module_list.py 2018-10-25 16:16:46.618825285 -0600
|
+++ src/module_list.py 2019-01-16 09:47:07.804224297 -0700
|
||||||
@@ -45,6 +45,9 @@ zlib_libs = zlib_pc['libraries']
|
@@ -44,6 +44,9 @@ zlib_libs = zlib_pc['libraries']
|
||||||
zlib_library_dirs = zlib_pc['library_dirs']
|
zlib_library_dirs = zlib_pc['library_dirs']
|
||||||
zlib_include_dirs = zlib_pc['include_dirs']
|
zlib_include_dirs = zlib_pc['include_dirs']
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
#########################################################
|
#########################################################
|
||||||
### M4RI flags
|
### M4RI flags
|
||||||
#########################################################
|
#########################################################
|
||||||
@@ -61,6 +64,14 @@ except ValueError:
|
@@ -60,6 +63,14 @@ except ValueError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
#########################################################
|
#########################################################
|
||||||
|
@ -26,7 +26,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
### Library order
|
### Library order
|
||||||
#########################################################
|
#########################################################
|
||||||
|
|
||||||
@@ -134,7 +145,8 @@ ext_modules = [
|
@@ -133,7 +144,8 @@ ext_modules = [
|
||||||
language='c++',
|
language='c++',
|
||||||
libraries = ["gmp", "m", "ntl"]),
|
libraries = ["gmp", "m", "ntl"]),
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
|
|
||||||
Extension('*', sources = ['sage/algebras/finite_dimensional_algebras/*.pyx']),
|
Extension('*', sources = ['sage/algebras/finite_dimensional_algebras/*.pyx']),
|
||||||
|
|
||||||
@@ -524,7 +536,8 @@ ext_modules = [
|
@@ -523,7 +535,8 @@ ext_modules = [
|
||||||
[])),
|
[])),
|
||||||
|
|
||||||
Extension('sage.libs.lrcalc.lrcalc',
|
Extension('sage.libs.lrcalc.lrcalc',
|
||||||
|
@ -46,7 +46,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
|
|
||||||
OptionalExtension("sage.libs.meataxe",
|
OptionalExtension("sage.libs.meataxe",
|
||||||
sources = ['sage/libs/meataxe.pyx'],
|
sources = ['sage/libs/meataxe.pyx'],
|
||||||
@@ -546,23 +559,28 @@ ext_modules = [
|
@@ -545,23 +558,28 @@ ext_modules = [
|
||||||
sources = ['sage/libs/readline.pyx'],
|
sources = ['sage/libs/readline.pyx'],
|
||||||
libraries = ['readline']),
|
libraries = ['readline']),
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
|
|
||||||
###################################
|
###################################
|
||||||
##
|
##
|
||||||
@@ -570,7 +588,8 @@ ext_modules = [
|
@@ -569,7 +587,8 @@ ext_modules = [
|
||||||
##
|
##
|
||||||
###################################
|
###################################
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
|
|
||||||
###################################
|
###################################
|
||||||
##
|
##
|
||||||
@@ -742,7 +761,8 @@ ext_modules = [
|
@@ -741,7 +760,8 @@ ext_modules = [
|
||||||
|
|
||||||
Extension("sage.matrix.matrix_complex_ball_dense",
|
Extension("sage.matrix.matrix_complex_ball_dense",
|
||||||
["sage/matrix/matrix_complex_ball_dense.pyx"],
|
["sage/matrix/matrix_complex_ball_dense.pyx"],
|
||||||
|
@ -100,7 +100,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
|
|
||||||
Extension('sage.matrix.matrix_complex_double_dense',
|
Extension('sage.matrix.matrix_complex_double_dense',
|
||||||
sources = ['sage/matrix/matrix_complex_double_dense.pyx']),
|
sources = ['sage/matrix/matrix_complex_double_dense.pyx']),
|
||||||
@@ -750,6 +770,7 @@ ext_modules = [
|
@@ -749,6 +769,7 @@ ext_modules = [
|
||||||
Extension('sage.matrix.matrix_cyclo_dense',
|
Extension('sage.matrix.matrix_cyclo_dense',
|
||||||
sources = ['sage/matrix/matrix_cyclo_dense.pyx'],
|
sources = ['sage/matrix/matrix_cyclo_dense.pyx'],
|
||||||
language = "c++",
|
language = "c++",
|
||||||
|
@ -108,7 +108,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
libraries=['ntl']),
|
libraries=['ntl']),
|
||||||
|
|
||||||
Extension('sage.matrix.matrix_gap',
|
Extension('sage.matrix.matrix_gap',
|
||||||
@@ -812,6 +833,7 @@ ext_modules = [
|
@@ -811,6 +832,7 @@ ext_modules = [
|
||||||
sources = ['sage/matrix/matrix_modn_sparse.pyx']),
|
sources = ['sage/matrix/matrix_modn_sparse.pyx']),
|
||||||
|
|
||||||
Extension('sage.matrix.matrix_mpolynomial_dense',
|
Extension('sage.matrix.matrix_mpolynomial_dense',
|
||||||
|
@ -116,7 +116,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
sources = ['sage/matrix/matrix_mpolynomial_dense.pyx']),
|
sources = ['sage/matrix/matrix_mpolynomial_dense.pyx']),
|
||||||
|
|
||||||
Extension('sage.matrix.matrix_polynomial_dense',
|
Extension('sage.matrix.matrix_polynomial_dense',
|
||||||
@@ -1109,7 +1131,8 @@ ext_modules = [
|
@@ -1108,7 +1130,8 @@ ext_modules = [
|
||||||
language = 'c++'),
|
language = 'c++'),
|
||||||
|
|
||||||
Extension("sage.rings.complex_arb",
|
Extension("sage.rings.complex_arb",
|
||||||
|
@ -126,7 +126,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
|
|
||||||
Extension('sage.rings.complex_double',
|
Extension('sage.rings.complex_double',
|
||||||
sources = ['sage/rings/complex_double.pyx'],
|
sources = ['sage/rings/complex_double.pyx'],
|
||||||
@@ -1179,7 +1202,8 @@ ext_modules = [
|
@@ -1184,7 +1207,8 @@ ext_modules = [
|
||||||
sources = ['sage/rings/real_interval_absolute.pyx']),
|
sources = ['sage/rings/real_interval_absolute.pyx']),
|
||||||
|
|
||||||
Extension("sage.rings.real_arb",
|
Extension("sage.rings.real_arb",
|
||||||
|
@ -136,7 +136,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
|
|
||||||
Extension('sage.rings.real_lazy',
|
Extension('sage.rings.real_lazy',
|
||||||
sources = ['sage/rings/real_lazy.pyx']),
|
sources = ['sage/rings/real_lazy.pyx']),
|
||||||
@@ -1262,6 +1286,7 @@ ext_modules = [
|
@@ -1267,6 +1291,7 @@ ext_modules = [
|
||||||
|
|
||||||
Extension('sage.rings.number_field.number_field_element_quadratic',
|
Extension('sage.rings.number_field.number_field_element_quadratic',
|
||||||
sources = ['sage/rings/number_field/number_field_element_quadratic.pyx'],
|
sources = ['sage/rings/number_field/number_field_element_quadratic.pyx'],
|
||||||
|
@ -144,7 +144,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
libraries=['ntl'],
|
libraries=['ntl'],
|
||||||
language = 'c++'),
|
language = 'c++'),
|
||||||
|
|
||||||
@@ -1401,12 +1426,15 @@ ext_modules = [
|
@@ -1406,12 +1431,15 @@ ext_modules = [
|
||||||
sources = ['sage/rings/polynomial/multi_polynomial.pyx']),
|
sources = ['sage/rings/polynomial/multi_polynomial.pyx']),
|
||||||
|
|
||||||
Extension('sage.rings.polynomial.multi_polynomial_ideal_libsingular',
|
Extension('sage.rings.polynomial.multi_polynomial_ideal_libsingular',
|
||||||
|
@ -160,7 +160,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
sources = ['sage/rings/polynomial/multi_polynomial_libsingular.pyx']),
|
sources = ['sage/rings/polynomial/multi_polynomial_libsingular.pyx']),
|
||||||
|
|
||||||
Extension('sage.rings.polynomial.multi_polynomial_ring_base',
|
Extension('sage.rings.polynomial.multi_polynomial_ring_base',
|
||||||
@@ -1419,7 +1447,8 @@ ext_modules = [
|
@@ -1424,7 +1452,8 @@ ext_modules = [
|
||||||
sources = ['sage/rings/polynomial/polydict.pyx']),
|
sources = ['sage/rings/polynomial/polydict.pyx']),
|
||||||
|
|
||||||
Extension('sage.rings.polynomial.polynomial_complex_arb',
|
Extension('sage.rings.polynomial.polynomial_complex_arb',
|
||||||
|
@ -170,9 +170,9 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
|
|
||||||
Extension('sage.rings.polynomial.polynomial_compiled',
|
Extension('sage.rings.polynomial.polynomial_compiled',
|
||||||
sources = ['sage/rings/polynomial/polynomial_compiled.pyx']),
|
sources = ['sage/rings/polynomial/polynomial_compiled.pyx']),
|
||||||
diff -du src/setup.py.orig src/setup.py
|
diff -up src/setup.py.orig src/setup.py
|
||||||
--- src/setup.py.orig 2018-10-25 14:05:20.779815082 -0600
|
--- src/setup.py.orig 2019-01-16 09:45:32.570933224 -0700
|
||||||
+++ src/setup.py 2018-10-25 16:16:46.619825283 -0600
|
+++ src/setup.py 2019-01-16 09:47:07.805224279 -0700
|
||||||
@@ -85,6 +85,7 @@ except KeyError:
|
@@ -85,6 +85,7 @@ except KeyError:
|
||||||
|
|
||||||
# search for dependencies and add to gcc -I<path>
|
# search for dependencies and add to gcc -I<path>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
diff -up src/sage/interfaces/jmoldata.py.orig src/sage/interfaces/jmoldata.py
|
diff -up src/sage/interfaces/jmoldata.py.orig src/sage/interfaces/jmoldata.py
|
||||||
--- src/sage/interfaces/jmoldata.py.orig 2018-10-17 17:13:47.000000000 -0600
|
--- src/sage/interfaces/jmoldata.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/interfaces/jmoldata.py 2018-10-25 13:22:07.965272901 -0600
|
+++ src/sage/interfaces/jmoldata.py 2019-01-16 09:43:40.755939704 -0700
|
||||||
@@ -148,8 +148,6 @@ class JmolData(SageObject):
|
@@ -148,8 +148,6 @@ class JmolData(SageObject):
|
||||||
sage: print(os.path.exists(testfile)) # optional -- java
|
sage: print(os.path.exists(testfile)) # optional -- java
|
||||||
True
|
True
|
||||||
|
|
21
sagemath-latte.patch
Normal file
21
sagemath-latte.patch
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py
|
||||||
|
--- src/sage/interfaces/latte.py.orig 2019-01-16 09:44:45.946769879 -0700
|
||||||
|
+++ src/sage/interfaces/latte.py 2019-01-16 09:47:33.355765786 -0700
|
||||||
|
@@ -112,7 +112,7 @@ def count(arg, ehrhart_polynomial=False,
|
||||||
|
# Check that LattE is present
|
||||||
|
Latte().require()
|
||||||
|
|
||||||
|
- args = ['count']
|
||||||
|
+ args = ['latte-count']
|
||||||
|
if ehrhart_polynomial and multivariate_generating_function:
|
||||||
|
raise ValueError
|
||||||
|
if ehrhart_polynomial:
|
||||||
|
@@ -305,7 +305,7 @@ def integrate(arg, polynomial=None, algo
|
||||||
|
# Check that LattE is present
|
||||||
|
Latte().require()
|
||||||
|
|
||||||
|
- args = ['integrate']
|
||||||
|
+ args = ['latte-integrate']
|
||||||
|
|
||||||
|
got_polynomial = True if polynomial is not None else False
|
||||||
|
|
|
@ -1,20 +1,12 @@
|
||||||
diff -up src/sage/libs/lcalc/lcalc_Lfunction.pxd.orig src/sage/libs/lcalc/lcalc_Lfunction.pxd
|
diff -up src/module_list.py.orig src/module_list.py
|
||||||
--- src/sage/libs/lcalc/lcalc_Lfunction.pxd.orig 2018-05-05 16:21:24.000000000 -0600
|
--- src/module_list.py.orig 2019-01-16 09:42:41.397004883 -0700
|
||||||
+++ src/sage/libs/lcalc/lcalc_Lfunction.pxd 2018-05-22 13:31:10.717337490 -0600
|
+++ src/module_list.py 2019-01-16 09:45:43.332740109 -0700
|
||||||
@@ -1,6 +1,6 @@
|
@@ -513,7 +513,7 @@ ext_modules = [
|
||||||
# Lcalc requires GNU extensions, it does not strictly conform to any
|
Extension('sage.libs.lcalc.lcalc_Lfunction',
|
||||||
# C++ standard: https://trac.sagemath.org/ticket/23341
|
sources = ['sage/libs/lcalc/lcalc_Lfunction.pyx'],
|
||||||
-# distutils: extra_compile_args = -std=gnu++98
|
libraries = ['m', 'ntl', 'Lfunction'],
|
||||||
+# distutils: extra_compile_args = -std=gnu++11
|
- extra_compile_args=["-O3", "-ffast-math"],
|
||||||
|
+ extra_compile_args=["-std=gnu++11", "-ffast-math"],
|
||||||
|
language = 'c++'),
|
||||||
|
|
||||||
cdef extern from "lcalc_sage.h":
|
Extension('sage.libs.libecm',
|
||||||
ctypedef struct doublevec "std::vector<double>":
|
|
||||||
diff -up src/sage/libs/lcalc/lcalc_sage.h.orig src/sage/libs/lcalc/lcalc_sage.h
|
|
||||||
--- src/sage/libs/lcalc/lcalc_sage.h.orig 2018-05-05 16:21:24.000000000 -0600
|
|
||||||
+++ src/sage/libs/lcalc/lcalc_sage.h 2018-05-22 13:30:32.012839737 -0600
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-#include "libLfunction/L.h"
|
|
||||||
+#include "Lfunction/L.h"
|
|
||||||
|
|
||||||
int *new_ints(int l)
|
|
||||||
{
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
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 2018-10-17 17:13:36.000000000 -0600
|
--- src/sage/env.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/env.py 2018-10-25 14:10:21.564960823 -0600
|
+++ src/sage/env.py 2019-01-04 11:08:22.825475344 -0700
|
||||||
@@ -164,7 +164,7 @@ _add_variable_or_fallback('CONWAY_POLYNO
|
@@ -164,7 +164,7 @@ _add_variable_or_fallback('CONWAY_POLYNO
|
||||||
_add_variable_or_fallback('GRAPHS_DATA_DIR', opj('$SAGE_SHARE','graphs'))
|
_add_variable_or_fallback('GRAPHS_DATA_DIR', opj('$SAGE_SHARE','graphs'))
|
||||||
_add_variable_or_fallback('ELLCURVE_DATA_DIR',opj('$SAGE_SHARE','ellcurves'))
|
_add_variable_or_fallback('ELLCURVE_DATA_DIR',opj('$SAGE_SHARE','ellcurves'))
|
||||||
|
@ -11,8 +11,8 @@ diff -up src/sage/env.py.orig src/sage/env.py
|
||||||
_add_variable_or_fallback('COMBINATORIAL_DESIGN_DATA_DIR', opj('$SAGE_SHARE', 'combinatorial_designs'))
|
_add_variable_or_fallback('COMBINATORIAL_DESIGN_DATA_DIR', opj('$SAGE_SHARE', 'combinatorial_designs'))
|
||||||
_add_variable_or_fallback('CREMONA_MINI_DATA_DIR', opj('$SAGE_SHARE', 'cremona'))
|
_add_variable_or_fallback('CREMONA_MINI_DATA_DIR', opj('$SAGE_SHARE', 'cremona'))
|
||||||
diff -up src/sage/libs/gap/test/main.c.orig src/sage/libs/gap/test/main.c
|
diff -up src/sage/libs/gap/test/main.c.orig src/sage/libs/gap/test/main.c
|
||||||
--- src/sage/libs/gap/test/main.c.orig 2018-10-17 17:13:52.000000000 -0600
|
--- src/sage/libs/gap/test/main.c.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/libs/gap/test/main.c 2018-10-25 14:05:51.458727612 -0600
|
+++ src/sage/libs/gap/test/main.c 2019-01-04 11:08:22.842475024 -0700
|
||||||
@@ -22,7 +22,7 @@ void eval(char* cmd) {
|
@@ -22,7 +22,7 @@ void eval(char* cmd) {
|
||||||
libgap_start_interaction(cmd);
|
libgap_start_interaction(cmd);
|
||||||
|
|
||||||
|
@ -23,9 +23,9 @@ diff -up src/sage/libs/gap/test/main.c.orig src/sage/libs/gap/test/main.c
|
||||||
char* out = libgap_get_output();
|
char* out = libgap_get_output();
|
||||||
libgap_exit();
|
libgap_exit();
|
||||||
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 2018-10-25 13:50:51.168295628 -0600
|
--- src/sage/libs/gap/util.pyx.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/libs/gap/util.pyx 2018-10-25 14:05:51.458727612 -0600
|
+++ src/sage/libs/gap/util.pyx 2019-01-04 11:08:22.843475005 -0700
|
||||||
@@ -25,6 +25,8 @@ from sage.cpython.string cimport str_to_
|
@@ -27,6 +27,8 @@ from sage.cpython.string cimport str_to_
|
||||||
from sage.interfaces.gap_workspace import prepare_workspace_dir
|
from sage.interfaces.gap_workspace import prepare_workspace_dir
|
||||||
from sage.env import SAGE_LOCAL, GAP_ROOT_DIR
|
from sage.env import SAGE_LOCAL, GAP_ROOT_DIR
|
||||||
|
|
||||||
|
@ -34,16 +34,16 @@ diff -up src/sage/libs/gap/util.pyx.orig src/sage/libs/gap/util.pyx
|
||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
### Hooking into the GAP memory management #################################
|
### Hooking into the GAP memory management #################################
|
||||||
@@ -164,7 +166,7 @@ def gap_root():
|
@@ -185,7 +187,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
|
||||||
- '/home/vbraun/opt/sage-5.3.rc0/local/gap/latest'
|
- '/home/vbraun/opt/sage-5.3.rc0/local/gap/latest'
|
||||||
+ '/usr/lib/gap'
|
+ '/usr/lib/gap'
|
||||||
"""
|
"""
|
||||||
import os.path
|
try:
|
||||||
if os.path.exists(GAP_ROOT_DIR):
|
if os.path.exists(GAP_ROOT_DIR):
|
||||||
@@ -232,6 +234,7 @@ cdef initialize():
|
@@ -251,6 +253,7 @@ cdef initialize():
|
||||||
libgap_initialize(argc, argv)
|
libgap_initialize(argc, argv)
|
||||||
gap_error_msg = char_to_str(libgap_get_output())
|
gap_error_msg = char_to_str(libgap_get_output())
|
||||||
libgap_finish_interaction()
|
libgap_finish_interaction()
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
diff -up src/bin/sage-maxima.lisp.orig src/bin/sage-maxima.lisp
|
diff -up src/bin/sage-maxima.lisp.orig src/bin/sage-maxima.lisp
|
||||||
--- src/bin/sage-maxima.lisp.orig 2018-10-17 17:13:34.000000000 -0600
|
--- src/bin/sage-maxima.lisp.orig 2018-12-22 16:37:06.000000000 -0700
|
||||||
+++ src/bin/sage-maxima.lisp 2018-10-25 13:14:53.465538639 -0600
|
+++ src/bin/sage-maxima.lisp 2019-01-16 09:43:18.550338178 -0700
|
||||||
@@ -4,3 +4,8 @@
|
@@ -4,3 +4,8 @@
|
||||||
|
|
||||||
(setf *prompt-prefix* "<sage-display>")
|
(setf *prompt-prefix* "<sage-display>")
|
||||||
|
@ -11,8 +11,8 @@ diff -up src/bin/sage-maxima.lisp.orig src/bin/sage-maxima.lisp
|
||||||
+ *standard-input* (open "/dev/stdin" :direction :input)
|
+ *standard-input* (open "/dev/stdin" :direction :input)
|
||||||
+ *standard-output* (open "/dev/stdout" :direction :output))
|
+ *standard-output* (open "/dev/stdout" :direction :output))
|
||||||
diff -up src/sage/interfaces/maxima.py.orig src/sage/interfaces/maxima.py
|
diff -up src/sage/interfaces/maxima.py.orig src/sage/interfaces/maxima.py
|
||||||
--- src/sage/interfaces/maxima.py.orig 2018-10-17 17:13:51.000000000 -0600
|
--- src/sage/interfaces/maxima.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/interfaces/maxima.py 2018-10-25 13:16:00.326343444 -0600
|
+++ src/sage/interfaces/maxima.py 2019-01-16 09:43:18.552338143 -0700
|
||||||
@@ -546,7 +546,7 @@ class Maxima(MaximaAbstract, Expect):
|
@@ -546,7 +546,7 @@ class Maxima(MaximaAbstract, Expect):
|
||||||
Expect.__init__(self,
|
Expect.__init__(self,
|
||||||
name = 'maxima',
|
name = 'maxima',
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
diff -up src/sage/libs/mpfr/__init__.pxd.orig src/sage/libs/mpfr/__init__.pxd
|
diff -up src/sage/libs/mpfr/__init__.pxd.orig src/sage/libs/mpfr/__init__.pxd
|
||||||
--- src/sage/libs/mpfr/__init__.pxd.orig 2018-08-03 05:10:08.000000000 -0600
|
--- src/sage/libs/mpfr/__init__.pxd.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/libs/mpfr/__init__.pxd 2018-08-29 10:41:34.027286042 -0600
|
+++ src/sage/libs/mpfr/__init__.pxd 2019-01-04 11:10:25.215172876 -0700
|
||||||
@@ -96,7 +96,6 @@ cdef extern from "mpfr.h":
|
@@ -96,7 +96,6 @@ cdef extern from "mpfr.h":
|
||||||
int mpfr_sqrt(mpfr_t rop, mpfr_t op, mpfr_rnd_t rnd)
|
int mpfr_sqrt(mpfr_t rop, mpfr_t op, mpfr_rnd_t rnd)
|
||||||
int mpfr_sqrt_ui(mpfr_t rop, unsigned long int op, mpfr_rnd_t rnd)
|
int mpfr_sqrt_ui(mpfr_t rop, unsigned long int op, mpfr_rnd_t rnd)
|
||||||
|
@ -10,9 +10,9 @@ diff -up src/sage/libs/mpfr/__init__.pxd.orig src/sage/libs/mpfr/__init__.pxd
|
||||||
int mpfr_pow(mpfr_t rop, mpfr_t op1, mpfr_t op2, mpfr_rnd_t rnd)
|
int mpfr_pow(mpfr_t rop, mpfr_t op1, mpfr_t op2, mpfr_rnd_t rnd)
|
||||||
int mpfr_pow_ui(mpfr_t rop, mpfr_t op1, unsigned long int op2, mpfr_rnd_t rnd)
|
int mpfr_pow_ui(mpfr_t rop, mpfr_t op1, unsigned long int op2, mpfr_rnd_t rnd)
|
||||||
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-08-03 05:10:09.000000000 -0600
|
--- src/sage/rings/complex_mpc.pyx.orig 2018-12-22 16:37:09.000000000 -0700
|
||||||
+++ src/sage/rings/complex_mpc.pyx 2018-08-29 10:41:34.027286042 -0600
|
+++ src/sage/rings/complex_mpc.pyx 2019-01-04 11:10:25.217172839 -0700
|
||||||
@@ -2225,7 +2225,7 @@ cdef class MPComplexNumber(sage.structur
|
@@ -2222,7 +2222,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()
|
||||||
|
@ -22,8 +22,8 @@ diff -up src/sage/rings/complex_mpc.pyx.orig src/sage/rings/complex_mpc.pyx
|
||||||
cdef MPComplexNumber z
|
cdef MPComplexNumber z
|
||||||
z = self._new()
|
z = self._new()
|
||||||
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-08-03 05:10:09.000000000 -0600
|
--- src/sage/rings/complex_number.pyx.orig 2018-12-22 16:37:09.000000000 -0700
|
||||||
+++ src/sage/rings/complex_number.pyx 2018-08-29 10:41:34.027286042 -0600
|
+++ src/sage/rings/complex_number.pyx 2019-01-04 11:10:25.218172820 -0700
|
||||||
@@ -2276,7 +2276,7 @@ cdef class ComplexNumber(sage.structure.
|
@@ -2276,7 +2276,7 @@ cdef class ComplexNumber(sage.structure.
|
||||||
rho = abs(self)
|
rho = abs(self)
|
||||||
arg = self.argument() / n
|
arg = self.argument() / n
|
||||||
|
@ -34,9 +34,9 @@ diff -up src/sage/rings/complex_number.pyx.orig src/sage/rings/complex_number.py
|
||||||
mpfr_sin_cos(z.__im, z.__re, arg.value, rnd)
|
mpfr_sin_cos(z.__im, z.__re, arg.value, rnd)
|
||||||
mpfr_mul(z.__re, z.__re, r, rnd)
|
mpfr_mul(z.__re, z.__re, r, rnd)
|
||||||
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-08-03 05:10:09.000000000 -0600
|
--- src/sage/rings/real_mpfr.pyx.orig 2019-01-04 12:22:18.194171036 -0700
|
||||||
+++ src/sage/rings/real_mpfr.pyx 2018-08-29 10:41:34.028286030 -0600
|
+++ src/sage/rings/real_mpfr.pyx 2019-01-16 09:46:36.794780751 -0700
|
||||||
@@ -5370,7 +5370,7 @@ cdef class RealNumber(sage.structure.ele
|
@@ -5384,7 +5384,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-10-17 17:13:47.000000000 -0600
|
--- src/sage/graphs/graph_generators.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/graphs/graph_generators.py 2018-10-25 14:04:50.496901422 -0600
|
+++ src/sage/graphs/graph_generators.py 2019-01-16 09:45:21.999122930 -0700
|
||||||
@@ -911,7 +911,7 @@ class GraphGenerators():
|
@@ -912,7 +912,7 @@ class GraphGenerators():
|
||||||
else:
|
else:
|
||||||
enc_kwargs = {'encoding': 'latin-1'}
|
enc_kwargs = {'encoding': 'latin-1'}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
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 2018-05-16 14:13:22.021406801 -0600
|
--- src/module_list.py.orig 2019-01-16 09:47:07.804224297 -0700
|
||||||
+++ src/module_list.py 2018-05-16 14:15:57.654208949 -0600
|
+++ src/module_list.py 2019-01-16 09:47:21.611976523 -0700
|
||||||
@@ -12,7 +12,7 @@ SAGE_INC = '/usr/include'
|
@@ -11,7 +11,7 @@ SAGE_INC = '/usr/include'
|
||||||
import pkgconfig
|
import pkgconfig
|
||||||
|
|
||||||
# CBLAS can be one of multiple implementations
|
# CBLAS can be one of multiple implementations
|
||||||
|
@ -10,7 +10,7 @@ diff -up src/module_list.py.orig src/module_list.py
|
||||||
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']
|
||||||
@@ -21,11 +21,9 @@ cblas_include_dirs = cblas_pc['include_d
|
@@ -20,11 +20,9 @@ cblas_include_dirs = cblas_pc['include_d
|
||||||
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,9 +26,9 @@ 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 2018-05-16 13:16:29.207708998 -0600
|
--- src/sage/misc/cython.py.orig 2019-01-04 10:27:47.031123276 -0700
|
||||||
+++ src/sage/misc/cython.py 2018-05-16 14:15:57.656208921 -0600
|
+++ src/sage/misc/cython.py 2019-01-04 11:18:40.060863533 -0700
|
||||||
@@ -40,7 +40,7 @@ from sage.misc.sage_ostools import resto
|
@@ -39,7 +39,7 @@ from sage.misc.sage_ostools import resto
|
||||||
|
|
||||||
|
|
||||||
# CBLAS can be one of multiple implementations
|
# CBLAS can be one of multiple implementations
|
||||||
|
|
|
@ -1,53 +1,7 @@
|
||||||
--- build/pkgs/sagenb/src/sagenb/flask_version/worksheet_listing.py.orig 2018-01-24 04:17:47.000000000 -0700
|
diff -up build/pkgs/sagenb/src/sagenb/misc/sphinxify.py.orig build/pkgs/sagenb/src/sagenb/misc/sphinxify.py
|
||||||
+++ build/pkgs/sagenb/src/sagenb/flask_version/worksheet_listing.py 2018-10-25 13:25:53.284617298 -0600
|
--- build/pkgs/sagenb/src/sagenb/misc/sphinxify.py.orig 2018-11-05 08:45:39.000000000 -0700
|
||||||
@@ -2,7 +2,12 @@
|
+++ build/pkgs/sagenb/src/sagenb/misc/sphinxify.py 2019-01-04 10:34:03.550082474 -0700
|
||||||
"""
|
@@ -480,7 +480,7 @@ skip_picklability_check_modules = [
|
||||||
from __future__ import absolute_import
|
|
||||||
import os
|
|
||||||
-import urllib, urlparse
|
|
||||||
+try:
|
|
||||||
+ from urllib.request import urlopen
|
|
||||||
+ from urllib.parse import urlparse
|
|
||||||
+except ImportError:
|
|
||||||
+ from urlparse import urlparse
|
|
||||||
+ from urllib import urlopen
|
|
||||||
from flask import Blueprint, url_for, render_template, request, session, redirect, g, current_app
|
|
||||||
from .decorators import login_required, guest_or_login_required, with_lock
|
|
||||||
from flask_babel import Babel, gettext, ngettext, lazy_gettext
|
|
||||||
--- build/pkgs/sagenb/src/sagenb/misc/sphinxify.py.orig 2018-06-10 13:56:16.000000000 -0600
|
|
||||||
+++ build/pkgs/sagenb/src/sagenb/misc/sphinxify.py 2018-10-25 13:29:39.187960000 -0600
|
|
||||||
@@ -19,6 +19,7 @@ AUTHORS:
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
import shutil
|
|
||||||
+import six.moves
|
|
||||||
from tempfile import mkdtemp
|
|
||||||
|
|
||||||
# We import Sphinx on demand, to reduce Sage startup time.
|
|
||||||
@@ -94,9 +95,8 @@ def sphinxify(docstring, format='html'):
|
|
||||||
suffix = '.txt'
|
|
||||||
output_name = base_name + suffix
|
|
||||||
|
|
||||||
- filed = open(rst_name, 'w')
|
|
||||||
- filed.write(docstring)
|
|
||||||
- filed.close()
|
|
||||||
+ with open(rst_name, 'w') as filed:
|
|
||||||
+ filed.write(docstring)
|
|
||||||
|
|
||||||
# Sphinx constructor: Sphinx(srcdir, confdir, outdir, doctreedir,
|
|
||||||
# buildername, confoverrides, status, warning, freshenv).
|
|
||||||
@@ -120,8 +120,8 @@ def sphinxify(docstring, format='html'):
|
|
||||||
sys.path = old_sys_path
|
|
||||||
|
|
||||||
#We need to remove "_" from __builtin__ that the gettext module installs
|
|
||||||
- import __builtin__
|
|
||||||
- __builtin__.__dict__.pop('_', None)
|
|
||||||
+ from six.moves import builtins
|
|
||||||
+ builtins.__dict__.pop('_', None)
|
|
||||||
|
|
||||||
if os.path.exists(output_name):
|
|
||||||
output = open(output_name, 'r').read()
|
|
||||||
@@ -481,7 +481,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',
|
||||||
|
@ -56,7 +10,7 @@
|
||||||
]
|
]
|
||||||
|
|
||||||
def check_nested_class_picklability(app, what, name, obj, skip, options):
|
def check_nested_class_picklability(app, what, name, obj, skip, options):
|
||||||
@@ -532,7 +532,7 @@ def skip_member(app, what, name, obj, sk
|
@@ -531,7 +531,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)
|
||||||
|
|
||||||
|
@ -65,277 +19,42 @@
|
||||||
return True
|
return True
|
||||||
|
|
||||||
if (hasattr(obj, '__name__') and obj.__name__.find('.') != -1 and
|
if (hasattr(obj, '__name__') and obj.__name__.find('.') != -1 and
|
||||||
--- build/pkgs/sagenb/src/sagenb/misc/support.py.orig 2018-05-22 10:01:48.000000000 -0600
|
diff -up build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py.orig build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py
|
||||||
+++ build/pkgs/sagenb/src/sagenb/misc/support.py 2018-10-25 13:30:02.499892169 -0600
|
--- build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py.orig 2018-11-05 08:45:39.000000000 -0700
|
||||||
@@ -17,7 +17,7 @@ import sys
|
+++ build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py 2019-01-04 10:39:26.659076379 -0700
|
||||||
import pydoc
|
|
||||||
|
|
||||||
from six import iteritems
|
|
||||||
-import __builtin__
|
|
||||||
+import builtins
|
|
||||||
|
|
||||||
try:
|
|
||||||
from cPickle import PicklingError
|
|
||||||
@@ -467,7 +467,7 @@ def cython_import(filename, verbose=Fals
|
|
||||||
use_cache=use_cache,
|
|
||||||
create_local_c_file=create_local_c_file)
|
|
||||||
sys.path.append(build_dir)
|
|
||||||
- return __builtin__.__import__(name)
|
|
||||||
+ return builtins.__import__(name)
|
|
||||||
|
|
||||||
|
|
||||||
def cython_import_all(filename, globals, verbose=False, compile_message=False,
|
|
||||||
--- build/pkgs/sagenb/src/sagenb/notebook/cell.py.orig 2018-08-29 08:44:38.823169061 -0600
|
|
||||||
+++ build/pkgs/sagenb/src/sagenb/notebook/cell.py 2018-10-25 13:30:55.707737342 -0600
|
|
||||||
@@ -20,6 +20,7 @@ import shutil
|
|
||||||
import textwrap
|
|
||||||
import time
|
|
||||||
from cgi import escape
|
|
||||||
+from sys import maxsize
|
|
||||||
|
|
||||||
from sagenb.misc.misc import (word_wrap, strip_string_literals,
|
|
||||||
set_restrictive_permissions, unicode_str,
|
|
||||||
@@ -701,9 +702,8 @@ class Cell(Cell_generic):
|
|
||||||
|
|
||||||
# start with a random integer so that evaluations of the cell
|
|
||||||
# from different runs have different version numbers.
|
|
||||||
- from sys import maxint
|
|
||||||
from random import randint
|
|
||||||
- self._version = randint(0,maxint)
|
|
||||||
+ self._version = randint(0,maxsize)
|
|
||||||
|
|
||||||
def __repr__(self):
|
|
||||||
"""
|
|
||||||
@@ -2189,9 +2189,8 @@ class Cell(Cell_generic):
|
|
||||||
except AttributeError:
|
|
||||||
# start with a random integer so that evaluations of the cell
|
|
||||||
# from different runs have different version numbers.
|
|
||||||
- from sys import maxint
|
|
||||||
from random import randint
|
|
||||||
- self._version = randint(0,maxint)
|
|
||||||
+ self._version = randint(0,maxsize)
|
|
||||||
return self._version
|
|
||||||
|
|
||||||
def time(self):
|
|
||||||
--- build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py.orig 2018-01-24 04:17:38.000000000 -0700
|
|
||||||
+++ build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py 2018-10-25 13:35:09.227001150 -0600
|
|
||||||
@@ -7,7 +7,7 @@ file.
|
|
||||||
|
|
||||||
This takes an HTML document, i.e., Sage documentation, and returns it in
|
|
||||||
the editable format (notebook worksheet format with evaluable examples). It
|
|
||||||
-also returns a string representing the CSS link for the document. The SGML
|
|
||||||
+also returns a string representing the CSS link for the document. The HTML
|
|
||||||
parser is setup to return only the body of the HTML documentation page and
|
|
||||||
to re-format Sage examples and type-setting.
|
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ This module contains three classes:
|
@@ -25,7 +25,7 @@ This module contains three classes:
|
||||||
|
|
||||||
.. NOTE::
|
.. NOTE::
|
||||||
|
|
||||||
- This extension of sgmllib.SGMLParser was partly inspired by Mark
|
- This extension of htmllib.HTMLParser was partly inspired by Mark
|
||||||
+ This extension of html.parser.HTMLParser was partly inspired by Mark
|
+ This extension of html.parser.HTMLParser was partly inspired by Mark
|
||||||
Pilgrim's 'Dive Into Python' examples.
|
Pilgrim's 'Dive Into Python' examples.
|
||||||
|
|
||||||
AUTHORS:
|
AUTHORS:
|
||||||
@@ -111,14 +111,14 @@ WARNING:
|
@@ -155,7 +155,7 @@ class genericHTMLProcessor(HTMLParser):
|
||||||
#############################################################################
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
-from sgmllib import SGMLParser
|
|
||||||
+from html.parser import HTMLParser
|
|
||||||
from htmlentitydefs import entitydefs
|
|
||||||
|
|
||||||
from flask import Markup
|
|
||||||
from sagenb.misc.misc import unicode_str
|
|
||||||
|
|
||||||
|
|
||||||
-class genericHTMLProcessor(SGMLParser):
|
|
||||||
+class genericHTMLProcessor(HTMLParser):
|
|
||||||
r"""
|
|
||||||
This class gathers the methods that are common to both classes
|
|
||||||
:class:`sagenb.notebook.SphinxHTMLProcessor` and
|
|
||||||
@@ -155,16 +155,16 @@ class genericHTMLProcessor(SGMLParser):
|
|
||||||
u'<h1 class="title">Title</h1>\n\n<p>nSome text</p>\n\n\n\n'
|
u'<h1 class="title">Title</h1>\n\n<p>nSome text</p>\n\n\n\n'
|
||||||
|
|
||||||
"""
|
"""
|
||||||
- # self.feed() is a SGMLParser method and starts everything
|
- # self.feed() is a HTMLParser method and starts everything
|
||||||
+ # self.feed() is an HTMLParser method and starts everything
|
+ # self.feed() is an HTMLParser method and starts everything
|
||||||
# off; Most of the functions here are extensions to
|
# off; Most of the functions here are extensions to
|
||||||
- # SGMLParser, and may never actually be visibly called here.
|
# HTMLParser, and may never actually be visibly called here.
|
||||||
+ # HTMLParser, and may never actually be visibly called here.
|
|
||||||
|
|
||||||
# This module works with unicode literals. In case that input data is
|
diff -up build/pkgs/sagenb/src/sagenb/notebook/wiki2html.py.orig build/pkgs/sagenb/src/sagenb/notebook/wiki2html.py
|
||||||
# ascii, exceptions may occur. So, input data must be converted to
|
--- build/pkgs/sagenb/src/sagenb/notebook/wiki2html.py.orig 2018-11-05 08:45:39.000000000 -0700
|
||||||
# unicode if it were not.
|
+++ build/pkgs/sagenb/src/sagenb/notebook/wiki2html.py 2019-01-05 10:36:28.072250833 -0700
|
||||||
doc_in = unicode_str(doc_in)
|
@@ -59,7 +59,7 @@ class Parser:
|
||||||
- self.feed(doc_in) #SGMLParser call
|
'parent': r'(?:%s)?' % re.escape(PARENT_PREFIX),
|
||||||
- self.close() #SGMLParser call
|
}
|
||||||
+ self.feed(doc_in) #HTMLParser call
|
url_rule = r'%(url_guard)s(%(url)s)\:([^\s\<%(punct)s]|([%(punct)s][^\s\<%(punct)s]))+' % {
|
||||||
+ self.close() #HTMLParser call
|
- 'url_guard': ur'(^|(?<!\w))',
|
||||||
self.hand_off_temp_pieces('to_doc_pieces')
|
+ 'url_guard': r'(^|(?<!\w))',
|
||||||
return self.all_pieces.replace('\\(', '').replace('\\)', '').replace('\\[', '').replace('\\]', '')
|
'url': url_pattern,
|
||||||
|
'punct': punct_pattern,
|
||||||
@@ -390,7 +390,7 @@ class genericHTMLProcessor(SGMLParser):
|
}
|
||||||
else:
|
diff -up build/pkgs/sagetex/src/extractsagecode.py.orig build/pkgs/sagetex/src/extractsagecode.py
|
||||||
# first occurrence of an output string
|
|
||||||
# write /// denoting output
|
|
||||||
- if output_flag == False:
|
|
||||||
+ if output_flag is False:
|
|
||||||
piece += '///'
|
|
||||||
if p:
|
|
||||||
piece += '\n' + p
|
|
||||||
@@ -400,7 +400,29 @@ class genericHTMLProcessor(SGMLParser):
|
|
||||||
piece += p
|
|
||||||
piece += '\n}}}\n\n'
|
|
||||||
return Markup(piece).unescape()
|
|
||||||
-
|
|
||||||
+
|
|
||||||
+ def handle_starttag(self, tag, attrs):
|
|
||||||
+ """
|
|
||||||
+ introduced when replacing SGMLParser by HTMLParser
|
|
||||||
+ """
|
|
||||||
+ try:
|
|
||||||
+ method = getattr(self, 'start_' + tag)
|
|
||||||
+ except AttributeError:
|
|
||||||
+ self.unknown_starttag(tag, attrs)
|
|
||||||
+ else:
|
|
||||||
+ method(attrs)
|
|
||||||
+
|
|
||||||
+ def handle_endtag(self, tag):
|
|
||||||
+ """
|
|
||||||
+ introduced when replacing SGMLParser by HTMLParser
|
|
||||||
+ """
|
|
||||||
+ try:
|
|
||||||
+ method = getattr(self, 'end_' + tag)
|
|
||||||
+ except AttributeError:
|
|
||||||
+ self.unknown_endtag(tag)
|
|
||||||
+ else:
|
|
||||||
+ method()
|
|
||||||
+
|
|
||||||
##############################################
|
|
||||||
## General tag handlers
|
|
||||||
## These just append their HTML to self.temp_pieces.
|
|
||||||
@@ -473,6 +495,7 @@ class genericHTMLProcessor(SGMLParser):
|
|
||||||
"""
|
|
||||||
if self.keep_data:
|
|
||||||
self.temp_pieces.append(data)
|
|
||||||
+
|
|
||||||
def handle_charref(self, ref):
|
|
||||||
r"""
|
|
||||||
INPUT:
|
|
||||||
@@ -540,6 +563,7 @@ class genericHTMLProcessor(SGMLParser):
|
|
||||||
"""
|
|
||||||
if self.keep_data:
|
|
||||||
self.temp_pieces.append("<!--%(data)s-->" % locals())
|
|
||||||
+
|
|
||||||
def handle_pi(self, text):
|
|
||||||
r"""
|
|
||||||
Handle processing instructions
|
|
||||||
@@ -585,7 +609,7 @@ class genericHTMLProcessor(SGMLParser):
|
|
||||||
"""
|
|
||||||
if self.keep_data:
|
|
||||||
self.temp_pieces.append("<!%(text)s>" % locals())
|
|
||||||
-
|
|
||||||
+
|
|
||||||
##############################################
|
|
||||||
## Specific tag handlers
|
|
||||||
def start_body(self, attrs):
|
|
||||||
@@ -634,6 +658,7 @@ class genericHTMLProcessor(SGMLParser):
|
|
||||||
['bunch ', 'of ', 'tmp ', 'strings']
|
|
||||||
"""
|
|
||||||
pass
|
|
||||||
+
|
|
||||||
def end_html(self):
|
|
||||||
r"""
|
|
||||||
INPUT:
|
|
||||||
@@ -658,7 +683,7 @@ class SphinxHTMLProcessor(genericHTMLPro
|
|
||||||
def reset(self):
|
|
||||||
r"""
|
|
||||||
Initialize necessary variables. Called by
|
|
||||||
- :meth:`SGMLParser.__init__`.
|
|
||||||
+ :meth:`HTMLParser.__init__`.
|
|
||||||
|
|
||||||
EXAMPLES::
|
|
||||||
|
|
||||||
@@ -685,8 +710,8 @@ class SphinxHTMLProcessor(genericHTMLPro
|
|
||||||
|
|
||||||
# counters
|
|
||||||
self.cellcount = 0
|
|
||||||
-
|
|
||||||
- SGMLParser.reset(self)
|
|
||||||
+
|
|
||||||
+ HTMLParser.reset(self)
|
|
||||||
|
|
||||||
def false_positive_input_output_cell(self, cell_piece):
|
|
||||||
r"""
|
|
||||||
@@ -733,7 +758,7 @@ class SphinxHTMLProcessor(genericHTMLPro
|
|
||||||
Once we hit the <div> tag in a highlighted block,
|
|
||||||
hand of all of the pieces we've encountered so far
|
|
||||||
and ignore the tag.
|
|
||||||
-
|
|
||||||
+
|
|
||||||
INPUT:
|
|
||||||
|
|
||||||
- ``attrs`` - list of tuple
|
|
||||||
@@ -835,7 +860,7 @@ class SphinxHTMLProcessor(genericHTMLPro
|
|
||||||
self.hand_off_temp_pieces('to_cell_pieces')
|
|
||||||
return
|
|
||||||
self.temp_pieces.append("</div>")
|
|
||||||
-
|
|
||||||
+
|
|
||||||
def start_pre(self, attrs):
|
|
||||||
r"""
|
|
||||||
Ignore tag <pre> when inside highligh div.
|
|
||||||
@@ -1000,6 +1025,7 @@ class SphinxHTMLProcessor(genericHTMLPro
|
|
||||||
if self.in_highlight_div:
|
|
||||||
return
|
|
||||||
self.unknown_starttag('span', attrs)
|
|
||||||
+
|
|
||||||
def end_span(self):
|
|
||||||
r"""
|
|
||||||
Ignore all spans that occur within highlighted blocks
|
|
||||||
@@ -1095,7 +1121,7 @@ class docutilsHTMLProcessor(genericHTMLP
|
|
||||||
def reset(self):
|
|
||||||
r"""
|
|
||||||
Initialize necessary variables. Called by
|
|
||||||
- :meth:`SGMLParser.__init__`.
|
|
||||||
+ :meth:`HTMLParser.__init__`.
|
|
||||||
|
|
||||||
EXAMPLES::
|
|
||||||
|
|
||||||
@@ -1125,8 +1151,8 @@ class docutilsHTMLProcessor(genericHTMLP
|
|
||||||
|
|
||||||
# counters
|
|
||||||
self.cellcount = 0
|
|
||||||
-
|
|
||||||
- SGMLParser.reset(self)
|
|
||||||
+
|
|
||||||
+ HTMLParser.reset(self)
|
|
||||||
|
|
||||||
def false_positive_input_output_cell(self, cell_piece):
|
|
||||||
r"""
|
|
||||||
@@ -1162,7 +1188,7 @@ class docutilsHTMLProcessor(genericHTMLP
|
|
||||||
piece = piece.replace('}','} ')
|
|
||||||
piece += '\n</pre>'
|
|
||||||
return piece
|
|
||||||
-
|
|
||||||
+
|
|
||||||
#############################################
|
|
||||||
## Specific tag handlers
|
|
||||||
##
|
|
||||||
--- build/pkgs/sagenb/src/sagenb/notebook/notebook.py.orig 2018-05-22 10:16:28.000000000 -0600
|
|
||||||
+++ build/pkgs/sagenb/src/sagenb/notebook/notebook.py 2018-10-25 13:35:37.122921027 -0600
|
|
||||||
@@ -1268,7 +1268,7 @@ class Notebook(object):
|
|
||||||
W.set_not_computing()
|
|
||||||
|
|
||||||
def quit(self):
|
|
||||||
- for W in self.__worksheets.values():
|
|
||||||
+ for W in list(self.__worksheets.values()):
|
|
||||||
W.quit()
|
|
||||||
|
|
||||||
def update_worksheet_processes(self):
|
|
||||||
--- build/pkgs/sagetex/src/extractsagecode.py.orig 2015-08-26 17:28:42.000000000 -0600
|
--- build/pkgs/sagetex/src/extractsagecode.py.orig 2015-08-26 17:28:42.000000000 -0600
|
||||||
+++ build/pkgs/sagetex/src/extractsagecode.py 2018-10-25 13:36:23.465787905 -0600
|
+++ build/pkgs/sagetex/src/extractsagecode.py 2019-01-04 10:40:25.729978335 -0700
|
||||||
@@ -45,8 +45,8 @@ See the SageTeX documentation for more d
|
@@ -45,8 +45,8 @@ See the SageTeX documentation for more d
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -347,8 +66,9 @@
|
||||||
usage()
|
usage()
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
|
|
||||||
|
diff -up build/pkgs/sagetex/src/makestatic.py.orig build/pkgs/sagetex/src/makestatic.py
|
||||||
--- build/pkgs/sagetex/src/makestatic.py.orig 2015-08-26 17:28:42.000000000 -0600
|
--- build/pkgs/sagetex/src/makestatic.py.orig 2015-08-26 17:28:42.000000000 -0600
|
||||||
+++ build/pkgs/sagetex/src/makestatic.py 2018-10-25 13:36:41.193736977 -0600
|
+++ build/pkgs/sagetex/src/makestatic.py 2019-01-04 10:40:50.967509206 -0700
|
||||||
@@ -45,8 +45,8 @@ See the SageTeX documentation for more d
|
@@ -45,8 +45,8 @@ See the SageTeX documentation for more d
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -360,8 +80,9 @@
|
||||||
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
|
||||||
--- build/pkgs/sagetex/src/remote-sagetex.py.orig 2015-08-26 17:28:42.000000000 -0600
|
--- build/pkgs/sagetex/src/remote-sagetex.py.orig 2015-08-26 17:28:42.000000000 -0600
|
||||||
+++ build/pkgs/sagetex/src/remote-sagetex.py 2018-10-25 13:38:40.218395127 -0600
|
+++ build/pkgs/sagetex/src/remote-sagetex.py 2019-01-04 10:43:03.728041391 -0700
|
||||||
@@ -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/>.
|
||||||
|
@ -424,8 +145,9 @@
|
||||||
|
|
||||||
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.orig 2015-08-26 17:28:42.000000000 -0600
|
||||||
+++ build/pkgs/sagetex/src/run-sagetex-if-necessary.py 2018-10-25 13:39:39.506224849 -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:
|
@@ -58,7 +58,7 @@ with open(src + '.tex') as texf:
|
||||||
break
|
break
|
||||||
|
|
||||||
|
@ -465,8 +187,9 @@
|
||||||
else:
|
else:
|
||||||
- print 'Not necessary to run Sage on {0}.'.format(src)
|
- print 'Not necessary to run Sage on {0}.'.format(src)
|
||||||
+ 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.orig 2015-08-26 17:28:42.000000000 -0600
|
||||||
+++ build/pkgs/sagetex/src/sagetexparse.py 2018-10-25 13:40:02.522158738 -0600
|
+++ build/pkgs/sagetex/src/sagetexparse.py 2019-01-04 10:44:35.398337372 -0700
|
||||||
@@ -52,7 +52,7 @@ class SoutParser():
|
@@ -52,7 +52,7 @@ class SoutParser():
|
||||||
try:
|
try:
|
||||||
OneOrMore(parselabel).parseFile(fn)
|
OneOrMore(parselabel).parseFile(fn)
|
||||||
|
@ -476,8 +199,9 @@
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
def newlabel(self, s, l, t):
|
def newlabel(self, s, l, t):
|
||||||
self.label.append(t.result[1:-1])
|
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.orig 2015-08-26 17:28:42.000000000 -0600
|
||||||
+++ build/pkgs/sagetex/src/sagetex.py 2018-10-25 13:42:20.168763355 -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
|
@@ -73,10 +73,10 @@ from your current version of Sage; see
|
||||||
http://www.sagemath.org/doc/installation/sagetex.html.""".format(jobname,
|
http://www.sagemath.org/doc/installation/sagetex.html.""".format(jobname,
|
||||||
version, pyversion)
|
version, pyversion)
|
||||||
|
@ -530,8 +254,9 @@
|
||||||
_p_.save(filename=newfilename, **kwargs)
|
_p_.save(filename=newfilename, **kwargs)
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
--- src/doc/common/conf.py.orig 2018-10-17 17:13:34.000000000 -0600
|
diff -up src/doc/common/conf.py.orig src/doc/common/conf.py
|
||||||
+++ src/doc/common/conf.py 2018-10-25 13:43:39.882534395 -0600
|
--- src/doc/common/conf.py.orig 2018-12-22 16:37:06.000000000 -0700
|
||||||
|
+++ src/doc/common/conf.py 2019-01-04 10:46:46.293895744 -0700
|
||||||
@@ -490,7 +490,7 @@ skip_picklability_check_modules = [
|
@@ -490,7 +490,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',
|
||||||
|
@ -550,48 +275,30 @@
|
||||||
return True
|
return True
|
||||||
|
|
||||||
objname = getattr(obj, "__name__", None)
|
objname = getattr(obj, "__name__", None)
|
||||||
--- src/sage/arith/long.pxd.orig 2018-10-17 17:13:35.000000000 -0600
|
diff -up src/sage/combinat/finite_state_machine.py.orig src/sage/combinat/finite_state_machine.py
|
||||||
+++ src/sage/arith/long.pxd 2018-10-25 13:46:00.073131738 -0600
|
--- src/sage/combinat/finite_state_machine.py.orig 2018-12-22 16:37:07.000000000 -0700
|
||||||
@@ -19,7 +19,7 @@ from cpython.object cimport Py_SIZE
|
+++ src/sage/combinat/finite_state_machine.py 2019-01-04 10:49:30.519802159 -0700
|
||||||
from cpython.int cimport PyInt_AS_LONG
|
@@ -934,7 +934,7 @@ import six
|
||||||
from cpython.long cimport PyLong_AsLong
|
from six.moves import range, zip_longest, zip
|
||||||
from cpython.number cimport PyNumber_Index, PyIndex_Check
|
|
||||||
-from cpython.longintrepr cimport PyLongObject, PyLong_SHIFT, digit
|
|
||||||
+from cpython.longintrepr cimport py_long, PyLong_SHIFT, digit
|
|
||||||
|
|
||||||
from sage.libs.gmp.mpz cimport mpz_fits_slong_p, mpz_get_si
|
|
||||||
from sage.rings.integer_fake cimport is_Integer, Integer_AS_MPZ
|
|
||||||
@@ -208,7 +208,7 @@ cdef inline bint integer_check_long_py(x
|
|
||||||
return 0
|
|
||||||
|
|
||||||
# x is a Python "long" (called "int" on Python 3)
|
|
||||||
- cdef const digit* D = (<PyLongObject*>x).ob_digit
|
|
||||||
+ cdef const digit* D = (<py_long>x).ob_digit
|
|
||||||
cdef Py_ssize_t size = Py_SIZE(x)
|
|
||||||
|
|
||||||
# We assume that PyLong_SHIFT is 15 on a 32-bit system and 30 on a
|
|
||||||
--- src/sage/combinat/finite_state_machine.py.orig 2018-10-17 17:13:35.000000000 -0600
|
|
||||||
+++ src/sage/combinat/finite_state_machine.py 2018-10-25 13:47:08.277935821 -0600
|
|
||||||
@@ -937,7 +937,7 @@ from six.moves import range
|
|
||||||
from six import itervalues
|
from six import itervalues
|
||||||
from six.moves import zip_longest
|
|
||||||
|
|
||||||
-import collections
|
-import collections
|
||||||
+import collections.abc
|
+import collections.abc
|
||||||
import itertools
|
import itertools
|
||||||
|
|
||||||
import sage
|
from sage.calculus.var import var
|
||||||
@@ -14140,7 +14140,7 @@ def is_FSMProcessIterator(PI):
|
@@ -14253,7 +14253,7 @@ def is_FSMProcessIterator(PI):
|
||||||
|
|
||||||
|
|
||||||
class FSMProcessIterator(sage.structure.sage_object.SageObject,
|
class FSMProcessIterator(SageObject,
|
||||||
- collections.Iterator):
|
- collections.Iterator):
|
||||||
+ collections.abc.Iterator):
|
+ collections.abc.Iterator):
|
||||||
"""
|
"""
|
||||||
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
|
||||||
--- src/sage/cpython/dict_del_by_value.pyx.orig 2018-10-17 17:13:36.000000000 -0600
|
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 2018-10-25 13:48:05.887770337 -0600
|
--- src/sage/cpython/dict_del_by_value.pyx.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
|
+++ src/sage/cpython/dict_del_by_value.pyx 2019-01-04 10:50:27.178734667 -0700
|
||||||
@@ -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
|
||||||
|
@ -603,48 +310,135 @@
|
||||||
|
|
||||||
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")
|
||||||
--- src/sage/libs/gap/util.pyx.orig 2018-10-17 17:13:52.000000000 -0600
|
diff -up src/sage/geometry/triangulation/point_configuration.py.orig src/sage/geometry/triangulation/point_configuration.py
|
||||||
+++ src/sage/libs/gap/util.pyx 2018-10-25 13:50:51.168295628 -0600
|
--- src/sage/geometry/triangulation/point_configuration.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
@@ -171,7 +171,7 @@ def gap_root():
|
+++ src/sage/geometry/triangulation/point_configuration.py 2019-01-15 14:12:54.343637341 -0700
|
||||||
return GAP_ROOT_DIR
|
@@ -625,7 +625,7 @@ class PointConfiguration(UniqueRepresent
|
||||||
print('The gap-4.5.5.spkg (or later) seems to be not installed!')
|
['{{0,1,2,4},{1,2,3,4}}']
|
||||||
gap_sh = open(os.path.join(SAGE_LOCAL, 'bin', 'gap')).read().splitlines()
|
"""
|
||||||
- gapdir = filter(lambda dir:dir.strip().startswith('GAP_DIR'), gap_sh)[0]
|
timeout = 600
|
||||||
+ gapdir = next(filter(lambda dir:dir.strip().startswith('GAP_DIR'), gap_sh))
|
- proc = pexpect.spawn(executable, timeout=timeout)
|
||||||
gapdir = gapdir.split('"')[1]
|
+ proc = pexpect.spawn(executable, timeout=timeout, encoding='utf-8')
|
||||||
gapdir = gapdir.replace('$SAGE_LOCAL', SAGE_LOCAL)
|
proc.expect(r'Evaluating Commandline Options \.\.\.')
|
||||||
return gapdir
|
proc.expect(r'\.\.\. done\.')
|
||||||
--- src/sage/libs/gmp/pylong.pyx.orig 2018-10-17 17:13:52.000000000 -0600
|
proc.setecho(0)
|
||||||
+++ src/sage/libs/gmp/pylong.pyx 2018-10-25 13:52:12.296063129 -0600
|
diff -up src/sage/interfaces/frobby.py.orig src/sage/interfaces/frobby.py
|
||||||
@@ -28,7 +28,7 @@ AUTHORS:
|
--- src/sage/interfaces/frobby.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
from cpython.object cimport Py_SIZE
|
+++ src/sage/interfaces/frobby.py 2019-01-15 14:09:39.587064736 -0700
|
||||||
from cpython.int cimport PyInt_FromLong
|
@@ -77,7 +77,7 @@ class Frobby:
|
||||||
from cpython.long cimport PyLong_FromLong
|
print("Frobby command: ", repr(command))
|
||||||
-from cpython.longintrepr cimport _PyLong_New, PyLongObject, digit, PyLong_SHIFT
|
print("Frobby input:\n", input)
|
||||||
+from cpython.longintrepr cimport _PyLong_New, py_long, digit, PyLong_SHIFT
|
|
||||||
from .mpz cimport *
|
|
||||||
|
|
||||||
cdef extern from *:
|
- process = Popen(command, stdin = PIPE, stdout = PIPE, stderr = PIPE)
|
||||||
@@ -54,7 +54,7 @@ cdef mpz_get_pylong_large(mpz_srcptr z):
|
+ process = Popen(command, stdin = PIPE, stdout = PIPE, stderr = PIPE, encoding='utf-8')
|
||||||
cdef size_t nbits = mpz_sizeinbase(z, 2)
|
output, err = process.communicate(input = input)
|
||||||
cdef size_t pylong_size = (nbits + PyLong_SHIFT - 1) // PyLong_SHIFT
|
|
||||||
L = _PyLong_New(pylong_size)
|
|
||||||
- mpz_export((<PyLongObject*>L).ob_digit, NULL,
|
|
||||||
+ mpz_export(L.ob_digit, NULL,
|
|
||||||
-1, sizeof(digit), 0, PyLong_nails, z)
|
|
||||||
if mpz_sgn(z) < 0:
|
|
||||||
# Set correct size (use a pointer to hack around Cython's
|
|
||||||
@@ -91,7 +91,7 @@ cdef int mpz_set_pylong(mpz_ptr z, L) ex
|
|
||||||
if pylong_size < 0:
|
|
||||||
pylong_size = -pylong_size
|
|
||||||
mpz_import(z, pylong_size, -1, sizeof(digit), 0, PyLong_nails,
|
|
||||||
- (<PyLongObject*>L).ob_digit)
|
|
||||||
+ (<py_long>L).ob_digit)
|
|
||||||
if Py_SIZE(L) < 0:
|
|
||||||
mpz_neg(z, z)
|
|
||||||
|
|
||||||
--- src/sage/misc/parser.pyx.orig 2018-10-17 17:13:54.000000000 -0600
|
if verbose:
|
||||||
+++ src/sage/misc/parser.pyx 2018-10-25 13:57:47.183108335 -0600
|
diff -up src/sage/interfaces/gfan.py.orig src/sage/interfaces/gfan.py
|
||||||
|
--- src/sage/interfaces/gfan.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
|
+++ src/sage/interfaces/gfan.py 2019-01-17 16:15:45.185372585 -0700
|
||||||
|
@@ -66,7 +66,7 @@ class Gfan(object):
|
||||||
|
if six.PY2:
|
||||||
|
enc_kwargs = {}
|
||||||
|
else:
|
||||||
|
- enc_kwargs = {'encoding': 'latin-1'}
|
||||||
|
+ enc_kwargs = {'encoding': 'utf-8'}
|
||||||
|
|
||||||
|
gfan_processes = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE,
|
||||||
|
**enc_kwargs)
|
||||||
|
diff -up src/sage/interfaces/gp.py.orig src/sage/interfaces/gp.py
|
||||||
|
--- src/sage/interfaces/gp.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
|
+++ src/sage/interfaces/gp.py 2019-01-15 15:32:12.479565952 -0700
|
||||||
|
@@ -934,17 +934,6 @@ class GpElement(ExpectElement):
|
||||||
|
"""
|
||||||
|
return repr(self.type()) == 't_STR'
|
||||||
|
|
||||||
|
- def __long__(self):
|
||||||
|
- """
|
||||||
|
- Return Python long.
|
||||||
|
-
|
||||||
|
- EXAMPLES::
|
||||||
|
-
|
||||||
|
- sage: long(gp(10))
|
||||||
|
- 10L
|
||||||
|
- """
|
||||||
|
- return long(str(self))
|
||||||
|
-
|
||||||
|
def __float__(self):
|
||||||
|
"""
|
||||||
|
Return Python float.
|
||||||
|
diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py
|
||||||
|
--- src/sage/interfaces/latte.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
|
+++ src/sage/interfaces/latte.py 2019-01-16 09:44:45.946769879 -0700
|
||||||
|
@@ -147,6 +147,7 @@ def count(arg, ehrhart_polynomial=False,
|
||||||
|
latte_proc = Popen(args,
|
||||||
|
stdin=PIPE, stdout=PIPE,
|
||||||
|
stderr=(None if verbose else PIPE),
|
||||||
|
+ encoding='utf-8',
|
||||||
|
cwd=str(SAGE_TMP))
|
||||||
|
|
||||||
|
ans, err = latte_proc.communicate(arg)
|
||||||
|
@@ -352,6 +353,7 @@ def integrate(arg, polynomial=None, algo
|
||||||
|
latte_proc = Popen(args,
|
||||||
|
stdin=PIPE, stdout=PIPE,
|
||||||
|
stderr=(None if verbose else PIPE),
|
||||||
|
+ encoding='utf-8',
|
||||||
|
cwd=str(SAGE_TMP))
|
||||||
|
|
||||||
|
ans, err = latte_proc.communicate(arg)
|
||||||
|
diff -up src/sage/interfaces/sagespawn.pyx.orig src/sage/interfaces/sagespawn.pyx
|
||||||
|
--- src/sage/interfaces/sagespawn.pyx.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
|
+++ src/sage/interfaces/sagespawn.pyx 2019-01-16 12:08:26.371966835 -0700
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
"""
|
||||||
|
Sage wrapper around pexpect's ``spawn`` class and
|
||||||
|
-the ptyprocess's ``PtyProcess`` class.
|
||||||
|
+the ptyprocess's ``PtyProcessUnicode`` class.
|
||||||
|
|
||||||
|
AUTHOR:
|
||||||
|
|
||||||
|
@@ -21,7 +21,7 @@ AUTHOR:
|
||||||
|
#*****************************************************************************
|
||||||
|
|
||||||
|
from pexpect import *
|
||||||
|
-from ptyprocess import PtyProcess
|
||||||
|
+from ptyprocess import PtyProcessUnicode
|
||||||
|
|
||||||
|
from cpython.ref cimport Py_INCREF
|
||||||
|
from libc.signal cimport *
|
||||||
|
@@ -30,7 +30,6 @@ from posix.unistd cimport getpid, getpgi
|
||||||
|
|
||||||
|
from time import sleep
|
||||||
|
|
||||||
|
-from sage.cpython.string cimport str_to_bytes
|
||||||
|
from sage.interfaces.process cimport ContainChildren
|
||||||
|
|
||||||
|
|
||||||
|
@@ -171,7 +170,7 @@ class SageSpawn(spawn):
|
||||||
|
return ret
|
||||||
|
|
||||||
|
|
||||||
|
-class SagePtyProcess(PtyProcess):
|
||||||
|
+class SagePtyProcess(PtyProcessUnicode):
|
||||||
|
def close(self, force=None):
|
||||||
|
"""
|
||||||
|
Quit the child process: send the quit string, close the
|
||||||
|
@@ -192,11 +191,7 @@ class SagePtyProcess(PtyProcess):
|
||||||
|
if self.quit_string is not None:
|
||||||
|
try:
|
||||||
|
# This can fail if the process already exited
|
||||||
|
- # PtyProcess.write takes bytes; ideally we would use
|
||||||
|
- # an encoding picked specifically for the target process
|
||||||
|
- # but the default (UTF-8) will do now, since I don't
|
||||||
|
- # think we have any non-ASCII quit_strings anyways.
|
||||||
|
- self.write(str_to_bytes(self.quit_string))
|
||||||
|
+ self.write(self.quit_string)
|
||||||
|
except (OSError, IOError):
|
||||||
|
pass
|
||||||
|
self.fileobj.close()
|
||||||
|
diff -up src/sage/misc/parser.pyx.orig src/sage/misc/parser.pyx
|
||||||
|
--- src/sage/misc/parser.pyx.orig 2018-12-22 16:37:09.000000000 -0700
|
||||||
|
+++ src/sage/misc/parser.pyx 2019-01-04 10:57:51.277367597 -0700
|
||||||
@@ -96,7 +96,7 @@ def token_to_str(int token):
|
@@ -96,7 +96,7 @@ def token_to_str(int token):
|
||||||
|
|
||||||
|
|
||||||
|
@ -943,20 +737,22 @@
|
||||||
tokens.backtrack()
|
tokens.backtrack()
|
||||||
return self.p_list(tokens)
|
return self.p_list(tokens)
|
||||||
else:
|
else:
|
||||||
--- src/sage/plot/plot3d/plot3d.py.orig 2018-10-17 17:14:08.000000000 -0600
|
diff -up src/sage/plot/plot3d/plot3d.py.orig src/sage/plot/plot3d/plot3d.py
|
||||||
+++ src/sage/plot/plot3d/plot3d.py 2018-10-25 13:58:48.502933505 -0600
|
--- src/sage/plot/plot3d/plot3d.py.orig 2018-12-22 16:37:09.000000000 -0700
|
||||||
@@ -194,7 +194,8 @@ class _Coordinates(object):
|
+++ src/sage/plot/plot3d/plot3d.py 2019-01-04 10:58:51.476233419 -0700
|
||||||
|
@@ -188,7 +188,8 @@ class _Coordinates(object):
|
||||||
|
sage: arb((x+z,y*z,z), z, (x,y))
|
||||||
Arbitrary Coordinates coordinate transform (z in terms of x, y)
|
Arbitrary Coordinates coordinate transform (z in terms of x, y)
|
||||||
"""
|
"""
|
||||||
import inspect
|
- all_vars = sage_getargspec(self.transform).args[1:]
|
||||||
- all_vars = getargspec(self.transform).args[1:]
|
|
||||||
+ args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, ann = inspect.getfullargspec(self.transform)
|
+ args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, ann = inspect.getfullargspec(self.transform)
|
||||||
+ all_vars=args[1:]
|
+ all_vars=args[1:]
|
||||||
if set(all_vars) != set(indep_vars + [dep_var]):
|
if set(all_vars) != 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]))))
|
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
|
||||||
--- src/sage/plot/point.py.orig 2018-10-17 17:14:09.000000000 -0600
|
diff -up src/sage/plot/point.py.orig src/sage/plot/point.py
|
||||||
+++ src/sage/plot/point.py 2018-10-25 13:59:15.278857161 -0600
|
--- src/sage/plot/point.py.orig 2018-12-22 16:37:09.000000000 -0700
|
||||||
|
+++ src/sage/plot/point.py 2019-01-04 10:59:15.506780663 -0700
|
||||||
@@ -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
|
||||||
|
@ -975,8 +771,9 @@
|
||||||
points = list(points)
|
points = list(points)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
--- src/sage/repl/display/fancy_repr.py.orig 2018-10-17 17:14:09.000000000 -0600
|
diff -up src/sage/repl/display/fancy_repr.py.orig src/sage/repl/display/fancy_repr.py
|
||||||
+++ src/sage/repl/display/fancy_repr.py 2018-10-25 14:00:10.301700282 -0600
|
--- src/sage/repl/display/fancy_repr.py.orig 2018-12-22 16:37:09.000000000 -0700
|
||||||
|
+++ src/sage/repl/display/fancy_repr.py 2019-01-04 11:00:18.210599287 -0700
|
||||||
@@ -15,7 +15,7 @@ Representations of objects.
|
@@ -15,7 +15,7 @@ Representations of objects.
|
||||||
import types
|
import types
|
||||||
|
|
||||||
|
@ -995,20 +792,23 @@
|
||||||
p.text(klass_repr(obj))
|
p.text(klass_repr(obj))
|
||||||
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_()
|
||||||
--- src/sage/repl/ipython_kernel/interact.py.orig 2018-10-17 17:14:09.000000000 -0600
|
diff -up src/sage/repl/ipython_kernel/interact.py.orig src/sage/repl/ipython_kernel/interact.py
|
||||||
+++ src/sage/repl/ipython_kernel/interact.py 2018-10-25 14:00:53.038578439 -0600
|
--- src/sage/repl/ipython_kernel/interact.py.orig 2018-12-22 16:37:09.000000000 -0700
|
||||||
@@ -36,7 +36,7 @@ EXAMPLES::
|
+++ src/sage/repl/ipython_kernel/interact.py 2019-01-04 11:01:50.722856305 -0700
|
||||||
|
@@ -35,7 +35,8 @@ EXAMPLES::
|
||||||
|
|
||||||
from ipywidgets.widgets import SelectionSlider, ValueWidget, ToggleButtons
|
from ipywidgets.widgets import SelectionSlider, ValueWidget, ToggleButtons
|
||||||
from ipywidgets.widgets.interaction import interactive, signature
|
from ipywidgets.widgets.interaction import interactive, signature
|
||||||
from copy import copy
|
-from collections import Iterable, Iterator, OrderedDict
|
||||||
-from collections import Iterable, Iterator
|
|
||||||
+from collections.abc import Iterable, Iterator
|
+from collections.abc import Iterable, Iterator
|
||||||
|
+from collections import OrderedDict
|
||||||
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
|
||||||
--- src/sage/rings/integer.pyx.orig 2018-10-17 17:14:11.000000000 -0600
|
diff -up src/sage/rings/integer.pyx.orig
|
||||||
+++ src/sage/rings/integer.pyx 2018-10-25 14:01:31.320469294 -0600
|
--- src/sage/rings/integer.pyx.orig 2018-12-22 16:37:09.000000000 -0700
|
||||||
@@ -6940,7 +6940,7 @@ cdef int mpz_set_str_python(mpz_ptr z, c
|
+++ src/sage/rings/integer.pyx 2019-01-04 11:02:56.122624135 -0700
|
||||||
|
@@ -6976,7 +6976,7 @@ cdef int mpz_set_str_python(mpz_ptr z, c
|
||||||
while x[0] == c' ': x += 1 # Strip spaces
|
while x[0] == c' ': x += 1 # Strip spaces
|
||||||
|
|
||||||
# Disallow a sign here
|
# Disallow a sign here
|
||||||
|
@ -1017,8 +817,22 @@
|
||||||
x = "" # Force an error below
|
x = "" # Force an error below
|
||||||
|
|
||||||
assert base >= 2
|
assert base >= 2
|
||||||
--- src/sage/rings/real_mpfi.pyx.orig 2018-10-17 17:14:17.000000000 -0600
|
diff -up src/sage/rings/polynomial/pbori.pyx.orig src/sage/rings/polynomial/pbori.pyx
|
||||||
+++ src/sage/rings/real_mpfi.pyx 2018-10-25 14:02:07.823365223 -0600
|
--- src/sage/rings/polynomial/pbori.pyx.orig 2018-12-22 16:37:10.000000000 -0700
|
||||||
|
+++ src/sage/rings/polynomial/pbori.pyx 2019-01-04 12:21:06.204500703 -0700
|
||||||
|
@@ -4782,8 +4782,7 @@ cdef class PolynomialConstruct:
|
||||||
|
# So, it is just a conversion. [Simon King]
|
||||||
|
return (<BooleanPolynomialRing>ring)._element_constructor_(x)
|
||||||
|
|
||||||
|
- raise TypeError("Cannot generate Boolean polynomial from %s , %s%" %
|
||||||
|
- (type(x), type(ring)))
|
||||||
|
+ raise TypeError(f"Cannot generate Boolean polynomial from {type(x)}, {type(ring)}")
|
||||||
|
|
||||||
|
|
||||||
|
cdef class MonomialConstruct:
|
||||||
|
diff -up src/sage/rings/real_mpfi.pyx.orig src/sage/rings/real_mpfi.pyx
|
||||||
|
--- src/sage/rings/real_mpfi.pyx.orig 2018-12-22 16:37:10.000000000 -0700
|
||||||
|
+++ src/sage/rings/real_mpfi.pyx 2019-01-04 11:03:53.650540277 -0700
|
||||||
@@ -1951,12 +1951,12 @@ cdef class RealIntervalFieldElement(Ring
|
@@ -1951,12 +1951,12 @@ cdef class RealIntervalFieldElement(Ring
|
||||||
|
|
||||||
cdef long digits
|
cdef long digits
|
||||||
|
@ -1043,8 +857,33 @@
|
||||||
digits -= 1
|
digits -= 1
|
||||||
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'-')
|
||||||
--- src/sage/symbolic/expression.pyx.orig 2018-10-17 17:14:17.000000000 -0600
|
diff -up src/sage/rings/real_mpfr.pyx.orig src/sage/rings/real_mpfr.pyx
|
||||||
+++ src/sage/symbolic/expression.pyx 2018-10-25 14:03:50.129073537 -0600
|
--- src/sage/rings/real_mpfr.pyx.orig 2018-12-22 16:37:10.000000000 -0700
|
||||||
|
+++ src/sage/rings/real_mpfr.pyx 2019-01-04 12:22:18.194171036 -0700
|
||||||
|
@@ -2032,7 +2032,7 @@ cdef class RealNumber(sage.structure.ele
|
||||||
|
if s is NULL:
|
||||||
|
raise RuntimeError("unable to convert an mpfr number to a string")
|
||||||
|
# t contains just digits (no sign, decimal point or exponent)
|
||||||
|
- if s[0] == '-':
|
||||||
|
+ if s[0] == c'-':
|
||||||
|
sgn = "-"
|
||||||
|
t = char_to_str(s + 1)
|
||||||
|
else:
|
||||||
|
diff -up src/sage/structure/sage_object.pyx.orig src/sage/structure/sage_object.pyx
|
||||||
|
--- src/sage/structure/sage_object.pyx.orig 2018-12-22 16:37:10.000000000 -0700
|
||||||
|
+++ src/sage/structure/sage_object.pyx 2019-01-04 13:48:09.055790438 -0700
|
||||||
|
@@ -665,7 +665,7 @@ cdef class SageObject:
|
||||||
|
try:
|
||||||
|
s = self._interface_init_(I)
|
||||||
|
except Exception:
|
||||||
|
- raise NotImplementedError("coercion of object %s to %s not implemented:\n%s\n%s" % (repr(self), I))
|
||||||
|
+ raise NotImplementedError(f"coercion of object {repr(self)} to {I} not implemented")
|
||||||
|
X = I(s)
|
||||||
|
if c:
|
||||||
|
try:
|
||||||
|
diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx
|
||||||
|
--- src/sage/symbolic/expression.pyx.orig 2018-12-22 16:37:10.000000000 -0700
|
||||||
|
+++ src/sage/symbolic/expression.pyx 2019-01-04 11:04:35.829745704 -0700
|
||||||
@@ -12955,7 +12955,7 @@ cdef class hold_class:
|
@@ -12955,7 +12955,7 @@ cdef class hold_class:
|
||||||
sage: SR(2)^5
|
sage: SR(2)^5
|
||||||
32
|
32
|
||||||
|
@ -1063,12 +902,14 @@
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
"""
|
"""
|
||||||
--- src/setup.py.orig 2018-10-25 11:40:44.402943434 -0600
|
diff -up src/setup.py.orig src/setup.py
|
||||||
+++ src/setup.py 2018-10-25 14:04:15.582000968 -0600
|
--- src/setup.py.orig 2019-01-04 10:27:47.032123257 -0700
|
||||||
@@ -284,6 +284,7 @@ class sage_build_cython(Command):
|
+++ src/setup.py 2019-01-04 11:05:11.337077724 -0700
|
||||||
|
@@ -284,7 +284,7 @@ class sage_build_cython(Command):
|
||||||
cdivision=True,
|
cdivision=True,
|
||||||
embedsignature=True,
|
embedsignature=True,
|
||||||
fast_getattr=True,
|
fast_getattr=True,
|
||||||
|
- language_level="2",
|
||||||
+ language_level=3,
|
+ language_level=3,
|
||||||
preliminary_late_includes_cy28=True,
|
preliminary_late_includes_cy28=True,
|
||||||
profile=self.profile,
|
profile=self.profile,
|
||||||
|
|
|
@ -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-08-03 05:10:08.000000000 -0600
|
--- src/sage/interfaces/qepcad.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/interfaces/qepcad.py 2018-08-29 10:43:25.856903772 -0600
|
+++ src/sage/interfaces/qepcad.py 2019-01-16 09:46:44.714638633 -0700
|
||||||
@@ -530,7 +530,7 @@ TESTS:
|
@@ -530,7 +530,7 @@ TESTS:
|
||||||
|
|
||||||
Check the qepcad configuration file::
|
Check the qepcad configuration file::
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
diff -up src/sage/all.py.orig src/sage/all.py
|
diff -up src/sage/all.py.orig src/sage/all.py
|
||||||
--- src/sage/all.py.orig 2018-08-03 05:10:08.000000000 -0600
|
--- src/sage/all.py.orig 2018-12-22 16:37:06.000000000 -0700
|
||||||
+++ src/sage/all.py 2018-08-29 08:45:06.117831555 -0600
|
+++ src/sage/all.py 2019-01-16 09:43:07.639533969 -0700
|
||||||
@@ -284,11 +284,11 @@ def _write_started_file():
|
@@ -284,11 +284,11 @@ def _write_started_file():
|
||||||
|
|
||||||
Check that the file exists when Sage is running::
|
Check that the file exists when Sage is running::
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
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 2018-08-29 08:34:50.846439644 -0600
|
--- src/module_list.py.orig 2019-01-16 09:42:29.021226961 -0700
|
||||||
+++ src/module_list.py 2018-08-29 08:35:19.927079956 -0600
|
+++ src/module_list.py 2019-01-16 09:42:41.397004883 -0700
|
||||||
@@ -3,7 +3,7 @@ from glob import glob
|
@@ -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,9 +11,9 @@ 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-08-03 05:10:09.000000000 -0600
|
--- src/sage/misc/cython.py.orig 2018-12-22 16:37:09.000000000 -0700
|
||||||
+++ src/sage/misc/cython.py 2018-08-29 08:35:19.954079622 -0600
|
+++ src/sage/misc/cython.py 2019-01-04 10:27:47.031123276 -0700
|
||||||
@@ -601,7 +601,7 @@ def cython(filename, verbose=0, compile_
|
@@ -600,7 +600,7 @@ def cython(filename, verbose=0, compile_
|
||||||
ext = Extension(name,
|
ext = Extension(name,
|
||||||
sources=[pyxfile] + extra_sources,
|
sources=[pyxfile] + extra_sources,
|
||||||
libraries=libs,
|
libraries=libs,
|
||||||
|
@ -23,9 +23,9 @@ diff -up src/sage/misc/cython.py.orig src/sage/misc/cython.py
|
||||||
language=language)
|
language=language)
|
||||||
|
|
||||||
diff -up src/setup.py.orig src/setup.py
|
diff -up src/setup.py.orig src/setup.py
|
||||||
--- src/setup.py.orig 2018-08-03 05:10:09.000000000 -0600
|
--- src/setup.py.orig 2018-12-22 16:37:10.000000000 -0700
|
||||||
+++ src/setup.py 2018-08-29 08:35:19.955079610 -0600
|
+++ src/setup.py 2019-01-04 10:27:47.032123257 -0700
|
||||||
@@ -370,9 +370,8 @@ class sage_build_cython(Command):
|
@@ -371,9 +371,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
|
||||||
@@ -881,9 +880,6 @@ class sage_install(install):
|
@@ -882,9 +881,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):
|
||||||
"""
|
"""
|
||||||
@@ -900,40 +896,6 @@ class sage_install(install):
|
@@ -901,40 +897,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)
|
||||||
|
|
||||||
|
|
|
@ -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-10-17 17:13:36.000000000 -0600
|
--- src/sage/doctest/control.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/doctest/control.py 2018-10-25 11:40:58.936908341 -0600
|
+++ src/sage/doctest/control.py 2019-01-16 09:42:51.238828275 -0700
|
||||||
@@ -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
|
||||||
|
@ -9,7 +9,7 @@ diff -up src/sage/doctest/control.py.orig src/sage/doctest/control.py
|
||||||
self.failed = False
|
self.failed = False
|
||||||
self.new = False
|
self.new = False
|
||||||
self.show_skipped = False
|
self.show_skipped = False
|
||||||
@@ -308,7 +307,7 @@ class DocTestController(SageObject):
|
@@ -309,7 +308,7 @@ class DocTestController(SageObject):
|
||||||
if options.gdb or options.debug:
|
if options.gdb or options.debug:
|
||||||
# Interactive debuggers: "infinite" timeout
|
# Interactive debuggers: "infinite" timeout
|
||||||
options.timeout = 0
|
options.timeout = 0
|
||||||
|
@ -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:
|
||||||
@@ -1094,13 +1093,8 @@ class DocTestController(SageObject):
|
@@ -1099,13 +1098,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
|
||||||
@@ -1185,10 +1179,10 @@ class DocTestController(SageObject):
|
@@ -1190,10 +1184,10 @@ class DocTestController(SageObject):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
opt = self.options
|
opt = self.options
|
||||||
|
@ -46,8 +46,8 @@ 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-10-25 11:40:58.937908339 -0600
|
--- src/sage/interfaces/singular.py.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
+++ src/sage/interfaces/singular.py 2018-10-25 13:11:10.256190334 -0600
|
+++ src/sage/interfaces/singular.py 2019-01-16 09:42:51.240828239 -0700
|
||||||
@@ -2264,7 +2264,7 @@ def generate_docstring_dictionary():
|
@@ -2264,7 +2264,7 @@ def generate_docstring_dictionary():
|
||||||
node_names.clear()
|
node_names.clear()
|
||||||
|
|
||||||
|
@ -70,8 +70,8 @@ diff -up src/sage/interfaces/singular.py.orig src/sage/interfaces/singular.py
|
||||||
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-10-17 17:14:18.000000000 -0600
|
--- src/sage_setup/docbuild/ext/multidocs.py.orig 2018-12-22 16:37:10.000000000 -0700
|
||||||
+++ src/sage_setup/docbuild/ext/multidocs.py 2018-10-25 11:40:58.937908339 -0600
|
+++ src/sage_setup/docbuild/ext/multidocs.py 2019-01-16 09:42:51.241828221 -0700
|
||||||
@@ -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,8 +87,8 @@ 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-10-25 11:40:58.938908336 -0600
|
--- src/sage_setup/docbuild/__init__.py.orig 2018-12-22 16:37:10.000000000 -0700
|
||||||
+++ src/sage_setup/docbuild/__init__.py 2018-10-25 13:12:56.110881282 -0600
|
+++ src/sage_setup/docbuild/__init__.py 2019-01-16 09:42:51.242828203 -0700
|
||||||
@@ -279,13 +279,14 @@ def build_many(target, args):
|
@@ -279,13 +279,14 @@ def build_many(target, args):
|
||||||
# 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.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
diff -up build/pkgs/sagenb/src/sagenb/flask_version/base.py.orig build/pkgs/sagenb/src/sagenb/flask_version/base.py
|
diff -up build/pkgs/sagenb/src/sagenb/flask_version/base.py.orig build/pkgs/sagenb/src/sagenb/flask_version/base.py
|
||||||
--- build/pkgs/sagenb/src/sagenb/flask_version/base.py.orig 2018-01-24 04:17:47.000000000 -0700
|
--- build/pkgs/sagenb/src/sagenb/flask_version/base.py.orig 2018-11-05 08:45:39.000000000 -0700
|
||||||
+++ build/pkgs/sagenb/src/sagenb/flask_version/base.py 2018-08-29 08:44:38.823169061 -0600
|
+++ build/pkgs/sagenb/src/sagenb/flask_version/base.py 2019-01-04 10:28:38.099158223 -0700
|
||||||
@@ -7,8 +7,6 @@ from functools import partial
|
@@ -7,8 +7,6 @@ from functools import partial
|
||||||
from flask import Flask, Blueprint, url_for, request, session, redirect, g, make_response, current_app, render_template
|
from flask import Flask, Blueprint, url_for, request, session, redirect, g, make_response, current_app, render_template
|
||||||
from .decorators import login_required, guest_or_login_required, with_lock
|
from .decorators import login_required, guest_or_login_required, with_lock
|
||||||
|
@ -8,7 +8,7 @@ diff -up build/pkgs/sagenb/src/sagenb/flask_version/base.py.orig build/pkgs/sage
|
||||||
-# Make flask use the old session foo from <=flask-0.9
|
-# Make flask use the old session foo from <=flask-0.9
|
||||||
-from flask_oldsessions import OldSecureCookieSessionInterface
|
-from flask_oldsessions import OldSecureCookieSessionInterface
|
||||||
|
|
||||||
from flask.ext.autoindex import AutoIndex
|
from flask_autoindex import AutoIndex
|
||||||
from sage.env import SAGE_SRC, SAGE_DOC
|
from sage.env import SAGE_SRC, SAGE_DOC
|
||||||
@@ -28,7 +26,6 @@ class SageNBFlask(Flask):
|
@@ -28,7 +26,6 @@ class SageNBFlask(Flask):
|
||||||
def __init__(self, *args, **kwds):
|
def __init__(self, *args, **kwds):
|
||||||
|
@ -40,9 +40,9 @@ diff -up build/pkgs/sagenb/src/sagenb/flask_version/base.py.orig build/pkgs/sage
|
||||||
mimetypes.add_type('text/plain','.jmol')
|
mimetypes.add_type('text/plain','.jmol')
|
||||||
|
|
||||||
diff -up build/pkgs/sagenb/src/sagenb/misc/misc.py.orig build/pkgs/sagenb/src/sagenb/misc/misc.py
|
diff -up build/pkgs/sagenb/src/sagenb/misc/misc.py.orig build/pkgs/sagenb/src/sagenb/misc/misc.py
|
||||||
--- build/pkgs/sagenb/src/sagenb/misc/misc.py.orig 2017-06-02 16:24:20.000000000 -0600
|
--- build/pkgs/sagenb/src/sagenb/misc/misc.py.orig 2018-11-05 08:45:39.000000000 -0700
|
||||||
+++ build/pkgs/sagenb/src/sagenb/misc/misc.py 2018-08-29 08:44:38.823169061 -0600
|
+++ build/pkgs/sagenb/src/sagenb/misc/misc.py 2019-01-04 10:28:38.099158223 -0700
|
||||||
@@ -184,7 +184,8 @@ def pad_zeros(s, size=3):
|
@@ -196,7 +196,8 @@ def pad_zeros(s, size=3):
|
||||||
|
|
||||||
SAGENB_ROOT = os.path.split(resource_filename(__name__, ''))[0]
|
SAGENB_ROOT = os.path.split(resource_filename(__name__, ''))[0]
|
||||||
|
|
||||||
|
@ -53,9 +53,9 @@ diff -up build/pkgs/sagenb/src/sagenb/misc/misc.py.orig build/pkgs/sagenb/src/sa
|
||||||
if 'DOT_SAGENB' in os.environ:
|
if 'DOT_SAGENB' in os.environ:
|
||||||
DOT_SAGENB = os.environ['DOT_SAGENB']
|
DOT_SAGENB = os.environ['DOT_SAGENB']
|
||||||
diff -up build/pkgs/sagenb/src/sagenb/notebook/cell.py.orig build/pkgs/sagenb/src/sagenb/notebook/cell.py
|
diff -up build/pkgs/sagenb/src/sagenb/notebook/cell.py.orig build/pkgs/sagenb/src/sagenb/notebook/cell.py
|
||||||
--- build/pkgs/sagenb/src/sagenb/notebook/cell.py.orig 2018-01-24 04:17:38.000000000 -0700
|
--- build/pkgs/sagenb/src/sagenb/notebook/cell.py.orig 2018-11-05 08:45:39.000000000 -0700
|
||||||
+++ build/pkgs/sagenb/src/sagenb/notebook/cell.py 2018-08-29 08:44:38.823169061 -0600
|
+++ build/pkgs/sagenb/src/sagenb/notebook/cell.py 2019-01-04 10:28:38.100158204 -0700
|
||||||
@@ -2384,8 +2384,8 @@ class Cell(Cell_generic):
|
@@ -2387,8 +2387,8 @@ class Cell(Cell_generic):
|
||||||
with open(jmol_name, 'r') as f:
|
with open(jmol_name, 'r') as f:
|
||||||
jmol_script = f.read()
|
jmol_script = f.read()
|
||||||
jmol_script = jmol_script.replace(
|
jmol_script = jmol_script.replace(
|
||||||
|
@ -67,8 +67,8 @@ diff -up build/pkgs/sagenb/src/sagenb/notebook/cell.py.orig build/pkgs/sagenb/sr
|
||||||
f.write(jmol_script)
|
f.write(jmol_script)
|
||||||
|
|
||||||
diff -up build/pkgs/sagenb/src/sagenb/notebook/run_notebook.py.orig build/pkgs/sagenb/src/sagenb/notebook/run_notebook.py
|
diff -up build/pkgs/sagenb/src/sagenb/notebook/run_notebook.py.orig build/pkgs/sagenb/src/sagenb/notebook/run_notebook.py
|
||||||
--- build/pkgs/sagenb/src/sagenb/notebook/run_notebook.py.orig 2018-05-22 10:16:28.000000000 -0600
|
--- build/pkgs/sagenb/src/sagenb/notebook/run_notebook.py.orig 2018-11-05 08:45:39.000000000 -0700
|
||||||
+++ build/pkgs/sagenb/src/sagenb/notebook/run_notebook.py 2018-08-29 08:44:38.824169048 -0600
|
+++ build/pkgs/sagenb/src/sagenb/notebook/run_notebook.py 2019-01-04 10:28:38.101158185 -0700
|
||||||
@@ -53,12 +53,11 @@ sagenb.notebook.misc.DIR = %(cwd)r #We s
|
@@ -53,12 +53,11 @@ sagenb.notebook.misc.DIR = %(cwd)r #We s
|
||||||
# Flask #
|
# Flask #
|
||||||
#########
|
#########
|
||||||
|
|
|
@ -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-10-17 17:13:34.000000000 -0600
|
--- src/bin/sage.orig 2018-12-22 16:37:06.000000000 -0700
|
||||||
+++ src/bin/sage 2018-10-24 15:19:11.805131334 -0600
|
+++ src/bin/sage 2019-01-16 09:42:10.064567132 -0700
|
||||||
@@ -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"
|
||||||
|
@ -618,9 +618,9 @@ 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-10-17 17:13:34.000000000 -0600
|
--- src/bin/sage-runtests.orig 2018-12-22 16:37:06.000000000 -0700
|
||||||
+++ src/bin/sage-runtests 2018-10-24 15:19:11.805131334 -0600
|
+++ src/bin/sage-runtests 2019-01-16 09:42:10.065567115 -0700
|
||||||
@@ -76,10 +76,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 " +
|
||||||
os.path.join(DOT_SAGE, "valgrind"))
|
os.path.join(DOT_SAGE, "valgrind"))
|
||||||
|
@ -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-10-17 17:13:34.000000000 -0600
|
--- src/bin/sage-valgrind.orig 2018-12-22 16:37:06.000000000 -0700
|
||||||
+++ src/bin/sage-valgrind 2018-10-24 15:19:11.805131334 -0600
|
+++ src/bin/sage-valgrind 2019-01-16 09:42:10.065567115 -0700
|
||||||
@@ -1,16 +1,6 @@
|
@@ -1,16 +1,6 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
|
146
sagemath-sigfpe.patch
Normal file
146
sagemath-sigfpe.patch
Normal file
|
@ -0,0 +1,146 @@
|
||||||
|
diff -up src/sage/libs/ecl.pyx.orig src/sage/libs/ecl.pyx
|
||||||
|
--- src/sage/libs/ecl.pyx.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
|
+++ src/sage/libs/ecl.pyx 2019-01-17 10:00:52.554236288 -0700
|
||||||
|
@@ -16,7 +16,7 @@ from __future__ import print_function, a
|
||||||
|
#adapted to work with pure Python types.
|
||||||
|
|
||||||
|
from libc.stdlib cimport abort
|
||||||
|
-from libc.signal cimport SIGINT, SIGBUS, SIGSEGV, SIGCHLD
|
||||||
|
+from libc.signal cimport SIGINT, SIGBUS, SIGSEGV, SIGCHLD, SIGFPE
|
||||||
|
from libc.signal cimport raise_ as signal_raise
|
||||||
|
from posix.signal cimport sigaction, sigaction_t
|
||||||
|
cimport cysignals.signals
|
||||||
|
@@ -48,9 +48,14 @@ cdef extern from "eclsig.h":
|
||||||
|
void ecl_sig_off()
|
||||||
|
cdef sigaction_t ecl_sigint_handler
|
||||||
|
cdef sigaction_t ecl_sigbus_handler
|
||||||
|
+ cdef sigaction_t ecl_sigfpe_handler
|
||||||
|
cdef sigaction_t ecl_sigsegv_handler
|
||||||
|
cdef mpz_t ecl_mpz_from_bignum(cl_object obj)
|
||||||
|
cdef cl_object ecl_bignum_from_mpz(mpz_t num)
|
||||||
|
+ cdef int fegetexcept()
|
||||||
|
+ cdef int feenableexcept(int)
|
||||||
|
+ cdef int fedisableexcept(int)
|
||||||
|
+ cdef int ecl_feflags
|
||||||
|
|
||||||
|
cdef cl_object string_to_object(char * s):
|
||||||
|
return ecl_read_from_cstring(s)
|
||||||
|
@@ -239,6 +244,7 @@ def init_ecl():
|
||||||
|
global ecl_has_booted
|
||||||
|
cdef char *argv[1]
|
||||||
|
cdef sigaction_t sage_action[32]
|
||||||
|
+ cdef int sage_fpes
|
||||||
|
cdef int i
|
||||||
|
|
||||||
|
if ecl_has_booted:
|
||||||
|
@@ -258,6 +264,8 @@ def init_ecl():
|
||||||
|
for i in range(1,32):
|
||||||
|
sigaction(i, NULL, &sage_action[i])
|
||||||
|
|
||||||
|
+ sage_fpes = fegetexcept()
|
||||||
|
+
|
||||||
|
#initialize ECL
|
||||||
|
ecl_set_option(ECL_OPT_SIGNAL_HANDLING_THREAD, 0)
|
||||||
|
cl_boot(1, argv)
|
||||||
|
@@ -265,8 +273,12 @@ def init_ecl():
|
||||||
|
#save signal handler from ECL
|
||||||
|
sigaction(SIGINT, NULL, &ecl_sigint_handler)
|
||||||
|
sigaction(SIGBUS, NULL, &ecl_sigbus_handler)
|
||||||
|
+ sigaction(SIGFPE, NULL, &ecl_sigfpe_handler)
|
||||||
|
sigaction(SIGSEGV, NULL, &ecl_sigsegv_handler)
|
||||||
|
|
||||||
|
+ #save ECL's floating point exception flags
|
||||||
|
+ ecl_feflags = fegetexcept()
|
||||||
|
+
|
||||||
|
#verify that no SIGCHLD handler was installed
|
||||||
|
cdef sigaction_t sig_test
|
||||||
|
sigaction(SIGCHLD, NULL, &sig_test)
|
||||||
|
@@ -277,6 +289,9 @@ def init_ecl():
|
||||||
|
for i in range(1,32):
|
||||||
|
sigaction(i, &sage_action[i], NULL)
|
||||||
|
|
||||||
|
+ fedisableexcept(ecl_feflags)
|
||||||
|
+ feenableexcept(sage_fpes)
|
||||||
|
+
|
||||||
|
#initialise list of objects and bind to global variable
|
||||||
|
# *SAGE-LIST-OF-OBJECTS* to make it rooted in the reachable tree for the GC
|
||||||
|
list_of_objects=cl_cons(Cnil,cl_cons(Cnil,Cnil))
|
||||||
|
diff -up src/sage/libs/eclsig.h.orig src/sage/libs/eclsig.h
|
||||||
|
--- src/sage/libs/eclsig.h.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
|
+++ src/sage/libs/eclsig.h 2019-01-17 10:07:23.060570460 -0700
|
||||||
|
@@ -9,25 +9,59 @@
|
||||||
|
|
||||||
|
|
||||||
|
#include <signal.h>
|
||||||
|
+
|
||||||
|
+/* Rummage around to determine how ECL was configured */
|
||||||
|
+#define ECL_AVOID_FPE_H /* Prevent some local includes */
|
||||||
|
+#include <ecl/config-internal.h>
|
||||||
|
+
|
||||||
|
+#ifdef HAVE_FENV_H
|
||||||
|
+#include <fenv.h>
|
||||||
|
+#ifndef FE_ALL_EXCEPT
|
||||||
|
+#define FE_ALL_EXCEPT FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW | FE_INVALID
|
||||||
|
+#endif
|
||||||
|
+#else
|
||||||
|
+#ifndef FE_ALL_EXCEPT
|
||||||
|
+#define FE_ALL_EXCEPT 0
|
||||||
|
+#endif
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+#ifndef HAVE_FEENABLEEXCEPT
|
||||||
|
+/* These are GNU extensions */
|
||||||
|
+#define fegetexcept() 0
|
||||||
|
+#define feenablexcept(flags)
|
||||||
|
+#define fdisableexcept(flags)
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
static struct sigaction ecl_sigint_handler;
|
||||||
|
static struct sigaction ecl_sigbus_handler;
|
||||||
|
+static struct sigaction ecl_sigfpe_handler;
|
||||||
|
static struct sigaction ecl_sigsegv_handler;
|
||||||
|
static struct sigaction sage_sigint_handler;
|
||||||
|
static struct sigaction sage_sigbus_handler;
|
||||||
|
+static struct sigaction sage_sigfpe_handler;
|
||||||
|
static struct sigaction sage_sigsegv_handler;
|
||||||
|
+static int ecl_feflags;
|
||||||
|
+static int sage_feflags;
|
||||||
|
|
||||||
|
static inline void set_ecl_signal_handler(void)
|
||||||
|
{
|
||||||
|
sigaction(SIGINT, &ecl_sigint_handler, &sage_sigint_handler);
|
||||||
|
sigaction(SIGBUS, &ecl_sigbus_handler, &sage_sigbus_handler);
|
||||||
|
+ sigaction(SIGFPE, &ecl_sigfpe_handler, &sage_sigfpe_handler);
|
||||||
|
sigaction(SIGSEGV, &ecl_sigsegv_handler, &sage_sigsegv_handler);
|
||||||
|
+ /* sage_feflags should be 0; we don't set them otherwise */
|
||||||
|
+ sage_feflags = fedisableexcept(FE_ALL_EXCEPT);
|
||||||
|
+ feenableexcept(ecl_feflags);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void unset_ecl_signal_handler(void)
|
||||||
|
{
|
||||||
|
sigaction(SIGINT, &sage_sigint_handler, NULL);
|
||||||
|
sigaction(SIGBUS, &sage_sigbus_handler, NULL);
|
||||||
|
+ sigaction(SIGFPE, &sage_sigfpe_handler, NULL);
|
||||||
|
sigaction(SIGSEGV, &sage_sigsegv_handler, NULL);
|
||||||
|
+ ecl_feflags = fedisableexcept(FE_ALL_EXCEPT);
|
||||||
|
+ feenableexcept(sage_feflags);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* This MUST be a macro because sig_on() must be in the same
|
||||||
|
diff -up src/sage/libs/mpmath/ext_impl.pyx.orig src/sage/libs/mpmath/ext_impl.pyx
|
||||||
|
--- src/sage/libs/mpmath/ext_impl.pyx.orig 2018-12-22 16:37:08.000000000 -0700
|
||||||
|
+++ src/sage/libs/mpmath/ext_impl.pyx 2019-01-17 09:53:24.350937873 -0700
|
||||||
|
@@ -164,9 +164,9 @@ opts_double_precision.rounding = ROUND_N
|
||||||
|
opts_mini_prec.prec = 5
|
||||||
|
opts_mini_prec.rounding = ROUND_D
|
||||||
|
|
||||||
|
-cdef double _double_inf = float("1e300") * float("1e300")
|
||||||
|
-cdef double _double_ninf = -_double_inf
|
||||||
|
-cdef double _double_nan = _double_inf - _double_inf
|
||||||
|
+cdef double _double_inf = float("inf")
|
||||||
|
+cdef double _double_ninf = float("-inf")
|
||||||
|
+cdef double _double_nan = float("nan")
|
||||||
|
|
||||||
|
cdef inline void MPF_init(MPF *x):
|
||||||
|
"""Allocate space and set value to zero.
|
|
@ -1,6 +1,6 @@
|
||||||
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 2018-05-05 16:21:23.000000000 -0600
|
--- src/sage/env.py.orig 2019-01-04 11:08:22.825475344 -0700
|
||||||
+++ src/sage/env.py 2018-05-16 13:42:40.591238911 -0600
|
+++ src/sage/env.py 2019-01-16 09:46:26.932957717 -0700
|
||||||
@@ -117,7 +117,7 @@ _add_variable_or_fallback('HOSTNAME',
|
@@ -117,7 +117,7 @@ _add_variable_or_fallback('HOSTNAME',
|
||||||
_add_variable_or_fallback('LOCAL_IDENTIFIER','$HOSTNAME.%s'%os.getpid())
|
_add_variable_or_fallback('LOCAL_IDENTIFIER','$HOSTNAME.%s'%os.getpid())
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
%global _python_bytecompile_extra 0
|
%global _python_bytecompile_extra 0
|
||||||
|
|
||||||
%bcond_with bundled_pexpect
|
%bcond_with bundled_pexpect
|
||||||
%bcond_with bundled_ipython
|
%bcond_without bundled_ipython
|
||||||
%bcond_without bundled_ipywidgets
|
%bcond_without bundled_ipywidgets
|
||||||
%bcond_without bundled_thebe
|
%bcond_without bundled_thebe
|
||||||
%bcond_without bundled_threejs
|
%bcond_without bundled_threejs
|
||||||
|
@ -45,6 +45,7 @@
|
||||||
%global graphs_pkg graphs-20161026
|
%global graphs_pkg graphs-20161026
|
||||||
%if %{with bundled_ipython}
|
%if %{with bundled_ipython}
|
||||||
%global ipython_pkg ipython-5.8.0
|
%global ipython_pkg ipython-5.8.0
|
||||||
|
%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.2.0
|
||||||
|
@ -54,7 +55,7 @@
|
||||||
%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.0.3
|
%global sagenb_pkg sagenb-1.1.1
|
||||||
%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.0
|
||||||
%global Sphinx_pkg Sphinx-1.7.6
|
%global Sphinx_pkg Sphinx-1.7.6
|
||||||
|
@ -72,7 +73,7 @@
|
||||||
# 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.8.6new2 gmp-6.1.2 gmpy2-2.1.0a1 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.0.1 gap_packages-4.8.6new2.p0 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_ROOT %{_libdir}/sagemath
|
%global SAGE_ROOT %{_libdir}/sagemath
|
||||||
%global SAGE_LOCAL %{SAGE_ROOT}/local
|
%global SAGE_LOCAL %{SAGE_ROOT}/local
|
||||||
|
@ -85,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.4
|
Version: 8.5
|
||||||
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
|
||||||
|
@ -97,6 +98,12 @@ Source1: gprc.expect
|
||||||
# Follow maxima's ExclusiveArch
|
# Follow maxima's ExclusiveArch
|
||||||
ExclusiveArch: aarch64 %{arm} %{ix86} x86_64 ppc sparcv9
|
ExclusiveArch: aarch64 %{arm} %{ix86} x86_64 ppc sparcv9
|
||||||
|
|
||||||
|
# Fix ecm interact() command
|
||||||
|
Patch0: %{name}-ecm.patch
|
||||||
|
|
||||||
|
# Adapt a giac doctest to recent versions of giac
|
||||||
|
Patch1: %{name}-giac.patch
|
||||||
|
|
||||||
# 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
|
||||||
|
|
||||||
|
@ -148,7 +155,6 @@ Patch13: %{name}-nauty.patch
|
||||||
# remove the buildroot path from Cython output
|
# remove the buildroot path from Cython output
|
||||||
Patch14: %{name}-buildroot.patch
|
Patch14: %{name}-buildroot.patch
|
||||||
|
|
||||||
# correct path to Lfunction include
|
|
||||||
# update c++ standard to fix FTBFS
|
# update c++ standard to fix FTBFS
|
||||||
Patch15: %{name}-lcalc.patch
|
Patch15: %{name}-lcalc.patch
|
||||||
|
|
||||||
|
@ -186,7 +192,11 @@ Patch25: %{name}-includes.patch
|
||||||
# Use openblas
|
# Use openblas
|
||||||
Patch26: %{name}-openblas.patch
|
Patch26: %{name}-openblas.patch
|
||||||
|
|
||||||
BuildRequires: gdb
|
# Fix paths to latte-integrale binaries
|
||||||
|
Patch27: %{name}-latte.patch
|
||||||
|
|
||||||
|
# Upstream fixes for random SIGFPEs due to ecl messing with the fp state
|
||||||
|
Patch28: %{name}-sigfpe.patch
|
||||||
|
|
||||||
BuildRequires: 4ti2
|
BuildRequires: 4ti2
|
||||||
BuildRequires: arb-devel
|
BuildRequires: arb-devel
|
||||||
|
@ -217,6 +227,7 @@ BuildRequires: gap-pkg-toric
|
||||||
BuildRequires: gc-devel
|
BuildRequires: gc-devel
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
BuildRequires: gd-devel
|
BuildRequires: gd-devel
|
||||||
|
BuildRequires: gdb
|
||||||
BuildRequires: gfan
|
BuildRequires: gfan
|
||||||
BuildRequires: giac-devel
|
BuildRequires: giac-devel
|
||||||
BuildRequires: glpk-devel
|
BuildRequires: glpk-devel
|
||||||
|
@ -297,7 +308,6 @@ BuildRequires: python3dist(pexpect)
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: python3dist(pickleshare)
|
BuildRequires: python3dist(pickleshare)
|
||||||
BuildRequires: python3dist(pip)
|
BuildRequires: python3dist(pip)
|
||||||
BuildRequires: python3dist(prompt-toolkit)
|
|
||||||
BuildRequires: python3dist(pkgconfig)
|
BuildRequires: python3dist(pkgconfig)
|
||||||
BuildRequires: python3dist(psutil)
|
BuildRequires: python3dist(psutil)
|
||||||
BuildRequires: python3dist(ptyprocess)
|
BuildRequires: python3dist(ptyprocess)
|
||||||
|
@ -398,7 +408,7 @@ Requires: python3dist(matplotlib)
|
||||||
Requires: python3dist(networkx)
|
Requires: python3dist(networkx)
|
||||||
Requires: python3dist(notebook)
|
Requires: python3dist(notebook)
|
||||||
%if %{with bundled_ipython}
|
%if %{with bundled_ipython}
|
||||||
Requires: python3dist(path)
|
Requires: python3dist(path.py)
|
||||||
%endif
|
%endif
|
||||||
Requires: python3dist(pathlib2)
|
Requires: python3dist(pathlib2)
|
||||||
%if %{without bundled_pexpect}
|
%if %{without bundled_pexpect}
|
||||||
|
@ -406,7 +416,6 @@ Requires: python3dist(pexpect)
|
||||||
%endif
|
%endif
|
||||||
Requires: python3dist(pickleshare)
|
Requires: python3dist(pickleshare)
|
||||||
Requires: python3dist(pillow)
|
Requires: python3dist(pillow)
|
||||||
Requires: python3dist(prompt-toolkit)
|
|
||||||
Requires: python3dist(psutil)
|
Requires: python3dist(psutil)
|
||||||
Requires: python3dist(ptyprocess)
|
Requires: python3dist(ptyprocess)
|
||||||
Requires: python3dist(pycryptosat)
|
Requires: python3dist(pycryptosat)
|
||||||
|
@ -422,7 +431,7 @@ Requires: python3dist(sphinx)
|
||||||
Requires: python3dist(sympy)
|
Requires: python3dist(sympy)
|
||||||
Requires: python3dist(twisted)
|
Requires: python3dist(twisted)
|
||||||
%if %{with bundled_ipython}
|
%if %{with bundled_ipython}
|
||||||
Requires: python3dist(zmq)
|
Requires: python3dist(pyzmq)
|
||||||
%endif
|
%endif
|
||||||
Requires: python3dist(zodb3)
|
Requires: python3dist(zodb3)
|
||||||
Requires: qepcad-B
|
Requires: qepcad-B
|
||||||
|
@ -461,6 +470,7 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
Obsoletes: %{name}-devel < 6.8-1
|
Obsoletes: %{name}-devel < 6.8-1
|
||||||
%if %{with bundled_ipython}
|
%if %{with bundled_ipython}
|
||||||
Provides: bundled(ipython) = %(cut -d- -f2- <<< %{ipython_pkg})
|
Provides: bundled(ipython) = %(cut -d- -f2- <<< %{ipython_pkg})
|
||||||
|
Provides: bundled(prompt_toolkit) = %(cut -d- -f2- <<< %{prompt_tookit_pkg})
|
||||||
%endif
|
%endif
|
||||||
%if %{with bundled_ipywidgets}
|
%if %{with bundled_ipywidgets}
|
||||||
Provides: bundled(ipywidgets) = %(cut -d- -f2- <<< %{ipywidgets_pkg})
|
Provides: bundled(ipywidgets) = %(cut -d- -f2- <<< %{ipywidgets_pkg})
|
||||||
|
@ -733,6 +743,11 @@ pushd build/pkgs/ipython
|
||||||
tar zxf ../../../upstream/%{ipython_pkg}.tar.gz
|
tar zxf ../../../upstream/%{ipython_pkg}.tar.gz
|
||||||
mv %{ipython_pkg} src
|
mv %{ipython_pkg} src
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
pushd build/pkgs/prompt_toolkit
|
||||||
|
tar zxf ../../../upstream/%{prompt_tookit_pkg}.tar.gz
|
||||||
|
mv %{prompt_tookit_pkg} src
|
||||||
|
popd
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{with bundled_ipywidgets}
|
%if %{with bundled_ipywidgets}
|
||||||
|
@ -823,6 +838,8 @@ pushd build/pkgs/widgetsnbextension
|
||||||
popd
|
popd
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%patch0
|
||||||
|
%patch1
|
||||||
%patch2
|
%patch2
|
||||||
%patch3
|
%patch3
|
||||||
%patch4
|
%patch4
|
||||||
|
@ -853,6 +870,8 @@ popd
|
||||||
%patch24
|
%patch24
|
||||||
%patch25
|
%patch25
|
||||||
%patch26
|
%patch26
|
||||||
|
%patch27
|
||||||
|
%patch28
|
||||||
|
|
||||||
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}|' \
|
||||||
|
@ -888,6 +907,7 @@ grep -FrlZ '#!%{_bindir}/env python' | \
|
||||||
xargs -0 sed -i 's,#!%{_bindir}/env python,#!%{__python3},'
|
xargs -0 sed -i 's,#!%{_bindir}/env python,#!%{__python3},'
|
||||||
grep -FrlZ '#!%{_bindir}/env sage-python23' | \
|
grep -FrlZ '#!%{_bindir}/env sage-python23' | \
|
||||||
xargs -0 sed -i 's,#!%{_bindir}/env sage-python23,#!%{__python3},'
|
xargs -0 sed -i 's,#!%{_bindir}/env sage-python23,#!%{__python3},'
|
||||||
|
grep -FrlZ 'sage-python23' | xargs -0 sed -i 's,sage-python23,#!%{__python3},'
|
||||||
grep -FrlZ '#!%{_bindir}/env' | \
|
grep -FrlZ '#!%{_bindir}/env' | \
|
||||||
xargs -0 sed -i 's,#!%{_bindir}/env ,#!%{_bindir}/,'
|
xargs -0 sed -i 's,#!%{_bindir}/env ,#!%{_bindir}/,'
|
||||||
grep -rlZ '#!%{_bindir}/python$' | xargs -0 sed -i 's,#!%{_bindir}/python$,&3,'
|
grep -rlZ '#!%{_bindir}/python$' | xargs -0 sed -i 's,#!%{_bindir}/python$,&3,'
|
||||||
|
@ -956,6 +976,11 @@ pushd build/pkgs/ipython/src
|
||||||
%__python3 setup.py build
|
%__python3 setup.py build
|
||||||
%__python3 setup.py install --root %{_builddir}
|
%__python3 setup.py install --root %{_builddir}
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
pushd build/pkgs/prompt_toolkit/src
|
||||||
|
%__python3 setup.py build
|
||||||
|
%__python3 setup.py install --root %{_builddir}
|
||||||
|
popd
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{with bundled_ipywidgets}
|
%if %{with bundled_ipywidgets}
|
||||||
|
@ -1065,8 +1090,8 @@ pushd src/ext
|
||||||
if [ $COUNT -gt 0 ]; then
|
if [ $COUNT -gt 0 ]; then
|
||||||
cp -far $dir $SAGE_ETC
|
cp -far $dir $SAGE_ETC
|
||||||
fi
|
fi
|
||||||
cp -far pari $SAGE_ETC
|
|
||||||
done
|
done
|
||||||
|
cp -far pari $SAGE_ETC
|
||||||
cp -fa %{SOURCE1} $SAGE_ETC
|
cp -fa %{SOURCE1} $SAGE_ETC
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
@ -1236,6 +1261,7 @@ popd
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
%if %{with bundled_ipython}
|
%if %{with bundled_ipython}
|
||||||
mv %{_builddir}%{python3_sitelib}/IPython %{buildroot}%{SAGE_PYTHONPATH}
|
mv %{_builddir}%{python3_sitelib}/IPython %{buildroot}%{SAGE_PYTHONPATH}
|
||||||
|
mv %{_builddir}%{python3_sitelib}/prompt_toolkit %{buildroot}%{SAGE_PYTHONPATH}
|
||||||
mv %{_builddir}%{_bindir}/ip* %{buildroot}%{SAGE_LOCAL}/bin
|
mv %{_builddir}%{_bindir}/ip* %{buildroot}%{SAGE_LOCAL}/bin
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
@ -1271,7 +1297,7 @@ popd
|
||||||
cat > %{buildroot}%{_bindir}/sage << EOF
|
cat > %{buildroot}%{_bindir}/sage << EOF
|
||||||
#!/bin/bash -i
|
#!/bin/bash -i
|
||||||
|
|
||||||
export CUR=\`pwd\`
|
export CUR=\$PWD
|
||||||
##export DOT_SAGE="\$HOME/.sage"
|
##export DOT_SAGE="\$HOME/.sage"
|
||||||
mkdir -p \$DOT_SAGE/{maxima,sympow,tmp}
|
mkdir -p \$DOT_SAGE/{maxima,sympow,tmp}
|
||||||
export SAGE_TESTDIR=\$DOT_SAGE/tmp
|
export SAGE_TESTDIR=\$DOT_SAGE/tmp
|
||||||
|
@ -1283,7 +1309,7 @@ export SAGE_ETC="$SAGE_ETC"
|
||||||
export SAGE_SRC="%{buildroot}%{SAGE_SRC}"
|
export SAGE_SRC="%{buildroot}%{SAGE_SRC}"
|
||||||
##export SAGE_DOC="$SAGE_DOC"
|
##export SAGE_DOC="$SAGE_DOC"
|
||||||
##export SAGE_DOC_SRC="\$SAGE_DOC"
|
##export SAGE_DOC_SRC="\$SAGE_DOC"
|
||||||
##export SAGE_PKGS="\$SAGE_LOCAL//var/lib/sage/installed"
|
##export SAGE_PKGS="\$SAGE_LOCAL/var/lib/sage/installed"
|
||||||
module load 4ti2-%{_arch}
|
module load 4ti2-%{_arch}
|
||||||
module load lrcalc-%{_arch}
|
module load lrcalc-%{_arch}
|
||||||
module load surf-geometry-%{_arch}
|
module load surf-geometry-%{_arch}
|
||||||
|
@ -1292,14 +1318,13 @@ export SINGULAR_DATA_DIR=%{_datadir}
|
||||||
export SINGULAR_BIN_DIR=%{_libdir}/Singular
|
export SINGULAR_BIN_DIR=%{_libdir}/Singular
|
||||||
export SINGULAR_SO=%{_libdir}/libSingular-4.1.1.so
|
export SINGULAR_SO=%{_libdir}/libSingular-4.1.1.so
|
||||||
##export PYTHONPATH="$SAGE_PYTHONPATH:\$SAGE_LOCAL/bin"
|
##export PYTHONPATH="$SAGE_PYTHONPATH:\$SAGE_LOCAL/bin"
|
||||||
export SAGE_CBLAS=blas
|
|
||||||
export SAGE_FORTRAN=%{_bindir}/gfortran
|
export SAGE_FORTRAN=%{_bindir}/gfortran
|
||||||
export SAGE_FORTRAN_LIB=\`gfortran --print-file-name=libgfortran.so\`
|
export SAGE_FORTRAN_LIB=\`gfortran --print-file-name=libgfortran.so\`
|
||||||
export SYMPOW_DIR="\$DOT_SAGE/sympow"
|
export SYMPOW_DIR="\$DOT_SAGE/sympow"
|
||||||
export LC_ALL=C.UTF-8
|
|
||||||
export LD_LIBRARY_PATH=\$SAGE_ROOT/lib:\$LD_LIBRARY_PATH
|
export LD_LIBRARY_PATH=\$SAGE_ROOT/lib:\$LD_LIBRARY_PATH
|
||||||
# Required for sage -gdb
|
# Required for sage -gdb
|
||||||
export SAGE_DEBUG=no
|
: \${SAGE_DEBUG:=no}
|
||||||
|
export SAGE_DEBUG
|
||||||
$SAGE_LOCAL/bin/sage "\$@"
|
$SAGE_LOCAL/bin/sage "\$@"
|
||||||
EOF
|
EOF
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
@ -1357,7 +1382,7 @@ pushd src/doc
|
||||||
export SAGE_DOC_SRC=$SAGE_DOC
|
export SAGE_DOC_SRC=$SAGE_DOC
|
||||||
# python -m sage_setup.docbuild
|
# python -m sage_setup.docbuild
|
||||||
# Build with an X server running, required by some doc builders
|
# Build with an X server running, required by some doc builders
|
||||||
SAGE_NUM_THREADS=2 LANGUAGES="ca de en fr hu it ja pt ru tr" \
|
SAGE_NUM_THREADS=2 \
|
||||||
xvfb-run -a -n 1 %__python3 -m docbuild --no-pdf-links -k all html -j
|
xvfb-run -a -n 1 %__python3 -m docbuild --no-pdf-links -k all html -j
|
||||||
rm -f %{buildroot}%{SAGE_SRC}/doc
|
rm -f %{buildroot}%{SAGE_SRC}/doc
|
||||||
ln -sf %{SAGE_DOC} %{buildroot}%{SAGE_SRC}/doc
|
ln -sf %{SAGE_DOC} %{buildroot}%{SAGE_SRC}/doc
|
||||||
|
@ -1518,9 +1543,6 @@ chmod +x %{buildroot}%{SAGE_LOCAL}/bin/sage-list-packages
|
||||||
# last install command
|
# last install command
|
||||||
rm -fr $DOT_SAGE
|
rm -fr $DOT_SAGE
|
||||||
|
|
||||||
########################################################################
|
|
||||||
%ldconfig_scriptlets core
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
%files
|
%files
|
||||||
# GPLv2+
|
# GPLv2+
|
||||||
|
@ -1573,6 +1595,7 @@ rm -fr $DOT_SAGE
|
||||||
%endif
|
%endif
|
||||||
%if %{with bundled_ipython}
|
%if %{with bundled_ipython}
|
||||||
%{SAGE_PYTHONPATH}/IPython
|
%{SAGE_PYTHONPATH}/IPython
|
||||||
|
%{SAGE_PYTHONPATH}/prompt_toolkit
|
||||||
%endif
|
%endif
|
||||||
%if %{with bundled_ipywidgets}
|
%if %{with bundled_ipywidgets}
|
||||||
%{SAGE_PYTHONPATH}/ipywidgets
|
%{SAGE_PYTHONPATH}/ipywidgets
|
||||||
|
@ -1793,6 +1816,17 @@ rm -fr $DOT_SAGE
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jan 17 2019 Jerry James <loganjerry@gmail.com> - 8.5-1
|
||||||
|
- Update to sagemath 8.5
|
||||||
|
- Bundle ipython again; Fedora version is too far ahead. Also have to bundle
|
||||||
|
prompt_toolkit since Fedora version is too far ahead of bundled ipython.
|
||||||
|
- Drop LANGUAGES variable setting, now ignored by the sagemath build system
|
||||||
|
- Drop unused SAGE_CBLAS variable from /usr/bin/sage
|
||||||
|
- Do not force the C locale when launching sagemath
|
||||||
|
- Allow the user to override SAGE_DEBUG in /usr/bin/sage
|
||||||
|
- Add -ecm, -giac, and -latte patches to fix interactions with external tools
|
||||||
|
- Add -sigfpe patch from upstream
|
||||||
|
|
||||||
* Thu Oct 25 2018 Jerry James <loganjerry@gmail.com> - 8.4-1
|
* Thu Oct 25 2018 Jerry James <loganjerry@gmail.com> - 8.4-1
|
||||||
- Update to sagemath 8.4
|
- Update to sagemath 8.4
|
||||||
- Build for python 3 instead of python 2 due to upcoming python 2 removal
|
- Build for python 3 instead of python 2 due to upcoming python 2 removal
|
||||||
|
|
2
sources
2
sources
|
@ -1 +1 @@
|
||||||
SHA512 (sage-8.4.tar.gz) = 500c5005420c226993b79e89b761a3c9fe57d5ff6d6d71abedaf347ab2fd16b2f5e3b2caa660c4a0d984ba07038f9b4ffce8eb7b6cb28d2448c62d5e18acd871
|
SHA512 (sage-8.5.tar.gz) = ebe373c7be50dc1df96de8a26ce41455869d79159eb584570525bc8a886d95c2605985bdecfa3e5d0ca50248d6bef605e3b8006266eafb39c4fb351bdc3510f4
|
||||||
|
|
Loading…
Add table
Reference in a new issue