diff options
author | talyz <kim.lindberger@gmail.com> | 2020-04-24 18:11:40 +0200 |
---|---|---|
committer | talyz <kim.lindberger@gmail.com> | 2020-04-26 16:43:29 +0200 |
commit | d61040716e4e7266f36e523f8ba5fa11f387548e (patch) | |
tree | fb022a5267d063a4b3d0b53833b94c272f56bf56 /pkgs/development/interpreters/php | |
parent | 72636bc2f6321e5e25414904685ba9fbabbbfb56 (diff) | |
download | nixlib-d61040716e4e7266f36e523f8ba5fa11f387548e.tar nixlib-d61040716e4e7266f36e523f8ba5fa11f387548e.tar.gz nixlib-d61040716e4e7266f36e523f8ba5fa11f387548e.tar.bz2 nixlib-d61040716e4e7266f36e523f8ba5fa11f387548e.tar.lz nixlib-d61040716e4e7266f36e523f8ba5fa11f387548e.tar.xz nixlib-d61040716e4e7266f36e523f8ba5fa11f387548e.tar.zst nixlib-d61040716e4e7266f36e523f8ba5fa11f387548e.zip |
php.buildEnv: Automatically include extension dependencies
Some extensions depend on other extensions. Previously, these had to be added manually to the list of included extensions, or we got a cryptic error message pointing to strings-with-deps.nix, which wasn't very helpful. This makes sure all required extensions are included in the set from which textClosureList chooses its snippets.
Diffstat (limited to 'pkgs/development/interpreters/php')
-rw-r--r-- | pkgs/development/interpreters/php/default.nix | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix index 33071b06d956..2eda206ef2e4 100644 --- a/pkgs/development/interpreters/php/default.nix +++ b/pkgs/development/interpreters/php/default.nix @@ -71,6 +71,19 @@ let getExtName = ext: lib.removePrefix "php-" (builtins.parseDrvName ext.name).name; + # Recursively get a list of all internal dependencies + # for a list of extensions. + getDepsRecursively = extensions: + let + deps = lib.concatMap + (ext: ext.internalDeps or []) + extensions; + in + if ! (deps == []) then + deps ++ (getDepsRecursively deps) + else + deps; + # Generate extension load configuration snippets from the # extension parameter. This is an attrset suitable for use # with textClosureList, which is used to put the strings in @@ -89,7 +102,7 @@ let deps = lib.optionals (ext ? internalDeps) (map getExtName ext.internalDeps); }) - enabledExtensions); + (enabledExtensions ++ (getDepsRecursively enabledExtensions))); extNames = map getExtName enabledExtensions; extraInit = writeText "custom-php.ini" '' |