From 68eb5305ac93adb1cce777c0ae73fd29eccb6973 Mon Sep 17 00:00:00 2001 From: Elis Hirwing Date: Thu, 3 Jun 2021 15:06:06 +0200 Subject: [PATCH 1/5] php: Drop PHP 7.3 support PHP 7.3 won't be supported by upstream for the entire life cycle of the 21.11 release. Also drop the pcre' alias since it isn't needed anymore since we don't need different pcre versions anymore. --- .../from_md/release-notes/rl-2111.section.xml | 15 ++++- .../manual/release-notes/rl-2111.section.md | 3 + nixos/tests/all-tests.nix | 1 - pkgs/development/interpreters/php/7.3.nix | 20 ------- pkgs/development/interpreters/php/generic.nix | 16 +++-- .../php/php73-darwin-isfinite.patch | 60 ------------------- .../development/php-packages/apcu/default.nix | 4 +- .../php-packages/apcu_bc/default.nix | 4 +- .../php-packages/imagick/default.nix | 4 +- .../php-packages/mongodb/default.nix | 4 +- .../development/php-packages/pcov/default.nix | 4 +- .../php-packages/pinba/default.nix | 19 ++---- .../php-packages/protobuf/default.nix | 4 +- .../php-packages/pthreads/default.nix | 26 +++----- .../php-packages/rdkafka/default.nix | 4 +- .../php-packages/snuffleupagus/default.nix | 4 +- .../php-packages/swoole/default.nix | 4 +- pkgs/development/tools/misc/drush/default.nix | 4 +- pkgs/servers/http/unit/default.nix | 5 -- pkgs/top-level/aliases.nix | 9 ++- pkgs/top-level/all-packages.nix | 7 --- pkgs/top-level/php-packages.nix | 22 +++---- 22 files changed, 72 insertions(+), 171 deletions(-) delete mode 100644 pkgs/development/interpreters/php/7.3.nix delete mode 100644 pkgs/development/interpreters/php/php73-darwin-isfinite.patch diff --git a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml index e0b52ffa342..5f7b1fc811c 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml @@ -14,8 +14,13 @@
Highlights - - + + + + PHP now defaults to PHP 8.0, updated from 7.4 + + +
New Services @@ -45,6 +50,12 @@ services.geoipupdate. + + + PHP 7.3 is no longer supported due to upstream not supporting + this version for the entire lifecycle of the 21.11 release. + +
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md index d4604447f83..439437f5c09 100644 --- a/nixos/doc/manual/release-notes/rl-2111.section.md +++ b/nixos/doc/manual/release-notes/rl-2111.section.md @@ -19,4 +19,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 diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index f062208a3b6..d8fcbde6bc0 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -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 {}; diff --git a/pkgs/development/interpreters/php/7.3.nix b/pkgs/development/interpreters/php/7.3.nix deleted file mode 100644 index 569fb1b5405..00000000000 --- a/pkgs/development/interpreters/php/7.3.nix +++ /dev/null @@ -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 ])) diff --git a/pkgs/development/interpreters/php/generic.nix b/pkgs/development/interpreters/php/generic.nix index 13fd811c4ea..233e1b7007f 100644 --- a/pkgs/development/interpreters/php/generic.nix +++ b/pkgs/development/interpreters/php/generic.nix @@ -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 diff --git a/pkgs/development/interpreters/php/php73-darwin-isfinite.patch b/pkgs/development/interpreters/php/php73-darwin-isfinite.patch deleted file mode 100644 index 7f784e0f5a9..00000000000 --- a/pkgs/development/interpreters/php/php73-darwin-isfinite.patch +++ /dev/null @@ -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 - - #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 - - #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) diff --git a/pkgs/development/php-packages/apcu/default.nix b/pkgs/development/php-packages/apcu/default.nix index 3301d949c22..5aa8b2b4f9b 100644 --- a/pkgs/development/php-packages/apcu/default.nix +++ b/pkgs/development/php-packages/apcu/default.nix @@ -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" ]; diff --git a/pkgs/development/php-packages/apcu_bc/default.nix b/pkgs/development/php-packages/apcu_bc/default.nix index a9c34a8d778..448c25bee64 100644 --- a/pkgs/development/php-packages/apcu_bc/default.nix +++ b/pkgs/development/php-packages/apcu_bc/default.nix @@ -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 diff --git a/pkgs/development/php-packages/imagick/default.nix b/pkgs/development/php-packages/imagick/default.nix index ebff9b00f02..744ba2302f7 100644 --- a/pkgs/development/php-packages/imagick/default.nix +++ b/pkgs/development/php-packages/imagick/default.nix @@ -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; } diff --git a/pkgs/development/php-packages/mongodb/default.nix b/pkgs/development/php-packages/mongodb/default.nix index 95e51892f04..d0e5e545f6b 100644 --- a/pkgs/development/php-packages/mongodb/default.nix +++ b/pkgs/development/php-packages/mongodb/default.nix @@ -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; diff --git a/pkgs/development/php-packages/pcov/default.nix b/pkgs/development/php-packages/pcov/default.nix index 1422e1b176d..0583f776e56 100644 --- a/pkgs/development/php-packages/pcov/default.nix +++ b/pkgs/development/php-packages/pcov/default.nix @@ -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; } diff --git a/pkgs/development/php-packages/pinba/default.nix b/pkgs/development/php-packages/pinba/default.nix index 0880c2a46e2..4c1b42183ba 100644 --- a/pkgs/development/php-packages/pinba/default.nix +++ b/pkgs/development/php-packages/pinba/default.nix @@ -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"; diff --git a/pkgs/development/php-packages/protobuf/default.nix b/pkgs/development/php-packages/protobuf/default.nix index e2ef068120d..2112e84cfff 100644 --- a/pkgs/development/php-packages/protobuf/default.nix +++ b/pkgs/development/php-packages/protobuf/default.nix @@ -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 diff --git a/pkgs/development/php-packages/pthreads/default.nix b/pkgs/development/php-packages/pthreads/default.nix index 31b32e82967..c1aac8c8424 100644 --- a/pkgs/development/php-packages/pthreads/default.nix +++ b/pkgs/development/php-packages/pthreads/default.nix @@ -1,28 +1,18 @@ -{ buildPecl, lib, fetchFromGitHub, php, pcre' }: -let +{ buildPecl, lib, fetchFromGitHub, php, pcre2 }: + +buildPecl { pname = "pthreads"; + version = "3.2.0-dev"; - 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 ({ + 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 ]; + buildInputs = [ pcre2.dev ]; - meta.broken = isPhp74; + meta.broken = lib.versionAtLeast php.version "7.4"; meta.maintainers = lib.teams.php.members; } diff --git a/pkgs/development/php-packages/rdkafka/default.nix b/pkgs/development/php-packages/rdkafka/default.nix index 0e78d3bbc97..c8dea9463d6 100644 --- a/pkgs/development/php-packages/rdkafka/default.nix +++ b/pkgs/development/php-packages/rdkafka/default.nix @@ -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 \ diff --git a/pkgs/development/php-packages/snuffleupagus/default.nix b/pkgs/development/php-packages/snuffleupagus/default.nix index 222a243606f..4318a49a8aa 100644 --- a/pkgs/development/php-packages/snuffleupagus/default.nix +++ b/pkgs/development/php-packages/snuffleupagus/default.nix @@ -2,7 +2,7 @@ , lib , php , fetchFromGitHub -, pcre' +, pcre2 , fetchpatch }: @@ -17,7 +17,7 @@ buildPecl rec { }; buildInputs = [ - pcre' + pcre2 ]; internalDeps = with php.extensions; [ diff --git a/pkgs/development/php-packages/swoole/default.nix b/pkgs/development/php-packages/swoole/default.nix index b3d43acd1b3..ef228c2ddc3 100644 --- a/pkgs/development/php-packages/swoole/default.nix +++ b/pkgs/development/php-packages/swoole/default.nix @@ -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; diff --git a/pkgs/development/tools/misc/drush/default.nix b/pkgs/development/tools/misc/drush/default.nix index 32d9975e332..70e7f42c5c2 100644 --- a/pkgs/development/tools/misc/drush/default.nix +++ b/pkgs/development/tools/misc/drush/default.nix @@ -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" ''; } diff --git a/pkgs/servers/http/unit/default.nix b/pkgs/servers/http/unit/default.nix index e8d51f9efff..d8e46231b74 100644 --- a/pkgs/servers/http/unit/default.nix +++ b/pkgs/servers/http/unit/default.nix @@ -2,7 +2,6 @@ , pcre2 , withPython2 ? false, python2 , withPython3 ? true, python3, ncurses -, withPHP73 ? false, php73 , withPHP74 ? true, php74 , withPerl530 ? false, perl530 , withPerl532 ? true, perl532 @@ -26,7 +25,6 @@ let fpmSupport = false; }; - php73-unit = php73.override phpConfig; php74-unit = php74.override phpConfig; in stdenv.mkDerivation rec { @@ -45,7 +43,6 @@ in stdenv.mkDerivation rec { buildInputs = [ pcre2.dev ] ++ optional withPython2 python2 ++ optionals withPython3 [ python3 ncurses ] - ++ optional withPHP73 php73-unit ++ optional withPHP74 php74-unit ++ optional withPerl530 perl530 ++ optional withPerl532 perl532 @@ -64,13 +61,11 @@ 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; 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 withPerl530 "./configure perl --module=perl530 --perl=${perl530}/bin/perl"} ${optionalString withPerl532 "./configure perl --module=perl532 --perl=${perl532}/bin/perl"} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 4429742fbe6..cd4ad8b1a7a 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -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 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 70bfe841573..8a4661c18e3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12306,13 +12306,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 {}; diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix index f7527d4df2a..e44efb0b952 100644 --- a/pkgs/top-level/php-packages.nix +++ b/pkgs/top-level/php-packages.nix @@ -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. @@ -297,8 +295,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 +348,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 +374,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 +422,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 +477,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 +490,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 +554,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" ]; From be7451bc14309f1f1b97a920b73fdc37b0cbe06f Mon Sep 17 00:00:00 2001 From: Elis Hirwing Date: Thu, 3 Jun 2021 15:20:37 +0200 Subject: [PATCH 2/5] php: Drop extensions (pcs, v8, v8js, zmq, pthreads) They have been marked as broken for a long time so they shouldn't be used by anyone really. They don't build in any of the supported versions. --- .../php-packages/pthreads/default.nix | 18 ------ pkgs/top-level/php-packages.nix | 56 ------------------- 2 files changed, 74 deletions(-) delete mode 100644 pkgs/development/php-packages/pthreads/default.nix diff --git a/pkgs/development/php-packages/pthreads/default.nix b/pkgs/development/php-packages/pthreads/default.nix deleted file mode 100644 index c1aac8c8424..00000000000 --- a/pkgs/development/php-packages/pthreads/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ buildPecl, lib, fetchFromGitHub, php, pcre2 }: - -buildPecl { - pname = "pthreads"; - version = "3.2.0-dev"; - - src = fetchFromGitHub { - owner = "krakjoe"; - repo = "pthreads"; - rev = "4d1c2483ceb459ea4284db4eb06646d5715e7154"; - sha256 = "07kdxypy0bgggrfav2h1ccbv67lllbvpa3s3zsaqci0gq4fyi830"; - }; - - buildInputs = [ pcre2.dev ]; - - meta.broken = lib.versionAtLeast php.version "7.4"; - meta.maintainers = lib.teams.php.members; -} diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix index e44efb0b952..04faacda3c5 100644 --- a/pkgs/top-level/php-packages.nix +++ b/pkgs/top-level/php-packages.nix @@ -90,18 +90,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; @@ -128,8 +116,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 { }; @@ -142,51 +128,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. # From d0bc04ff70c2849a0e58fb5199dcd04cb72d301b Mon Sep 17 00:00:00 2001 From: Elis Hirwing Date: Thu, 3 Jun 2021 15:35:16 +0200 Subject: [PATCH 3/5] php: Upgrade from PHP 7.4 to 8.0 as default PHP --- .../doc/manual/from_md/release-notes/rl-2111.section.xml | 2 +- nixos/doc/manual/release-notes/rl-2111.section.md | 2 ++ pkgs/applications/misc/rss-bridge-cli/default.nix | 1 - pkgs/development/php-packages/couchbase/default.nix | 2 +- pkgs/development/php-packages/php_excel/default.nix | 3 ++- pkgs/top-level/all-packages.nix | 8 ++++---- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml index 5f7b1fc811c..7ac120b693f 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml @@ -17,7 +17,7 @@ - PHP now defaults to PHP 8.0, updated from 7.4 + PHP now defaults to PHP 8.0, updated from 7.4. diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md index 439437f5c09..577d7592935 100644 --- a/nixos/doc/manual/release-notes/rl-2111.section.md +++ b/nixos/doc/manual/release-notes/rl-2111.section.md @@ -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 diff --git a/pkgs/applications/misc/rss-bridge-cli/default.nix b/pkgs/applications/misc/rss-bridge-cli/default.nix index 7550e6bcb95..05d2bca99b1 100644 --- a/pkgs/applications/misc/rss-bridge-cli/default.nix +++ b/pkgs/applications/misc/rss-bridge-cli/default.nix @@ -6,7 +6,6 @@ let curl filter iconv - json mbstring openssl simplexml diff --git a/pkgs/development/php-packages/couchbase/default.nix b/pkgs/development/php-packages/couchbase/default.nix index 24d4e02a328..6d6bdf76e40 100644 --- a/pkgs/development/php-packages/couchbase/default.nix +++ b/pkgs/development/php-packages/couchbase/default.nix @@ -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; } diff --git a/pkgs/development/php-packages/php_excel/default.nix b/pkgs/development/php-packages/php_excel/default.nix index 8b83f558a53..4effddaed49 100644 --- a/pkgs/development/php-packages/php_excel/default.nix +++ b/pkgs/development/php-packages/php_excel/default.nix @@ -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; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8a4661c18e3..1adc52577e3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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; }; @@ -12288,7 +12288,7 @@ in # PHP interpreters, packages and extensions. # # Set default PHP interpreter, extensions and packages - php = php74; + php = php80; phpExtensions = php.extensions; phpPackages = php.packages; @@ -19059,7 +19059,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 { }; @@ -24940,7 +24940,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 { }; From fb644190a0523d473129e3a86599ec50c2bafe77 Mon Sep 17 00:00:00 2001 From: Elis Hirwing Date: Thu, 3 Jun 2021 17:25:45 +0200 Subject: [PATCH 4/5] php: Drop package composer1 Composer2 has been stable for some time now. --- .../development/php-packages/composer/1.x.nix | 34 ------------------- pkgs/top-level/php-packages.nix | 2 -- 2 files changed, 36 deletions(-) delete mode 100644 pkgs/development/php-packages/composer/1.x.nix diff --git a/pkgs/development/php-packages/composer/1.x.nix b/pkgs/development/php-packages/composer/1.x.nix deleted file mode 100644 index 35cee92972e..00000000000 --- a/pkgs/development/php-packages/composer/1.x.nix +++ /dev/null @@ -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; - }; -} diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix index 04faacda3c5..5575c1d429c 100644 --- a/pkgs/top-level/php-packages.nix +++ b/pkgs/top-level/php-packages.nix @@ -27,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 { }; From c76bebc549f2bd81bf5c70617d3d564a1ae6e8d1 Mon Sep 17 00:00:00 2001 From: Elis Hirwing Date: Thu, 3 Jun 2021 19:17:27 +0200 Subject: [PATCH 5/5] unit: Add php80 and use it as default --- nixos/tests/web-servers/unit-php.nix | 46 +++++++++++----------------- pkgs/servers/http/unit/default.nix | 7 ++++- 2 files changed, 24 insertions(+), 29 deletions(-) diff --git a/nixos/tests/web-servers/unit-php.nix b/nixos/tests/web-servers/unit-php.nix index c4e89f069f1..00512b506cc 100644 --- a/nixos/tests/web-servers/unit-php.nix +++ b/nixos/tests/web-servers/unit-php.nix @@ -1,6 +1,6 @@ import ../make-test-python.nix ({pkgs, ...}: - let - testdir = pkgs.writeTextDir "www/info.php" "