From f257eded3e1c95bd833976b34ac1ee22e5fc6d91 Mon Sep 17 00:00:00 2001 From: Federico Beffa Date: Fri, 6 Sep 2024 22:11:59 +0200 Subject: [PATCH] scmutils: init at 20230902 --- pkgs/by-name/sc/scmutils/package.nix | 68 ++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 pkgs/by-name/sc/scmutils/package.nix diff --git a/pkgs/by-name/sc/scmutils/package.nix b/pkgs/by-name/sc/scmutils/package.nix new file mode 100644 index 000000000000..2b9c56b56027 --- /dev/null +++ b/pkgs/by-name/sc/scmutils/package.nix @@ -0,0 +1,68 @@ +{ + stdenv, + fetchurl, + lib, + mitschemeX11, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "scmutils"; + version = "20230902"; + + src = fetchurl { + url = "https://groups.csail.mit.edu/mac/users/gjs/6946/mechanics-system-installation/native-code/${finalAttrs.pname}-src-${finalAttrs.version}.tar.gz"; + hash = "sha256-9/shOxoKwJ4uDTHmvXqhemgy3W+GUCmoqFm5e1t3W0M="; + }; + + buildInputs = [ mitschemeX11 ]; + + configurePhase = '' + runHook preConfigure + ln -r -s kernel/ghelper-pro.scm kernel/ghelper.scm + ln -r -s solve/nnsolve.scm solve/solve.scm + substituteInPlace load.scm \ + --replace-fail '/usr/local/scmutils/' "$out/lib/mit-scheme/" + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + echo '(load "compile")' | mit-scheme --no-init-file --batch-mode --interactive + echo '(load "load") (disk-save "edwin-mechanics.com")' | mit-scheme --no-init-file --batch-mode --interactive + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + mkdir -p "$out/lib/mit-scheme/" "$out/share/scmutils" "$out/bin" + cp edwin-mechanics.com "$out/lib/mit-scheme/" + declare -r TARGET="$out/lib/mit-scheme/" + for SRC in $(find * -type f -name '*.bci'); do + install -d "$TARGET"scmutils/"$(dirname "$SRC")" + cp -a "$SRC" "$TARGET"scmutils/"$SRC" + done + # Convenience script to load the band + declare -r CMD="exec ${mitschemeX11}/bin/mit-scheme --band $out/lib/mit-scheme/edwin-mechanics.com" + echo "#!$SHELL" > $out/bin/scmutils + echo "$CMD" "\"\$@\"" >> $out/bin/scmutils + echo "#!$SHELL" > $out/bin/edwin-scmutils + echo "$CMD" "--edit" "\"\$@\"" >> $out/bin/edwin-scmutils + chmod uog+rx "$out/bin/scmutils" "$out/bin/edwin-scmutils" + ln -r -s "$out/bin/edwin-scmutils" "$out/bin/mechanics" + runHook postInstall + ''; + + meta = { + description = "Scheme library for mathematical physics"; + + longDescription = '' + Scmutils system is an integrated library of procedures, + embedded in the programming language Scheme, and intended + to support teaching and research in mathematical physics + and electrical engineering. + ''; + + homepage = "https://groups.csail.mit.edu/mac/users/gjs/6.5160/installation.html"; + license = lib.licenses.gpl2Plus; + maintainers = [ lib.maintainers.fbeffa ]; + }; +})