diff --git a/pkgs/guile-hall.nix b/pkgs/guile-hall.nix index 85285928..6f08357e 100644 --- a/pkgs/guile-hall.nix +++ b/pkgs/guile-hall.nix @@ -1,6 +1,9 @@ { stdenv, lib, guile_3_0, guile-config, fetchFromGitLab, autoreconfHook -, pkg-config, texinfo }: +, pkg-config, texinfo, makeWrapper }: +let + modules = [ guile-config ]; +in stdenv.mkDerivation rec { pname = "guile-hall"; version = "0.4.1"; @@ -12,12 +15,48 @@ stdenv.mkDerivation rec { sha256 = "sha256-TUCN8kW44X6iGbSJURurcz/Tc2eCH1xgmXH1sMOMOXs="; }; - nativeBuildInputs = [ pkg-config autoreconfHook texinfo ]; - propagatedBuildInputs = [ guile_3_0 guile-config ]; + nativeBuildInputs = [ pkg-config autoreconfHook texinfo makeWrapper ]; + propagatedBuildInputs = [ guile_3_0 ]; + buildInputs = modules; + + postConfigure = '' + sed -i '/moddir\s*=/s%=.*%=''${out}/share/guile/site%' Makefile + sed -i '/godir\s*=/s%=.*%=''${out}/share/guile/site%' Makefile + sed -i '/ccachedir\s*=/s%=.*%=''${out}/share/guile/site%' Makefile + ''; + + GUILE_LOAD_PATH = let + guilePath = [ + "\${out}/share/guile/site" + ] ++ (lib.concatMap (module: [ + "${module}/share/guile/site" + "${module}/share/guile" + "${module}/share" + ]) modules); + in lib.concatStringsSep ":" guilePath; + + GUILE_LOAD_COMPILED_PATH = let + guilePath = [ + "\${out}/share/guile/ccache" + "\${out}/share/guile/site" + ] ++ (lib.concatMap (module: [ + "${module}/share/guile/ccache" + "${module}/share/guile/site" + "${module}/share/guile" + "${module}/share" + ]) modules); + in lib.concatStringsSep ":" guilePath; + + postInstall = '' + wrapProgram $out/bin/hall \ + --prefix GUILE_LOAD_PATH : "${GUILE_LOAD_PATH}" \ + --prefix GUILE_LOAD_COMPILED_PATH : "${GUILE_LOAD_COMPILED_PATH}" + ''; meta = with lib; { description = "Command-line application for managing Guile projects"; homepage = "https://gitlab.com/a-sassmannshausen/guile-hall"; license = licenses.gpl3; + mainProgram = "hall"; }; }