add krb5 extension

This commit is contained in:
Robin Appelman 2025-10-25 22:09:26 +02:00
commit 052e3c8dc7
2 changed files with 31 additions and 4 deletions

View file

@ -41,14 +41,19 @@
composerJson; composerJson;
hasPsalm = pathExists config.psalmConfig; hasPsalm = pathExists config.psalmConfig;
hasPhpCsFixer = pathExists config.phpCsFixerConfig; hasPhpCsFixer = pathExists config.phpCsFixerConfig;
buildPhp = pkgs: buildPhpVersion = pkgs: version:
(phpVersions.${head composerMeta.phpVersions} pkgs).buildEnv { (phpVersions.${version} pkgs).buildEnv {
extensions = { extensions = {
enabled, enabled,
all, all,
}: }: let
enabled ++ (config.phpExtensions all); extra = {
krb5 = pkgs.callPackage ./pkgs/php-krb5.nix {php = phpVersions.${version} pkgs;};
}; };
in
enabled ++ (config.phpExtensions (all // extra));
};
buildPhp = pkgs: buildPhpVersion pkgs (head composerMeta.phpVersions);
in in
warnIf (! builtins ? readFileType) "Unsupported Nix version in use." warnIf (! builtins ? readFileType) "Unsupported Nix version in use."
{ {
@ -79,6 +84,7 @@ in
fileFilter fileFilter
(file: (file:
file.hasExt "php" file.hasExt "php"
|| file.hasExt "stub"
|| file.hasExt "phpstub" || file.hasExt "phpstub"
|| match "snapshot__.*\.snap" file.name != null || match "snapshot__.*\.snap" file.name != null
|| elem file.name [".php-cs-fixer.dist.php" "psalm.xml" "package.json" "package.lock"]) || elem file.name [".php-cs-fixer.dist.php" "psalm.xml" "package.json" "package.lock"])
@ -150,6 +156,7 @@ in
} }
// optionalAttrs hasPhpCsFixer { // optionalAttrs hasPhpCsFixer {
"*.php" = "${getExe php-cs-fixer} fix"; "*.php" = "${getExe php-cs-fixer} fix";
"*.stub" = "${getExe php-cs-fixer} fix";
"*.phpstub" = "${getExe php-cs-fixer} fix"; "*.phpstub" = "${getExe php-cs-fixer} fix";
}); });
} }

20
pkgs/php-krb5.nix Normal file
View file

@ -0,0 +1,20 @@
{
php,
lib,
krb5,
pkg-config,
}:
php.buildPecl {
pname = "krb5";
version = "1.2.4";
sha256 = "sha256-jasdDGGHP4WxG+U9kI5XLqwSQ5nDg3qjETdM7LXhPJ4=";
nativeBuildInputs = [pkg-config];
buildInputs = [krb5];
meta = with lib; {
description = "PECL krb5 extension";
license = licenses.mit;
homepage = "https://github.com/php/pecl-authentication-krb5";
};
}