Index: head/math/sage/Makefile =================================================================== --- head/math/sage/Makefile (revision 541227) +++ head/math/sage/Makefile (revision 541228) @@ -1,533 +1,533 @@ # Created by: Stephen Montgomery-Smith # $FreeBSD$ PORTNAME= sage PORTVERSION= 9.1 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= math MASTER_SITES= https://mirrors.xmission.com/sage/src/ \ http://mirrors.xmission.com/sage/src/ \ https://www-ftp.lip6.fr/pub/math/sagemath/src/ \ https://mirrors.mit.edu/sage/src/ \ https://files.sagemath.org/src/ \ ftp://www-ftp.lip6.fr/pub/math/sagemath/src/ PKGNAMESUFFIX= -math MAINTAINER= thierry@FreeBSD.org COMMENT= Open source Mathematics software LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/COPYING.txt BUILD_DEPENDS= bash:shells/bash \ dash:shells/dash \ cmake:devel/cmake \ dreadnaut:math/nauty \ ${PYTHON_PKGNAMEPREFIX}alabaster>0:textproc/py-alabaster@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}Babel>0:devel/py-babel@${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}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}\ ${PYTHON_PKGNAMEPREFIX}cysignals>0:devel/py-cysignals@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}cython>0:lang/cython@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}dateutil>0:devel/py-dateutil@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}decorator>0:devel/py-decorator@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}defusedxml>0:devel/py-defusedxml@${PY_FLAVOR}\ ${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}ipython_genutils>0:devel/py-ipython_genutils@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}itsdangerous>0:security/py-itsdangerous@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}Jinja2>0i:devel/py-Jinja2@${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}\ ${PYTHON_PKGNAMEPREFIX}kiwisolver>0:math/py-kiwisolver@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}MarkupSafe>0:textproc/py-MarkupSafe@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}matplotlib>0:math/py-matplotlib@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}mistune>0:textproc/py-mistune@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}mpmath>0:math/py-mpmath@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}nbconvert>0:devel/py-nbconvert@${PY_FLAVOR}\ ${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}\ ${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}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}psutil>0:sysutils/py-psutil@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}ptyprocess>0:sysutils/py-ptyprocess@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}pyparsing>0:devel/py-pyparsing@${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}\ ${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}rpy2>0:math/py-rpy2@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}scandir>0:sysutils/py-scandir@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}scipy>0:science/py-scipy@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}send2trash>0:deskutils/py-send2trash@${PY_FLAVOR}\ ${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}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}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}zope.interface>0:devel/py-zope.interface@${PY_FLAVOR}\ fflas-ffpack-config:math/fflas-ffpack \ gfan:math/gfan \ git:devel/git \ gp2c:math/gp2c \ jmol:science/jmol \ libatomic_ops>0:devel/libatomic_ops \ MathJax>0:www/mathjax \ maxima>0:math/maxima \ p5-XML-Writer>0:textproc/p5-XML-Writer \ p5-XML-LibXML>0:textproc/p5-XML-LibXML \ p5-XML-LibXSLT>0:textproc/p5-XML-LibXSLT\ p5-File-Slurp>0:devel/p5-File-Slurp \ p5-JSON>0:converters/p5-JSON \ p5-SVG>0:textproc/p5-SVG \ p5-MongoDB>0:databases/p5-MongoDB \ p5-Term-ReadLine-Gnu>0:devel/p5-Term-ReadLine-Gnu\ palp>0:math/palp \ pandoc:textproc/hs-pandoc \ pari-elldata>0:math/pari_elldata\ pari-galdata>0:math/pari_galdata\ pari-galpol>0:math/pari_galpol \ pari-nftables>0:math/pari_nftables \ pari-seadata>0:math/pari_seadata\ QuadraticSieve:math/flintqs \ ninja:devel/ninja \ gpatch:devel/patch \ rubiks>0:math/rubiks \ sympow:math/sympow \ tachyon:graphics/tachyon \ three.js>0:www/threejs \ yasm:devel/yasm \ gtar:archivers/gtar \ convert:graphics/ImageMagick6 \ ffmpeg:multimedia/ffmpeg \ ${LOCALBASE}/lib/libBLT.a:x11-toolkits/blt LIB_DEPENDS= libarb.so:math/arb \ libboost_thread.so:devel/boost-libs \ libbraiding.so:math/libbraiding \ libbrial.so:math/brial \ libCbc.so:math/cbc \ libcdd.so:math/cddlib \ libcliquer.so:math/cliquer \ libcurl.so:ftp/curl \ libeantic.so:math/e-antic \ libec.so:math/eclib \ libecl.so:lang/ecl \ libecm.so:math/gmp-ecm \ libflint.so:math/flint2 \ libfplll.so:math/fplll \ libfreetype.so:print/freetype2 \ libgc.so:devel/boehm-gc \ libgc-threaded.so:devel/boehm-gc-threaded\ libgf2x.so:math/gf2x \ libgivaro.so:math/givaro \ libglpk.so:math/glpk \ libgap.so:math/gap \ libgmp.so:math/gmp \ libgsl.so:math/gsl \ libhomfly.so:math/libhomfly \ libiml.so:math/iml \ libisl.so:devel/isl \ libLfunction.so:math/lcalc \ libffi.so:devel/libffi \ libgd.so:graphics/gd \ libgiac.so:math/giacxcas \ liblinbox.so:math/linbox \ liblrcalc.so:math/lrcalc \ liblrsgmp.so:math/lrslib \ libm4ri.so:math/m4ri \ libm4rie.so:math/m4rie \ libmpc.so:math/mpc \ libmpfi.so:math/mpfi \ libmpfr.so:math/mpfr \ libmpir.so:math/mpir \ libntl.so:math/ntl \ libpari.so:math/pari \ libpcre.so:devel/pcre \ libplanarity.so:math/planarity \ libpng.so:graphics/png \ libppl.so:devel/ppl \ libpynac.so:math/pynac \ libR.so:math/R \ librw.so:math/rankwidth \ libSingular.so:math/singular \ libamd.so:math/suitesparse \ libsemigroups.so:math/libsemigroups \ libsymmetrica.so:math/symmetrica\ libzmq.so:net/libzmq4 \ libzn_poly-0.9.so:math/zn_poly \ libqd.so:math/qd \ libisl.so:devel/isl \ libblas.so:math/blas \ libicuuc.so:devel/icu \ libtiff.so:graphics/tiff \ liblapack.so:math/lapack \ libedit.so:devel/libedit \ libwebp.so:graphics/webp \ libpcre2-8.so:devel/pcre2 \ libgdbm.so:databases/gdbm \ liblcms2.so:graphics/lcms2 \ libopenjp2.so:graphics/openjpeg RUN_DEPENDS= bash:shells/bash \ dreadnaut:math/nauty \ ${PYTHON_PKGNAMEPREFIX}alabaster>0:textproc/py-alabaster@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}Babel>0:devel/py-babel@${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}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}\ ${PYTHON_PKGNAMEPREFIX}cysignals>0:devel/py-cysignals@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}cython>0:lang/cython@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}dateutil>0:devel/py-dateutil@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}decorator>0:devel/py-decorator@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}defusedxml>0:devel/py-defusedxml@${PY_FLAVOR}\ ${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}ipython_genutils>0:devel/py-ipython_genutils@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}itsdangerous>0:security/py-itsdangerous@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${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}\ ${PYTHON_PKGNAMEPREFIX}kiwisolver>0:math/py-kiwisolver@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}MarkupSafe>0:textproc/py-MarkupSafe@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}matplotlib>0:math/py-matplotlib@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}mistune>0:textproc/py-mistune@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}mpmath>0:math/py-mpmath@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}nbconvert>0:devel/py-nbconvert@${PY_FLAVOR}\ ${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}\ ${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}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}psutil>0:sysutils/py-psutil@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}ptyprocess>0:sysutils/py-ptyprocess@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}pyparsing>0:devel/py-pyparsing@${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}\ ${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}rpy2>0:math/py-rpy2@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}scandir>0:sysutils/py-scandir@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}scipy>0:science/py-scipy@${PY_FLAVOR}\ ${PYTHON_PKGNAMEPREFIX}send2trash>0:deskutils/py-send2trash@${PY_FLAVOR}\ ${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}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}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}zope.interface>0:devel/py-zope.interface@${PY_FLAVOR}\ fflas-ffpack-config:math/fflas-ffpack \ gfan:math/gfan \ git:devel/git \ gp2c:math/gp2c \ jmol:science/jmol \ MathJax>0:www/mathjax \ maxima>0:math/maxima \ p5-Term-ReadLine-Gnu>0:devel/p5-Term-ReadLine-Gnu\ palp>0:math/palp \ pandoc:textproc/hs-pandoc \ pari-elldata>0:math/pari_elldata\ pari-galdata>0:math/pari_galdata\ pari-galpol>0:math/pari_galpol \ pari-nftables>0:math/pari_nftables \ pari-seadata>0:math/pari_seadata\ QuadraticSieve:math/flintqs \ rubiks>0:math/rubiks \ sympow:math/sympow \ tachyon:graphics/tachyon \ three.js>0:www/threejs \ yasm:devel/yasm \ pixz:archivers/pixz USES= autoreconf blaslapack:openblas compiler:c++11-lib fortran \ gettext gmake gnome iconv jpeg libtool localbase ncurses perl5 \ pkgconfig python:3.6+ readline shebangfix sqlite tk xorg USE_TEX= latex:build pdftex:build tex:build USE_XORG= x11 xext xscrnsaver 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.* SHEBANG_FILES= . SHEBANG_LANG+= dash dash_OLD_CMD= /bin/dash dash_CMD= ${LOCALBASE}/bin/dash DISABLE_BINUTILS= yes LIBS= -lomp -pthread .if !defined{WITH_DEBUG} LDFLAGS+= -s .endif BLDDIR= ${WRKDIR}/build GNU_CONFIGURE= yes CONFIGURE_ENV= SAGE_PORT=yes CC=${CC} GCC=${CC} CXX=${CXX} AS=${AS} LD=${LD} \ SAGE_LOCAL=${PREFIX} SAGE_DESTDIR=${BLDDIR}/ \ DESTDIR=${BLDDIR}/${PREFIX} PATCH=${LOCALBASE}/bin/gpatch CONFIGURE_ARGS= --with-system-gcc=force \ --with-system-python3=yes \ --enable-build-as-root \ --localstatedir=/var MAKE_ENV= MAKE=${GMAKE} DESTDIR=${BLDDIR} REINPLACE_ARGS= -i '' BINARY_ALIAS= patch=${LOCALBASE}/bin/gpatch PLIST_SUB= VER=${PORTVERSION} SUB_FILES= pkg-message OPTIONS_DEFINE= DOCS PORTDOCS= * .include # See https://lists.freebsd.org/pipermail/freebsd-python/2020-June/020710.html .if ${OSREL:R} < 13 PLIST_SUB+= EGG="" WHEEL="@comment " .else PLIST_SUB+= EGG="@comment " WHEEL="" .endif WSDIR= ${BLDDIR}${PREFIX} SPKG_INST= configure.ac configure build/sage_bootstrap/uninstall.py \ build/make/install src/bin/sage-env PY2FIX= bin lib/${PYTHON_VERSION} DOC2FIX= .pickle .doctree SE2FIX= ^ECLDIR= ^SINGULAR MAXIMA_PREFIX SHR2FIX= GAP_ROOT_DIR PPLPY_DOCS SINGULARPATH STG2FIX= bin/sage-env-config default.qepcadrc \ share/jupyter/kernels/sagemath/kernel.json 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 \ cypari cysignals cython dateutil decorator defusedxml docutils \ entrypoints fpylll future gmpy2 html5lib imagesize ipython \ ipython_genutils itsdangerous 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 JS_LIBS= jmol mathjax threejs SPKGCM4= brial e_antic ecl gap gc giac libhomfly linbox maxima palp pynac \ rubiks singular suitesparse sympow zn_poly post-patch: ${CP} ${FILESDIR}/psutil__arch__bsd__freebsd_socks.c.patch \ ${WRKSRC}/build/pkgs/psutil/patches/ .for sp in ${SPKGCM4} ${CP} ${FILESDIR}/${sp}_spkg-configure.m4 \ ${WRKSRC}/build/pkgs/${sp}/spkg-configure.m4 .endfor .for sp in ${PY_LIBS} ${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 ${JS_LIBS} ${SED} -e 's|%%LOCALBASE%%|${LOCALBASE}|' ${FILESDIR}/${sp}_spkg-configure.m4.in \ > ${WRKSRC}/build/pkgs/${sp}/spkg-configure.m4 .endfor pre-configure: ${REINPLACE_CMD} -e 's|SAGE_LOCAL="$$prefix"|SAGE_LOCAL="${WSDIR}"|' \ -e 's|lib/pkgconfig|libdata/pkgconfig|' ${WRKSRC}/configure.ac ${REINPLACE_CMD} -e 's|SAGE_LOCAL="@prefix@"|SAGE_LOCAL="${WSDIR}"|' \ ${WRKSRC}/src/bin/sage-env-config.in ${REINPLACE_CMD} -e 's|%%CFLAGS%%|${CFLAGS}|;s|%%LDFLAGS%%|${LDFLAGS}|' \ ${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 .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 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 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 ${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}|' \ ${WRKSRC}/build/pkgs/gap_packages/spkg-install.in ${REINPLACE_CMD} -e "/os.path.join/s|SAGE_LOCAL|'${LOCALBASE}'|"\ ${WRKSRC}/src/sage/libs/gap/util.pyx ${REINPLACE_CMD} -e "/os.path.join(SAGE_LOCAL/s|SAGE_LOCAL|'${LOCALBASE}'|" \ ${WRKSRC}/src/sage/env.py ${REINPLACE_CMD} -e "/^library_dirs/s|SAGE_LOCAL|'${LOCALBASE}'|" \ ${WRKSRC}/src/setup.py .for f in ${SHR2FIX} ${REINPLACE_CMD} -e "/${f}/s|SAGE_SHARE|'${LOCALBASE}/share/'|" \ ${WRKSRC}/src/sage/env.py .endfor ${REINPLACE_CMD} -e "/JMOL_DIR/s|SAGE_SHARE|'${JAVASHAREDIR}'|" \ -e "/JMOL_DIR/s|jmol|classes|" \ ${WRKSRC}/src/sage/env.py ${REINPLACE_CMD} -e "/JSMOL_DIR/s|SAGE_SHARE|'${LOCALBASE}/www'|" \ -e "/JSMOL_DIR/s|jsmol|JSmol|" \ ${WRKSRC}/src/sage/env.py ${REINPLACE_CMD} -e "/MATHJAX_DIR/s|SAGE_SHARE|'${LOCALBASE}/www'|" \ -e "/MATHJAX_DIR/s|mathjax|MathJax|" \ ${WRKSRC}/src/sage/env.py ${REINPLACE_CMD} -e "/THREEJS_DIR/s|SAGE_SHARE|'${LOCALBASE}/www'|" \ ${WRKSRC}/src/sage/env.py .for f in ${SE2FIX} ${REINPLACE_CMD} -e '/${f}/s|$$SAGE_LOCAL|${LOCALBASE}|' \ ${WRKSRC}/src/bin/sage-env .endfor ${REINPLACE_CMD} -e '/LDFLAGS=/s|-rpath,$$SAGE_LOCAL|-rpath,${LOCALBASE}|' \ ${WRKSRC}/src/bin/sage-env .for f in ${SPKG_INST} ${REINPLACE_CMD} -e 's|/var/lib/sage|/share/libdata/${PORTNAME}|' \ ${WRKSRC}/${f} .endfor (cd ${WRKSRC} && ./bootstrap) ${MKDIR} ${BLDDIR}${PREFIX}/lib/pkgconfig # Removed thereafter post-build: .for d in ${PY2FIX} ${FIND} ${WSDIR}/${d} -type f -exec ${GREP} -I -l "${WSDIR}/bin/python" {} \; |\ ${XARGS} ${SED} -i "" -e 's|${WSDIR}/bin/pytho.*|${PYTHON_CMD}|' .endfor .for d in ${PY2FIX} ${FIND} ${WSDIR}/${d} -type f -exec ${GREP} -I -l "/usr/bin/env python" {} \; |\ ${XARGS} ${SED} -i "" -e 's|/usr/bin/env pytho.*|${PYTHON_CMD}|' .endfor ${FIND} ${BLDDIR}/${PYTHON_LIBDIR} -type d -name __pycache__ | \ ${XARGS} ${RM} -r .for f in ${DOC2FIX} ${FIND} ${BLDDIR}${DOCSDIR} -type f -name "*${f}" | ${XARGS} \ ${SED} -i "" -e 's|${BLDDIR}||g' .endfor .for f in ${STG2FIX} ${SED} -i "" -e 's|${BLDDIR}||g' ${BLDDIR}${PREFIX}/${f} .endfor ${RM} ${BLDDIR}${PYTHON_CMD} ${BADLN:C|^|${BLDDIR}${PREFIX}/share/jupyter/|} ${RM} -r ${BLDDIR}${PREFIX}/var ${RM} ${BLDDIR}${PREFIX}/lib64 ${BLDDIR}${PREFIX}/lib/pkgconfig/blas.pc \ ${BLDDIR}${PREFIX}/lib/pkgconfig/cblas.pc \ ${BLDDIR}${PREFIX}/lib/pkgconfig/gsl.pc \ ${BLDDIR}${PREFIX}/lib/pkgconfig/lapack.pc # Cannot use a package system for pip and setuptools ${RM} ${BLDDIR}${PREFIX}/bin/easy_install* ${BLDDIR}${PREFIX}/bin/pip* ${RM} -r ${BLDDIR}${PYTHON_SITELIBDIR}/pip-* ${BLDDIR}${PYTHON_SITELIBDIR}/pip/ ${RM} -r ${BLDDIR}${PYTHON_SITELIBDIR}/setuptools* \ ${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 # ${TRUE} because compilation of some .py fails: compileall.py -q to see errors (cd ${WSDIR} && (${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py \ -d ${PYTHONPREFIX_SITELIBDIR} -f ${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;} || \ ${TRUE})) ${FIND} ${BLDDIR}${PREFIX} -name "*.bak" -delete do-install: cd "${BLDDIR}" && ${FIND} . | ${CPIO} -pdum ${STAGEDIR} # Remove bad links ${LN} -sf ${DOCSDIR} \ ${STAGEDIR}${PREFIX}/share/jupyter/kernels/sagemath/doc ${LN} -sf ${LOCALBASE}/www/JSmol \ ${STAGEDIR}${PREFIX}/share/jupyter/nbextensions/jsmol ${LN} -sf ${LOCALBASE}/www/MathJax \ ${STAGEDIR}${PREFIX}/share/jupyter/nbextensions/mathjax ${LN} -sf ${LOCALBASE}/www/threejs \ ${STAGEDIR}${PREFIX}/share/jupyter/nbextensions/threejs post-install: ${RM} ${STAGEDIR}${PREFIX}/lib64 ${STAGEDIR}${PREFIX}/libdata/pkgconfig/blas.pc \ ${STAGEDIR}${PREFIX}/libdata/pkgconfig/cblas.pc \ ${STAGEDIR}${PREFIX}/libdata/pkgconfig/gsl.pc \ ${STAGEDIR}${PREFIX}/libdata/pkgconfig/lapack.pc .include Index: head/math/sage/files/patch-src_sage_libs_ecl.pxd =================================================================== --- head/math/sage/files/patch-src_sage_libs_ecl.pxd (nonexistent) +++ head/math/sage/files/patch-src_sage_libs_ecl.pxd (revision 541228) @@ -0,0 +1,18 @@ +--- 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, Property changes on: head/math/sage/files/patch-src_sage_libs_ecl.pxd ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/math/sage/files/patch-src_sage_libs_ecl.pyx =================================================================== --- head/math/sage/files/patch-src_sage_libs_ecl.pyx (revision 541227) +++ head/math/sage/files/patch-src_sage_libs_ecl.pyx (revision 541228) @@ -1,74 +1,118 @@ ---- src/sage/libs/ecl.pyx.orig 2020-05-22 13:21:27 UTC +--- 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, SIGCHLD, SIGFPE ++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) -@@ -238,6 +243,7 @@ def init_ecl(): +@@ -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: -@@ -257,6 +263,8 @@ def init_ecl(): + 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,8 +272,12 @@ def init_ecl(): +@@ -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() -+ - #verify that no SIGCHLD handler was installed - cdef sigaction_t sig_test - sigaction(SIGCHLD, NULL, &sig_test) -@@ -276,6 +288,9 @@ def init_ecl(): + + #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 +334,6 @@ def init_ecl(): +@@ -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: