From 0f33cdb0dbaae01924371a802535969ed8aa3da2 Mon Sep 17 00:00:00 2001 From: David Crompton Date: Tue, 26 Sep 2023 11:44:11 -0400 Subject: [PATCH] Matlab server + Octave --- machines/kcnhub/packages/matlab.nix | 55 +++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 3 deletions(-) diff --git a/machines/kcnhub/packages/matlab.nix b/machines/kcnhub/packages/matlab.nix index 53bcc26..a80f397 100644 --- a/machines/kcnhub/packages/matlab.nix +++ b/machines/kcnhub/packages/matlab.nix @@ -1,8 +1,57 @@ -{ config, lib, pkgs, nix-matlab, ... }: { - environment.systemPackages = with nix-matlab.packages.x86_64-linux; [ +{ config, lib, pkgs, nix-matlab, ... }: let + license-manager = pkgs.stdenv.mkDerivation rec { + pname = "matlab-license-server"; + version = "R2023b"; + src = pkgs.fetchurl { + url = "https://ssd.mathworks.com/supportfiles/downloads/${version}/license_manager/${version}/daemons/glnxa64/mathworks_network_license_manager_glnxa64.zip"; + hash = "sha256-Btl3ETzTtAV+cjqwXf4AE4QJCtssN1s6dmmcpR1EQxY="; + }; + nativeBuildInputs = [ + pkgs.autoPatchelfHook + ]; + unpackPhase = '' + ${pkgs.unzip}/bin/unzip $src + ''; + installPhase = '' + mkdir $out + cp -r * $out/ + addAutoPatchelfSearchPath $out/* + ''; + }; + matlab-server = pkgs.buildFHSUserEnv { + name = "matlab-server"; + + targetPkgs = (ps: nix-matlab.targetPkgs ps ++ [ + license-manager + ]); + + runScript = pkgs.writeScript "matlab-server" (nix-matlab.shellHooksCommon + '' + exec $MATLAB_INSTALL_DIR/bin/matlab "$@" + ''); + }; + matlab-server-shell = pkgs.buildFHSUserEnv { + name = "matlab-server-shell"; + + targetPkgs = (ps: nix-matlab.targetPkgs ps ++ [ + license-manager + ]); + + runScript = pkgs.writeScript "matlab-server-shell" (nix-matlab.shellHooksCommon + '' + echo license-server is in: + echo ${license-manager} + echo Make sure it is installed (matlab-server user) + exec bash + ''); + }; +in { + environment.systemPackages = (with nix-matlab.packages.x86_64-linux; [ matlab matlab-shell + matlab-server + matlab-server-shell matlab-mlint matlab-mex - ]; + ]) ++ (with pkgs; [ + octaveFull + ]); }