diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix b/nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix new file mode 100644 index 000000000000..bf618fe64f45 --- /dev/null +++ b/nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix @@ -0,0 +1,84 @@ +{ stdenv +, sage-with-env +, python +, maxima-ecl +, tachyon +, jmol +, cddlib +}: + +stdenv.mkDerivation rec { + version = src.version; + pname = "sagedoc"; + src = sage-with-env.env.lib.src; + + + # Building the documentation has many dependencies, because all documented + # modules are imported and because matplotlib is used to produce plots. + buildInputs = [ + sage-with-env.env.lib + python + maxima-ecl + tachyon + jmol + cddlib + ] ++ (with python.pkgs; [ + psutil + future + sphinx + sagenb + scipy + sympy + matplotlib + pillow + networkx + ipykernel + ipywidgets + jupyter_client + typing + pybrial + ]); + + unpackPhase = '' + export SAGE_DOC_OVERRIDE="$PWD/share/doc/sage" + export SAGE_DOC_SRC_OVERRIDE="$PWD/docsrc" + + cp -r "${src}/src/doc" "$SAGE_DOC_SRC_OVERRIDE" + chmod -R 755 "$SAGE_DOC_SRC_OVERRIDE" + ''; + + buildPhase = '' + export SAGE_NUM_THREADS="$NIX_BUILD_CORES" + export HOME="$TMPDIR/sage_home" + mkdir -p "$HOME" + + # needed to link them in the sage docs using intersphinx + export PPLPY_DOCS=${python.pkgs.pplpy.doc}/share/doc/pplpy + + ${sage-with-env}/bin/sage -python -m sage_setup.docbuild \ + --mathjax \ + --no-pdf-links \ + all html + ''; + + installPhase = '' + cd "$SAGE_DOC_OVERRIDE" + + mkdir -p "$out/share/doc/sage" + cp -r html "$out"/share/doc/sage + + # Replace duplicated files by symlinks (Gentoo) + cd "$out"/share/doc/sage + mv html/en/_static{,.tmp} + for _dir in `find -name _static` ; do + rm -r $_dir + ln -s /share/doc/sage/html/en/_static $_dir + done + mv html/en/_static{.tmp,} + ''; + + doCheck = true; + checkPhase = '' + ${sage-with-env}/bin/sage -t --optional=dochtml --all + ''; +} |