depot/third_party/nixpkgs/pkgs/by-name/sc/scmutils/package.nix

68 lines
2.3 KiB
Nix

{
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 ];
};
})