mirror of
https://src.fedoraproject.org/rpms/sagemath.git
synced 2025-04-22 11:45:56 -04:00
Update to sagemath 8.7.
- Drop upstreamed -giac patch. - Add -sagetex patch to fix a python indentation error. - Add -rubiks patch to fix compilation of the rubiks library. - Add -random patch to fix a non-random random bit generator. - Drop pip3 workaround; the binary is now named just pip again.
This commit is contained in:
parent
b6408b9313
commit
05337076b6
21 changed files with 898 additions and 442 deletions
|
@ -1,27 +1,163 @@
|
|||
diff -up src/sage/env.py.orig src/sage/env.py
|
||||
--- src/sage/env.py.orig 2019-01-14 17:16:02.000000000 -0700
|
||||
+++ src/sage/env.py 2019-02-07 16:11:38.887417503 -0700
|
||||
@@ -164,7 +164,7 @@ _add_variable_or_fallback('CONWAY_POLYNO
|
||||
_add_variable_or_fallback('GRAPHS_DATA_DIR', opj('$SAGE_SHARE','graphs'))
|
||||
_add_variable_or_fallback('ELLCURVE_DATA_DIR',opj('$SAGE_SHARE','ellcurves'))
|
||||
_add_variable_or_fallback('POLYTOPE_DATA_DIR',opj('$SAGE_SHARE','reflexive_polytopes'))
|
||||
-_add_variable_or_fallback('GAP_ROOT_DIR', opj('$SAGE_SHARE','gap'))
|
||||
+_add_variable_or_fallback('GAP_ROOT_DIR', opj('/usr','lib','gap'))
|
||||
_add_variable_or_fallback('THEBE_DIR', opj('$SAGE_SHARE','thebe'))
|
||||
_add_variable_or_fallback('COMBINATORIAL_DESIGN_DATA_DIR', opj('$SAGE_SHARE', 'combinatorial_designs'))
|
||||
_add_variable_or_fallback('CREMONA_MINI_DATA_DIR', opj('$SAGE_SHARE', 'cremona'))
|
||||
--- src/sage/env.py.orig 2019-04-08 12:21:12.403515647 -0600
|
||||
+++ src/sage/env.py 2019-04-08 12:22:37.165993394 -0600
|
||||
@@ -174,7 +174,7 @@ var('CONWAY_POLYNOMIALS_DATA_DIR', joi
|
||||
var('GRAPHS_DATA_DIR', join(SAGE_SHARE, 'graphs'))
|
||||
var('ELLCURVE_DATA_DIR', join(SAGE_SHARE, 'ellcurves'))
|
||||
var('POLYTOPE_DATA_DIR', join(SAGE_SHARE, 'reflexive_polytopes'))
|
||||
-var('GAP_ROOT_DIR', join(SAGE_SHARE, 'gap'))
|
||||
+var('GAP_ROOT_DIR', join('/usr','lib','gap'))
|
||||
var('THEBE_DIR', join(SAGE_SHARE, 'thebe'))
|
||||
var('COMBINATORIAL_DESIGN_DATA_DIR', join(SAGE_SHARE, 'combinatorial_designs'))
|
||||
var('CREMONA_MINI_DATA_DIR', join(SAGE_SHARE, 'cremona'))
|
||||
diff -up src/sage/interfaces/tests.py.orig src/sage/interfaces/tests.py
|
||||
--- src/sage/interfaces/tests.py.orig 2019-03-23 16:20:41.000000000 -0600
|
||||
+++ src/sage/interfaces/tests.py 2019-04-08 12:32:57.223857758 -0600
|
||||
@@ -33,7 +33,7 @@ Test that write errors to stderr are han
|
||||
sage: kwds = dict(shell=True, stdout=f, stderr=f)
|
||||
sage: subprocess.call("echo syntax error | ecl", **kwds)
|
||||
0
|
||||
- sage: subprocess.call("echo syntax error | gap", **kwds)
|
||||
+ sage: subprocess.call("echo syntax error | gap", **kwds) in (0, 1)
|
||||
0
|
||||
sage: subprocess.call("echo syntax error | gp", **kwds)
|
||||
0
|
||||
diff -up src/sage/libs/gap/gap_includes.pxd.orig src/sage/libs/gap/gap_includes.pxd
|
||||
--- src/sage/libs/gap/gap_includes.pxd.orig 2019-03-23 16:20:41.000000000 -0600
|
||||
+++ src/sage/libs/gap/gap_includes.pxd 2019-04-08 12:34:27.782231417 -0600
|
||||
@@ -76,18 +76,16 @@ cdef extern from "<gap/io.h>":
|
||||
|
||||
|
||||
cdef extern from "<gap/libgap-api.h>":
|
||||
- ctypedef void (*CallbackFunc)()
|
||||
- void GAP_Initialize(int argc, char ** argv, char ** env,
|
||||
- CallbackFunc, CallbackFunc)
|
||||
+ """
|
||||
+ #define sig_GAP_Enter() {int t = GAP_Enter(); if (!t) sig_error();}
|
||||
+ """
|
||||
+ ctypedef void (*GAP_CallbackFunc)()
|
||||
+ void GAP_Initialize(int argc, char ** argv,
|
||||
+ GAP_CallbackFunc markBagsCallback, GAP_CallbackFunc errorCallback,
|
||||
+ int handleSignals)
|
||||
Obj GAP_EvalString(const char *) except *
|
||||
Obj GAP_EvalStringNoExcept "GAP_EvalString"(const char *)
|
||||
Obj GAP_ValueGlobalVariable(const char *)
|
||||
-
|
||||
-
|
||||
-cdef extern from "<gap/libgap-api.h>" nogil:
|
||||
- """
|
||||
- #define sig_GAP_Enter() {int t = GAP_Enter(); if (!t) sig_error();}
|
||||
- """
|
||||
cdef void GAP_EnterStack()
|
||||
cdef void GAP_LeaveStack()
|
||||
cdef int GAP_Enter() except 0
|
||||
@@ -121,26 +119,31 @@ cdef extern from "<gap/objects.h>":
|
||||
UInt TNUM_OBJ(Obj obj)
|
||||
char* TNAM_OBJ(Obj obj)
|
||||
|
||||
- cdef int T_INTPOS
|
||||
- cdef int T_INTNEG
|
||||
- cdef int T_RAT
|
||||
- cdef int T_CYC
|
||||
- cdef int T_FFE
|
||||
- cdef int T_PERM2
|
||||
- cdef int T_PERM4
|
||||
- cdef int T_BOOL
|
||||
- cdef int T_CHAR
|
||||
- cdef int T_FUNCTION
|
||||
- cdef int T_MACFLOAT
|
||||
- cdef int T_PLIST
|
||||
- cdef int T_PLIST_CYC
|
||||
- cdef int T_BLIST
|
||||
- cdef int T_STRING
|
||||
- cdef int T_COMOBJ
|
||||
- cdef int T_POSOBJ
|
||||
- cdef int T_DATOBJ
|
||||
- cdef int T_WPOBJ
|
||||
-
|
||||
+ cdef enum TNUM:
|
||||
+ T_INT
|
||||
+ T_INTPOS
|
||||
+ T_INTNEG
|
||||
+ T_RAT
|
||||
+ T_CYC
|
||||
+ T_FFE
|
||||
+ T_MACFLOAT
|
||||
+ T_PERM2
|
||||
+ T_PERM4
|
||||
+ T_TRANS2
|
||||
+ T_TRANS4
|
||||
+ T_PPERM2
|
||||
+ T_PPERM4
|
||||
+ T_BOOL
|
||||
+ T_CHAR
|
||||
+ T_FUNCTION
|
||||
+ T_PLIST
|
||||
+ T_PLIST_CYC
|
||||
+ T_BLIST
|
||||
+ T_STRING
|
||||
+ T_COMOBJ
|
||||
+ T_POSOBJ
|
||||
+ T_DATOBJ
|
||||
+ T_WPOBJ
|
||||
|
||||
cdef extern from "<gap/precord.h>":
|
||||
Obj NEW_PREC(int len)
|
||||
diff -up src/sage/libs/gap/libgap.pyx.orig src/sage/libs/gap/libgap.pyx
|
||||
--- src/sage/libs/gap/libgap.pyx.orig 2019-03-23 16:20:41.000000000 -0600
|
||||
+++ src/sage/libs/gap/libgap.pyx 2019-04-08 12:25:35.700787082 -0600
|
||||
@@ -233,14 +233,6 @@ from sage.misc.superseded import depreca
|
||||
############################################################################
|
||||
|
||||
|
||||
-cdef void report(Obj bag):
|
||||
- print(TNAM_OBJ(bag), <int>SIZE_OBJ(bag))
|
||||
-
|
||||
-
|
||||
-cdef void print_gasman_objects():
|
||||
- CallbackForAllBags(report)
|
||||
-
|
||||
-
|
||||
from sage.misc.lazy_import import is_during_startup
|
||||
if is_during_startup():
|
||||
import sys, traceback
|
||||
diff -up src/sage/libs/gap/util.pyx.orig src/sage/libs/gap/util.pyx
|
||||
--- src/sage/libs/gap/util.pyx.orig 2019-01-14 17:16:03.000000000 -0700
|
||||
+++ src/sage/libs/gap/util.pyx 2019-02-07 16:13:52.658939819 -0700
|
||||
@@ -18,6 +18,7 @@ import os
|
||||
import signal
|
||||
import warnings
|
||||
--- src/sage/libs/gap/util.pyx.orig 2019-03-23 16:20:41.000000000 -0600
|
||||
+++ src/sage/libs/gap/util.pyx 2019-04-08 12:37:02.323035697 -0600
|
||||
@@ -14,19 +14,16 @@ Utility functions for GAP
|
||||
|
||||
+from posix.dlfcn cimport dlopen, dlclose, RTLD_NOW, RTLD_GLOBAL
|
||||
from libc.string cimport strcpy, strlen
|
||||
from __future__ import print_function, absolute_import
|
||||
|
||||
from cpython.exc cimport PyErr_SetObject, PyErr_Occurred, PyErr_Fetch
|
||||
@@ -181,7 +182,7 @@ def gap_root():
|
||||
-import os
|
||||
-import signal
|
||||
-import warnings
|
||||
+from libc.signal cimport signal, SIGCHLD, SIG_DFL
|
||||
from posix.dlfcn cimport dlopen, dlclose, RTLD_NOW, RTLD_GLOBAL
|
||||
-from libc.string cimport strcpy, strlen
|
||||
|
||||
from cpython.exc cimport PyErr_Fetch, PyErr_Restore
|
||||
from cpython.object cimport Py_LT, Py_LE, Py_EQ, Py_NE, Py_GT, Py_GE
|
||||
from cpython.ref cimport PyObject, Py_XINCREF, Py_XDECREF
|
||||
-from cysignals.memory cimport sig_malloc
|
||||
-from cysignals.pysignals import containsignals
|
||||
-from cysignals.signals cimport sig_on, sig_off, sig_error
|
||||
+from cysignals.signals cimport sig_on, sig_off
|
||||
|
||||
+import os
|
||||
+import warnings
|
||||
import sage.env
|
||||
|
||||
from .gap_includes cimport *
|
||||
@@ -105,7 +102,7 @@ cdef class ObjWrapper(object):
|
||||
sage: hash(x)
|
||||
0
|
||||
"""
|
||||
- return <int>(self.value)
|
||||
+ return <Py_hash_t>(self.value)
|
||||
|
||||
|
||||
cdef ObjWrapper wrap_obj(Obj obj):
|
||||
@@ -178,7 +175,7 @@ def gap_root():
|
||||
|
||||
sage: from sage.libs.gap.util import gap_root
|
||||
sage: gap_root() # random output
|
||||
|
@ -30,22 +166,118 @@ diff -up src/sage/libs/gap/util.pyx.orig src/sage/libs/gap/util.pyx
|
|||
"""
|
||||
if os.path.exists(sage.env.GAP_ROOT_DIR):
|
||||
return sage.env.GAP_ROOT_DIR
|
||||
@@ -259,6 +260,18 @@ cdef initialize():
|
||||
global _gap_is_initialized, environ
|
||||
if _gap_is_initialized: return
|
||||
@@ -197,7 +194,6 @@ def gap_root():
|
||||
|
||||
+ # Hack to ensure that all symbols provided by libgap are loaded into the
|
||||
+ # global symbol table
|
||||
+ # Note: we could use RTLD_NOLOAD and avoid the subsequent dlclose() but
|
||||
+ # this isn't portable
|
||||
+ cdef void* handle
|
||||
# To ensure that we call initialize_libgap only once.
|
||||
cdef bint _gap_is_initialized = False
|
||||
-cdef extern char **environ
|
||||
|
||||
|
||||
cdef char* _reset_error_output_cmd = """\
|
||||
@@ -216,33 +212,6 @@ MakeImmutable(libgap_errout);
|
||||
"""
|
||||
|
||||
|
||||
-cdef char** copy_environ(char** env):
|
||||
- """
|
||||
- Make a copy of the environment block given by ``env``.
|
||||
-
|
||||
- Returns a pointer to the copy, which is the caller's responsibility to
|
||||
- free.
|
||||
- """
|
||||
-
|
||||
- cdef char** env_copy
|
||||
- cdef int envc = 0;
|
||||
- cdef int idx
|
||||
- cdef size_t size
|
||||
-
|
||||
- while env[envc]:
|
||||
- envc += 1
|
||||
-
|
||||
- env_copy = <char**>sig_malloc((envc + 1) * sizeof(char*))
|
||||
-
|
||||
- for idx in range(envc):
|
||||
- size = strlen(env[idx]) + 1
|
||||
- env_copy[idx] = <char*>sig_malloc(size)
|
||||
- strcpy(env_copy[idx], env[idx])
|
||||
-
|
||||
- env_copy[envc] = NULL
|
||||
- return env_copy
|
||||
-
|
||||
-
|
||||
cdef initialize():
|
||||
"""
|
||||
Initialize the GAP library, if it hasn't already been
|
||||
@@ -253,25 +222,23 @@ cdef initialize():
|
||||
sage: libgap(123) # indirect doctest
|
||||
123
|
||||
"""
|
||||
- global _gap_is_initialized, environ
|
||||
+ global _gap_is_initialized
|
||||
if _gap_is_initialized: return
|
||||
# Hack to ensure that all symbols provided by libgap are loaded into the
|
||||
# global symbol table
|
||||
# Note: we could use RTLD_NOLOAD and avoid the subsequent dlclose() but
|
||||
# this isn't portable
|
||||
cdef void* handle
|
||||
- libgapname = str_to_bytes(sage.env.GAP_SO)
|
||||
- handle = dlopen(libgapname, RTLD_NOW | RTLD_GLOBAL)
|
||||
+ handle = dlopen("libgap.so", RTLD_NOW | RTLD_GLOBAL)
|
||||
+ if handle == NULL:
|
||||
+ raise RuntimeError(
|
||||
+ "Could not dlopen() libgap.so even though it should already "
|
||||
+ "be loaded!")
|
||||
+ dlclose(handle)
|
||||
+
|
||||
# Define argv and environ variables, which we will pass in to
|
||||
if handle is NULL:
|
||||
raise RuntimeError(
|
||||
"Could not dlopen() libgap even though it should already "
|
||||
"be loaded!")
|
||||
dlclose(handle)
|
||||
|
||||
- # Define argv and environ variables, which we will pass in to
|
||||
+ # Define argv variable, which we will pass in to
|
||||
# initialize GAP. Note that we must pass define the memory pool
|
||||
# size!
|
||||
- cdef char** env
|
||||
cdef char* argv[18]
|
||||
argv[0] = "sage"
|
||||
argv[1] = "-l"
|
||||
@@ -318,21 +285,15 @@ cdef initialize():
|
||||
|
||||
argv[argc] = NULL
|
||||
|
||||
- env = copy_environ(environ)
|
||||
+ sig_on()
|
||||
+ # Initialize GAP but disable their SIGINT handler
|
||||
+ GAP_Initialize(argc, argv, gasman_callback, error_handler,
|
||||
+ handleSignals=False)
|
||||
+ sig_off()
|
||||
|
||||
- # Need to save/restore current SIGINT handling since GAP_Initialize
|
||||
- # currently clobbers it; it doesn't matter what we set SIGINT to
|
||||
- # temporarily.
|
||||
- with containsignals():
|
||||
- sig_on()
|
||||
- try:
|
||||
- # Initialize GAP and capture any error messages. The
|
||||
- # initialization just prints any errors and does not
|
||||
- # use the error handler.
|
||||
- GAP_Initialize(argc, argv, env, &gasman_callback,
|
||||
- &error_handler)
|
||||
- finally:
|
||||
- sig_off()
|
||||
+ # Disable GAP's SIGCHLD handler ChildStatusChanged(), which calls
|
||||
+ # waitpid() on random child processes.
|
||||
+ signal(SIGCHLD, SIG_DFL)
|
||||
|
||||
# Set the ERROR_OUTPUT global in GAP to an output stream in which to
|
||||
# receive error output
|
||||
diff -up src/sage/tests/books/judson-abstract-algebra/sylow-sage.py.orig src/sage/tests/books/judson-abstract-algebra/sylow-sage.py
|
||||
--- src/sage/tests/books/judson-abstract-algebra/sylow-sage.py.orig 2019-03-23 16:20:43.000000000 -0600
|
||||
+++ src/sage/tests/books/judson-abstract-algebra/sylow-sage.py 2019-04-08 12:37:39.859183332 -0600
|
||||
@@ -225,8 +225,8 @@ r"""
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ ::
|
||||
|
||||
- sage: gap.version()
|
||||
- '4.10.0'
|
||||
+ sage: gap.version() # random
|
||||
+ '4.10.1'
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~ ::
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue