about summary refs log tree commit diff
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2015-07-23T13·48-0400
committerEelco Dolstra <eelco.dolstra@logicblox.com>2015-07-23T15·04+0200
commit39e27a04b8d1fc8251128b1f9f8f152b8c8a9b68 (patch)
tree0f9b47e38fbc40e0595dffe31c41611f709e3f6a
parent1ed55234d9efce7d40c97ef1215090015d18498c (diff)
Importing derivations: Add name attribute to make a valid drv
-rw-r--r--corepkgs/imported-drv-to-derivation.nix4
-rw-r--r--src/libexpr/primops.cc4
2 files changed, 5 insertions, 3 deletions
diff --git a/corepkgs/imported-drv-to-derivation.nix b/corepkgs/imported-drv-to-derivation.nix
index bdb6016986..eab8b050e8 100644
--- a/corepkgs/imported-drv-to-derivation.nix
+++ b/corepkgs/imported-drv-to-derivation.nix
@@ -1,10 +1,10 @@
-attrs @ { drvPath, outputs, ... }:
+attrs @ { drvPath, outputs, name, ... }:
 
 let
 
   commonAttrs = (builtins.listToAttrs outputsList) //
     { all = map (x: x.value) outputsList;
-      inherit drvPath;
+      inherit drvPath name;
       type = "derivation";
     };
 
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc
index f555de73e1..dd21bdc57e 100644
--- a/src/libexpr/primops.cc
+++ b/src/libexpr/primops.cc
@@ -86,9 +86,11 @@ static void prim_scopedImport(EvalState & state, const Pos & pos, Value * * args
     if (isStorePath(path) && store->isValidPath(path) && isDerivation(path)) {
         Derivation drv = readDerivation(path);
         Value & w = *state.allocValue();
-        state.mkAttrs(w, 2 + drv.outputs.size());
+        state.mkAttrs(w, 3 + drv.outputs.size());
         Value * v2 = state.allocAttr(w, state.sDrvPath);
         mkString(*v2, path, singleton<PathSet>("=" + path));
+        v2 = state.allocAttr(w, state.sName);
+        mkString(*v2, drv.env["name"]);
         Value * outputsVal =
             state.allocAttr(w, state.symbols.create("outputs"));
         state.mkList(*outputsVal, drv.outputs.size());