Upgrade SageMath to 9.2.

Changelog at <https://www.sagemath.org/changelogs/sage-9.2.txt>.
This commit is contained in:
Thierry Thomas 2020-10-29 11:07:35 +00:00
parent 16891f361b
commit a27bd46abb
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=553606
20 changed files with 473 additions and 2420 deletions

View File

@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= sage
PORTVERSION= 9.1
PORTREVISION= 7
PORTVERSION= 9.2
CATEGORIES= math
MASTER_SITES= https://mirrors.xmission.com/sage/src/ \
http://mirrors.xmission.com/sage/src/ \
@ -11,6 +10,7 @@ MASTER_SITES= https://mirrors.xmission.com/sage/src/ \
https://mirrors.mit.edu/sage/src/ \
https://files.sagemath.org/src/ \
ftp://www-ftp.lip6.fr/pub/math/sagemath/src/
#MASTER_SITES= ftp://www-ftp.lip6.fr/pub/math/sagemath/devel/
PKGNAMESUFFIX= -math
MAINTAINER= thierry@FreeBSD.org
@ -24,11 +24,13 @@ BUILD_DEPENDS= bash:shells/bash \
cmake:devel/cmake \
dreadnaut:math/nauty \
${PYTHON_PKGNAMEPREFIX}alabaster>0:textproc/py-alabaster@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}attrs>0:devel/py-attrs@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}Babel>0:devel/py-babel@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}backcall>0:devel/py-backcall@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}bleach>0:www/py-bleach@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}brial>0:math/py-brial@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}certifi>0:security/py-certifi@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}configparser>0:devel/py-configparser@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}cffi>0:devel/py-cffi@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}cvxopt>0:math/py-cvxopt@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}cycler>0:devel/py-cycler@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}cypari2>0:math/py-cypari2@${PY_FLAVOR}\
@ -40,14 +42,17 @@ BUILD_DEPENDS= bash:shells/bash \
${PYTHON_PKGNAMEPREFIX}docutils>0:textproc/py-docutils@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}entrypoints>0:devel/py-entrypoints@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}fpylll>0:math/py-fpylll@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}future>0:devel/py-future@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}gmpy2-devel>0:math/py-gmpy2-devel@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}html5lib>0:www/py-html5lib@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}imagesize>0:graphics/py-imagesize@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}ipython5>0:devel/ipython5@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}importlib-metadata>0:devel/py-importlib-metadata@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}ipykernel5>0:devel/py-ipykernel5@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}ipython>0:devel/ipython@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}ipython_genutils>0:devel/py-ipython_genutils@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}ipywidgets>0:devel/py-ipywidgets@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}itsdangerous>0:security/py-itsdangerous@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}Jinja2>0i:devel/py-Jinja2@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}jedi>0:devel/py-jedi@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}jsonschema>0:devel/py-jsonschema@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}jupyter_core>0:devel/py-jupyter_core@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}jupyter_client>0:devel/py-jupyter_client@${PY_FLAVOR}\
@ -60,20 +65,26 @@ BUILD_DEPENDS= bash:shells/bash \
${PYTHON_PKGNAMEPREFIX}nbformat>0:devel/py-nbformat@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}networkx>0:math/py-networkx@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}nose>0:devel/py-nose@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}notebook>0:www/py-notebook@${PY_FLAVOR}\
${PYNUMPY} \
${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pandocfilters>0:textproc/py-pandocfilters@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pathlib2>0:devel/py-pathlib2@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}parso>0:textproc/py-parso@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}path.py>0:devel/py-path.py@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pexpect>0:misc/py-pexpect@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pickleshare>0:databases/py-pickleshare@${PY_FLAVOR}\
${PY_PILLOW} \
${PYTHON_PKGNAMEPREFIX}pkgconfig>0:devel/py-pkgconfig@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pplpy>0:math/py-pplpy@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}prometheus-client>0:net-mgmt/py-prometheus-client@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}prompt_toolkit1>0:devel/py-prompt_toolkit1@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}prompt_toolkit>0:devel/py-prompt_toolkit@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}psutil>0:sysutils/py-psutil@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}ptyprocess>0:sysutils/py-ptyprocess@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pybind11>0:devel/py-pybind11@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pycparser>0:devel/py-pycparser@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pyparsing>0:devel/py-pyparsing@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pygments>0:textproc/py-pygments@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pyrsistent>0:devel/py-pyrsistent@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pytz>0:devel/py-pytz@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pyzmq>0:net/py-pyzmq@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR}\
@ -85,19 +96,29 @@ BUILD_DEPENDS= bash:shells/bash \
${PYTHON_PKGNAMEPREFIX}simplegeneric>0:devel/py-simplegeneric@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}snowballstemmer>0:textproc/py-snowballstemmer@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sphinx>0:textproc/py-sphinx@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sphinxcontrib-applehelp>0:textproc/py-sphinxcontrib-applehelp@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sphinxcontrib-devhelp>0:textproc/py-sphinxcontrib-devhelp@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sphinxcontrib-htmlhelp>0:textproc/py-sphinxcontrib-htmlhelp@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sphinxcontrib-jsmath>0:textproc/py-sphinxcontrib-jsmath@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sphinxcontrib-qthelp>0:textproc/py-sphinxcontrib-qthelp@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sphinxcontrib-serializinghtml>0:textproc/py-sphinxcontrib-serializinghtml@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sphinxcontrib-websupport>0:textproc/py-sphinxcontrib-websupport@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sympy>0:math/py-sympy@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}terminado>0:net/py-terminado@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}testpath>0:devel/py-testpath@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}traitlets>0:devel/py-traitlets@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}tornado>0:www/py-tornado@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}traitlets>0:devel/py-traitlets@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}twisted>0:devel/py-twisted@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}tzlocal>0:devel/py-tzlocal@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}vcversioner>0:devel/py-vcversioner@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}wcwidth>0:devel/py-wcwidth@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}webencodings>0:converters/py-webencodings@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}werkzeug>0:www/py-werkzeug@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}widgetsnbextension>0:devel/py-widgetsnbextension@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}zipp>0:devel/py-zipp@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}zope.interface>0:devel/py-zope.interface@${PY_FLAVOR}\
fflas-ffpack-config:math/fflas-ffpack \
fricas>0:math/fricas \
gfan:math/gfan \
git:devel/git \
gp2c:math/gp2c \
@ -164,7 +185,7 @@ LIB_DEPENDS= libarb.so:math/arb \
libgiac.so:math/giacxcas \
liblinbox.so:math/linbox \
liblrcalc.so:math/lrcalc \
liblrs.so:math/lrslib \
liblrs.so:math/lrslib \
libm4ri.so:math/m4ri \
libm4rie.so:math/m4rie \
libmpc.so:math/mpc \
@ -201,11 +222,13 @@ LIB_DEPENDS= libarb.so:math/arb \
RUN_DEPENDS= bash:shells/bash \
dreadnaut:math/nauty \
${PYTHON_PKGNAMEPREFIX}alabaster>0:textproc/py-alabaster@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}attrs>0:devel/py-attrs@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}Babel>0:devel/py-babel@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}backcall>0:devel/py-backcall@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}bleach>0:www/py-bleach@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}brial>0:math/py-brial@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}certifi>0:security/py-certifi@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}configparser>0:devel/py-configparser@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}cffi>0:devel/py-cffi@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}cvxopt>0:math/py-cvxopt@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}cycler>0:devel/py-cycler@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}cypari2>0:math/py-cypari2@${PY_FLAVOR}\
@ -217,14 +240,17 @@ RUN_DEPENDS= bash:shells/bash \
${PYTHON_PKGNAMEPREFIX}docutils>0:textproc/py-docutils@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}entrypoints>0:devel/py-entrypoints@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}fpylll>0:math/py-fpylll@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}future>0:devel/py-future@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}gmpy2-devel>0:math/py-gmpy2-devel@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}html5lib>0:www/py-html5lib@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}imagesize>0:graphics/py-imagesize@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}ipython5>0:devel/ipython5@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}importlib-metadata>0:devel/py-importlib-metadata@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}ipykernel5>0:devel/py-ipykernel5@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}ipython>0:devel/ipython@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}ipython_genutils>0:devel/py-ipython_genutils@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}ipywidgets>0:devel/py-ipywidgets@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}itsdangerous>0:security/py-itsdangerous@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}jedi>0:devel/py-jedi@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}jsonschema>0:devel/py-jsonschema@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}jupyter_core>0:devel/py-jupyter_core@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}jupyter_client>0:devel/py-jupyter_client@${PY_FLAVOR}\
@ -237,20 +263,26 @@ RUN_DEPENDS= bash:shells/bash \
${PYTHON_PKGNAMEPREFIX}nbformat>0:devel/py-nbformat@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}networkx>0:math/py-networkx@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}nose>0:devel/py-nose@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}notebook>0:www/py-notebook@${PY_FLAVOR}\
${PYNUMPY} \
${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pandocfilters>0:textproc/py-pandocfilters@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pathlib2>0:devel/py-pathlib2@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}parso>0:textproc/py-parso@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}path.py>0:devel/py-path.py@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pexpect>0:misc/py-pexpect@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pickleshare>0:databases/py-pickleshare@${PY_FLAVOR}\
${PY_PILLOW} \
${PYTHON_PKGNAMEPREFIX}pkgconfig>0:devel/py-pkgconfig@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pplpy>0:math/py-pplpy@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}prometheus-client>0:net-mgmt/py-prometheus-client@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}prompt_toolkit1>0:devel/py-prompt_toolkit1@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}prompt_toolkit>0:devel/py-prompt_toolkit@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}psutil>0:sysutils/py-psutil@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}ptyprocess>0:sysutils/py-ptyprocess@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pybind11>0:devel/py-pybind11@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pycparser>0:devel/py-pycparser@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pyparsing>0:devel/py-pyparsing@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pygments>0:textproc/py-pygments@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pyrsistent>0:devel/py-pyrsistent@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pytz>0:devel/py-pytz@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}pyzmq>0:net/py-pyzmq@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR}\
@ -262,18 +294,28 @@ RUN_DEPENDS= bash:shells/bash \
${PYTHON_PKGNAMEPREFIX}simplegeneric>0:devel/py-simplegeneric@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}snowballstemmer>0:textproc/py-snowballstemmer@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sphinx>0:textproc/py-sphinx@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sphinxcontrib-applehelp>0:textproc/py-sphinxcontrib-applehelp@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sphinxcontrib-devhelp>0:textproc/py-sphinxcontrib-devhelp@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sphinxcontrib-htmlhelp>0:textproc/py-sphinxcontrib-htmlhelp@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sphinxcontrib-jsmath>0:textproc/py-sphinxcontrib-jsmath@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sphinxcontrib-qthelp>0:textproc/py-sphinxcontrib-qthelp@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sphinxcontrib-serializinghtml>0:textproc/py-sphinxcontrib-serializinghtml@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sphinxcontrib-websupport>0:textproc/py-sphinxcontrib-websupport@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}sympy>0:math/py-sympy@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}terminado>0:net/py-terminado@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}testpath>0:devel/py-testpath@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}tornado>0:www/py-tornado@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}traitlets>0:devel/py-traitlets@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}twisted>0:devel/py-twisted@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}tzlocal>0:devel/py-tzlocal@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}vcversioner>0:devel/py-vcversioner@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}wcwidth>0:devel/py-wcwidth@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}webencodings>0:converters/py-webencodings@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}werkzeug>0:www/py-werkzeug@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}widgetsnbextension>0:devel/py-widgetsnbextension@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}zipp>0:devel/py-zipp@${PY_FLAVOR}\
${PYTHON_PKGNAMEPREFIX}zope.interface>0:devel/py-zope.interface@${PY_FLAVOR}\
fflas-ffpack-config:math/fflas-ffpack \
fricas>0:math/fricas \
gfan:math/gfan \
git:devel/git \
gp2c:math/gp2c \
@ -305,12 +347,7 @@ USE_GNOME= cairo glib20 pango
USE_PYTHON= cython
USE_JAVA= yes # for science/jmol
CONFLICTS= ${PYTHON_PKGNAMEPREFIX}ipykernel5-5.* \
${PYTHON_PKGNAMEPREFIX}ipython-7.* \
${PYTHON_PKGNAMEPREFIX}ipywidgets-7.* \
${PYTHON_PKGNAMEPREFIX}notebook-6.* \
${PYTHON_PKGNAMEPREFIX}prompt_toolkit-2.* \
${PYTHON_PKGNAMEPREFIX}widgetsnbextension-3.5.*
CONFLICTS= ${PYTHON_PKGNAMEPREFIX}wheel-0.*
SHEBANG_FILES= .
SHEBANG_LANG+= dash
@ -330,21 +367,21 @@ CONFIGURE_ENV= SAGE_PORT=yes CC=${CC} GCC=${CC} CXX=${CXX} AS=${AS} LD=${LD} \
DESTDIR=${BLDDIR}/${PREFIX} PATCH=${LOCALBASE}/bin/gpatch
CONFIGURE_ARGS= --with-system-gcc=force \
--with-system-python3=yes \
--with-python=${PYTHON_CMD} \
--enable-build-as-root \
--disable-download-from-upstream-url \
--localstatedir=/var
MAKE_ENV= MAKE=${GMAKE} DESTDIR=${BLDDIR}
ALL_TARGET= build
REINPLACE_ARGS= -i ''
BINARY_ALIAS= patch=${LOCALBASE}/bin/gpatch
OPTIONS_SUB= yes
PLIST_SUB= VER=${PORTVERSION}
PLIST_SUB= VER=${DISTVERSION}
SUB_FILES= pkg-message
OPTIONS_DEFINE= DOCS
PORTDOCS= *
DOCS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinx>0:textproc/py-sphinx
.include <bsd.port.pre.mk>
WSDIR= ${BLDDIR}${PREFIX}
@ -359,21 +396,20 @@ STG2FIX= bin/sage-env-config \
BADLN= kernels/sagemath/doc nbextensions/jsmol \
nbextensions/mathjax nbextensions/threejs
# External dependencies not yet handled by SageMath
PY_LIBS= alabaster babel bleach certifi configparser cvxopt cycler \
# Note: do not use wheel from ports
PY_LIBS= alabaster attrs babel backcall bleach certifi cffi cvxopt cycler \
cypari cysignals cython dateutil decorator defusedxml docutils \
entrypoints fpylll future gmpy2 html5lib imagesize ipython \
ipython_genutils itsdangerous jinja2 jsonschema jupyter_client \
entrypoints fpylll gmpy2 html5lib imagesize importlib_metadata ipykernel ipython \
ipython_genutils ipywidgets itsdangerous jedi jinja2 jsonschema jupyter_client \
jupyter_core kiwisolver markupsafe matplotlib mistune mpmath \
nbconvert nbformat networkx nose numpy packaging pandocfilters \
pathlib2 pexpect pickleshare pillow pkgconfig pplpy \
prometheus_client prompt_toolkit psutil ptyprocess pyparsing \
pytz pyzmq requests rpy2 scandir scipy send2trash simplegeneric \
six snowballstemmer sympy terminado testpath tornado traitlets \
twisted vcversioner wcwidth webencodings werkzeug zope_interface
PY_FILES= sage_brial
nbconvert nbformat networkx nose notebook numpy packaging pandocfilters \
parso pathpy pexpect pickleshare pillow pkgconfig pplpy \
prometheus_client prompt_toolkit psutil ptyprocess pybind11 pycparser pyparsing \
pygments pyrsistent pytz pyzmq requests rpy2 scandir scipy send2trash simplegeneric \
six snowballstemmer sphinx sphinxcontrib_applehelp sphinxcontrib_devhelp sphinxcontrib_htmlhelp sphinxcontrib_jsmath sphinxcontrib_qthelp sphinxcontrib_serializinghtml sphinxcontrib_websupport sympy terminado testpath tornado traitlets \
tzlocal vcversioner wcwidth webencodings widgetsnbextension zipp zope_interface
JS_LIBS= jmol mathjax threejs
SPKGCM4= brial e_antic ecl gap gc giac libhomfly linbox maxima palp pynac \
rubiks singular suitesparse sympow zn_poly
SPKGCM4= e_antic ecl gap libhomfly linbox maxima pynac rubiks singular
post-patch:
${CP} ${FILESDIR}/psutil__arch__bsd__freebsd_socks.c.patch \
@ -386,10 +422,10 @@ post-patch:
${CP} ${FILESDIR}/py_libs_spkg-configure.m4 \
${WRKSRC}/build/pkgs/${sp:C/pari2/pari/}/spkg-configure.m4
.endfor
.for sp in ${PY_FILES}
${SED} -e 's|%%PYTHON_SITELIBDIR%%|${PYTHON_SITELIBDIR}|' ${FILESDIR}/${sp}_spkg-configure.m4.in \
> ${WRKSRC}/build/pkgs/${sp}/spkg-configure.m4
.endfor
#.for sp in ${PY_FILES}
# ${SED} -e 's|%%PYTHON_SITELIBDIR%%|${PYTHON_SITELIBDIR}|' ${FILESDIR}/${sp}_spkg-configure.m4.in \
# > ${WRKSRC}/build/pkgs/${sp}/spkg-configure.m4
#.endfor
.for sp in ${JS_LIBS}
${SED} -e 's|%%LOCALBASE%%|${LOCALBASE}|' ${FILESDIR}/${sp}_spkg-configure.m4.in \
> ${WRKSRC}/build/pkgs/${sp}/spkg-configure.m4
@ -404,20 +440,31 @@ pre-configure:
${WRKSRC}/build/pkgs/tachyon/patches/Make-arch.patch
${REINPLACE_CMD} -e '/SUITESPARSE_INC_DIR/s|$${SAGE_LOCAL}/include|${LOCALBASE}/include/suitesparse|'\
${WRKSRC}/build/pkgs/cvxopt/spkg-install.in
${REINPLACE_CMD} -e 's|exec python3|exec ${PYTHON_CMD}|' \
-e 's|exec "$$SAGE_LOCAL"/bin/python3|exec ${PYTHON_CMD}|' \
${WRKSRC}/src/bin/sage
.for f in ${PY_LIBS}
${REINPLACE_CMD} -e 's|python3|${PYTHON_CMD}|;s|py_libs|${f}|' \
${WRKSRC}/build/pkgs/${f}/spkg-configure.m4
.endfor
${REINPLACE_CMD} -e 's|import attrs|import attr|' \
${WRKSRC}/build/pkgs/attrs/spkg-configure.m4
${REINPLACE_CMD} -e 's|import cypari|import cypari2|' \
${WRKSRC}/build/pkgs/cypari/spkg-configure.m4
${REINPLACE_CMD} -e 's|import ipython|import IPython|' \
${WRKSRC}/build/pkgs/ipython/spkg-configure.m4
${REINPLACE_CMD} -e 's|import pathpy|import path|' \
${WRKSRC}/build/pkgs/pathpy/spkg-configure.m4
${REINPLACE_CMD} -e 's|import pillow|import PIL|' \
${WRKSRC}/build/pkgs/pillow/spkg-configure.m4
${REINPLACE_CMD} -e 's|import pplpy|import ppl|' \
${WRKSRC}/build/pkgs/pplpy/spkg-configure.m4
${REINPLACE_CMD} -e 's|import pyzmq|import zmq|' \
${WRKSRC}/build/pkgs/pyzmq/spkg-configure.m4
.for f in applehelp devhelp htmlhelp jsmath qthelp serializinghtml websupport
${REINPLACE_CMD} -e 's|import sphinxcontrib_|import sphinxcontrib.|' \
${WRKSRC}/build/pkgs/sphinxcontrib_${f}/spkg-configure.m4
.endfor
${REINPLACE_CMD} -e 's|import zope_interface|import zope.interface|' \
${WRKSRC}/build/pkgs/zope_interface/spkg-configure.m4
${REINPLACE_CMD} -e '/GAP_ROOT=/s|$$SAGE_LOCAL|${LOCALBASE}|' \
@ -490,19 +537,6 @@ post-build:
${BLDDIR}${PYTHON_SITELIBDIR}/easy_install.py \
${BLDDIR}${PYTHON_SITELIBDIR}/pkg_resources \
${BLDDIR}${PYTHON_SITELIBDIR}/__pycache__/easy_install*
# Remoce CONFLICTS with py3x-backports-1
${RM} ${BLDDIR}${PYTHON_SITELIBDIR}/backports/__init__.py \
${BLDDIR}${PYTHON_SITELIBDIR}/backports/__init__.cpython-${PYTHON_SUFFIX}.pyc
# Wont use a system package for sphinx because it would need py-sphinx18 + its dependencies
# Check https://trac.sagemath.org/ticket/28856
${RM} ${BLDDIR}${PREFIX}/bin/sphinx-*
${RM} -r ${BLDDIR}${PYTHON_SITELIBDIR}/sphinx
${RM} -r ${BLDDIR}${PYTHON_SITELIBDIR}/sphinxcontrib \
${BLDDIR}${PYTHON_SITELIBDIR}/Sphinx-* \
${BLDDIR}${PYTHON_SITELIBDIR}/sphinxcontrib_websupport-*
${RM} -r ${BLDDIR}${PREFIX}/bin/pygmentize \
${BLDDIR}${PYTHON_SITELIBDIR}/Pygments-* \
${BLDDIR}${PYTHON_SITELIBDIR}/pygments
# Remove CONFLICTS with lang/python3
${RM} ${BLDDIR}${PREFIX}/bin/python ${BLDDIR}${PREFIX}/bin/python3
${REINPLACE_CMD} -e '/exec/s|python3|${PYTHON_VERSION}|' ${BLDDIR}${PREFIX}/bin/sage

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1590251415
SHA256 (sage-9.1.tar.gz) = 1ca30cc554e99910752170214e1d30576800ec897d66c77481b4eb505afefbb3
SIZE (sage-9.1.tar.gz) = 1125768506
TIMESTAMP = 1603652320
SHA256 (sage-9.2.tar.gz) = 790550d9a5dc416f469773e9284b1080494ae221d6a616a33a9e5345d513baf9
SIZE (sage-9.2.tar.gz) = 1162140478

View File

@ -1,47 +0,0 @@
SAGE_SPKG_CONFIGURE([brial], [
SAGE_SPKG_DEPCHECK([boost m4ri], [
# If we're using the system m4ri and boost, ensure that we can
# compile and run an executable linked against both libbrial and
# libbrial_groebner (both are used by SageMath).
AC_LANG_PUSH(C++)
SAVED_LIBS=$LIBS
LIBS="$LIBS -lbrial -lbrial_groebner"
AC_MSG_CHECKING([if we can link against brial libraries])
AC_RUN_IFELSE([
AC_LANG_PROGRAM([
#include <polybori.h>
#include <polybori/groebner/groebner_alg.h>
USING_NAMESPACE_PBORI
USING_NAMESPACE_PBORIGB
class MyConstant : public BooleConstant{
public: void negate() { this->m_value = !this->m_value; }
};
],[
BoolePolyRing r = BoolePolyRing(2, COrderEnums::dlex);
ReductionStrategy rs = ReductionStrategy(r);
rs.llReduceAll(); // uses groebner lib
if (2 != r.nVariables()) { return 1; }
if (r.constant(true) == r.constant(false)) { return 2; }
MyConstant f = MyConstant();
f.negate(); // ensures v1.1.0+ if m_value isn't const
if (!f.isOne()) { return 3; }
return 0;
])
],
[
AC_MSG_RESULT([yes])
sage_spkg_install_brial=no
],
[
AC_MSG_RESULT([no])
sage_spkg_install_brial=yes
])
LIBS=$SAVED_LIBS
AC_LANG_POP
],
[ # If we're installing sage's boost or m4ri, then we have to
# install its BRiAl, too.
sage_spkg_install_brial=yes
])
])

View File

@ -1,8 +0,0 @@
SAGE_SPKG_CONFIGURE([giac], [
SAGE_SPKG_DEPCHECK([pari], [
AC_CHECK_HEADER([giac/giac.h], [
AC_SEARCH_LIBS([ConvertUTF16toUTF8], [giac], [
], [sage_spkg_install_giac=yes])
], [sage_spkg_install_giac=yes])
])
])

View File

@ -1,4 +0,0 @@
SAGE_SPKG_CONFIGURE([palp], [
AC_PATH_PROG([PALP], [poly.x])
AS_IF([test -z "$ac_cv_path_PALP"], [sage_spkg_install_palp=yes])
])

View File

@ -1,13 +1,13 @@
--- bootstrap.orig 2020-05-08 20:11:43 UTC
--- bootstrap.orig 2020-10-02 09:05:18 UTC
+++ bootstrap
@@ -98,7 +98,9 @@ SAGE_SPKG_CONFIGURE_$(echo ${pkgname} | tr '[a-z]' '[A
echo "$spkg_configures" >> m4/sage_spkg_configures.m4
SAGE_ROOT="$SAGE_ROOT" src/doc/bootstrap && \
@@ -116,7 +116,9 @@ SAGE_SPKG_CONFIGURE_$(echo ${pkgname} | tr '[a-z]' '[A
BOOTSTRAP_QUIET="${BOOTSTRAP_QUIET}" \
SAGE_ROOT="$SAGE_ROOT" \
src/doc/bootstrap && \
- install_config_rpath && \
+ install_config_rpath
+ exit
+ # Continue with FreeBSD autoreconf
aclocal -I m4 && \
automake --add-missing --copy build/make/Makefile-auto && \
autoconf
automake --add-missing --copy build/make/Makefile-auto 3>&1 1>&2 2>&3 \
| sed "${QUIET_SED_FILTER}" 3>&1 1>&2 2>&3 && \

View File

@ -1,9 +0,0 @@
--- build/bin/sage-build-env-config.in.orig 2020-04-14 07:43:36 UTC
+++ build/bin/sage-build-env-config.in
@@ -87,5 +87,6 @@ export SAGE_PARI_CFG="@SAGE_PARI_CFG@"
export SAGE_GLPK_PREFIX="@SAGE_GLPK_PREFIX@"
export SAGE_FREETYPE_PREFIX="@SAGE_FREETYPE_PREFIX@"
+export SAGE_SUITESPARSE_PREFIX="@SAGE_SUITESPARSE_PREFIX@"
export SAGE_CONFIGURE_FFLAS_FFPACK="@SAGE_CONFIGURE_FFLAS_FFPACK@"

View File

@ -1,6 +1,6 @@
--- build/make/install.orig 2020-05-08 20:50:01 UTC
--- build/make/install.orig 2020-10-27 19:12:31 UTC
+++ build/make/install
@@ -28,7 +28,9 @@ if [ -z "${SAGE_ORIG_PATH_SET}" ]; then
@@ -31,7 +31,9 @@ if [ -z "${SAGE_ORIG_PATH_SET}" ]; then
fi
export PATH="$SAGE_ROOT/build/bin:$SAGE_SRC/bin:$SAGE_LOCAL/bin:$PATH"

View File

@ -1,14 +0,0 @@
--- build/pkgs/flint/spkg-configure.m4.orig 2020-06-18 13:10:54 UTC
+++ build/pkgs/flint/spkg-configure.m4
@@ -13,11 +13,6 @@ SAGE_SPKG_CONFIGURE([flint], [
AC_SEARCH_LIBS([fmpz_poly_get_ZZX], [flint], [
AC_MSG_CHECKING([that GC is not enabled in Flint... ])
- AC_RUN_IFELSE([
- AC_LANG_PROGRAM([[#include <flint/flint.h>]], [[return HAVE_GC;]])],
- [AC_MSG_RESULT([GC not enabled. Good.])],
- [AC_MSG_RESULT([GC enabled. Incompatible with Sage.])
- sage_spkg_install_flint=yes])
], [sage_spkg_install_flint=yes])
], [sage_spkg_install_flint=yes])
], [sage_spkg_install_flint=yes])

View File

@ -0,0 +1,11 @@
--- build/pkgs/giac/spkg-configure.m4.orig 2020-10-04 14:57:22 UTC
+++ build/pkgs/giac/spkg-configure.m4
@@ -2,7 +2,7 @@ SAGE_SPKG_CONFIGURE([giac], [
SAGE_SPKG_DEPCHECK([pari], [
dnl giac does not seem to reveal its patchlevel
m4_pushdef([GIAC_MIN_VERSION], [1.5.0])
- m4_pushdef([GIAC_MAX_VERSION], [1.5.999])
+ m4_pushdef([GIAC_MAX_VERSION], [1.6.1])
AC_CACHE_CHECK([for giac >= ]GIAC_MIN_VERSION[, <= ]GIAC_MAX_VERSION, [ac_cv_path_GIAC], [
AC_PATH_PROGS_FEATURE_CHECK([GIAC], [giac], [
giac_version=$($ac_path_GIAC --version 2> /dev/null | tail -1)

View File

@ -0,0 +1,10 @@
--- build/pkgs/libnauty/spkg-configure.m4.orig 2020-10-02 15:26:33 UTC
+++ build/pkgs/libnauty/spkg-configure.m4
@@ -2,6 +2,6 @@ SAGE_SPKG_CONFIGURE([libnauty], [
SAGE_SPKG_DEPCHECK([nauty], [
dnl The library is actually installed by the nauty spkg.
AC_CHECK_HEADER([nauty/nauty.h], [], [sage_spkg_install_libnauty=yes])
- AC_SEARCH_LIBS([nauty], [densenauty], [], [sage_spkg_install_libnauty=yes])
+ AC_SEARCH_LIBS([densenauty], [nauty], [], [sage_spkg_install_libnauty=yes])
])
])

View File

@ -0,0 +1,20 @@
--- build/pkgs/pari/spkg-configure.m4.orig 2020-10-27 19:12:31 UTC
+++ build/pkgs/pari/spkg-configure.m4
@@ -77,17 +77,6 @@ SAGE_SPKG_CONFIGURE([pari], [
AC_MSG_NOTICE([Otherwise Sage will build its own pari/GP.])
sage_spkg_install_pari=yes
fi
- AC_MSG_CHECKING([whether bnfisunit bug of pari 2.11.3 is fixed])
- bug_check=`echo "bnf = bnfinit(y^4-y-1); bnfisunit(bnf,-y^3+2*y^2-1)" | $GP -qf 2>> config.log`
- expected="[[0, 2, Mod(0, 2)]]~"
- if test x"$bug_check" = x"$expected"; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no; cannot use system pari/GP with known bug])
- AC_MSG_NOTICE([Upgrade your system package and reconfigure.])
- AC_MSG_NOTICE([Otherwise Sage will build its own pari/GP.])
- sage_spkg_install_pari=yes
- fi
AC_MSG_CHECKING([whether qfisom bug of pari 2.11.2 is fixed])
bug_check=`echo "qfisom([[16,6;6,10]],[[4,3;3,10]])" | $GP -qf 2>> config.log`
expected="0"

View File

@ -1,22 +0,0 @@
--- configure.ac.orig 2020-04-12 17:52:58 UTC
+++ configure.ac
@@ -172,18 +172,9 @@ please join the sage-devel discussion list - see
http://groups.google.com/group/sage-devel
The Sage community would also appreciate any patches you submit]]);;
-*-*-freebsd*)
-AC_MSG_ERROR([[
-You are attempting to build Sage on the FreeBSD operating system,
-which is not a supported platform for Sage yet, though
-developers are working on adding FreeBSD support. Things may or
-may not work. If you would like to help port Sage to FreeBSD,
-please join the sage-devel discussion list - see
-http://groups.google.com/group/sage-devel
-The Sage community would also appreciate any patches you submit]]);;
-
# The following are all supported platforms.
*-*-linux*);;
+*-*-freebsd*);;
*-*-darwin*);;
*-*-solaris*);;
*-*-cygwin*);;

View File

@ -1,13 +1,13 @@
--- src/bin/sage-env.orig 2020-06-27 14:17:22 UTC
--- src/bin/sage-env.orig 2020-10-28 20:36:07 UTC
+++ src/bin/sage-env
@@ -460,16 +460,16 @@ unset R_HOME
@@ -454,16 +454,16 @@ unset R_HOME
unset R_PROFILE
# Do not use the global Makevars.site and ~/.R/Makevars when installing R packages
# Provide empty files to appease some R packages' installation scripts.
-if [ -d "$SAGE_LOCAL/lib/R/share" ] ; then
- R_MAKEVARS_SITE="$SAGE_LOCAL/lib/R/share/Makevars.site" && export R_MAKEVARS_SITE
- if ! [ -f "$R_MAKEVARS_SITE" ] ; then
- if ! [ -a "$R_MAKEVARS_SITE" ] ; then
- if ! [ -e "$R_MAKEVARS_SITE" ] ; then
- echo "## Empty site-wide Makevars file for Sage's R" > "$R_MAKEVARS_SITE"
- else
- >&2 echo "Warning: $R_MAKEVARS_SITE exists and is not a file : trouble ahead..."
@ -17,7 +17,7 @@
+#if [ -d "$SAGE_LOCAL/lib/R/share" ] ; then
+# R_MAKEVARS_SITE="$SAGE_LOCAL/lib/R/share/Makevars.site" && export R_MAKEVARS_SITE
+# if ! [ -f "$R_MAKEVARS_SITE" ] ; then
+# if ! [ -a "$R_MAKEVARS_SITE" ] ; then
+# if ! [ -e "$R_MAKEVARS_SITE" ] ; then
+# echo "## Empty site-wide Makevars file for Sage's R" > "$R_MAKEVARS_SITE"
+# else
+# >&2 echo "Warning: $R_MAKEVARS_SITE exists and is not a file : trouble ahead..."
@ -26,4 +26,4 @@
+#fi
if [ -d "$DOT_SAGE" ] ; then
if ! [ -d "$DOT_SAGE/R" ] ; then
if ! [ -a "$DOT_SAGE/R" ] ; then
if ! [ -e "$DOT_SAGE/R" ] ; then

View File

@ -1,18 +0,0 @@
--- src/sage/libs/ecl.pxd.orig 2020-06-18 17:03:16 UTC
+++ src/sage/libs/ecl.pxd
@@ -39,7 +39,6 @@ cdef extern from "ecl/ecl.h":
ECL_OPT_TRAP_SIGINT,
ECL_OPT_TRAP_SIGILL,
ECL_OPT_TRAP_SIGBUS,
- ECL_OPT_TRAP_SIGCHLD,
ECL_OPT_TRAP_SIGPIPE,
ECL_OPT_TRAP_INTERRUPT_SIGNAL,
ECL_OPT_SIGNAL_HANDLING_THREAD,
@@ -53,7 +52,6 @@ cdef extern from "ecl/ecl.h":
ECL_OPT_LISP_STACK_SAFETY_AREA,
ECL_OPT_C_STACK_SIZE,
ECL_OPT_C_STACK_SAFETY_AREA,
- ECL_OPT_SIGALTSTACK_SIZE,
ECL_OPT_HEAP_SIZE,
ECL_OPT_HEAP_SAFETY_AREA,
ECL_OPT_THREAD_INTERRUPT_SIGNAL,

View File

@ -1,118 +0,0 @@
--- src/sage/libs/ecl.pyx.orig 2020-06-18 17:03:16 UTC
+++ src/sage/libs/ecl.pyx
@@ -15,7 +15,7 @@ Library interface to Embeddable Common Lisp (ECL)
#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, SIGFPE
from libc.signal cimport raise_ as signal_raise
from posix.signal cimport sigaction, sigaction_t
cimport cysignals.signals
@@ -47,9 +47,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)
@@ -139,7 +144,6 @@ def test_ecl_options():
ECL_OPT_TRAP_SIGINT = 1
ECL_OPT_TRAP_SIGILL = 1
ECL_OPT_TRAP_SIGBUS = 1
- ECL_OPT_TRAP_SIGCHLD = 0
ECL_OPT_TRAP_SIGPIPE = 1
ECL_OPT_TRAP_INTERRUPT_SIGNAL = 1
ECL_OPT_SIGNAL_HANDLING_THREAD = 0
@@ -153,7 +157,6 @@ def test_ecl_options():
ECL_OPT_LISP_STACK_SAFETY_AREA = ...
ECL_OPT_C_STACK_SIZE = ...
ECL_OPT_C_STACK_SAFETY_AREA = ...
- ECL_OPT_SIGALTSTACK_SIZE = 1
ECL_OPT_HEAP_SIZE = ...
ECL_OPT_HEAP_SAFETY_AREA = ...
ECL_OPT_THREAD_INTERRUPT_SIGNAL = ...
@@ -171,8 +174,6 @@ def test_ecl_options():
ecl_get_option(ECL_OPT_TRAP_SIGILL)))
print('ECL_OPT_TRAP_SIGBUS = {0}'.format(
ecl_get_option(ECL_OPT_TRAP_SIGBUS)))
- print('ECL_OPT_TRAP_SIGCHLD = {0}'.format(
- ecl_get_option(ECL_OPT_TRAP_SIGCHLD)))
print('ECL_OPT_TRAP_SIGPIPE = {0}'.format(
ecl_get_option(ECL_OPT_TRAP_SIGPIPE)))
print('ECL_OPT_TRAP_INTERRUPT_SIGNAL = {0}'.format(
@@ -199,8 +200,6 @@ def test_ecl_options():
ecl_get_option(ECL_OPT_C_STACK_SIZE)))
print('ECL_OPT_C_STACK_SAFETY_AREA = {0}'.format(
ecl_get_option(ECL_OPT_C_STACK_SAFETY_AREA)))
- print('ECL_OPT_SIGALTSTACK_SIZE = {0}'.format(
- ecl_get_option(ECL_OPT_SIGALTSTACK_SIZE)))
print('ECL_OPT_HEAP_SIZE = {0}'.format(
ecl_get_option(ECL_OPT_HEAP_SIZE)))
print('ECL_OPT_HEAP_SAFETY_AREA = {0}'.format(
@@ -238,14 +237,12 @@ 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:
raise RuntimeError("ECL is already initialized")
- # we need it to stop handling SIGCHLD
- ecl_set_option(ECL_OPT_TRAP_SIGCHLD, 0);
-
#we keep our own GMP memory functions. ECL should not claim them
ecl_set_option(ECL_OPT_SET_GMP_MEMORY_FUNCTIONS,0);
@@ -257,6 +254,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)
@@ -264,18 +263,19 @@ 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)
- #verify that no SIGCHLD handler was installed
- cdef sigaction_t sig_test
- sigaction(SIGCHLD, NULL, &sig_test)
- assert sage_action[SIGCHLD].sa_handler == NULL # Sage does not set SIGCHLD handler
- assert sig_test.sa_handler == NULL # And ECL bootup did not set one
+ #save ECL's floating point exception flags
+ ecl_feflags = fegetexcept()
#and put the Sage signal handlers back
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))
@@ -319,7 +319,6 @@ def init_ecl():
(values nil (princ-to-string cnd)))))
"""))
safe_funcall_clobj=cl_eval(string_to_object(b"(symbol-function 'sage-safe-funcall)"))
-
ecl_has_booted = 1
cdef cl_object ecl_safe_eval(cl_object form) except NULL:

View File

@ -1,69 +0,0 @@
--- src/sage/libs/eclsig.h.orig 2020-05-22 13:21:27 UTC
+++ src/sage/libs/eclsig.h
@@ -9,24 +9,66 @@
#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
+#define feclearexcept(flags) do {} while (0)
+#endif
+
+#ifndef HAVE_FEENABLEEXCEPT
+/* These are GNU extensions */
+#define fegetexcept() 0
+#define feenablexcept(flags) do {} while (0)
+#define fdisableexcept(flags) do {} while (0)
+#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);
+
+ /* first clear pending floating point exceptions, if any */
+ feclearexcept(FE_ALL_EXCEPT);
+
+ /* 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)
{
+ /* clear pending exceptions and restore previous exception mask */
+ feclearexcept(FE_ALL_EXCEPT);
+ ecl_feflags = fedisableexcept(FE_ALL_EXCEPT);
+ feenableexcept(sage_feflags);
+
sigaction(SIGINT, &sage_sigint_handler, NULL);
sigaction(SIGBUS, &sage_sigbus_handler, NULL);
+ sigaction(SIGFPE, &sage_sigfpe_handler, NULL);
sigaction(SIGSEGV, &sage_sigsegv_handler, NULL);
}

View File

@ -1,16 +0,0 @@
SAGE_SPKG_CONFIGURE([suitesparse], [
SAGE_SPKG_DEPCHECK([openblas], [
AC_CHECK_HEADER([suitesparse/SuiteSparse_config.h], [
AC_SEARCH_LIBS([cholmod_speye], [cholmod],[],
[sage_spkg_install_suitesparse=yes])
], [
sage_spkg_install_suitesparse=yes
])
])
], [], [], [
AS_IF([test x$sage_spkg_install_suitesparse = xyes], [
AC_SUBST(SAGE_SUITESPARSE_PREFIX, ['$SAGE_LOCAL'])
], [
AC_SUBST(SAGE_SUITESPARSE_PREFIX, [''])
])
])

View File

@ -1,4 +0,0 @@
SAGE_SPKG_CONFIGURE([sympow], [
AC_PATH_PROG([SYMPOW], [sympow])
AS_IF([test -z "$ac_cv_path_SYMPOW"], [sage_spkg_install_sympow=yes])
])

File diff suppressed because it is too large Load Diff