Merge pull request #125500 from etu/php-spring-release-cleaning

php: post-release spring cleaning and upgrade to 8.0 as default
This commit is contained in:
Kim Lindberger 2021-06-04 17:48:47 +02:00 committed by GitHub
commit 8960c09eed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 97 additions and 309 deletions

@ -14,8 +14,13 @@
</itemizedlist>
<section xml:id="highlights">
<title>Highlights</title>
<para>
</para>
<itemizedlist spacing="compact">
<listitem>
<para>
PHP now defaults to PHP 8.0, updated from 7.4.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="new-services">
<title>New Services</title>
@ -45,6 +50,12 @@
<link xlink:href="options.html#opt-services.geoipupdate.enable">services.geoipupdate</link>.
</para>
</listitem>
<listitem>
<para>
PHP 7.3 is no longer supported due to upstream not supporting
this version for the entire lifecycle of the 21.11 release.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="other-notable-changes">

@ -6,6 +6,8 @@ In addition to numerous new and upgraded packages, this release has the followin
## Highlights
* PHP now defaults to PHP 8.0, updated from 7.4.
## New Services
* [geoipupdate](https://github.com/maxmind/geoipupdate), a GeoIP
@ -19,4 +21,7 @@ In addition to numerous new and upgraded packages, this release has the followin
* `services.geoip-updater` was broken and has been replaced by
[services.geoipupdate](options.html#opt-services.geoipupdate.enable).
* PHP 7.3 is no longer supported due to upstream not supporting this
version for the entire lifecycle of the 21.11 release.
## Other Notable Changes

@ -325,7 +325,6 @@ in
pgjwt = handleTest ./pgjwt.nix {};
pgmanage = handleTest ./pgmanage.nix {};
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 {};

@ -1,6 +1,6 @@
import ../make-test-python.nix ({pkgs, ...}:
let
testdir = pkgs.writeTextDir "www/info.php" "<?php phpinfo();";
let
testdir = pkgs.writeTextDir "www/info.php" "<?php phpinfo();";
in {
name = "unit-php-test";
@ -9,37 +9,27 @@ in {
machine = { config, lib, pkgs, ... }: {
services.unit = {
enable = true;
config = ''
{
"listeners": {
"*:9074": {
"application": "php_74"
}
},
"applications": {
"php_74": {
"type": "php 7.4",
"processes": 1,
"user": "testuser",
"group": "testgroup",
"root": "${testdir}/www",
"index": "info.php",
"options": {
"file": "${pkgs.unit.usedPhp74}/lib/php.ini"
}
}
}
}
'';
config = pkgs.lib.strings.toJSON {
listeners."*:9080".application = "php_80";
applications.php_80 = {
type = "php 8.0";
processes = 1;
user = "testuser";
group = "testgroup";
root = "${testdir}/www";
index = "info.php";
options.file = "${pkgs.unit.usedPhp80}/lib/php.ini";
};
};
};
users = {
users.testuser = {
isSystemUser = true;
uid = 1074;
uid = 1080;
group = "testgroup";
};
groups.testgroup = {
gid= 1074;
gid = 1080;
};
};
};
@ -47,8 +37,8 @@ in {
machine.wait_for_unit("unit.service")
# Check so we get an evaluated PHP back
response = machine.succeed("curl -f -vvv -s http://127.0.0.1:9074/")
assert "PHP Version ${pkgs.unit.usedPhp74.version}" in response, "PHP version not detected"
response = machine.succeed("curl -f -vvv -s http://127.0.0.1:9080/")
assert "PHP Version ${pkgs.unit.usedPhp80.version}" in response, "PHP version not detected"
# Check so we have database and some other extensions loaded
for ext in ["json", "opcache", "pdo_mysql", "pdo_pgsql", "pdo_sqlite"]:

@ -6,7 +6,6 @@ let
curl
filter
iconv
json
mbstring
openssl
simplexml

@ -1,20 +0,0 @@
{ callPackage, lib, stdenv, nixosTests, ... }@_args:
let
generic = (import ./generic.nix) _args;
base = callPackage generic (_args // {
version = "7.3.28";
sha256 = "0r4r8famg3a8x6ch24y1370nsphkxg4k9zq5x8v88f4l8mj6wqwg";
# https://bugs.php.net/bug.php?id=76826
extraPatches = lib.optional stdenv.isDarwin ./php73-darwin-isfinite.patch;
});
in base.withExtensions ({ all, ... }: with all; ([
bcmath calendar curl ctype dom exif fileinfo filter ftp gd
gettext gmp hash iconv intl json ldap mbstring mysqli mysqlnd
opcache openssl pcntl pdo pdo_mysql pdo_odbc pdo_pgsql pdo_sqlite
pgsql posix readline session simplexml sockets soap sodium sqlite3
tokenizer xmlreader xmlwriter zip zlib
] ++ lib.optionals (!stdenv.isDarwin) [ imap ]))

@ -7,7 +7,7 @@ let
generic =
{ callPackage, lib, stdenv, nixosTests, fetchurl, makeWrapper
, symlinkJoin, writeText, autoconf, automake, bison, flex, libtool
, pkg-config, re2c, apacheHttpd, libargon2, libxml2, pcre, pcre2
, pkg-config, re2c, apacheHttpd, libargon2, libxml2, pcre2
, systemd, system-sendmail, valgrind, xcbuild
, version
@ -103,7 +103,7 @@ let
${extraConfig}
'';
phpWithExtensions = symlinkJoin rec {
phpWithExtensions = symlinkJoin {
name = "php-with-extensions-${version}";
inherit (php) version;
nativeBuildInputs = [ makeWrapper ];
@ -142,8 +142,6 @@ let
mkWithExtensions = prevArgs: prevExtensionFunctions: extensions:
mkBuildEnv prevArgs prevExtensionFunctions { inherit extensions; };
pcre' = if (lib.versionAtLeast version "7.3") then pcre2 else pcre;
in
stdenv.mkDerivation {
pname = "php";
@ -157,7 +155,7 @@ let
buildInputs =
# PCRE extension
[ pcre' ]
[ pcre2 ]
# Enable sapis
++ lib.optional pearSupport [ libxml2.dev ]
@ -176,10 +174,10 @@ let
[ "--disable-all" ]
# PCRE
++ lib.optionals (lib.versionAtLeast version "7.4") [ "--with-external-pcre=${pcre'.dev}" ]
++ lib.optionals (lib.versions.majorMinor version == "7.3") [ "--with-pcre-regex=${pcre'.dev}" ]
++ lib.optionals (lib.versionOlder version "7.3") [ "--with-pcre-regex=${pcre'.dev}" ]
++ [ "PCRE_LIBDIR=${pcre'}" ]
++ lib.optionals (lib.versionAtLeast version "7.4") [ "--with-external-pcre=${pcre2.dev}" ]
++ lib.optionals (lib.versions.majorMinor version == "7.3") [ "--with-pcre-regex=${pcre2.dev}" ]
++ lib.optionals (lib.versionOlder version "7.3") [ "--with-pcre-regex=${pcre2.dev}" ]
++ [ "PCRE_LIBDIR=${pcre2}" ]
# Enable sapis

@ -1,60 +0,0 @@
diff -ru a/configure.ac b/configure.ac
--- a/configure.ac 2018-12-04 19:12:20.000000000 +0300
+++ b/configure.ac 2018-12-10 12:30:37.798917520 +0300
@@ -68,7 +68,7 @@
#include <math.h>
#ifndef zend_isnan
-#if HAVE_DECL_ISNAN && (!defined(__cplusplus) || __cplusplus < 201103L)
+#if HAVE_DECL_ISNAN && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
#define zend_isnan(a) isnan(a)
#elif defined(HAVE_FPCLASS)
#define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
@@ -77,7 +77,7 @@
#endif
#endif
-#if HAVE_DECL_ISINF && (!defined(__cplusplus) || __cplusplus < 201103L)
+#if HAVE_DECL_ISINF && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
#define zend_isinf(a) isinf(a)
#elif defined(INFINITY)
/* Might not work, but is required by ISO C99 */
@@ -88,7 +88,7 @@
#define zend_isinf(a) 0
#endif
-#if HAVE_DECL_ISFINITE && (!defined(__cplusplus) || __cplusplus < 201103L)
+#if HAVE_DECL_ISFINITE && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
#define zend_finite(a) isfinite(a)
#elif defined(HAVE_FINITE)
#define zend_finite(a) finite(a)
diff -ru a/Zend/configure.ac b/Zend/configure.ac
--- a/Zend/configure.ac 2018-12-04 19:12:30.000000000 +0300
+++ b/Zend/configure.ac 2018-12-10 12:28:50.350929699 +0300
@@ -59,7 +59,7 @@
#include <math.h>
#ifndef zend_isnan
-#if HAVE_DECL_ISNAN && (!defined(__cplusplus) || __cplusplus < 201103L)
+#if HAVE_DECL_ISNAN && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
#define zend_isnan(a) isnan(a)
#elif defined(HAVE_FPCLASS)
#define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
@@ -68,7 +68,7 @@
#endif
#endif
-#if HAVE_DECL_ISINF && (!defined(__cplusplus) || __cplusplus < 201103L)
+#if HAVE_DECL_ISINF && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
#define zend_isinf(a) isinf(a)
#elif defined(INFINITY)
/* Might not work, but is required by ISO C99 */
@@ -79,7 +79,7 @@
#define zend_isinf(a) 0
#endif
-#if HAVE_DECL_ISFINITE && (!defined(__cplusplus) || __cplusplus < 201103L)
+#if HAVE_DECL_ISFINITE && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
#define zend_finite(a) isfinite(a)
#elif defined(HAVE_FINITE)
#define zend_finite(a) finite(a)

@ -1,4 +1,4 @@
{ buildPecl, lib, pcre' }:
{ buildPecl, lib, pcre2 }:
buildPecl {
pname = "apcu";
@ -6,7 +6,7 @@ buildPecl {
version = "5.1.20";
sha256 = "sha256-uZ1A+v7Ab00TL87lPnUm3b/B0EHqbgThc4nfrSj5w5A=";
buildInputs = [ pcre' ];
buildInputs = [ pcre2 ];
doCheck = true;
checkTarget = "test";
checkFlagsArray = [ "REPORT_EXIT_STATUS=1" "NO_INTERACTION=1" ];

@ -1,4 +1,4 @@
{ buildPecl, lib, pcre', php }:
{ buildPecl, lib, pcre2, php }:
buildPecl {
pname = "apcu_bc";
@ -8,7 +8,7 @@ buildPecl {
peclDeps = [ php.extensions.apcu ];
buildInputs = [ pcre' ];
buildInputs = [ pcre2 ];
postInstall = ''
mv $out/lib/php/extensions/apc.so $out/lib/php/extensions/apcu_bc.so

@ -1,34 +0,0 @@
{ mkDerivation, fetchurl, makeWrapper, unzip, lib, php }:
let
pname = "composer";
version = "1.10.22";
in
mkDerivation {
inherit pname version;
src = fetchurl {
url = "https://getcomposer.org/download/${version}/composer.phar";
sha256 = "00073smi1jja00d4bqfs6p4fqs38mki2ziy7b1kwsmiv5lcsw9v1";
};
dontUnpack = true;
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
install -D $src $out/libexec/composer/composer.phar
makeWrapper ${php}/bin/php $out/bin/composer \
--add-flags "$out/libexec/composer/composer.phar" \
--prefix PATH : ${lib.makeBinPath [ unzip ]}
runHook postInstall
'';
meta = with lib; {
description = "Dependency Manager for PHP";
license = licenses.mit;
homepage = "https://getcomposer.org/";
maintainers = with maintainers; [ offline ] ++ teams.php.members;
};
}

@ -14,7 +14,6 @@ buildPecl {
};
configureFlags = [ "--with-couchbase" ];
broken = lib.versionAtLeast php.version "8.0";
buildInputs = [ libcouchbase zlib ];
internalDeps = lib.optionals (lib.versionOlder php.version "8.0") [ php.extensions.json ];
@ -45,5 +44,6 @@ buildPecl {
'')
];
meta.broken = lib.versionAtLeast php.version "8.0";
meta.maintainers = lib.teams.php.members;
}

@ -1,4 +1,4 @@
{ buildPecl, fetchpatch, lib, imagemagick, pkg-config, pcre' }:
{ buildPecl, fetchpatch, lib, imagemagick, pkg-config, pcre2 }:
buildPecl {
pname = "imagick";
@ -21,7 +21,7 @@ buildPecl {
configureFlags = [ "--with-imagick=${imagemagick.dev}" ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ pcre' ];
buildInputs = [ pcre2 ];
meta.maintainers = lib.teams.php.members;
}

@ -1,4 +1,4 @@
{ stdenv, buildPecl, lib, pcre', pkg-config, cyrus_sasl, icu64
{ stdenv, buildPecl, lib, pcre2, pkg-config, cyrus_sasl, icu64
, openssl, snappy, zlib, darwin }:
buildPecl {
@ -14,7 +14,7 @@ buildPecl {
openssl
snappy
zlib
pcre'
pcre2
] ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
meta.maintainers = lib.teams.php.members;

@ -1,4 +1,4 @@
{ buildPecl, lib, pcre' }:
{ buildPecl, lib, pcre2 }:
buildPecl {
pname = "pcov";
@ -6,7 +6,7 @@ buildPecl {
version = "1.0.8";
sha256 = "sha256-6rbniyxLIHPW/e+eWZN1qS8F1rOB7ld1N8JKUS1geRQ=";
buildInputs = [ pcre' ];
buildInputs = [ pcre2 ];
meta.maintainers = lib.teams.php.members;
}

@ -1,4 +1,4 @@
{ buildPecl, fetchurl, lib, libxl }:
{ buildPecl, fetchurl, lib, libxl, php }:
let
pname = "php_excel";
phpVersion = "php7";
@ -20,5 +20,6 @@ buildPecl {
"--with-libxl-libdir=${libxl}/lib"
];
meta.broken = lib.versionAtLeast php.version "8.0";
meta.maintainers = lib.teams.php.members;
}

@ -1,24 +1,15 @@
{ buildPecl, lib, fetchFromGitHub, php }:
let
buildPecl {
pname = "pinba";
version = "1.1.2-dev";
isPhp73 = lib.versionAtLeast php.version "7.3";
version = if isPhp73 then "1.1.2-dev" else "1.1.1";
src = fetchFromGitHub ({
src = fetchFromGitHub {
owner = "tony2001";
repo = "pinba_extension";
} // (if (isPhp73) then {
rev = "edbc313f1b4fb8407bf7d5acf63fbb0359c7fb2e";
sha256 = "02sljqm6griw8ccqavl23f7w1hp2zflcv24lpf00k6pyrn9cwx80";
} else {
rev = "RELEASE_1_1_1";
sha256 = "1kdp7vav0y315695vhm3xifgsh6h6y6pny70xw3iai461n58khj5";
}));
in
buildPecl {
inherit pname version src;
};
meta = with lib; {
description = "PHP extension for Pinba";

@ -1,4 +1,4 @@
{ buildPecl, lib, pcre', fetchpatch }:
{ buildPecl, lib, pcre2, fetchpatch }:
buildPecl {
pname = "protobuf";
@ -6,7 +6,7 @@ buildPecl {
version = "3.14.0";
sha256 = "1ldc4s28hq61cfg8l4c06pgicj0ng7k37f28a0dnnbs7xkr7cibd";
buildInputs = [ pcre' ];
buildInputs = [ pcre2 ];
patches = [
# TODO: remove with next update

@ -1,28 +0,0 @@
{ buildPecl, lib, fetchFromGitHub, php, pcre' }:
let
pname = "pthreads";
isPhp73 = lib.versionAtLeast php.version "7.3";
isPhp74 = lib.versionAtLeast php.version "7.4";
version = if isPhp73 then "3.2.0-dev" else "3.2.0";
src = fetchFromGitHub ({
owner = "krakjoe";
repo = "pthreads";
} // (if (isPhp73) then {
rev = "4d1c2483ceb459ea4284db4eb06646d5715e7154";
sha256 = "07kdxypy0bgggrfav2h1ccbv67lllbvpa3s3zsaqci0gq4fyi830";
} else {
rev = "v3.2.0";
sha256 = "17hypm75d4w7lvz96jb7s0s87018yzmmap0l125d5fd7abnhzfvv";
}));
in
buildPecl {
inherit pname version src;
buildInputs = [ pcre'.dev ];
meta.broken = isPhp74;
meta.maintainers = lib.teams.php.members;
}

@ -1,4 +1,4 @@
{ buildPecl, lib, rdkafka, pcre' }:
{ buildPecl, lib, rdkafka, pcre2 }:
buildPecl {
pname = "rdkafka";
@ -6,7 +6,7 @@ buildPecl {
version = "5.0.0";
sha256 = "sha256-Qy+6rkPczhdxFbDhcuzmUTLMPUXYZ0HaheDBhkh4FXs=";
buildInputs = [ rdkafka pcre' ];
buildInputs = [ rdkafka pcre2 ];
postPhpize = ''
substituteInPlace configure \

@ -2,7 +2,7 @@
, lib
, php
, fetchFromGitHub
, pcre'
, pcre2
, fetchpatch
}:
@ -17,7 +17,7 @@ buildPecl rec {
};
buildInputs = [
pcre'
pcre2
];
internalDeps = with php.extensions; [

@ -1,4 +1,4 @@
{ lib, buildPecl, php, valgrind, pcre' }:
{ lib, buildPecl, php, valgrind, pcre2 }:
buildPecl {
pname = "swoole";
@ -6,7 +6,7 @@ buildPecl {
version = "4.6.4";
sha256 = "0hgndnn27q7fbsb0nw6bfdg0kyy5di9vrmf7g53jc6lsnf73ha31";
buildInputs = [ valgrind pcre' ];
buildInputs = [ valgrind pcre2 ];
internalDeps = lib.optionals (lib.versionOlder php.version "7.4") [ php.extensions.hash ];
doCheck = true;

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, php73, which, makeWrapper, bash, coreutils, ncurses }:
{ lib, stdenv, fetchurl, php, which, makeWrapper, bash, coreutils, ncurses }:
stdenv.mkDerivation rec {
name = "drush-6.1.0";
@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
mkdir -p "$out"
cp -r . "$out/src"
mkdir "$out/bin"
wrapProgram "$out/src/drush" --prefix PATH : "${lib.makeBinPath [ which php73 bash coreutils ncurses ]}"
wrapProgram "$out/src/drush" --prefix PATH : "${lib.makeBinPath [ which php bash coreutils ncurses ]}"
ln -s "$out/src/drush" "$out/bin/drush"
'';
}

@ -2,8 +2,8 @@
, pcre2
, withPython2 ? false, python2
, withPython3 ? true, python3, ncurses
, withPHP73 ? false, php73
, withPHP74 ? true, php74
, withPHP74 ? false, php74
, withPHP80 ? true, php80
, withPerl530 ? false, perl530
, withPerl532 ? true, perl532
, withPerldevel ? false, perldevel
@ -26,8 +26,8 @@ let
fpmSupport = false;
};
php73-unit = php73.override phpConfig;
php74-unit = php74.override phpConfig;
php80-unit = php80.override phpConfig;
in stdenv.mkDerivation rec {
version = "1.24.0";
@ -45,8 +45,8 @@ in stdenv.mkDerivation rec {
buildInputs = [ pcre2.dev ]
++ optional withPython2 python2
++ optionals withPython3 [ python3 ncurses ]
++ optional withPHP73 php73-unit
++ optional withPHP74 php74-unit
++ optional withPHP80 php80-unit
++ optional withPerl530 perl530
++ optional withPerl532 perl532
++ optional withPerldevel perldevel
@ -64,14 +64,14 @@ in stdenv.mkDerivation rec {
++ optional withDebug "--debug";
# Optionally add the PHP derivations used so they can be addressed in the configs
usedPhp73 = optionals withPHP73 php73-unit;
usedPhp74 = optionals withPHP74 php74-unit;
usedPhp80 = optionals withPHP80 php80-unit;
postConfigure = ''
${optionalString withPython2 "./configure python --module=python2 --config=python2-config --lib-path=${python2}/lib"}
${optionalString withPython3 "./configure python --module=python3 --config=python3-config --lib-path=${python3}/lib"}
${optionalString withPHP73 "./configure php --module=php73 --config=${php73-unit.unwrapped.dev}/bin/php-config --lib-path=${php73-unit}/lib"}
${optionalString withPHP74 "./configure php --module=php74 --config=${php74-unit.unwrapped.dev}/bin/php-config --lib-path=${php74-unit}/lib"}
${optionalString withPHP80 "./configure php --module=php80 --config=${php80-unit.unwrapped.dev}/bin/php-config --lib-path=${php80-unit}/lib"}
${optionalString withPerl530 "./configure perl --module=perl530 --perl=${perl530}/bin/perl"}
${optionalString withPerl532 "./configure perl --module=perl532 --perl=${perl532}/bin/perl"}
${optionalString withPerldevel "./configure perl --module=perldev --perl=${perldevel}/bin/perl"}

@ -528,6 +528,11 @@ mapAliases ({
pgp-tools = signing-party; # added 2017-03-26
pg_tmp = ephemeralpg; # added 2018-01-16
# Obsolete PHP version aliases
php73 = throw "php73 has been dropped due to the lack of maintanence from upstream for future releases."; # added 2021-06-03
php73Packages = php73; # added 2021-06-03
php73Extensions = php73; # added 2021-06-03
php-embed = throw ''
php*-embed has been dropped, you can build something similar
with the following snippet:
@ -541,8 +546,8 @@ mapAliases ({
similar with the following snippet:
(php74.override { embedSupport = true; apxs2Support = false; }).packages
''; # added 2020-04-01
php74Packages-embed = phpPackages-embed;
php73Packages-embed = phpPackages-embed;
php74Packages-embed = phpPackages-embed;
php-unit = throw ''
php*-unit has been dropped, you can build something similar with
@ -571,8 +576,8 @@ mapAliases ({
fpmSupport = false;
}).packages
''; # added 2020-04-01
php74Packages-unit = phpPackages-unit;
php73Packages-unit = phpPackages-unit;
php74Packages-unit = phpPackages-unit;
pidgin-with-plugins = pidgin; # added 2016-06
pidginlatex = pidgin-latex; # added 2018-01-08

@ -1091,7 +1091,7 @@ in
}) arangodb_3_3 arangodb_3_4 arangodb_3_5;
arangodb = arangodb_3_4;
arcanist = callPackage ../development/tools/misc/arcanist {};
arcanist = callPackage ../development/tools/misc/arcanist { php = php74; };
arduino = arduino-core.override { withGui = true; };
@ -12290,7 +12290,7 @@ in
# PHP interpreters, packages and extensions.
#
# Set default PHP interpreter, extensions and packages
php = php74;
php = php80;
phpExtensions = php.extensions;
phpPackages = php.packages;
@ -12308,13 +12308,6 @@ in
php74Extensions = recurseIntoAttrs php74.extensions;
php74Packages = recurseIntoAttrs php74.packages;
# Import PHP73 interpreter, extensions and packages
php73 = callPackage ../development/interpreters/php/7.3.nix {
stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
};
php73Extensions = recurseIntoAttrs php73.extensions;
php73Packages = recurseIntoAttrs php73.packages;
picoc = callPackage ../development/interpreters/picoc {};
@ -19070,7 +19063,7 @@ in
dspam = callPackage ../servers/mail/dspam { };
engelsystem = callPackage ../servers/web-apps/engelsystem { };
engelsystem = callPackage ../servers/web-apps/engelsystem { php = php74; };
envoy = callPackage ../servers/http/envoy { };
@ -24951,7 +24944,7 @@ in
lrzsz = callPackage ../tools/misc/lrzsz { };
lsp-plugins = callPackage ../applications/audio/lsp-plugins { };
lsp-plugins = callPackage ../applications/audio/lsp-plugins { php = php74; };
luminanceHDR = libsForQt5.callPackage ../applications/graphics/luminance-hdr { };

@ -1,6 +1,6 @@
{ stdenv, lib, pkgs, fetchgit, phpPackage, autoconf, pkg-config, re2c
, gettext, bzip2, curl, libxml2, openssl, gmp, icu64, oniguruma, libsodium
, html-tidy, libzip, zlib, pcre, pcre2, libxslt, aspell, openldap, cyrus_sasl
, html-tidy, libzip, zlib, pcre2, libxslt, aspell, openldap, cyrus_sasl
, uwimap, pam, libiconv, enchant1, libXpm, gd, libwebp, libjpeg, libpng
, freetype, libffi, freetds, postgresql, sqlite, net-snmp, unixODBC, libedit
, readline, rsync, fetchpatch, valgrind
@ -19,8 +19,6 @@ lib.makeScope pkgs.newScope (self: with self; {
pname = "php-${pname}";
});
pcre' = if (lib.versionAtLeast php.version "7.3") then pcre2 else pcre;
php = phpPackage;
# This is a set of interactive tools based on PHP.
@ -29,8 +27,6 @@ lib.makeScope pkgs.newScope (self: with self; {
composer = callPackage ../development/php-packages/composer { };
composer1 = callPackage ../development/php-packages/composer/1.x.nix { };
deployer = callPackage ../development/php-packages/deployer { };
php-cs-fixer = callPackage ../development/php-packages/php-cs-fixer { };
@ -92,18 +88,6 @@ lib.makeScope pkgs.newScope (self: with self; {
pcov = callPackage ../development/php-packages/pcov { };
pcs = buildPecl {
version = "1.3.3";
pname = "pcs";
sha256 = "0d4p1gpl8gkzdiv860qzxfz250ryf0wmjgyc8qcaaqgkdyh5jy5p";
internalDeps = [ php.extensions.tokenizer ];
meta.maintainers = lib.teams.php.members;
meta.broken = lib.versionAtLeast php.version "7.3"; # Runtime failure on 7.3, build error on 7.4
};
pdo_oci = buildPecl rec {
inherit (php.unwrapped) src version;
@ -130,8 +114,6 @@ lib.makeScope pkgs.newScope (self: with self; {
protobuf = callPackage ../development/php-packages/protobuf { };
pthreads = callPackage ../development/php-packages/pthreads { };
rdkafka = callPackage ../development/php-packages/rdkafka { };
redis = callPackage ../development/php-packages/redis { };
@ -144,51 +126,9 @@ lib.makeScope pkgs.newScope (self: with self; {
swoole = callPackage ../development/php-packages/swoole { };
v8 = buildPecl {
version = "0.2.2";
pname = "v8";
sha256 = "103nys7zkpi1hifqp9miyl0m1mn07xqshw3sapyz365nb35g5q71";
buildInputs = [ pkgs.v8 ];
configureFlags = [ "--with-v8=${pkgs.v8}" ];
meta.maintainers = lib.teams.php.members;
meta.broken = true;
};
v8js = buildPecl {
version = "2.1.0";
pname = "v8js";
sha256 = "0g63dyhhicngbgqg34wl91nm3556vzdgkq19gy52gvmqj47rj6rg";
buildInputs = [ pkgs.v8 ];
configureFlags = [ "--with-v8js=${pkgs.v8}" ];
meta.maintainers = lib.teams.php.members;
meta.broken = true;
};
xdebug = callPackage ../development/php-packages/xdebug { };
yaml = callPackage ../development/php-packages/yaml { };
zmq = buildPecl {
version = "1.1.3";
pname = "zmq";
sha256 = "1kj487vllqj9720vlhfsmv32hs2dy2agp6176mav6ldx31c3g4n4";
configureFlags = [
"--with-zmq=${pkgs.zeromq}"
];
nativeBuildInputs = [ pkgs.pkg-config ];
meta.maintainers = lib.teams.php.members;
meta.broken = lib.versionAtLeast php.version "7.3";
};
} // (let
# Function to build a single php extension based on the php version.
#
@ -297,8 +237,8 @@ lib.makeScope pkgs.newScope (self: with self; {
doCheck = false; }
{ name = "exif"; doCheck = false; }
{ name = "ffi"; buildInputs = [ libffi ]; enable = lib.versionAtLeast php.version "7.4"; }
{ name = "fileinfo"; buildInputs = [ pcre' ]; }
{ name = "filter"; buildInputs = [ pcre' ]; }
{ name = "fileinfo"; buildInputs = [ pcre2 ]; }
{ name = "filter"; buildInputs = [ pcre2 ]; }
{ name = "ftp"; buildInputs = [ openssl ]; }
{ name = "gd";
buildInputs = [ zlib gd ];
@ -350,11 +290,10 @@ lib.makeScope pkgs.newScope (self: with self; {
];
doCheck = false; }
{ name = "imap";
buildInputs = [ uwimap openssl pam pcre' ];
buildInputs = [ uwimap openssl pam pcre2 ];
configureFlags = [ "--with-imap=${uwimap}" "--with-imap-ssl" ];
# uwimap doesn't build on darwin.
enable = (!stdenv.isDarwin); }
# interbase (7.3, 7.2)
{ name = "intl";
buildInputs = [ icu64 ];
patches = lib.optionals (lib.versionOlder php.version "7.4") [
@ -377,7 +316,7 @@ lib.makeScope pkgs.newScope (self: with self; {
];
doCheck = false; }
{ name = "mbstring"; buildInputs = [ oniguruma ] ++ lib.optionals (lib.versionAtLeast php.version "8.0") [
pcre'
pcre2
]; doCheck = false; }
{ name = "mysqli";
internalDeps = [ php.extensions.mysqlnd ];
@ -425,7 +364,7 @@ lib.makeScope pkgs.newScope (self: with self; {
# oci8 (7.4, 7.3, 7.2)
# odbc (7.4, 7.3, 7.2)
{ name = "opcache";
buildInputs = [ pcre' ] ++ lib.optionals (!stdenv.isDarwin && lib.versionAtLeast php.version "8.0") [
buildInputs = [ pcre2 ] ++ lib.optionals (!stdenv.isDarwin && lib.versionAtLeast php.version "8.0") [
valgrind.dev
];
patches = lib.optionals (lib.versionOlder php.version "7.4") [
@ -480,7 +419,7 @@ lib.makeScope pkgs.newScope (self: with self; {
configureFlags = [ "--with-pdo-sqlite=${sqlite.dev}" ];
doCheck = false; }
{ name = "pgsql";
buildInputs = [ pcre' ];
buildInputs = [ pcre2 ];
configureFlags = [ "--with-pgsql=${postgresql}" ];
doCheck = false; }
{ name = "posix"; doCheck = false; }
@ -493,11 +432,10 @@ lib.makeScope pkgs.newScope (self: with self; {
'';
doCheck = false;
}
# recode (7.3, 7.2)
{ name = "session"; doCheck = !(lib.versionAtLeast php.version "8.0"); }
{ name = "shmop"; }
{ name = "simplexml";
buildInputs = [ libxml2 pcre' ];
buildInputs = [ libxml2 pcre2 ];
configureFlags = [ "--enable-simplexml" ]
# Required to build on darwin.
++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; }
@ -558,7 +496,7 @@ lib.makeScope pkgs.newScope (self: with self; {
configureFlags = [ "--with-xsl=${libxslt.dev}" ]; }
{ name = "zend_test"; }
{ name = "zip";
buildInputs = [ libzip pcre' ];
buildInputs = [ libzip pcre2 ];
configureFlags = [ "--with-zip" ]
++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-zlib-dir=${zlib.dev}" ]
++ lib.optionals (lib.versionOlder php.version "7.3") [ "--with-libzip" ];