diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix index 4778f08560d..a58025c42ac 100644 --- a/pkgs/development/interpreters/php/default.nix +++ b/pkgs/development/interpreters/php/default.nix @@ -4,7 +4,7 @@ , openssl, pcre, pcre2, sqlite, config, libjpeg, libpng, freetype , libxslt, libmcrypt, bzip2, icu, openldap, cyrus_sasl, libmhash, unixODBC , uwimap, pam, gmp, apacheHttpd, libiconv, systemd, libsodium, html-tidy, libargon2 -, libzip, valgrind +, libzip, valgrind, oniguruma }: with lib; @@ -78,6 +78,7 @@ let buildInputs = [ ] ++ optional (versionOlder version "7.3") pcre ++ optional (versionAtLeast version "7.3") pcre2 + ++ optional (versionAtLeast version "7.4") oniguruma ++ optional withSystemd systemd ++ optionals imapSupport [ uwimap openssl pam ] ++ optionals curlSupport [ curl openssl ] @@ -114,7 +115,8 @@ let "--with-config-file-scan-dir=/etc/php.d" ] ++ optional (versionOlder version "7.3") "--with-pcre-regex=${pcre.dev} PCRE_LIBDIR=${pcre}" - ++ optional (versionAtLeast version "7.3") "--with-pcre-regex=${pcre2.dev} PCRE_LIBDIR=${pcre2}" + ++ optional (versions.majorMinor version == "7.3") "--with-pcre-regex=${pcre2.dev} PCRE_LIBDIR=${pcre2}" + ++ optional (versionAtLeast version "7.4") "--with-external-pcre=${pcre2.dev} PCRE_LIBDIR=${pcre2}" ++ optional stdenv.isDarwin "--with-iconv=${libiconv}" ++ optional withSystemd "--with-fpm-systemd" ++ optionals imapSupport [ @@ -133,10 +135,11 @@ let ++ optional mhashSupport "--with-mhash" ++ optional curlSupport "--with-curl=${curl.dev}" ++ optional zlibSupport "--with-zlib=${zlib.dev}" - ++ optional libxml2Support "--with-libxml-dir=${libxml2.dev}" + ++ optional (libxml2Support && (versionOlder version "7.4")) "--with-libxml-dir=${libxml2.dev}" ++ optional (!libxml2Support) [ "--disable-dom" "--disable-libxml" + (if (versionOlder version "7.4") then "--disable-libxml" else "--without-libxml") "--disable-simplexml" "--disable-xml" "--disable-xmlreader" @@ -156,7 +159,12 @@ let ++ optional ( pdo_mysqlSupport || mysqliSupport ) "--with-mysql-sock=/run/mysqld/mysqld.sock" ++ optional bcmathSupport "--enable-bcmath" # FIXME: Our own gd package doesn't work, see https://bugs.php.net/bug.php?id=60108. - ++ optionals gdSupport [ + ++ optionals (gdSupport && versionAtLeast version "7.4") [ + "--enable-gd" + "--with-jpeg=${libjpeg.dev}" + "--with-freetype=${freetype.dev}" + "--enable-gd-jis-conv" + ] ++ optionals (gdSupport && versionOlder version "7.4") [ "--with-gd" "--with-freetype-dir=${freetype.dev}" "--with-png-dir=${libpng.dev}" @@ -173,7 +181,7 @@ let ++ optional xslSupport "--with-xsl=${libxslt.dev}" ++ optional mcryptSupport "--with-mcrypt=${libmcrypt'}" ++ optional bz2Support "--with-bz2=${bzip2.dev}" - ++ optional zipSupport "--enable-zip" + ++ optional (zipSupport && (versionOlder version "7.4")) "--enable-zip" ++ optional ftpSupport "--enable-ftp" ++ optional fpmSupport "--enable-fpm" ++ optional ztsSupport "--enable-maintainer-zts" @@ -181,7 +189,7 @@ let ++ optional sodiumSupport "--with-sodium=${libsodium.dev}" ++ optional tidySupport "--with-tidy=${html-tidy}" ++ optional argon2Support "--with-password-argon2=${libargon2}" - ++ optional libzipSupport "--with-libzip=${libzip.dev}" + ++ optional (libzipSupport && (versionOlder version "7.4")) "--with-libzip=${libzip.dev}" ++ optional phpdbgSupport "--enable-phpdbg" ++ optional (!phpdbgSupport) "--disable-phpdbg" ++ optional (!cgiSupport) "--disable-cgi" @@ -268,4 +276,9 @@ in { # https://bugs.php.net/bug.php?id=76826 extraPatches = optional stdenv.isDarwin ./php73-darwin-isfinite.patch; }; + + php74 = generic { + version = "7.4.0"; + sha256 = "1h01bahvcm9kgm5jqhm2j9k9d4q4rpfkkpqk00c47rirdblnn85z"; + }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 15f43e0977f..c6130718ceb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9093,6 +9093,10 @@ in php = php73; }); + php74Packages = recurseIntoAttrs (callPackage ./php-packages.nix { + php = php74; + }); + phpPackages-unit = php72Packages-unit; php72Packages-unit = recurseIntoAttrs (callPackage ./php-packages.nix { @@ -9103,11 +9107,16 @@ in php = php73-unit; }); + php74Packages-unit = recurseIntoAttrs (callPackage ./php-packages.nix { + php = php74-unit; + }); + inherit (callPackages ../development/interpreters/php { stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv; }) - php72 - php73; + php74 + php73 + php72; php-embed = php73-embed; @@ -9121,6 +9130,11 @@ in config.php.apxs2 = false; }; + php74-embed = php74.override { + config.php.embed = true; + config.php.apxs2 = false; + }; + php-unit = php73-unit; php72-unit = php72.override { @@ -9141,6 +9155,15 @@ in config.php.fpm = false; }; + php74-unit = php74.override { + config.php.embed = true; + config.php.apxs2 = false; + config.php.systemd = false; + config.php.phpdbg = false; + config.php.cgi = false; + config.php.fpm = false; + }; + picoc = callPackage ../development/interpreters/picoc {}; picolisp = callPackage ../development/interpreters/picolisp {}; diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix index cdb1c19bce5..41db7109d9f 100644 --- a/pkgs/top-level/php-packages.nix +++ b/pkgs/top-level/php-packages.nix @@ -14,12 +14,13 @@ let }); isPhp73 = pkgs.lib.versionAtLeast php.version "7.3"; + isPhp74 = pkgs.lib.versionAtLeast php.version "7.4"; apcu = buildPecl { - version = "5.1.17"; + version = "5.1.18"; pname = "apcu"; - sha256 = "14y7alvj5q17q1b544bxidavkn6i40cjbq2nv1m0k70ai5vv84bb"; + sha256 = "0ayykd4hfvdzk7qnr5k6yq5scwf6rb2i05xscfv76q5dmkkynvfl"; buildInputs = [ (if isPhp73 then pkgs.pcre2 else pkgs.pcre) ]; doCheck = true; @@ -140,6 +141,8 @@ let AC_MSG_WARN([Cannot find igbinary.h]) '') ]; + + meta.broken = isPhp74; # Build error }; event = buildPecl { @@ -259,6 +262,8 @@ let pname = "pcs"; sha256 = "0d4p1gpl8gkzdiv860qzxfz250ryf0wmjgyc8qcaaqgkdyh5jy5p"; + + meta.broken = isPhp74; # Build error }; pdo_sqlsrv = buildPecl { @@ -268,6 +273,8 @@ let sha256 = "02ill1iqffa5fha9iz4y91823scml24ikfk8pn90jyycfwv07x6a"; buildInputs = [ pkgs.unixODBC ]; + + meta.broken = isPhp74; # Build error }; php-cs-fixer = mkDerivation rec { @@ -492,6 +499,7 @@ let ''; license = licenses.bsd3; homepage = "https://developers.google.com/protocol-buffers/"; + broken = isPhp74; # Build error }; }; @@ -592,6 +600,8 @@ let sha256 = "0ial621zxn9zvjh7k1h755sm2lc9aafc389yxksqcxcmm7kqmd0a"; buildInputs = [ pkgs.unixODBC ]; + + meta.broken = isPhp74; # Build error }; v8 = buildPecl { @@ -617,10 +627,10 @@ let }; xdebug = buildPecl { - version = "2.7.1"; + version = "2.8.0"; pname = "xdebug"; - sha256 = "1hr4gy87a3gp682ggwp831xk1fxasil9wan8cxv23q3m752x3sdp"; + sha256 = "0r62501fdp63zz81scz2x1pq3qzpjafya96g12j0jx7crdz127fb"; doCheck = true; checkTarget = "test";