commit
8eea5d0fbd
|
@ -22,7 +22,9 @@ let
|
||||||
|
|
||||||
php = cfg.phpPackage.override { apacheHttpd = pkg; };
|
php = cfg.phpPackage.override { apacheHttpd = pkg; };
|
||||||
|
|
||||||
phpMajorVersion = lib.versions.major (lib.getVersion php);
|
phpModuleName = let
|
||||||
|
majorVersion = lib.versions.major (lib.getVersion php);
|
||||||
|
in (if majorVersion == "8" then "php" else "php${majorVersion}");
|
||||||
|
|
||||||
mod_perl = pkgs.apacheHttpdPackages.mod_perl.override { apacheHttpd = pkg; };
|
mod_perl = pkgs.apacheHttpdPackages.mod_perl.override { apacheHttpd = pkg; };
|
||||||
|
|
||||||
|
@ -63,7 +65,7 @@ let
|
||||||
++ optional enableSSL "ssl"
|
++ optional enableSSL "ssl"
|
||||||
++ optional enableUserDir "userdir"
|
++ optional enableUserDir "userdir"
|
||||||
++ optional cfg.enableMellon { name = "auth_mellon"; path = "${pkgs.apacheHttpdPackages.mod_auth_mellon}/modules/mod_auth_mellon.so"; }
|
++ optional cfg.enableMellon { name = "auth_mellon"; path = "${pkgs.apacheHttpdPackages.mod_auth_mellon}/modules/mod_auth_mellon.so"; }
|
||||||
++ optional cfg.enablePHP { name = "php${phpMajorVersion}"; path = "${php}/modules/libphp${phpMajorVersion}.so"; }
|
++ optional cfg.enablePHP { name = phpModuleName; path = "${php}/modules/lib${phpModuleName}.so"; }
|
||||||
++ optional cfg.enablePerl { name = "perl"; path = "${mod_perl}/modules/mod_perl.so"; }
|
++ optional cfg.enablePerl { name = "perl"; path = "${mod_perl}/modules/mod_perl.so"; }
|
||||||
++ cfg.extraModules;
|
++ cfg.extraModules;
|
||||||
|
|
||||||
|
|
|
@ -307,6 +307,9 @@ in
|
||||||
pgjwt = handleTest ./pgjwt.nix {};
|
pgjwt = handleTest ./pgjwt.nix {};
|
||||||
pgmanage = handleTest ./pgmanage.nix {};
|
pgmanage = handleTest ./pgmanage.nix {};
|
||||||
php = handleTest ./php {};
|
php = handleTest ./php {};
|
||||||
|
php73 = handleTest ./php { php = pkgs.php73; };
|
||||||
|
php74 = handleTest ./php { php = pkgs.php74; };
|
||||||
|
php80 = handleTest ./php { php = pkgs.php80; };
|
||||||
pinnwand = handleTest ./pinnwand.nix {};
|
pinnwand = handleTest ./pinnwand.nix {};
|
||||||
plasma5 = handleTest ./plasma5.nix {};
|
plasma5 = handleTest ./plasma5.nix {};
|
||||||
pleroma = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./pleroma.nix {};
|
pleroma = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./pleroma.nix {};
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
{ system ? builtins.currentSystem,
|
{ system ? builtins.currentSystem
|
||||||
config ? {},
|
, config ? {}
|
||||||
pkgs ? import ../../.. { inherit system config; }
|
, pkgs ? import ../../.. { inherit system config; }
|
||||||
|
, php ? pkgs.php
|
||||||
}: {
|
}: {
|
||||||
fpm = import ./fpm.nix { inherit system pkgs; };
|
fpm = import ./fpm.nix { inherit system pkgs php; };
|
||||||
httpd = import ./httpd.nix { inherit system pkgs; };
|
httpd = import ./httpd.nix { inherit system pkgs php; };
|
||||||
pcre = import ./pcre.nix { inherit system pkgs; };
|
pcre = import ./pcre.nix { inherit system pkgs php; };
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import ../make-test-python.nix ({pkgs, lib, ...}: {
|
import ../make-test-python.nix ({pkgs, lib, php, ...}: {
|
||||||
name = "php-fpm-nginx-test";
|
name = "php-${php.version}-fpm-nginx-test";
|
||||||
meta.maintainers = lib.teams.php.members;
|
meta.maintainers = lib.teams.php.members;
|
||||||
|
|
||||||
machine = { config, lib, pkgs, ... }: {
|
machine = { config, lib, pkgs, ... }: {
|
||||||
|
@ -25,6 +25,7 @@ import ../make-test-python.nix ({pkgs, lib, ...}: {
|
||||||
|
|
||||||
services.phpfpm.pools."foobar" = {
|
services.phpfpm.pools."foobar" = {
|
||||||
user = "nginx";
|
user = "nginx";
|
||||||
|
phpPackage = php;
|
||||||
settings = {
|
settings = {
|
||||||
"listen.group" = "nginx";
|
"listen.group" = "nginx";
|
||||||
"listen.mode" = "0600";
|
"listen.mode" = "0600";
|
||||||
|
@ -44,7 +45,7 @@ import ../make-test-python.nix ({pkgs, lib, ...}: {
|
||||||
|
|
||||||
# Check so we get an evaluated PHP back
|
# Check so we get an evaluated PHP back
|
||||||
response = machine.succeed("curl -fvvv -s http://127.0.0.1:80/")
|
response = machine.succeed("curl -fvvv -s http://127.0.0.1:80/")
|
||||||
assert "PHP Version ${pkgs.php.version}" in response, "PHP version not detected"
|
assert "PHP Version ${php.version}" in response, "PHP version not detected"
|
||||||
|
|
||||||
# Check so we have database and some other extensions loaded
|
# Check so we have database and some other extensions loaded
|
||||||
for ext in ["json", "opcache", "pdo_mysql", "pdo_pgsql", "pdo_sqlite"]:
|
for ext in ["json", "opcache", "pdo_mysql", "pdo_pgsql", "pdo_sqlite"]:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import ../make-test-python.nix ({pkgs, lib, ...}: {
|
import ../make-test-python.nix ({pkgs, lib, php, ...}: {
|
||||||
name = "php-httpd-test";
|
name = "php-${php.version}-httpd-test";
|
||||||
meta.maintainers = lib.teams.php.members;
|
meta.maintainers = lib.teams.php.members;
|
||||||
|
|
||||||
machine = { config, lib, pkgs, ... }: {
|
machine = { config, lib, pkgs, ... }: {
|
||||||
|
@ -14,6 +14,7 @@ import ../make-test-python.nix ({pkgs, lib, ...}: {
|
||||||
index = "index.php index.html";
|
index = "index.php index.html";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
phpPackage = php;
|
||||||
enablePHP = true;
|
enablePHP = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -22,7 +23,7 @@ import ../make-test-python.nix ({pkgs, lib, ...}: {
|
||||||
|
|
||||||
# Check so we get an evaluated PHP back
|
# Check so we get an evaluated PHP back
|
||||||
response = machine.succeed("curl -fvvv -s http://127.0.0.1:80/")
|
response = machine.succeed("curl -fvvv -s http://127.0.0.1:80/")
|
||||||
assert "PHP Version ${pkgs.php.version}" in response, "PHP version not detected"
|
assert "PHP Version ${php.version}" in response, "PHP version not detected"
|
||||||
|
|
||||||
# Check so we have database and some other extensions loaded
|
# Check so we have database and some other extensions loaded
|
||||||
for ext in ["json", "opcache", "pdo_mysql", "pdo_pgsql", "pdo_sqlite"]:
|
for ext in ["json", "opcache", "pdo_mysql", "pdo_pgsql", "pdo_sqlite"]:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
let
|
let
|
||||||
testString = "can-use-subgroups";
|
testString = "can-use-subgroups";
|
||||||
in import ../make-test-python.nix ({lib, ...}: {
|
in import ../make-test-python.nix ({lib, php, ...}: {
|
||||||
name = "php-httpd-pcre-jit-test";
|
name = "php-${php.version}-httpd-pcre-jit-test";
|
||||||
meta.maintainers = lib.teams.php.members;
|
meta.maintainers = lib.teams.php.members;
|
||||||
|
|
||||||
machine = { lib, pkgs, ... }: {
|
machine = { lib, pkgs, ... }: {
|
||||||
|
@ -9,6 +9,7 @@ in import ../make-test-python.nix ({lib, ...}: {
|
||||||
services.httpd = {
|
services.httpd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
adminAddr = "please@dont.contact";
|
adminAddr = "please@dont.contact";
|
||||||
|
phpPackage = php;
|
||||||
enablePHP = true;
|
enablePHP = true;
|
||||||
phpOptions = "pcre.jit = true";
|
phpOptions = "pcre.jit = true";
|
||||||
extraConfig = let
|
extraConfig = let
|
||||||
|
|
|
@ -16,10 +16,10 @@
|
||||||
}@args:
|
}@args:
|
||||||
|
|
||||||
stdenv.mkDerivation (args // {
|
stdenv.mkDerivation (args // {
|
||||||
name = "php-${pname}-${version}";
|
pname = "php-${php.version}-${pname}";
|
||||||
extensionName = pname;
|
extensionName = pname;
|
||||||
|
|
||||||
inherit src;
|
inherit version src;
|
||||||
|
|
||||||
nativeBuildInputs = [ autoreconfHook re2c ] ++ nativeBuildInputs;
|
nativeBuildInputs = [ autoreconfHook re2c ] ++ nativeBuildInputs;
|
||||||
buildInputs = [ php ] ++ peclDeps ++ buildInputs;
|
buildInputs = [ php ] ++ peclDeps ++ buildInputs;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
generic =
|
generic =
|
||||||
{ callPackage, lib, stdenv, nixosTests, config, fetchurl, makeWrapper
|
{ callPackage, lib, stdenv, nixosTests, fetchurl, makeWrapper
|
||||||
, symlinkJoin, writeText, autoconf, automake, bison, flex, libtool
|
, symlinkJoin, writeText, autoconf, automake, bison, flex, libtool
|
||||||
, pkg-config, re2c, apacheHttpd, libargon2, libxml2, pcre, pcre2
|
, pkg-config, re2c, apacheHttpd, libargon2, libxml2, pcre, pcre2
|
||||||
, systemd, system-sendmail, valgrind, xcbuild
|
, systemd, system-sendmail, valgrind, xcbuild
|
||||||
|
@ -97,7 +97,7 @@ let
|
||||||
(enabledExtensions ++ (getDepsRecursively enabledExtensions)));
|
(enabledExtensions ++ (getDepsRecursively enabledExtensions)));
|
||||||
|
|
||||||
extNames = map getExtName enabledExtensions;
|
extNames = map getExtName enabledExtensions;
|
||||||
extraInit = writeText "php.ini" ''
|
extraInit = writeText "php-extra-init-${version}.ini" ''
|
||||||
${lib.concatStringsSep "\n"
|
${lib.concatStringsSep "\n"
|
||||||
(lib.textClosureList extensionTexts extNames)}
|
(lib.textClosureList extensionTexts extNames)}
|
||||||
${extraConfig}
|
${extraConfig}
|
||||||
|
@ -112,7 +112,8 @@ let
|
||||||
withExtensions = mkWithExtensions allArgs allExtensionFunctions;
|
withExtensions = mkWithExtensions allArgs allExtensionFunctions;
|
||||||
phpIni = "${phpWithExtensions}/lib/php.ini";
|
phpIni = "${phpWithExtensions}/lib/php.ini";
|
||||||
unwrapped = php;
|
unwrapped = php;
|
||||||
tests = nixosTests.php;
|
# Select the right php tests for the php version
|
||||||
|
tests = nixosTests."php${lib.strings.replaceStrings [ "." ] [ "" ] (lib.versions.majorMinor php.version)}";
|
||||||
inherit (php-packages) extensions buildPecl;
|
inherit (php-packages) extensions buildPecl;
|
||||||
packages = php-packages.tools;
|
packages = php-packages.tools;
|
||||||
meta = php.meta // {
|
meta = php.meta // {
|
||||||
|
@ -121,7 +122,7 @@ let
|
||||||
};
|
};
|
||||||
paths = [ php ];
|
paths = [ php ];
|
||||||
postBuild = ''
|
postBuild = ''
|
||||||
cp ${extraInit} $out/lib/php.ini
|
ln -s ${extraInit} $out/lib/php.ini
|
||||||
|
|
||||||
wrapProgram $out/bin/php --set PHP_INI_SCAN_DIR $out/lib
|
wrapProgram $out/bin/php --set PHP_INI_SCAN_DIR $out/lib
|
||||||
|
|
||||||
|
|
|
@ -11389,9 +11389,10 @@ in
|
||||||
#
|
#
|
||||||
# Set default PHP interpreter, extensions and packages
|
# Set default PHP interpreter, extensions and packages
|
||||||
php = php74;
|
php = php74;
|
||||||
phpExtensions = php74Extensions;
|
phpExtensions = php.extensions;
|
||||||
phpPackages = php74Packages;
|
phpPackages = php.packages;
|
||||||
|
|
||||||
|
# Import PHP80 interpreter, extensions and packages
|
||||||
php80 = callPackage ../development/interpreters/php/8.0.nix {
|
php80 = callPackage ../development/interpreters/php/8.0.nix {
|
||||||
stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
|
stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
|
||||||
};
|
};
|
||||||
|
|
|
@ -16,7 +16,7 @@ lib.makeScope pkgs.newScope (self: with self; {
|
||||||
# Wrap mkDerivation to prepend pname with "php-" to make names consistent
|
# Wrap mkDerivation to prepend pname with "php-" to make names consistent
|
||||||
# with how buildPecl does it and make the file easier to overview.
|
# with how buildPecl does it and make the file easier to overview.
|
||||||
mkDerivation = { pname, ... }@args: pkgs.stdenv.mkDerivation (args // {
|
mkDerivation = { pname, ... }@args: pkgs.stdenv.mkDerivation (args // {
|
||||||
pname = "php-${pname}";
|
pname = "php-${php.version}-${pname}";
|
||||||
});
|
});
|
||||||
|
|
||||||
pcre' = if (lib.versionAtLeast php.version "7.3") then pcre2 else pcre;
|
pcre' = if (lib.versionAtLeast php.version "7.3") then pcre2 else pcre;
|
||||||
|
|
Loading…
Reference in New Issue