git.iko.soy/typeable/nixpkgs
on master help sign in
Merge pull request #114592 from etu/php-minor-fixes

php: various fixes

commit8eea5d0fbd000e42ad576bdfbc2d9c7ca123c91e authorKim Lindberger <kim.lindberger@gmail.com> dateTue 2 Mar 2021, 09:41 (6 years ago) parentcd43a53db439da
10 files changed+36−25
nixos/modules/services/web-servers/apache-httpd/default.nix+4−2 nixos/tests/all-tests.nix+3 nixos/tests/php/default.nix+7−6 nixos/tests/php/fpm.nix+4−3 nixos/tests/php/httpd.nix+4−3 nixos/tests/php/pcre.nix+3−2 pkgs/build-support/build-pecl.nix+2−2 pkgs/development/interpreters/php/generic.nix+5−4 pkgs/top-level/all-packages.nix+3−2 pkgs/top-level/php-packages.nix+1−1
nixos/modules/services/web-servers/apache-httpd/default.nix+4−2
@@ -22,7 +22,9 @@ let
2222
2323 php = cfg.phpPackage.override { apacheHttpd = pkg; };
2424
25− phpMajorVersion = lib.versions.major (lib.getVersion php);
25+ phpModuleName = let
26+ majorVersion = lib.versions.major (lib.getVersion php);
27+ in (if majorVersion == "8" then "php" else "php${majorVersion}");
2628
2729 mod_perl = pkgs.apacheHttpdPackages.mod_perl.override { apacheHttpd = pkg; };
2830
@@ -63,7 +65,7 @@ let
6365 ++ optional enableSSL "ssl"
6466 ++ optional enableUserDir "userdir"
6567 ++ optional cfg.enableMellon { name = "auth_mellon"; path = "${pkgs.apacheHttpdPackages.mod_auth_mellon}/modules/mod_auth_mellon.so"; }
66− ++ optional cfg.enablePHP { name = "php${phpMajorVersion}"; path = "${php}/modules/libphp${phpMajorVersion}.so"; }
68+ ++ optional cfg.enablePHP { name = phpModuleName; path = "${php}/modules/lib${phpModuleName}.so"; }
6769 ++ optional cfg.enablePerl { name = "perl"; path = "${mod_perl}/modules/mod_perl.so"; }
6870 ++ cfg.extraModules;
6971
nixos/tests/all-tests.nix+3
@@ -307,6 +307,9 @@ in
307307 pgjwt = handleTest ./pgjwt.nix {};
308308 pgmanage = handleTest ./pgmanage.nix {};
309309 php = handleTest ./php {};
310+ php73 = handleTest ./php { php = pkgs.php73; };
311+ php74 = handleTest ./php { php = pkgs.php74; };
312+ php80 = handleTest ./php { php = pkgs.php80; };
310313 pinnwand = handleTest ./pinnwand.nix {};
311314 plasma5 = handleTest ./plasma5.nix {};
312315 pleroma = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./pleroma.nix {};
nixos/tests/php/default.nix+7−6
@@ -1,8 +1,9 @@
1−{ system ? builtins.currentSystem,
2− config ? {},
3− pkgs ? import ../../.. { inherit system config; }
1+{ system ? builtins.currentSystem
2+, config ? {}
3+, pkgs ? import ../../.. { inherit system config; }
4+, php ? pkgs.php
45}: {
5− fpm = import ./fpm.nix { inherit system pkgs; };
6− httpd = import ./httpd.nix { inherit system pkgs; };
7− pcre = import ./pcre.nix { inherit system pkgs; };
6+ fpm = import ./fpm.nix { inherit system pkgs php; };
7+ httpd = import ./httpd.nix { inherit system pkgs php; };
8+ pcre = import ./pcre.nix { inherit system pkgs php; };
89}
nixos/tests/php/fpm.nix+4−3
@@ -1,5 +1,5 @@
1−import ../make-test-python.nix ({pkgs, lib, ...}: {
2− name = "php-fpm-nginx-test";
1+import ../make-test-python.nix ({pkgs, lib, php, ...}: {
2+ name = "php-${php.version}-fpm-nginx-test";
33 meta.maintainers = lib.teams.php.members;
44
55 machine = { config, lib, pkgs, ... }: {
@@ -25,6 +25,7 @@ import ../make-test-python.nix ({pkgs, lib, ...}: {
2525
2626 services.phpfpm.pools."foobar" = {
2727 user = "nginx";
28+ phpPackage = php;
2829 settings = {
2930 "listen.group" = "nginx";
3031 "listen.mode" = "0600";
@@ -44,7 +45,7 @@ import ../make-test-python.nix ({pkgs, lib, ...}: {
4445
4546 # Check so we get an evaluated PHP back
4647 response = machine.succeed("curl -fvvv -s http://127.0.0.1:80/")
47− assert "PHP Version ${pkgs.php.version}" in response, "PHP version not detected"
48+ assert "PHP Version ${php.version}" in response, "PHP version not detected"
4849
4950 # Check so we have database and some other extensions loaded
5051 for ext in ["json", "opcache", "pdo_mysql", "pdo_pgsql", "pdo_sqlite"]:
nixos/tests/php/httpd.nix+4−3
@@ -1,5 +1,5 @@
1−import ../make-test-python.nix ({pkgs, lib, ...}: {
2− name = "php-httpd-test";
1+import ../make-test-python.nix ({pkgs, lib, php, ...}: {
2+ name = "php-${php.version}-httpd-test";
33 meta.maintainers = lib.teams.php.members;
44
55 machine = { config, lib, pkgs, ... }: {
@@ -14,6 +14,7 @@ import ../make-test-python.nix ({pkgs, lib, ...}: {
1414 index = "index.php index.html";
1515 };
1616 };
17+ phpPackage = php;
1718 enablePHP = true;
1819 };
1920 };
@@ -22,7 +23,7 @@ import ../make-test-python.nix ({pkgs, lib, ...}: {
2223
2324 # Check so we get an evaluated PHP back
2425 response = machine.succeed("curl -fvvv -s http://127.0.0.1:80/")
25− assert "PHP Version ${pkgs.php.version}" in response, "PHP version not detected"
26+ assert "PHP Version ${php.version}" in response, "PHP version not detected"
2627
2728 # Check so we have database and some other extensions loaded
2829 for ext in ["json", "opcache", "pdo_mysql", "pdo_pgsql", "pdo_sqlite"]:
nixos/tests/php/pcre.nix+3−2
@@ -1,7 +1,7 @@
11let
22 testString = "can-use-subgroups";
3−in import ../make-test-python.nix ({lib, ...}: {
4− name = "php-httpd-pcre-jit-test";
3+in import ../make-test-python.nix ({lib, php, ...}: {
4+ name = "php-${php.version}-httpd-pcre-jit-test";
55 meta.maintainers = lib.teams.php.members;
66
77 machine = { lib, pkgs, ... }: {
@@ -9,6 +9,7 @@ in import ../make-test-python.nix ({lib, ...}: {
99 services.httpd = {
1010 enable = true;
1111 adminAddr = "please@dont.contact";
12+ phpPackage = php;
1213 enablePHP = true;
1314 phpOptions = "pcre.jit = true";
1415 extraConfig = let
pkgs/build-support/build-pecl.nix+2−2
@@ -16,10 +16,10 @@
1616}@args:
1717
1818stdenv.mkDerivation (args // {
19− name = "php-${pname}-${version}";
19+ pname = "php-${php.version}-${pname}";
2020 extensionName = pname;
2121
22− inherit src;
22+ inherit version src;
2323
2424 nativeBuildInputs = [ autoreconfHook re2c ] ++ nativeBuildInputs;
2525 buildInputs = [ php ] ++ peclDeps ++ buildInputs;
pkgs/development/interpreters/php/generic.nix+5−4
@@ -5,7 +5,7 @@
55
66let
77 generic =
8− { callPackage, lib, stdenv, nixosTests, config, fetchurl, makeWrapper
8+ { callPackage, lib, stdenv, nixosTests, fetchurl, makeWrapper
99 , symlinkJoin, writeText, autoconf, automake, bison, flex, libtool
1010 , pkg-config, re2c, apacheHttpd, libargon2, libxml2, pcre, pcre2
1111 , systemd, system-sendmail, valgrind, xcbuild
@@ -97,7 +97,7 @@ let
9797 (enabledExtensions ++ (getDepsRecursively enabledExtensions)));
9898
9999 extNames = map getExtName enabledExtensions;
100− extraInit = writeText "php.ini" ''
100+ extraInit = writeText "php-extra-init-${version}.ini" ''
101101 ${lib.concatStringsSep "\n"
102102 (lib.textClosureList extensionTexts extNames)}
103103 ${extraConfig}
@@ -112,7 +112,8 @@ let
112112 withExtensions = mkWithExtensions allArgs allExtensionFunctions;
113113 phpIni = "${phpWithExtensions}/lib/php.ini";
114114 unwrapped = php;
115− tests = nixosTests.php;
115+ # Select the right php tests for the php version
116+ tests = nixosTests."php${lib.strings.replaceStrings [ "." ] [ "" ] (lib.versions.majorMinor php.version)}";
116117 inherit (php-packages) extensions buildPecl;
117118 packages = php-packages.tools;
118119 meta = php.meta // {
@@ -121,7 +122,7 @@ let
121122 };
122123 paths = [ php ];
123124 postBuild = ''
124− cp ${extraInit} $out/lib/php.ini
125+ ln -s ${extraInit} $out/lib/php.ini
125126
126127 wrapProgram $out/bin/php --set PHP_INI_SCAN_DIR $out/lib
127128
pkgs/top-level/all-packages.nix+3−2
@@ -11389,9 +11389,10 @@ in
1138911389 #
1139011390 # Set default PHP interpreter, extensions and packages
1139111391 php = php74;
11392− phpExtensions = php74Extensions;
11393− phpPackages = php74Packages;
11392+ phpExtensions = php.extensions;
11393+ phpPackages = php.packages;
1139411394
11395+ # Import PHP80 interpreter, extensions and packages
1139511396 php80 = callPackage ../development/interpreters/php/8.0.nix {
1139611397 stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
1139711398 };
pkgs/top-level/php-packages.nix+1−1
@@ -16,7 +16,7 @@ lib.makeScope pkgs.newScope (self: with self; {
1616 # Wrap mkDerivation to prepend pname with "php-" to make names consistent
1717 # with how buildPecl does it and make the file easier to overview.
1818 mkDerivation = { pname, ... }@args: pkgs.stdenv.mkDerivation (args // {
19− pname = "php-${pname}";
19+ pname = "php-${php.version}-${pname}";
2020 });
2121
2222 pcre' = if (lib.versionAtLeast php.version "7.3") then pcre2 else pcre;