about summary refs log tree commit diff
path: root/pkgs/development/interpreters/php
diff options
context:
space:
mode:
authortalyz <kim.lindberger@gmail.com>2020-04-12 22:52:51 +0200
committertalyz <kim.lindberger@gmail.com>2020-04-24 18:48:29 +0200
commitabedfadd7376a2edf59bbfaa7ab101411d042529 (patch)
treee6f6cc25a8e8ec147a19423f2e6e22f188d616b2 /pkgs/development/interpreters/php
parentdde5f5f899acc34407b604cbca4d4070e3111f13 (diff)
downloadnixlib-abedfadd7376a2edf59bbfaa7ab101411d042529.tar
nixlib-abedfadd7376a2edf59bbfaa7ab101411d042529.tar.gz
nixlib-abedfadd7376a2edf59bbfaa7ab101411d042529.tar.bz2
nixlib-abedfadd7376a2edf59bbfaa7ab101411d042529.tar.lz
nixlib-abedfadd7376a2edf59bbfaa7ab101411d042529.tar.xz
nixlib-abedfadd7376a2edf59bbfaa7ab101411d042529.tar.zst
nixlib-abedfadd7376a2edf59bbfaa7ab101411d042529.zip
php.buildEnv: Respect override
Make buildEnv take earlier overridden values into account by
forwarding all arguments (a merge of generic's arguments, all previous
arguments and the current arguments) to the next invocation of
buildEnv.
Diffstat (limited to 'pkgs/development/interpreters/php')
-rw-r--r--pkgs/development/interpreters/php/default.nix18
1 files changed, 11 insertions, 7 deletions
diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix
index 7c6cb87dfb38..c1a7cdd11c47 100644
--- a/pkgs/development/interpreters/php/default.nix
+++ b/pkgs/development/interpreters/php/default.nix
@@ -43,12 +43,12 @@ let
           phpWithExtensions = self.withExtensions defaultPhpExtensions;
         });
 
-        buildEnv = lib.makeOverridable (
+        mkBuildEnv = prevArgs: lib.makeOverridable (
           { extensions ? (_: []), extraConfig ? "", ... }@innerArgs:
             let
-              filteredInnerArgs = builtins.removeAttrs innerArgs [ "extensions" "extraConfig" ];
-              allArgs = args // filteredInnerArgs;
-              php = generic allArgs;
+              allArgs = args // prevArgs // innerArgs;
+              filteredArgs = builtins.removeAttrs allArgs [ "extensions" "extraConfig" ];
+              php = generic filteredArgs;
 
               php-packages = (callPackage ../../../top-level/php-packages.nix {
                 inherit php phpWithExtensions;
@@ -89,7 +89,9 @@ let
                 inherit (php) version;
                 nativeBuildInputs = [ makeWrapper ];
                 passthru = {
-                  inherit buildEnv withExtensions enabledExtensions;
+                  buildEnv = mkBuildEnv allArgs;
+                  withExtensions = mkWithExtensions allArgs;
+                  inherit enabledExtensions;
                   inherit (php-packages) packages extensions;
                 };
                 paths = [ php ];
@@ -106,7 +108,8 @@ let
             in
               phpWithExtensions);
 
-        withExtensions = extensions: buildEnv { inherit extensions; };
+        mkWithExtensions = prevArgs: extensions:
+          mkBuildEnv prevArgs { inherit extensions; };
 
         pcre' = if (lib.versionAtLeast version "7.3") then pcre2 else pcre;
       in
@@ -216,7 +219,8 @@ let
 
           passthru = {
             enabledExtensions = [];
-            inherit buildEnv withExtensions;
+            buildEnv = mkBuildEnv {};
+            withExtensions = mkWithExtensions {};
             inherit (php-packages) packages extensions;
           };