From 1b00adbad171384b99ad842684d4f5e58e6657a2 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Sun, 5 Jun 2022 13:33:35 +0200 Subject: [PATCH 1/3] pkgs/make-derivation.nix: Refactor, introduce let binding --- pkgs/stdenv/generic/make-derivation.nix | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix index 395c1586a26b..075012d6e0fb 100644 --- a/pkgs/stdenv/generic/make-derivation.nix +++ b/pkgs/stdenv/generic/make-derivation.nix @@ -70,9 +70,7 @@ let makeDerivationExtensible mkDerivationSimple (self: attrs // f self attrs)) attrs; -in - -makeOverlayable (overrideAttrs: + mkDerivationSimple = overrideAttrs: # `mkDerivation` wraps the builtin `derivation` function to @@ -485,6 +483,7 @@ lib.extendDerivation # should be made available to Nix expressions using the # derivation (e.g., in assertions). passthru) - (derivation derivationArg) + (derivation derivationArg); -) +in + makeOverlayable mkDerivationSimple From 7e3c80f5b7db00252f3334d97a28d2c4800c8f41 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Sun, 5 Jun 2022 13:35:04 +0200 Subject: [PATCH 2/3] pkgs/make-derivation.nix: Refactor, inline makeOverlayable --- pkgs/stdenv/generic/make-derivation.nix | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix index 075012d6e0fb..23e7d992bc2a 100644 --- a/pkgs/stdenv/generic/make-derivation.nix +++ b/pkgs/stdenv/generic/make-derivation.nix @@ -10,12 +10,6 @@ let inherit (stdenv) hostPlatform; }; - makeOverlayable = mkDerivationSimple: - fnOrAttrs: - if builtins.isFunction fnOrAttrs - then makeDerivationExtensible mkDerivationSimple fnOrAttrs - else makeDerivationExtensibleConst mkDerivationSimple fnOrAttrs; - # Based off lib.makeExtensible, with modifications: makeDerivationExtensible = mkDerivationSimple: rattrs: let @@ -486,4 +480,7 @@ lib.extendDerivation (derivation derivationArg); in - makeOverlayable mkDerivationSimple + fnOrAttrs: + if builtins.isFunction fnOrAttrs + then makeDerivationExtensible mkDerivationSimple fnOrAttrs + else makeDerivationExtensibleConst mkDerivationSimple fnOrAttrs From cd88f8613f3d8cd5a985c624cd3cf14459ddbed9 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Sun, 5 Jun 2022 13:36:56 +0200 Subject: [PATCH 3/3] pkgs/make-derivation.nix: Refactor, hardcode mkDerivationSimple --- pkgs/stdenv/generic/make-derivation.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix index 23e7d992bc2a..5f1a22cee06f 100644 --- a/pkgs/stdenv/generic/make-derivation.nix +++ b/pkgs/stdenv/generic/make-derivation.nix @@ -11,7 +11,7 @@ let }; # Based off lib.makeExtensible, with modifications: - makeDerivationExtensible = mkDerivationSimple: rattrs: + makeDerivationExtensible = rattrs: let # NOTE: The following is a hint that will be printed by the Nix cli when # encountering an infinite recursion. It must not be formatted into @@ -42,14 +42,14 @@ let f0 self super else x; in - makeDerivationExtensible mkDerivationSimple + makeDerivationExtensible (self: let super = rattrs self; in super // f self super)) args; in finalPackage; # makeDerivationExtensibleConst == makeDerivationExtensible (_: attrs), # but pre-evaluated for a slight improvement in performance. - makeDerivationExtensibleConst = mkDerivationSimple: attrs: + makeDerivationExtensibleConst = attrs: mkDerivationSimple (f0: let @@ -61,7 +61,7 @@ let f0 self super else x; in - makeDerivationExtensible mkDerivationSimple (self: attrs // f self attrs)) + makeDerivationExtensible (self: attrs // f self attrs)) attrs; mkDerivationSimple = overrideAttrs: @@ -482,5 +482,5 @@ lib.extendDerivation in fnOrAttrs: if builtins.isFunction fnOrAttrs - then makeDerivationExtensible mkDerivationSimple fnOrAttrs - else makeDerivationExtensibleConst mkDerivationSimple fnOrAttrs + then makeDerivationExtensible fnOrAttrs + else makeDerivationExtensibleConst fnOrAttrs