stdenv: fix overriding with attrset when finalAttrs isn't used
```
nix-repl> (pkgs.htop.overrideAttrs { pname = "hello-overriden"; }).pname
error:
… while evaluating a branch condition
at /nix/store/phn5cahwacv9wjgalygw62x8l4xbl6x3-source/lib/customisation.nix:86:7:
85| in
86| if builtins.isAttrs result then
| ^
87| result // {
… while calling the 'isAttrs' builtin
at /nix/store/phn5cahwacv9wjgalygw62x8l4xbl6x3-source/lib/customisation.nix:86:10:
85| in
86| if builtins.isAttrs result then
| ^
87| result // {
(stack trace truncated; use '--show-trace' to show the full trace)
error: attempt to call something which is not a function but a set
at /nix/store/phn5cahwacv9wjgalygw62x8l4xbl6x3-source/pkgs/stdenv/generic/make-derivation.nix:58:21:
57| f = self: super:
58| let x = f0 super;
| ^
59| in
```
This commit is contained in:
@@ -62,7 +62,7 @@ let
|
||||
f0 self super
|
||||
else x;
|
||||
in
|
||||
makeDerivationExtensible (self: attrs // f self attrs))
|
||||
makeDerivationExtensible (self: attrs // (if builtins.isFunction f0 || f0?__functor then f self attrs else f0)))
|
||||
attrs;
|
||||
|
||||
mkDerivationSimple = overrideAttrs:
|
||||
|
||||
@@ -26,6 +26,11 @@ let
|
||||
expr = (pkgs.hello.overrideAttrs { pname = "hello-overriden"; }).pname == "hello-overriden";
|
||||
expected = true;
|
||||
})
|
||||
({
|
||||
name = "overriding-using-only-attrset-no-final-attrs";
|
||||
expr = ((stdenvNoCC.mkDerivation { pname = "hello-no-final-attrs"; }).overrideAttrs { pname = "hello-no-final-attrs-overridden"; }).pname == "hello-no-final-attrs-overridden";
|
||||
expected = true;
|
||||
})
|
||||
];
|
||||
|
||||
addEntangled = origOverrideAttrs: f:
|
||||
|
||||
Reference in New Issue
Block a user