php: Add enabledExtensions attribute to PHP derivations
This provides a means to build a PHP package based on a list of extensions from another. For example, to generate a package with all default extensions enabled, except opcache, but with ImageMagick: php.withExtensions (e: (lib.filter (e: e != php.extensions.opcache) php.enabledExtensions) ++ [ e.imagick ])
This commit is contained in:
@@ -158,7 +158,7 @@ let
|
||||
buildEnv = { extensions ? (_: []), extraConfig ? "" }:
|
||||
let
|
||||
getExtName = ext: lib.removePrefix "php-" (builtins.parseDrvName ext.name).name;
|
||||
extList = extensions php-packages.extensions;
|
||||
enabledExtensions = extensions php-packages.extensions;
|
||||
|
||||
# Generate extension load configuration snippets from the
|
||||
# extension parameter. This is an attrset suitable for use
|
||||
@@ -178,9 +178,9 @@ let
|
||||
deps = lib.optionals (ext ? internalDeps)
|
||||
(map getExtName ext.internalDeps);
|
||||
})
|
||||
extList);
|
||||
enabledExtensions);
|
||||
|
||||
extNames = map getExtName extList;
|
||||
extNames = map getExtName enabledExtensions;
|
||||
extraInit = writeText "custom-php.ini" ''
|
||||
${lib.concatStringsSep "\n"
|
||||
(lib.textClosureList extensionTexts extNames)}
|
||||
@@ -189,11 +189,10 @@ let
|
||||
in
|
||||
symlinkJoin {
|
||||
name = "php-with-extensions-${version}";
|
||||
inherit version;
|
||||
inherit (php) dev;
|
||||
inherit (php) version dev;
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
passthru = {
|
||||
inherit buildEnv withExtensions;
|
||||
inherit buildEnv withExtensions enabledExtensions;
|
||||
inherit (php-packages) packages extensions;
|
||||
};
|
||||
paths = [ php ];
|
||||
@@ -212,6 +211,7 @@ let
|
||||
in
|
||||
php.overrideAttrs (_: {
|
||||
passthru = {
|
||||
enabledExtensions = [];
|
||||
inherit buildEnv withExtensions;
|
||||
inherit (php-packages) packages extensions;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user