diff options
Diffstat (limited to 'pkgs/top-level/php-packages.nix')
-rw-r--r-- | pkgs/top-level/php-packages.nix | 82 |
1 files changed, 67 insertions, 15 deletions
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix index 0fecf30e736..578dcaf761b 100644 --- a/pkgs/top-level/php-packages.nix +++ b/pkgs/top-level/php-packages.nix @@ -1,9 +1,9 @@ { stdenv, lib, pkgs, fetchgit, php, autoconf, pkgconfig, re2c -, gettext, bzip2, curl, libxml2, openssl, gmp, icu, oniguruma, libsodium +, gettext, bzip2, curl, libxml2, openssl, gmp, icu64, oniguruma, libsodium , html-tidy, libzip, zlib, pcre, 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 +, readline, rsync, fetchpatch }: let @@ -57,12 +57,12 @@ in }; composer = mkDerivation rec { - version = "1.10.5"; + version = "1.10.8"; pname = "composer"; src = pkgs.fetchurl { url = "https://getcomposer.org/download/${version}/composer.phar"; - sha256 = "0a9iwhd7ijm8gkp3zadxza0xb6xwa5ps0d16pz4mz2p21gfzvwym"; + sha256 = "1rbqa56bsc3wrhk8djxdzh755zx1qrqp3wrdid7x0djzbmzp6h2c"; }; dontUnpack = true; @@ -202,7 +202,7 @@ in maintainers = with maintainers; [ javaguirre ] ++ teams.php.members; }; }; - + phpmd = mkDerivation rec { version = "2.8.2"; pname = "phpmd"; @@ -230,14 +230,14 @@ in broken = !isPhp74; }; }; - + phpstan = mkDerivation rec { - version = "0.12.19"; + version = "0.12.32"; pname = "phpstan"; src = pkgs.fetchurl { url = "https://github.com/phpstan/phpstan/releases/download/${version}/phpstan.phar"; - sha256 = "15fz7rixi9s46qqxpj26349aky7wxqnzmfsnwlh1f2p4jsfd85ki"; + sha256 = "0sb7yhjjh4wj8wbv4cdf0n1lvhx1ciz7ch8lr73maajj2xbvy1zk"; }; phases = [ "installPhase" ]; @@ -547,7 +547,7 @@ in nativeBuildInputs = [ pkgs.pkgconfig ]; buildInputs = with pkgs; [ cyrus_sasl - icu + icu64 openssl snappy zlib @@ -709,6 +709,26 @@ in meta.broken = isPhp74; }; + rdkafka = buildPecl { + version = "4.0.3"; + pname = "rdkafka"; + + sha256 = "1g00p911raxcc7n2w9pzadxaggw5c564md6hjvqfs9ip550y5x16"; + + buildInputs = with pkgs; [ rdkafka pcre' ]; + + postPhpize = '' + substituteInPlace configure \ + --replace 'SEARCH_PATH="/usr/local /usr"' 'SEARCH_PATH=${pkgs.rdkafka}' + ''; + + meta = { + description = "Kafka client based on librdkafka"; + homepage = "https://github.com/arnaud-lb/php-rdkafka"; + maintainers = lib.teams.php.members; + }; + }; + redis = buildPecl { version = "5.1.1"; pname = "redis"; @@ -834,6 +854,9 @@ in inherit configureFlags internalDeps buildInputs zendExtension doCheck; + prePatch = "pushd ../.."; + postPatch = "popd"; + preConfigure = '' nullglobRestore=$(shopt -p nullglob) shopt -u nullglob # To make ?-globbing work @@ -924,6 +947,12 @@ in enable = lib.versionOlder php.version "7.4"; } { name = "gettext"; buildInputs = [ gettext ]; + patches = lib.optionals (lib.versionOlder php.version "7.4") [ + (fetchpatch { + url = "https://github.com/php/php-src/commit/632b6e7aac207194adc3d0b41615bfb610757f41.patch"; + sha256 = "0xn3ivhc4p070vbk5yx0mzj2n7p04drz3f98i77amr51w0vzv046"; + }) + ]; postPhpize = ''substituteInPlace configure --replace 'as_fn_error $? "Cannot locate header file libintl.h" "$LINENO" 5' ':' ''; configureFlags = "--with-gettext=${gettext}"; } { name = "gmp"; @@ -942,7 +971,13 @@ in # uwimap doesn't build on darwin. enable = (!stdenv.isDarwin); } # interbase (7.3, 7.2) - { name = "intl"; buildInputs = [ icu ]; } + { name = "intl"; + buildInputs = [ icu64 ]; + patches = lib.optional (lib.versionOlder php.version "7.4") (fetchpatch { + url = "https://github.com/php/php-src/commit/93a9b56c90c334896e977721bfb3f38b1721cec6.patch"; + sha256 = "055l40lpyhb0rbjn6y23qkzdhvpp7inbnn6x13cpn4inmhjqfpg4"; + }); + } { name = "json"; } { name = "ldap"; buildInputs = [ openldap cyrus_sasl ]; @@ -963,14 +998,14 @@ in # The configure script doesn't correctly add library link # flags, so we add them to the variable used by the Makefile # when linking. - MYSQLND_SHARED_LIBADD = "-lssl -lcrypto -lz"; + MYSQLND_SHARED_LIBADD = "-lssl -lcrypto"; # The configure script builds a config.h which is never # included. Let's include it in the main header file # included by all .c-files. patches = [ (pkgs.writeText "mysqlnd_config.patch" '' - --- a/mysqlnd.h - +++ b/mysqlnd.h + --- a/ext/mysqlnd/mysqlnd.h + +++ b/ext/mysqlnd/mysqlnd.h @@ -1,3 +1,6 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" @@ -979,6 +1014,19 @@ in +----------------------------------------------------------------------+ | Copyright (c) The PHP Group | '') + ] ++ lib.optional (lib.versionOlder php.version "7.4.8") [ + (pkgs.writeText "mysqlnd_fix_compression.patch" '' + --- a/ext/mysqlnd/mysqlnd.h + +++ b/ext/mysqlnd/mysqlnd.h + @@ -48,7 +48,7 @@ + #define MYSQLND_DBG_ENABLED 0 + #endif + + -#if defined(MYSQLND_COMPRESSION_WANTED) && defined(HAVE_ZLIB) + +#if defined(MYSQLND_COMPRESSION_WANTED) + #define MYSQLND_COMPRESSION_ENABLED 1 + #endif + '') ]; postPhpize = lib.optionalString (lib.versionOlder php.version "7.4") '' substituteInPlace configure --replace '$OPENSSL_LIBDIR' '${openssl}/lib' \ @@ -993,8 +1041,8 @@ in # included after the ifdef... patches = lib.optional (lib.versionOlder php.version "7.4") [ (pkgs.writeText "zend_file_cache_config.patch" '' - --- a/zend_file_cache.c - +++ b/zend_file_cache.c + --- a/ext/opcache/zend_file_cache.c + +++ b/ext/opcache/zend_file_cache.c @@ -27,9 +27,9 @@ #include "ext/standard/md5.h" #endif @@ -1122,6 +1170,10 @@ in doCheck = false; } { name = "zlib"; buildInputs = [ zlib ]; + patches = lib.optionals (lib.versionOlder php.version "7.4") [ + # Derived from https://github.com/php/php-src/commit/f16b012116d6c015632741a3caada5b30ef8a699 + ../development/interpreters/php/zlib-darwin-tests.patch + ]; configureFlags = [ "--with-zlib" ] ++ lib.optional (lib.versionOlder php.version "7.4") [ "--with-zlib-dir=${zlib.dev}" ]; } ]; |