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

View File

@ -14,8 +14,13 @@
</itemizedlist> </itemizedlist>
<section xml:id="highlights"> <section xml:id="highlights">
<title>Highlights</title> <title>Highlights</title>
<para> <itemizedlist spacing="compact">
</para> <listitem>
<para>
PHP now defaults to PHP 8.0, updated from 7.4.
</para>
</listitem>
</itemizedlist>
</section> </section>
<section xml:id="new-services"> <section xml:id="new-services">
<title>New Services</title> <title>New Services</title>
@ -45,6 +50,12 @@
<link xlink:href="options.html#opt-services.geoipupdate.enable">services.geoipupdate</link>. <link xlink:href="options.html#opt-services.geoipupdate.enable">services.geoipupdate</link>.
</para> </para>
</listitem> </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> </itemizedlist>
</section> </section>
<section xml:id="other-notable-changes"> <section xml:id="other-notable-changes">

View File

@ -6,6 +6,8 @@ In addition to numerous new and upgraded packages, this release has the followin
## Highlights ## Highlights
* PHP now defaults to PHP 8.0, updated from 7.4.
## New Services ## New Services
* [geoipupdate](https://github.com/maxmind/geoipupdate), a GeoIP * [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.geoip-updater` was broken and has been replaced by
[services.geoipupdate](options.html#opt-services.geoipupdate.enable). [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 ## Other Notable Changes

View File

@ -325,7 +325,6 @@ 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; }; php74 = handleTest ./php { php = pkgs.php74; };
php80 = handleTest ./php { php = pkgs.php80; }; php80 = handleTest ./php { php = pkgs.php80; };
pinnwand = handleTest ./pinnwand.nix {}; pinnwand = handleTest ./pinnwand.nix {};

View File

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

View File

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

View File

@ -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 ]))

View File

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

View File

@ -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)

View File

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

View File

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

View File

@ -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;
};
}

View File

@ -14,7 +14,6 @@ buildPecl {
}; };
configureFlags = [ "--with-couchbase" ]; configureFlags = [ "--with-couchbase" ];
broken = lib.versionAtLeast php.version "8.0";
buildInputs = [ libcouchbase zlib ]; buildInputs = [ libcouchbase zlib ];
internalDeps = lib.optionals (lib.versionOlder php.version "8.0") [ php.extensions.json ]; 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; meta.maintainers = lib.teams.php.members;
} }

View File

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

View File

@ -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 }: , openssl, snappy, zlib, darwin }:
buildPecl { buildPecl {
@ -14,7 +14,7 @@ buildPecl {
openssl openssl
snappy snappy
zlib zlib
pcre' pcre2
] ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security; ] ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
meta.maintainers = lib.teams.php.members; meta.maintainers = lib.teams.php.members;

View File

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

View File

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

View File

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

View File

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

View File

@ -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;
}

View File

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

View File

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

View File

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

View File

@ -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 { stdenv.mkDerivation rec {
name = "drush-6.1.0"; name = "drush-6.1.0";
@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
mkdir -p "$out" mkdir -p "$out"
cp -r . "$out/src" cp -r . "$out/src"
mkdir "$out/bin" 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" ln -s "$out/src/drush" "$out/bin/drush"
''; '';
} }

View File

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

View File

@ -528,6 +528,11 @@ mapAliases ({
pgp-tools = signing-party; # added 2017-03-26 pgp-tools = signing-party; # added 2017-03-26
pg_tmp = ephemeralpg; # added 2018-01-16 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 = throw ''
php*-embed has been dropped, you can build something similar php*-embed has been dropped, you can build something similar
with the following snippet: with the following snippet:
@ -541,8 +546,8 @@ mapAliases ({
similar with the following snippet: similar with the following snippet:
(php74.override { embedSupport = true; apxs2Support = false; }).packages (php74.override { embedSupport = true; apxs2Support = false; }).packages
''; # added 2020-04-01 ''; # added 2020-04-01
php74Packages-embed = phpPackages-embed;
php73Packages-embed = phpPackages-embed; php73Packages-embed = phpPackages-embed;
php74Packages-embed = phpPackages-embed;
php-unit = throw '' php-unit = throw ''
php*-unit has been dropped, you can build something similar with php*-unit has been dropped, you can build something similar with
@ -571,8 +576,8 @@ mapAliases ({
fpmSupport = false; fpmSupport = false;
}).packages }).packages
''; # added 2020-04-01 ''; # added 2020-04-01
php74Packages-unit = phpPackages-unit;
php73Packages-unit = phpPackages-unit; php73Packages-unit = phpPackages-unit;
php74Packages-unit = phpPackages-unit;
pidgin-with-plugins = pidgin; # added 2016-06 pidgin-with-plugins = pidgin; # added 2016-06
pidginlatex = pidgin-latex; # added 2018-01-08 pidginlatex = pidgin-latex; # added 2018-01-08

View File

@ -1091,7 +1091,7 @@ in
}) arangodb_3_3 arangodb_3_4 arangodb_3_5; }) arangodb_3_3 arangodb_3_4 arangodb_3_5;
arangodb = arangodb_3_4; arangodb = arangodb_3_4;
arcanist = callPackage ../development/tools/misc/arcanist {}; arcanist = callPackage ../development/tools/misc/arcanist { php = php74; };
arduino = arduino-core.override { withGui = true; }; arduino = arduino-core.override { withGui = true; };
@ -12290,7 +12290,7 @@ in
# PHP interpreters, packages and extensions. # PHP interpreters, packages and extensions.
# #
# Set default PHP interpreter, extensions and packages # Set default PHP interpreter, extensions and packages
php = php74; php = php80;
phpExtensions = php.extensions; phpExtensions = php.extensions;
phpPackages = php.packages; phpPackages = php.packages;
@ -12308,13 +12308,6 @@ in
php74Extensions = recurseIntoAttrs php74.extensions; php74Extensions = recurseIntoAttrs php74.extensions;
php74Packages = recurseIntoAttrs php74.packages; 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 {}; picoc = callPackage ../development/interpreters/picoc {};
@ -19070,7 +19063,7 @@ in
dspam = callPackage ../servers/mail/dspam { }; dspam = callPackage ../servers/mail/dspam { };
engelsystem = callPackage ../servers/web-apps/engelsystem { }; engelsystem = callPackage ../servers/web-apps/engelsystem { php = php74; };
envoy = callPackage ../servers/http/envoy { }; envoy = callPackage ../servers/http/envoy { };
@ -24951,7 +24944,7 @@ in
lrzsz = callPackage ../tools/misc/lrzsz { }; 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 { }; luminanceHDR = libsForQt5.callPackage ../applications/graphics/luminance-hdr { };

View File

@ -1,6 +1,6 @@
{ stdenv, lib, pkgs, fetchgit, phpPackage, autoconf, pkg-config, re2c { stdenv, lib, pkgs, fetchgit, phpPackage, autoconf, pkg-config, re2c
, gettext, bzip2, curl, libxml2, openssl, gmp, icu64, oniguruma, libsodium , 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 , uwimap, pam, libiconv, enchant1, libXpm, gd, libwebp, libjpeg, libpng
, freetype, libffi, freetds, postgresql, sqlite, net-snmp, unixODBC, libedit , freetype, libffi, freetds, postgresql, sqlite, net-snmp, unixODBC, libedit
, readline, rsync, fetchpatch, valgrind , readline, rsync, fetchpatch, valgrind
@ -19,8 +19,6 @@ lib.makeScope pkgs.newScope (self: with self; {
pname = "php-${pname}"; pname = "php-${pname}";
}); });
pcre' = if (lib.versionAtLeast php.version "7.3") then pcre2 else pcre;
php = phpPackage; php = phpPackage;
# This is a set of interactive tools based on PHP. # 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 { }; composer = callPackage ../development/php-packages/composer { };
composer1 = callPackage ../development/php-packages/composer/1.x.nix { };
deployer = callPackage ../development/php-packages/deployer { }; deployer = callPackage ../development/php-packages/deployer { };
php-cs-fixer = callPackage ../development/php-packages/php-cs-fixer { }; 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 { }; 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 { pdo_oci = buildPecl rec {
inherit (php.unwrapped) src version; inherit (php.unwrapped) src version;
@ -130,8 +114,6 @@ lib.makeScope pkgs.newScope (self: with self; {
protobuf = callPackage ../development/php-packages/protobuf { }; protobuf = callPackage ../development/php-packages/protobuf { };
pthreads = callPackage ../development/php-packages/pthreads { };
rdkafka = callPackage ../development/php-packages/rdkafka { }; rdkafka = callPackage ../development/php-packages/rdkafka { };
redis = callPackage ../development/php-packages/redis { }; redis = callPackage ../development/php-packages/redis { };
@ -144,51 +126,9 @@ lib.makeScope pkgs.newScope (self: with self; {
swoole = callPackage ../development/php-packages/swoole { }; 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 { }; xdebug = callPackage ../development/php-packages/xdebug { };
yaml = callPackage ../development/php-packages/yaml { }; 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 } // (let
# Function to build a single php extension based on the php version. # 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; } doCheck = false; }
{ name = "exif"; doCheck = false; } { name = "exif"; doCheck = false; }
{ name = "ffi"; buildInputs = [ libffi ]; enable = lib.versionAtLeast php.version "7.4"; } { name = "ffi"; buildInputs = [ libffi ]; enable = lib.versionAtLeast php.version "7.4"; }
{ name = "fileinfo"; buildInputs = [ pcre' ]; } { name = "fileinfo"; buildInputs = [ pcre2 ]; }
{ name = "filter"; buildInputs = [ pcre' ]; } { name = "filter"; buildInputs = [ pcre2 ]; }
{ name = "ftp"; buildInputs = [ openssl ]; } { name = "ftp"; buildInputs = [ openssl ]; }
{ name = "gd"; { name = "gd";
buildInputs = [ zlib gd ]; buildInputs = [ zlib gd ];
@ -350,11 +290,10 @@ lib.makeScope pkgs.newScope (self: with self; {
]; ];
doCheck = false; } doCheck = false; }
{ name = "imap"; { name = "imap";
buildInputs = [ uwimap openssl pam pcre' ]; buildInputs = [ uwimap openssl pam pcre2 ];
configureFlags = [ "--with-imap=${uwimap}" "--with-imap-ssl" ]; configureFlags = [ "--with-imap=${uwimap}" "--with-imap-ssl" ];
# uwimap doesn't build on darwin. # uwimap doesn't build on darwin.
enable = (!stdenv.isDarwin); } enable = (!stdenv.isDarwin); }
# interbase (7.3, 7.2)
{ name = "intl"; { name = "intl";
buildInputs = [ icu64 ]; buildInputs = [ icu64 ];
patches = lib.optionals (lib.versionOlder php.version "7.4") [ patches = lib.optionals (lib.versionOlder php.version "7.4") [
@ -377,7 +316,7 @@ lib.makeScope pkgs.newScope (self: with self; {
]; ];
doCheck = false; } doCheck = false; }
{ name = "mbstring"; buildInputs = [ oniguruma ] ++ lib.optionals (lib.versionAtLeast php.version "8.0") [ { name = "mbstring"; buildInputs = [ oniguruma ] ++ lib.optionals (lib.versionAtLeast php.version "8.0") [
pcre' pcre2
]; doCheck = false; } ]; doCheck = false; }
{ name = "mysqli"; { name = "mysqli";
internalDeps = [ php.extensions.mysqlnd ]; internalDeps = [ php.extensions.mysqlnd ];
@ -425,7 +364,7 @@ lib.makeScope pkgs.newScope (self: with self; {
# oci8 (7.4, 7.3, 7.2) # oci8 (7.4, 7.3, 7.2)
# odbc (7.4, 7.3, 7.2) # odbc (7.4, 7.3, 7.2)
{ name = "opcache"; { 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 valgrind.dev
]; ];
patches = lib.optionals (lib.versionOlder php.version "7.4") [ 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}" ]; configureFlags = [ "--with-pdo-sqlite=${sqlite.dev}" ];
doCheck = false; } doCheck = false; }
{ name = "pgsql"; { name = "pgsql";
buildInputs = [ pcre' ]; buildInputs = [ pcre2 ];
configureFlags = [ "--with-pgsql=${postgresql}" ]; configureFlags = [ "--with-pgsql=${postgresql}" ];
doCheck = false; } doCheck = false; }
{ name = "posix"; doCheck = false; } { name = "posix"; doCheck = false; }
@ -493,11 +432,10 @@ lib.makeScope pkgs.newScope (self: with self; {
''; '';
doCheck = false; doCheck = false;
} }
# recode (7.3, 7.2)
{ name = "session"; doCheck = !(lib.versionAtLeast php.version "8.0"); } { name = "session"; doCheck = !(lib.versionAtLeast php.version "8.0"); }
{ name = "shmop"; } { name = "shmop"; }
{ name = "simplexml"; { name = "simplexml";
buildInputs = [ libxml2 pcre' ]; buildInputs = [ libxml2 pcre2 ];
configureFlags = [ "--enable-simplexml" ] configureFlags = [ "--enable-simplexml" ]
# Required to build on darwin. # Required to build on darwin.
++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; } ++ 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}" ]; } configureFlags = [ "--with-xsl=${libxslt.dev}" ]; }
{ name = "zend_test"; } { name = "zend_test"; }
{ name = "zip"; { name = "zip";
buildInputs = [ libzip pcre' ]; buildInputs = [ libzip pcre2 ];
configureFlags = [ "--with-zip" ] configureFlags = [ "--with-zip" ]
++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-zlib-dir=${zlib.dev}" ] ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-zlib-dir=${zlib.dev}" ]
++ lib.optionals (lib.versionOlder php.version "7.3") [ "--with-libzip" ]; ++ lib.optionals (lib.versionOlder php.version "7.3") [ "--with-libzip" ];