diff options
author | Michael Raskin <7c6f434c@mail.ru> | 2017-04-06 18:43:42 +0200 |
---|---|---|
committer | Michael Raskin <7c6f434c@mail.ru> | 2017-04-06 18:47:36 +0200 |
commit | 365e8a7b6a39a442bf07796a0541b76331e2ede4 (patch) | |
tree | 43470ece0a115017d92ef71b1dc5546016214d35 /pkgs/development/lisp-modules/define-package.nix | |
parent | 09b1414acd7af2775414cbddd183db7b25697841 (diff) | |
download | nixpkgs-365e8a7b6a39a442bf07796a0541b76331e2ede4.tar nixpkgs-365e8a7b6a39a442bf07796a0541b76331e2ede4.tar.gz nixpkgs-365e8a7b6a39a442bf07796a0541b76331e2ede4.tar.bz2 nixpkgs-365e8a7b6a39a442bf07796a0541b76331e2ede4.tar.lz nixpkgs-365e8a7b6a39a442bf07796a0541b76331e2ede4.tar.xz nixpkgs-365e8a7b6a39a442bf07796a0541b76331e2ede4.tar.zst nixpkgs-365e8a7b6a39a442bf07796a0541b76331e2ede4.zip |
quicklispPackages: update to fresh QuickLisp
lispPackages: reduce environment-bombing
Diffstat (limited to 'pkgs/development/lisp-modules/define-package.nix')
-rw-r--r-- | pkgs/development/lisp-modules/define-package.nix | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/pkgs/development/lisp-modules/define-package.nix b/pkgs/development/lisp-modules/define-package.nix index 26851181531..520e224e6da 100644 --- a/pkgs/development/lisp-modules/define-package.nix +++ b/pkgs/development/lisp-modules/define-package.nix @@ -3,19 +3,33 @@ args @ {stdenv, clwrapper, baseName, testSystems ? [baseName], version ? "latest , propagatedBuildInputs ? []}: let deployConfigScript = '' + outhash="$out" + outhash="''${outhash##*/}" + outhash="''${outhash%%-*}" config_script="$out"/lib/common-lisp-settings/${args.baseName}-shell-config.sh + path_config_script="$out"/lib/common-lisp-settings/${args.baseName}-path-config.sh + store_translation="$(dirname "$out"):$(dirname "$out")" mkdir -p "$(dirname "$config_script")" touch "$config_script" + touch "$path_config_script" chmod a+x "$config_script" + chmod a+x "$path_config_script" + echo "if test -z \"\''${_''${outhash}_NIX_LISP_CONFIG}\"; then export _''${outhash}_NIX_LISP_CONFIG=1; " >> "$config_script" echo "export NIX_CFLAGS_COMPILE='$NIX_CFLAGS_COMPILE'\"\''${NIX_CFLAGS_COMPILE:+ \$NIX_CFLAGS_COMPILE}\"" >> "$config_script" + echo "export NIX_LDFLAGS='$NIX_LDFLAGS'\"\''${NIX_LDFLAGS:+ \$NIX_LDFLAGS}\"" >> "$config_script" echo "export NIX_LISP_COMMAND='$NIX_LISP_COMMAND'" >> "$config_script" echo "export NIX_LISP_ASDF='$NIX_LISP_ASDF'" >> "$config_script" - echo "export CL_SOURCE_REGISTRY="\$CL_SOURCE_REGISTRY\''${CL_SOURCE_REGISTRY:+:}"'$out/lib/common-lisp/${args.baseName}/:$CL_SOURCE_REGISTRY'" >> "$config_script" - echo "export ASDF_OUTPUT_TRANSLATIONS="\$ASDF_OUTPUT_TRANSLATIONS\''${ASDF_OUTPUT_TRANSLATIONS:+:}"'$out/lib/common-lisp/${args.baseName}/:$out/lib/common-lisp-compiled/${args.baseName}:$ASDF_OUTPUT_TRANSLATIONS'" >> "$config_script" + echo "export PATH=\"\''${PATH:+\$PATH:}$PATH\"" >> "$config_script" + echo "echo \"\$ASDF_OUTPUT_TRANSLATIONS\" | grep -E '(^|:)$store_translation(:|\$)' >/dev/null || export ASDF_OUTPUT_TRANSLATIONS=\"\''${ASDF_OUTPUT_TRANSLATIONS:+\$ASDF_OUTPUT_TRANSLATIONS:}\"'$store_translation'" >> "$config_script" + echo "source '$path_config_script'" >> "$config_script" + echo "fi" >> "$config_script" + echo "if test -z \"\''${_''${outhash}_NIX_LISP_PATH_CONFIG}\"; then export _''${outhash}_NIX_LISP_PATH_CONFIG=1; " >> "$path_config_script" + echo "for i in \"''${CL_SOURCE_REGISTRY//:/\" \"}\" \"$out/lib/common-lisp/${args.baseName}/\" ; do echo \"\$CL_SOURCE_REGISTRY\" | grep -E \"(^|:)\$i(:|\\\$)\" >/dev/null || export CL_SOURCE_REGISTRY=\"\$CL_SOURCE_REGISTRY\''${CL_SOURCE_REGISTRY:+:}\$i\"; done;" >> "$path_config_script" test -n "$LD_LIBRARY_PATH" && - echo "export LD_LIBRARY_PATH=\"\$LD_LIBRARY_PATH\''${LD_LIBRARY_PATH:+:}\"'$LD_LIBRARY_PATH'" >> "$config_script" + echo "export LD_LIBRARY_PATH=\"\$LD_LIBRARY_PATH\''${LD_LIBRARY_PATH:+:}\"'$LD_LIBRARY_PATH'" >> "$path_config_script" test -n "$NIX_LISP_LD_LIBRARY_PATH" && - echo "export NIX_LISP_LD_LIBRARY_PATH=\"\$NIX_LISP_LD_LIBRARY_PATH\''${NIX_LISP_LD_LIBRARY_PATH:+:}\"'$NIX_LISP_LD_LIBRARY_PATH'" >> "$config_script" + echo "export NIX_LISP_LD_LIBRARY_PATH=\"\$NIX_LISP_LD_LIBRARY_PATH\''${NIX_LISP_LD_LIBRARY_PATH:+:}\"'$NIX_LISP_LD_LIBRARY_PATH'" >> "$path_config_script" + echo "fi" >> "$path_config_script" ''; deployLaunchScript = '' launch_script="$out"/bin/${args.baseName}-lisp-launcher.sh @@ -44,9 +58,14 @@ basePackage = { ${deployLaunchScript} ${stdenv.lib.concatMapStrings (testSystem: '' - CL_SOURCE_REGISTRY= \ + env -i \ + NIX_LISP="$NIX_LISP" \ NIX_LISP_PRELAUNCH_HOOK='nix_lisp_run_single_form "(progn - (asdf:compile-system :${testSystem}) (asdf:load-system :${testSystem}))"' \ + (asdf:compile-system :${testSystem}) + (asdf:load-system :${testSystem}) + (asdf:operate (quote asdf::compile-bundle-op) :${testSystem}) + (ignore-errors (asdf:operate (quote asdf::deploy-asd-op) :${testSystem})) + )"' \ "$out/bin/${args.baseName}-lisp-launcher.sh" "" '') testSystems} @@ -57,6 +76,8 @@ basePackage = { buildInputs = buildInputs; dontStrip=true; + ASDF_OUTPUT_TRANSLATIONS="${builtins.storeDir}/:${builtins.storeDir}"; + meta = { inherit description version; } // meta; |