php.buildEnv: Let enabled extensions to pass through by default

If only extraConfig is specified in buildEnv, keep the currently
enabled extensions active. Brought up in #89011.
This commit is contained in:
talyz 2020-05-29 00:32:12 +02:00
parent 8c5f4b8a3b
commit bfdc832aef
No known key found for this signature in database
GPG Key ID: 2DED2151F4671A2B

View File

@ -42,7 +42,7 @@ let
# consecutive calls to buildEnv and overrides to work as # consecutive calls to buildEnv and overrides to work as
# expected. # expected.
mkBuildEnv = prevArgs: prevExtensionFunctions: lib.makeOverridable ( mkBuildEnv = prevArgs: prevExtensionFunctions: lib.makeOverridable (
{ extensions ? ({...}: []), extraConfig ? "", ... }@innerArgs: { extensions ? ({ enabled, ... }: enabled), extraConfig ? "", ... }@innerArgs:
let let
allArgs = args // prevArgs // innerArgs; allArgs = args // prevArgs // innerArgs;
filteredArgs = builtins.removeAttrs allArgs [ "extensions" "extraConfig" ]; filteredArgs = builtins.removeAttrs allArgs [ "extensions" "extraConfig" ];
@ -55,8 +55,8 @@ let
allExtensionFunctions = prevExtensionFunctions ++ [ extensions ]; allExtensionFunctions = prevExtensionFunctions ++ [ extensions ];
enabledExtensions = enabledExtensions =
builtins.foldl' builtins.foldl'
(state: f: (enabled: f:
f { enabled = state; all = php-packages.extensions; }) f { inherit enabled; all = php-packages.extensions; })
[] []
allExtensionFunctions; allExtensionFunctions;