about summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
authorSilvan Mosberger <contact@infinisil.com>2021-10-21 20:17:32 +0200
committerGitHub <noreply@github.com>2021-10-21 20:17:32 +0200
commit98f82e9c35aaf1eb32f0d8787e948da5ca970449 (patch)
tree60446a73a2625683e671f9c9b243da6dd3094fde /lib
parent89776ad3ab861664040605c8f6fc92836f51d440 (diff)
parentdc895fb2815032adbcc49f090812fa355074d9be (diff)
downloadnixlib-98f82e9c35aaf1eb32f0d8787e948da5ca970449.tar
nixlib-98f82e9c35aaf1eb32f0d8787e948da5ca970449.tar.gz
nixlib-98f82e9c35aaf1eb32f0d8787e948da5ca970449.tar.bz2
nixlib-98f82e9c35aaf1eb32f0d8787e948da5ca970449.tar.lz
nixlib-98f82e9c35aaf1eb32f0d8787e948da5ca970449.tar.xz
nixlib-98f82e9c35aaf1eb32f0d8787e948da5ca970449.tar.zst
nixlib-98f82e9c35aaf1eb32f0d8787e948da5ca970449.zip
Merge pull request #141789 from pennae/eval-opt
lib: make extendDerivation lighter on eval
Diffstat (limited to 'lib')
-rw-r--r--lib/attrsets.nix2
-rw-r--r--lib/customisation.nix5
2 files changed, 3 insertions, 4 deletions
diff --git a/lib/attrsets.nix b/lib/attrsets.nix
index 31fddc59e20e..812521ce6d1c 100644
--- a/lib/attrsets.nix
+++ b/lib/attrsets.nix
@@ -487,7 +487,7 @@ rec {
        => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev"
   */
   getOutput = output: pkg:
-    if pkg.outputUnspecified or false
+    if ! pkg ? outputSpecified || ! pkg.outputSpecified
       then pkg.${output} or pkg.out or pkg
       else pkg;
 
diff --git a/lib/customisation.nix b/lib/customisation.nix
index a794b673d70c..234a528527d3 100644
--- a/lib/customisation.nix
+++ b/lib/customisation.nix
@@ -145,14 +145,14 @@ rec {
     let
       outputs = drv.outputs or [ "out" ];
 
-      commonAttrs = (removeAttrs drv [ "outputUnspecified" ]) //
-        (builtins.listToAttrs outputsList) //
+      commonAttrs = drv // (builtins.listToAttrs outputsList) //
         ({ all = map (x: x.value) outputsList; }) // passthru;
 
       outputToAttrListElement = outputName:
         { name = outputName;
           value = commonAttrs // {
             inherit (drv.${outputName}) type outputName;
+            outputSpecified = true;
             drvPath = assert condition; drv.${outputName}.drvPath;
             outPath = assert condition; drv.${outputName}.outPath;
           };
@@ -160,7 +160,6 @@ rec {
 
       outputsList = map outputToAttrListElement outputs;
     in commonAttrs // {
-      outputUnspecified = true;
       drvPath = assert condition; drv.drvPath;
       outPath = assert condition; drv.outPath;
     };