3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/pkgs/applications/science/math/sage/sagelib.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

214 lines
3.7 KiB
Nix
Raw Normal View History

{ sage-src
, env-locations
2018-04-24 22:53:36 +01:00
, perl
, buildPythonPackage
, m4
2018-04-24 22:53:36 +01:00
, arb
, blas
, lapack
2018-04-24 22:53:36 +01:00
, brial
, cliquer
, cypari2
, cysignals
, cython
, lisp-compiler
2018-04-24 22:53:36 +01:00
, eclib
, ecm
, flint
, gd
2020-10-22 09:20:17 +01:00
, giac
2018-04-24 22:53:36 +01:00
, givaro
, glpk
, gsl
, iml
, jinja2
, lcalc
, lrcalc
2019-01-16 23:28:37 +00:00
, gap
2018-04-24 22:53:36 +01:00
, linbox
, m4ri
, m4rie
2021-07-16 21:13:01 +01:00
, memory-allocator
2018-04-24 22:53:36 +01:00
, libmpc
, mpfi
, ntl
, numpy
, pari
, pkgconfig # the python module, not the pkg-config alias
, pkg-config
2018-04-24 22:53:36 +01:00
, planarity
, ppl
2021-09-14 02:56:34 +01:00
, primecountpy
2018-04-24 22:53:36 +01:00
, python
, ratpoints
, readline
, rankwidth
, symmetrica
, zn_poly
, fflas-ffpack
, boost
, singular
, pip
, jupyter_core
2021-09-14 02:56:34 +01:00
, sage-setup
2018-08-05 15:50:06 +01:00
, libhomfly
, libbraiding
, gmpy2
, pplpy
2020-10-22 09:20:17 +01:00
, sqlite
, jupyter-client
, ipywidgets
, mpmath
, rpy2
, fpylll
, scipy
, sympy
, matplotlib
, pillow
, ipykernel
, networkx
2022-03-19 02:16:18 +00:00
, ptyprocess
, lrcalc-python
, sphinx # TODO: this is in setup.cfg, should we override it?
2018-04-24 22:53:36 +01:00
}:
assert (!blas.isILP64) && (!lapack.isILP64);
2018-11-12 22:28:29 +00:00
# This is the core sage python package. Everything else is just wrappers gluing
# stuff together. It is not very useful on its own though, since it will not
# find many of its dependencies without `sage-env`, will not be tested without
# `sage-tests` and will not have html docs without `sagedoc`.
2018-04-24 22:53:36 +01:00
buildPythonPackage rec {
2018-11-12 22:28:29 +00:00
version = src.version;
pname = "sagelib";
2018-04-24 22:53:36 +01:00
src = sage-src;
nativeBuildInputs = [
iml
perl
jupyter_core
pkg-config
2021-09-14 02:56:34 +01:00
sage-setup
pip # needed to query installed packages
lisp-compiler
m4
2018-04-24 22:53:36 +01:00
];
buildInputs = [
gd
readline
iml
2018-04-24 22:53:36 +01:00
];
propagatedBuildInputs = [
cypari2
jinja2
numpy
pkgconfig
2018-04-24 22:53:36 +01:00
boost
arb
brial
cliquer
lisp-compiler
2018-04-24 22:53:36 +01:00
eclib
ecm
fflas-ffpack
flint
2020-10-22 09:20:17 +01:00
giac
2018-04-24 22:53:36 +01:00
givaro
glpk
gsl
lcalc
2019-01-16 23:28:37 +00:00
gap
2018-04-24 22:53:36 +01:00
libmpc
linbox
lrcalc
m4ri
m4rie
2021-07-16 21:13:01 +01:00
memory-allocator
2018-04-24 22:53:36 +01:00
mpfi
ntl
blas
lapack
2018-04-24 22:53:36 +01:00
pari
planarity
ppl
2021-09-14 02:56:34 +01:00
primecountpy
2018-04-24 22:53:36 +01:00
rankwidth
ratpoints
singular
symmetrica
zn_poly
pip
cython
cysignals
2018-08-05 15:50:06 +01:00
libhomfly
libbraiding
gmpy2
pplpy
2020-10-22 09:20:17 +01:00
sqlite
mpmath
rpy2
scipy
sympy
matplotlib
pillow
ipykernel
fpylll
networkx
jupyter-client
ipywidgets
2022-03-19 02:16:18 +00:00
ptyprocess
lrcalc-python
sphinx
2018-04-24 22:53:36 +01:00
];
preBuild = ''
2018-04-24 22:53:36 +01:00
export SAGE_ROOT="$PWD"
export SAGE_LOCAL="$SAGE_ROOT"
export SAGE_SHARE="$SAGE_LOCAL/share"
# set locations of dependencies (needed for nbextensions like threejs)
. ${env-locations}/sage-env-locations
export JUPYTER_PATH="$SAGE_LOCAL/jupyter"
2018-04-24 22:53:36 +01:00
export PATH="$SAGE_ROOT/build/bin:$SAGE_ROOT/src/bin:$PATH"
export SAGE_NUM_THREADS="$NIX_BUILD_CORES"
mkdir -p "$SAGE_SHARE/sage/ext/notebook-ipython"
mkdir -p "var/lib/sage/installed"
cd build/pkgs/sagelib
# some files, like Pipfile, pyproject.toml, requirements.txt and setup.cfg
# are generated by the bootstrap script using m4. these can fetch data from
# build/pkgs, either directly or via sage-get-system-packages.
sed -i '/sage_conf/d' src/setup.cfg.m4
sed -i '/sage_conf/d' src/requirements.txt.m4
2022-04-07 11:16:52 +01:00
# version lower bounds are useful, but upper bounds are a hassle because
# Sage tests already catch any relevant API breakage.
# according to the discussion at https://trac.sagemath.org/ticket/33520,
# upper bounds will be less noisy starting from Sage 9.6.
2022-03-19 02:16:18 +00:00
sed -i 's/==0.5.1/>=0.5.1/' ../ptyprocess/install-requires.txt
2022-04-07 11:16:52 +01:00
sed -i 's/, <[^, ]*//' ../*/install-requires.txt
for infile in src/*.m4; do
if [ -f "$infile" ]; then
outfile="src/$(basename $infile .m4)"
m4 "$infile" > "$outfile"
fi
done
cd src
2018-04-24 22:53:36 +01:00
'';
postInstall = ''
2018-04-24 22:53:36 +01:00
rm -r "$out/${python.sitePackages}/sage/cython_debug"
'';
doCheck = false; # we will run tests in sage-tests.nix
2018-04-24 22:53:36 +01:00
}