php: Simplify php-packages import, rename exts -> extensions

This commit is contained in:
talyz 2020-04-03 18:14:26 +02:00
parent 1b69056e46
commit 4ff523f691
No known key found for this signature in database
GPG Key ID: 2DED2151F4671A2B
3 changed files with 17 additions and 20 deletions

View File

@ -134,7 +134,7 @@
<programlisting> <programlisting>
environment.systemPackages = [ environment.systemPackages = [
(pkgs.php.buildEnv { exts = pp: with pp; [ (pkgs.php.buildEnv { extensions = pp: with pp; [
imagick imagick
opcache opcache
pdo_mysql pdo_mysql

View File

@ -7,7 +7,7 @@ let
fpm = config.services.phpfpm.pools.nextcloud; fpm = config.services.phpfpm.pools.nextcloud;
phpPackage = pkgs.php74.buildEnv { phpPackage = pkgs.php74.buildEnv {
exts = pp: with pp; [ extensions = e: with e; [
bcmath calendar curl exif ftp filter gd gettext gmp intl json ldap bcmath calendar curl exif ftp filter gd gettext gmp intl json ldap
mysqlnd opcache openssl pcntl pdo pdo_mysql pdo_odbc pdo_pgsql mysqlnd opcache openssl pcntl pdo pdo_mysql pdo_odbc pdo_pgsql
pdo_sqlite pgsql readline session soap sodium sqlite3 zip zlib mbstring pdo_sqlite pgsql readline session soap sodium sqlite3 zip zlib mbstring

View File

@ -150,27 +150,22 @@ let
let let
php = generic (builtins.removeAttrs args [ "self" "selfWithExtensions" ]); php = generic (builtins.removeAttrs args [ "self" "selfWithExtensions" ]);
packages = (callPackage ../../../top-level/php-packages.nix { php-packages = (callPackage ../../../top-level/php-packages.nix {
php = self; php = self;
phpWithExtensions = selfWithExtensions; phpWithExtensions = selfWithExtensions;
}).packages; });
extensions = (callPackage ../../../top-level/php-packages.nix { buildEnv = { extensions ? (_: []), extraConfig ? "" }:
php = self;
phpWithExtensions = selfWithExtensions;
}).extensions;
buildEnv = { exts ? (_: []), extraConfig ? "" }:
let let
getExtName = ext: lib.removePrefix "php-" (builtins.parseDrvName ext.name).name; getExtName = ext: lib.removePrefix "php-" (builtins.parseDrvName ext.name).name;
extList = exts extensions; extList = extensions php-packages.extensions;
# Generate extension load configuration snippets from # Generate extension load configuration snippets from the
# exts. This is an attrset suitable for use with # extension parameter. This is an attrset suitable for use
# textClosureList, which is used to put the strings in the # with textClosureList, which is used to put the strings in
# right order - if a plugin which is dependent on another # the right order - if a plugin which is dependent on
# plugin is placed before its dependency, it will fail to # another plugin is placed before its dependency, it will
# load. # fail to load.
extensionTexts = extensionTexts =
lib.listToAttrs lib.listToAttrs
(map (ext: (map (ext:
@ -198,7 +193,8 @@ let
inherit (php) dev; inherit (php) dev;
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
passthru = { passthru = {
inherit buildEnv packages extensions; inherit buildEnv;
inherit (php-packages) packages extensions;
}; };
paths = [ php ]; paths = [ php ];
postBuild = '' postBuild = ''
@ -214,7 +210,8 @@ let
in in
php.overrideAttrs (_: { php.overrideAttrs (_: {
passthru = { passthru = {
inherit buildEnv packages extensions; inherit buildEnv;
inherit (php-packages) packages extensions;
}; };
}); });
@ -246,7 +243,7 @@ let
}; };
defaultPhpExtensions = { defaultPhpExtensions = {
exts = pp: with pp; ([ extensions = extensions: with extensions; ([
bcmath calendar curl ctype dom exif fileinfo filter ftp gd bcmath calendar curl ctype dom exif fileinfo filter ftp gd
gettext gmp iconv intl json ldap mbstring mysqli mysqlnd opcache gettext gmp iconv intl json ldap mbstring mysqli mysqlnd opcache
openssl pcntl pdo pdo_mysql pdo_odbc pdo_pgsql pdo_sqlite pgsql openssl pcntl pdo pdo_mysql pdo_odbc pdo_pgsql pdo_sqlite pgsql