b34d0bbd28
Also fix doctests for pkg updates: - matplotlib 3.7 - ipython 8.12 - nauty 2.8.6 - pythran 0.12.1 And add support for: - networkx 3.1 We use patches from upstream sagemath to fix all of these. We also add pythran and sphinx to checkdepends to make sure doctests pass when they are installed.
118 lines
4.1 KiB
Bash
118 lines
4.1 KiB
Bash
# Template file for 'sagemath'
|
|
pkgname=sagemath
|
|
version=9.8
|
|
revision=2
|
|
build_wrksrc=pkgs/sagemath-standard
|
|
build_style=python3-module
|
|
_bindir=/usr/lib/sagemath/$version/bin
|
|
make_install_args="--install-scripts=$_bindir"
|
|
hostmakedepends="m4 pkg-config python3-Cython python3-Jinja2 python3-pkgconfig
|
|
python3-setuptools"
|
|
makedepends="arb-devel boost-devel brial-devel cliquer-devel ecl eclib-devel
|
|
ecm-devel fflas-ffpack flintlib-devel gap-devel gd-devel giac-devel glpk-devel
|
|
gsl-devel iml-devel lcalc-devel libbraiding-devel libhomfly-devel libmpc-devel
|
|
libpng-devel linbox-devel m4ri-devel m4rie-devel mpfi-devel
|
|
mpfr-devel ntl-devel openblas-devel pari-devel planarity-devel python3-cypari2
|
|
python3-cysignals python3-devel python3-gmpy2 python3-memory_allocator
|
|
python3-numpy rankwidth-devel singular symmetrica-devel"
|
|
depends="FlintQS eclib-devel fflas-ffpack flintlib-devel gcc-fortran gd-devel
|
|
gfan giac gsl-devel gzip libpng-devel linbox-devel m4ri-devel maxima-ecl
|
|
mpfr-devel nauty ntl-devel palp pari-devel pari-elldata-small pari-galdata
|
|
pari-galpol-small pari-seadata-small pkg-config python3-Cython python3-cypari2
|
|
python3-cysignals python3-devel python3-fpylll python3-ipython python3-lrcalc
|
|
python3-ipython_ipykernel python3-jupyter_ipywidgets python3-matplotlib
|
|
python3-memory_allocator python3-networkx python3-pip python3-pkgconfig
|
|
python3-pplpy python3-primecountpy python3-requests python3-scipy
|
|
python3-sympy python3-traitlets sage-data-combinatorial_designs
|
|
sage-data-conway_polynomials sage-data-elliptic_curves sage-data-graphs
|
|
sage-data-polytopes_db sympow tachyon threejs-sage"
|
|
checkdepends="$depends pythran python3-Sphinx"
|
|
short_desc="Open source mathematics software"
|
|
maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
|
|
license="GPL-2.0-or-later"
|
|
homepage="http://sagemath.org/"
|
|
distfiles="https://github.com/sagemath/sage/archive/refs/tags/$version.tar.gz"
|
|
checksum=2aff28bd1d18c2d526581f5298acb8336f5b92db5675a7403dec8eaf9a86bc4c
|
|
|
|
do_configure() {
|
|
# git tree needs bootstrapping
|
|
( cd $wrksrc/build/pkgs/sagelib &&
|
|
PATH=../../bin:$PATH \
|
|
BOOTSTRAP_QUIET=no \
|
|
./bootstrap )
|
|
}
|
|
|
|
pre_build() {
|
|
export PYTHONPATH=../sage-setup
|
|
export PYTHONDONTWRITEBYTECODE=yes
|
|
export SAGE_NUM_THREADS="$XBPS_MAKEJOBS"
|
|
}
|
|
|
|
post_build() {
|
|
_lib=$(cd build/lib* && pwd)
|
|
_scripts=$(cd build/scripts* && pwd)
|
|
|
|
# configuration files
|
|
cp ${FILESDIR}/sage_conf.py $_lib
|
|
cp ${FILESDIR}/sage-env-config $_scripts
|
|
}
|
|
|
|
pre_install() {
|
|
export PYTHONPATH=../sage-setup
|
|
export PYTHONDONTWRITEBYTECODE=yes
|
|
export SAGE_NUM_THREADS="$XBPS_MAKEJOBS"
|
|
}
|
|
|
|
post_install() {
|
|
# fix jupyter kernel spec
|
|
vsed -i -e 's|"/usr/bin/sage"|"'${_bindir}'/sage"|' \
|
|
${DESTDIR}/usr/share/jupyter/kernels/sagemath/kernel.json
|
|
|
|
# replace broken symlinks by good copies (sagemath logo images)
|
|
for file in $(ls sage/ext_data/notebook-ipython); do
|
|
rm ${DESTDIR}/usr/share/jupyter/kernels/sagemath/$file
|
|
cp -a sage/ext_data/notebook-ipython/$file \
|
|
${DESTDIR}/usr/share/jupyter/kernels/sagemath
|
|
done
|
|
|
|
# we don't have docs here
|
|
rm ${DESTDIR}/usr/share/jupyter/kernels/sagemath/doc
|
|
# this symlink is shipped in threejs-sage pkg
|
|
rm ${DESTDIR}/usr/share/jupyter/nbextensions/threejs-sage
|
|
|
|
# symlink main binary
|
|
vmkdir usr/bin
|
|
ln -s $_bindir/sage ${DESTDIR}/usr/bin/sage-${version}
|
|
ln -s sage-${version} ${DESTDIR}/usr/bin/sage
|
|
}
|
|
|
|
do_check() {
|
|
_lib=$(cd build/lib* && pwd)
|
|
_scripts=$(cd build/scripts* && pwd)
|
|
|
|
export PYTHONPATH=$_lib
|
|
export PYTHONDONTWRITEBYTECODE=yes
|
|
|
|
# get out of $build_wrksrc, otherwise python picks the wrong sage module
|
|
cd $(mktemp -dp build)
|
|
|
|
if [ -f ${XBPS_DISTDIR}/sagemath-check ] ; then
|
|
_sed='s|#.*||;/^\s*$/d;s|^\([^ ]*/\)\?sage/|'$_lib'/sage/|g' \
|
|
_test_files=$(sed -e "$_sed" ${XBPS_DISTDIR}/sagemath-check)
|
|
fi
|
|
if [ -z "$_test_files" ]; then
|
|
_test_files=--all
|
|
fi
|
|
cp ${FILESDIR}/timings2.json .
|
|
_test_args="--stats_path=timings2.json"
|
|
if [ "$XBPS_CHECK_PKGS" = full ]; then
|
|
_test_args+=" --long --warn-long 60.0"
|
|
else
|
|
_test_args+=" --warn-long 30.0"
|
|
fi
|
|
if [ "$XBPS_BUILD_ENVIRONMENT" = "void-packages-ci" ]; then
|
|
# for CI use a predictable random seed
|
|
_test_args+=" --random-seed=0"
|
|
fi
|
|
$_scripts/sage -tp ${XBPS_MAKEJOBS} ${_test_args} ${_test_files}
|
|
}
|