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:
parent
aafa2b2c3d
commit
42c94d06fd
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user