Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
76 lines
1.5 KiB
Nix
76 lines
1.5 KiB
Nix
{
|
|
stdenv,
|
|
callPackage,
|
|
runCommand,
|
|
makeWrapper,
|
|
octave,
|
|
imagemagick,
|
|
python3,
|
|
}:
|
|
|
|
# Jupyter console:
|
|
# nix run --impure --expr 'with import <nixpkgs> {}; jupyter-console.withSingleKernel octave-kernel.definition'
|
|
|
|
# Jupyter notebook:
|
|
# nix run --impure --expr 'with import <nixpkgs> {}; jupyter.override { definitions.octave = octave-kernel.definition; }'
|
|
|
|
let
|
|
kernel = callPackage ./kernel.nix {
|
|
python3Packages = python3.pkgs;
|
|
};
|
|
|
|
in
|
|
|
|
rec {
|
|
launcher =
|
|
runCommand "octave-kernel-launcher"
|
|
{
|
|
inherit octave;
|
|
python = python3.withPackages (ps: [
|
|
ps.traitlets
|
|
ps.jupyter-core
|
|
ps.ipykernel
|
|
ps.metakernel
|
|
kernel
|
|
]);
|
|
nativeBuildInputs = [ makeWrapper ];
|
|
}
|
|
''
|
|
mkdir -p $out/bin
|
|
|
|
makeWrapper $python/bin/python $out/bin/octave-kernel \
|
|
--add-flags "-m octave_kernel" \
|
|
--suffix PATH : $octave/bin
|
|
'';
|
|
|
|
sizedLogo =
|
|
size:
|
|
stdenv.mkDerivation {
|
|
pname = "octave-logo-${size}x${size}.png";
|
|
inherit (octave) version;
|
|
|
|
src = octave.src;
|
|
|
|
buildInputs = [ imagemagick ];
|
|
|
|
dontConfigure = true;
|
|
dontInstall = true;
|
|
|
|
buildPhase = ''
|
|
convert ./libgui/src/icons/octave/128x128/logo.png -resize ${size}x${size} $out
|
|
'';
|
|
};
|
|
|
|
definition = {
|
|
displayName = "Octave";
|
|
argv = [
|
|
"${launcher}/bin/octave-kernel"
|
|
"-f"
|
|
"{connection_file}"
|
|
];
|
|
language = "octave";
|
|
logo32 = sizedLogo "32";
|
|
logo64 = sizedLogo "64";
|
|
};
|
|
}
|