Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion pkgs/applications/science/math/sage/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,22 @@ let
};
};

jupyter-kernel-definition = {
displayName = "SageMath ${sage-src.version}";
argv = [
"${sage-with-env}/bin/sage" # FIXME which sage
"--python"
"-m"
"sage.repl.ipython_kernel"
"-f"
"{connection_file}"
];
language = "sagemath";
# just one 16x16 logo is available
logo32 = "${sage-src}/doc/common/themes/sage/static/sageicon.png";
logo64 = "${sage-src}/doc/common/themes/sage/static/sageicon.png";
};

# A bash script setting various environment variables to tell sage where
# the files its looking fore are located. Also see `sage-env`.
env-locations = callPackage ./env-locations.nix {
Expand Down Expand Up @@ -158,6 +174,6 @@ let
in
# A wrapper around sage that makes sure sage finds its docs (if they were build).
callPackage ./sage.nix {
inherit sage-tests sage-with-env sagedoc;
inherit sage-tests sage-with-env sagedoc jupyter-kernel-definition;
inherit withDoc;
}
19 changes: 16 additions & 3 deletions pkgs/applications/science/math/sage/sage.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,23 @@
, makeWrapper
, sage-tests
, sage-with-env
, jupyter-kernel-definition
, jupyter-kernel
, sagedoc
, withDoc
}:

# A wrapper that makes sure sage finds its docs (if they were build).
# A wrapper that makes sure sage finds its docs (if they were build) and the
# jupyter kernel spec.

let
# generate kernel spec + default kernels
kernel-specs = jupyter-kernel.create {
definitions = jupyter-kernel.default // {
sagemath = jupyter-kernel-definition;
};
};
in
stdenv.mkDerivation rec {
version = src.version;
name = "sage-${version}";
Expand All @@ -29,8 +40,9 @@ stdenv.mkDerivation rec {
mkdir -p "$out/bin"
makeWrapper "${sage-with-env}/bin/sage" "$out/bin/sage" \
--set SAGE_DOC_SRC_OVERRIDE "${src}/src/doc" ${
stdenv.lib.optionalString withDoc "--set SAGE_DOC_OVERRIDE ${sagedoc}/share/doc/sage"
}
stdenv.lib.optionalString withDoc "--set SAGE_DOC_OVERRIDE ${sagedoc}/share/doc/sage"
} \
--prefix JUPYTER_PATH : "${kernel-specs}"
'';

doInstallCheck = withDoc;
Expand All @@ -44,6 +56,7 @@ stdenv.mkDerivation rec {
tests = sage-tests;
doc = sagedoc;
lib = sage-with-env.env.lib;
kernelspec = jupyter-kernel-definition;
};

meta = with stdenv.lib; {
Expand Down