From 21e9a65a3593b3770a93026ea05bcfbe9e2f6b04 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Fri, 17 Jan 2020 16:41:57 +0000 Subject: fix(nix/buildLisp): Don't load binaries in sbclWith Adds an attribute on each Lisp derivation that specifies whether it is a binary or not. This attribute is then filtered for in sbclWith. --- nix/buildLisp/default.nix | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'nix/buildLisp') diff --git a/nix/buildLisp/default.nix b/nix/buildLisp/default.nix index baf7a14843f6..b8f3402ad109 100644 --- a/nix/buildLisp/default.nix +++ b/nix/buildLisp/default.nix @@ -8,7 +8,7 @@ , ... }: let - inherit (builtins) map elemAt match; + inherit (builtins) map elemAt match filter; inherit (pkgs.third_party) lib runCommandNoCC makeWrapper writeText writeShellScriptBin sbcl; # @@ -130,6 +130,7 @@ let '' // { inherit lispNativeDeps lispDeps; lispName = name; + lispBinary = false; }; # 'program' creates an executable containing a dumped image of the @@ -153,11 +154,18 @@ let } wrapProgram $out/bin/${name} --prefix LD_LIBRARY_PATH : "${libPath}" - '' // { lispName = name; lispDeps = [ selfLib ]; lispNativeDeps = []; }; + '' // { + lispName = name; + lispDeps = [ selfLib ]; + lispNativeDeps = native; + lispBinary = true; + }; # 'sbclWith' creates an image with the specified libraries / # programs loaded. - sbclWith = deps: let lispDeps = allDeps deps; in writeShellScriptBin "sbcl" '' + sbclWith = deps: + let lispDeps = filter (d: !d.lispBinary) (allDeps deps); + in writeShellScriptBin "sbcl" '' export LD_LIBRARY_PATH=${lib.makeLibraryPath (allNative [] lispDeps)}; exec ${sbcl}/bin/sbcl ${ if deps == [] then "" -- cgit 1.4.1