diff options
Diffstat (limited to 'pkgs/top-level/php-packages.nix')
-rw-r--r-- | pkgs/top-level/php-packages.nix | 149 |
1 files changed, 54 insertions, 95 deletions
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix index 7cef004a8745..c02e9f8ed068 100644 --- a/pkgs/top-level/php-packages.nix +++ b/pkgs/top-level/php-packages.nix @@ -160,7 +160,7 @@ in { checkPhase = '' runHook preCheck - NO_INTERACTION=yes SKIP_PERF_SENSITIVE=yes make test + NO_INTERACTION=yes SKIP_PERF_SENSITIVE=yes SKIP_ONLINE_TESTS=yes make test runHook postCheck ''; @@ -181,8 +181,8 @@ in { meta = { description = "PHP upstream extension: ${name}"; - inherit (php.meta) maintainers homepage license; - }; + inherit (php.meta) maintainers homepage license platforms; + } // args.meta or { }; })); php = phpPackage; @@ -253,7 +253,7 @@ in { datadog_trace = callPackage ../development/php-packages/datadog_trace { buildPecl = buildPecl.override { - stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv; + stdenv = if stdenv.hostPlatform.isDarwin then overrideSDK stdenv "11.0" else stdenv; }; inherit (pkgs) darwin; }; @@ -301,6 +301,8 @@ in { openswoole = callPackage ../development/php-packages/openswoole { }; + parallel = callPackage ../development/php-packages/parallel { }; + pdlib = callPackage ../development/php-packages/pdlib { }; pcov = callPackage ../development/php-packages/pcov { }; @@ -392,7 +394,7 @@ in { "--enable-dom" ]; # Add a PHP lower version bound constraint to avoid applying the patch on older PHP versions. - patches = lib.optionals ((lib.versions.majorMinor php.version == "8.2" && lib.versionOlder php.version "8.2.14" && lib.versionAtLeast php.version "8.2.7") || (lib.versions.majorMinor php.version == "8.1")) [ + patches = lib.optionals (lib.versions.majorMinor php.version == "8.1") [ # Fix tests with libxml 2.12 # Part of 8.3.1RC1+, 8.2.14RC1+ (fetchpatch { @@ -404,24 +406,15 @@ in { }) ] ++ lib.optionals (lib.versions.majorMinor php.version == "8.1") [ # Backport of PHP_LIBXML_IGNORE_DEPRECATIONS_START and PHP_LIBXML_IGNORE_DEPRECATIONS_END - ../development/interpreters/php/php81-fix-libxml2-2.13-compatibility.patch - # Fix build with libxml2 2.13+. Has to be applied after libxml2 2.12 patch. (fetchpatch { - url = "https://github.com/php/php-src/commit/9b4f6b09d58a4e54ee60443bf9a8b166852c03e0.patch"; - hash = "sha256-YC3I0BQi3o3+VmRu/UqpqPpaSC+ekPqzbORTHftbPvY="; + url = "https://github.com/php/php-src/commit/e2d97314ab342d434e778cd00a2f34e4bdb07664.patch"; + hash = "sha256-w0hyYUgbRGpvIBfWeDTSEUGpiJdyrtNjKy+Fn1vyAO0="; }) - ] ++ lib.optionals (lib.versions.majorMinor php.version == "8.2" && lib.versionOlder php.version "8.2.22") [ - # Fixes compatibility with libxml2 2.13. Part of 8.3.10RC1+, 8.2.22RC1+ + # Fix build with libxml2 2.13+. Has to be applied after libxml2 2.12 patch. (fetchpatch { - url = "https://github.com/php/php-src/commit/4fe821311cafb18ca8bdf20b9d796c48a13ba552.diff?full_index=1"; + url = "https://github.com/php/php-src/commit/4fe821311cafb18ca8bdf20b9d796c48a13ba552.patch"; hash = "sha256-YC3I0BQi3o3+VmRu/UqpqPpaSC+ekPqzbORTHftbPvY="; }) - ] ++ lib.optionals (lib.versions.majorMinor php.version == "8.3" && lib.versionOlder php.version "8.3.10") [ - (fetchpatch { - url = "https://github.com/php/php-src/commit/ecf0bb0fd12132d853969c5e9a212e5f627f2da2.diff?full_index=1"; - hash = "sha256-sodGODHb4l04P0srn3L8l3K+DjZzCsCNbamfkmIyF+k="; - excludes = [ "NEWS" ]; - }) ]; } { @@ -463,14 +456,10 @@ in { name = "iconv"; buildInputs = [ libiconv ]; configureFlags = [ "--with-iconv" ]; - doCheck = stdenv.isLinux; - } - { - name = "imap"; - buildInputs = [ uwimap openssl pam pcre2 libkrb5 ]; - configureFlags = [ "--with-imap=${uwimap}" "--with-imap-ssl" "--with-kerberos" ]; - # Using version from PECL on new PHP versions. - enable = lib.versionOlder php.version "8.3"; + # Some other extensions support separate libdirs, but iconv does not. This causes problems with detecting + # Darwin’s libiconv because it has separate outputs. Adding `-liconv` works around the issue. + env = lib.optionalAttrs stdenv.hostPlatform.isDarwin { NIX_LDFLAGS = "-liconv"; }; + doCheck = stdenv.hostPlatform.isLinux; } { name = "intl"; @@ -484,7 +473,7 @@ in { "LDAP_DIR=${openldap.dev}" "LDAP_INCDIR=${openldap.dev}/include" "LDAP_LIBDIR=${openldap.out}/lib" - ] ++ lib.optionals stdenv.isLinux [ + ] ++ lib.optionals stdenv.hostPlatform.isLinux [ "--with-ldap-sasl=${cyrus_sasl.dev}" ]; doCheck = false; @@ -528,11 +517,11 @@ in { name = "opcache"; buildInputs = [ pcre2 ] ++ lib.optional - (!stdenv.isDarwin && lib.meta.availableOn stdenv.hostPlatform valgrind) + (!stdenv.hostPlatform.isDarwin && lib.meta.availableOn stdenv.hostPlatform valgrind) valgrind.dev; configureFlags = lib.optional php.ztsSupport "--disable-opcache-jit"; zendExtension = true; - postPatch = lib.optionalString stdenv.isDarwin '' + postPatch = lib.optionalString stdenv.hostPlatform.isDarwin '' # Tests are flaky on darwin rm ext/opcache/tests/blacklist.phpt rm ext/opcache/tests/bug66338.phpt @@ -566,8 +555,7 @@ in { name = "pdo_dblib"; internalDeps = [ php.extensions.pdo ]; configureFlags = [ "--with-pdo-dblib=${freetds}" ]; - # Doesn't seem to work on darwin. - enable = (!stdenv.isDarwin); + meta.broken = stdenv.hostPlatform.isDarwin; doCheck = false; } { @@ -646,32 +634,21 @@ in { }) # Backport of PHP_LIBXML_IGNORE_DEPRECATIONS_START and PHP_LIBXML_IGNORE_DEPRECATIONS_END # Required for libxml2 2.13 compatibility patch. - ../development/interpreters/php/php81-fix-libxml2-2.13-compatibility.patch - # Fix build with libxml2 2.13+. Has to be applied after libxml2 2.12 patch. (fetchpatch { - url = "https://github.com/php/php-src/commit/9b4f6b09d58a4e54ee60443bf9a8b166852c03e0.patch"; - hash = "sha256-YC3I0BQi3o3+VmRu/UqpqPpaSC+ekPqzbORTHftbPvY="; + url = "https://github.com/php/php-src/commit/e2d97314ab342d434e778cd00a2f34e4bdb07664.patch"; + hash = "sha256-w0hyYUgbRGpvIBfWeDTSEUGpiJdyrtNjKy+Fn1vyAO0="; }) - ] ++ lib.optionals (lib.versions.majorMinor php.version == "8.2" && lib.versionOlder php.version "8.2.22") [ - # Fixes compatibility with libxml2 2.13. Part of 8.3.10RC1+, 8.2.22RC1+ + # Fix build with libxml2 2.13+. Has to be applied after libxml2 2.12 patch. (fetchpatch { - url = "https://github.com/php/php-src/commit/4fe821311cafb18ca8bdf20b9d796c48a13ba552.diff?full_index=1"; + url = "https://github.com/php/php-src/commit/4fe821311cafb18ca8bdf20b9d796c48a13ba552.patch"; hash = "sha256-YC3I0BQi3o3+VmRu/UqpqPpaSC+ekPqzbORTHftbPvY="; }) - ] ++ lib.optionals (lib.versions.majorMinor php.version == "8.3" && lib.versionOlder php.version "8.3.10") [ - (fetchpatch { - url = "https://github.com/php/php-src/commit/ecf0bb0fd12132d853969c5e9a212e5f627f2da2.diff?full_index=1"; - hash = "sha256-sodGODHb4l04P0srn3L8l3K+DjZzCsCNbamfkmIyF+k="; - excludes = [ "NEWS" ]; - }) ]; } { name = "snmp"; buildInputs = [ net-snmp openssl ]; configureFlags = [ "--with-snmp" ]; - # net-snmp doesn't build on darwin. - enable = (!stdenv.isDarwin); doCheck = false; } { @@ -680,7 +657,10 @@ in { configureFlags = [ "--enable-soap" ]; - doCheck = stdenv.isDarwin; # TODO: a couple tests still fail on *-linux + # Some tests are causing issues in the Darwin sandbox with issues + # such as + # Unknown: php_network_getaddresses: getaddrinfo for localhost failed: nodename nor servname provided + doCheck = !stdenv.hostPlatform.isDarwin && lib.versionOlder php.version "8.4"; internalDeps = [ php.extensions.session ]; patches = lib.optionals (lib.versions.majorMinor php.version == "8.1") [ # Fix tests with libxml2 2.12 @@ -693,29 +673,21 @@ in { }) # Backport of PHP_LIBXML_IGNORE_DEPRECATIONS_START and PHP_LIBXML_IGNORE_DEPRECATIONS_END # Required for libxml2 2.13 compatibility patch. - ../development/interpreters/php/php81-fix-libxml2-2.13-compatibility.patch - # Fix build with libxml2 2.13+. Has to be applied after libxml2 2.12 patch. (fetchpatch { - url = "https://github.com/php/php-src/commit/9b4f6b09d58a4e54ee60443bf9a8b166852c03e0.patch"; - hash = "sha256-YC3I0BQi3o3+VmRu/UqpqPpaSC+ekPqzbORTHftbPvY="; + url = "https://github.com/php/php-src/commit/e2d97314ab342d434e778cd00a2f34e4bdb07664.patch"; + hash = "sha256-w0hyYUgbRGpvIBfWeDTSEUGpiJdyrtNjKy+Fn1vyAO0="; }) - ] ++ lib.optionals (lib.versions.majorMinor php.version == "8.2" && lib.versionOlder php.version "8.2.22") [ - # Fixes compatibility with libxml2 2.13. Part of 8.3.10RC1+, 8.2.22RC1+ + # Fix build with libxml2 2.13+. Has to be applied after libxml2 2.12 patch. (fetchpatch { - url = "https://github.com/php/php-src/commit/4fe821311cafb18ca8bdf20b9d796c48a13ba552.diff?full_index=1"; + url = "https://github.com/php/php-src/commit/4fe821311cafb18ca8bdf20b9d796c48a13ba552.patch"; hash = "sha256-YC3I0BQi3o3+VmRu/UqpqPpaSC+ekPqzbORTHftbPvY="; }) - ] ++ lib.optionals (lib.versions.majorMinor php.version == "8.2") [ - # Fix test 'bug55639.phpt' - (fetchpatch { - url = "https://github.com/php/php-src/commit/1b52ecd78ad1a211a4a9db65975df34d2539125b.patch"; - hash = "sha256-LVk9sfwl5D+rHzyYjfV4pAuhBjSPXj1WjTfnrzBJXhY"; - }) - ] ++ lib.optionals (lib.versions.majorMinor php.version == "8.3" && lib.versionOlder php.version "8.3.10") [ + ] + ++ lib.optionals (lib.versionAtLeast php.version "8.3") [ + # https://github.com/php/php-src/pull/16733 (fix soap test) (fetchpatch { - url = "https://github.com/php/php-src/commit/ecf0bb0fd12132d853969c5e9a212e5f627f2da2.diff?full_index=1"; - hash = "sha256-sodGODHb4l04P0srn3L8l3K+DjZzCsCNbamfkmIyF+k="; - excludes = [ "NEWS" ]; + url = "https://github.com/php/php-src/commit/5c308d61db104854e4ff84ab123e3ea56e1b4046.patch"; + hash = "sha256-xQ4Sg4kL0cgHYauRW2AzGgFXfcqtxeRVhI9zNh7CsoM="; }) ]; } @@ -731,7 +703,7 @@ in { # The `sqlite3_bind_bug68849.phpt` test is currently broken for i686 Linux systems since sqlite 3.43, cf.: # - https://github.com/php/php-src/issues/12076 # - https://www.sqlite.org/forum/forumpost/abbb95376ec6cd5f - patches = lib.optionals (stdenv.isi686 && stdenv.isLinux) [ + patches = lib.optionals (stdenv.hostPlatform.isi686 && stdenv.hostPlatform.isLinux) [ ../development/interpreters/php/skip-sqlite3_bind_bug68849.phpt.patch ]; } @@ -761,24 +733,15 @@ in { }) # Backport of PHP_LIBXML_IGNORE_DEPRECATIONS_START and PHP_LIBXML_IGNORE_DEPRECATIONS_END # Required for libxml2 2.13 compatibility patch. - ../development/interpreters/php/php81-fix-libxml2-2.13-compatibility.patch - # Fix build with libxml2 2.13+. Has to be applied after libxml2 2.12 patch. (fetchpatch { - url = "https://github.com/php/php-src/commit/9b4f6b09d58a4e54ee60443bf9a8b166852c03e0.patch"; - hash = "sha256-YC3I0BQi3o3+VmRu/UqpqPpaSC+ekPqzbORTHftbPvY="; + url = "https://github.com/php/php-src/commit/e2d97314ab342d434e778cd00a2f34e4bdb07664.patch"; + hash = "sha256-w0hyYUgbRGpvIBfWeDTSEUGpiJdyrtNjKy+Fn1vyAO0="; }) - ] ++ lib.optionals (lib.versions.majorMinor php.version == "8.2" && lib.versionOlder php.version "8.2.22") [ - # Fixes compatibility with libxml2 2.13. Part of 8.3.10RC1+, 8.2.22RC1+ + # Fix build with libxml2 2.13+. Has to be applied after libxml2 2.12 patch. (fetchpatch { - url = "https://github.com/php/php-src/commit/4fe821311cafb18ca8bdf20b9d796c48a13ba552.diff?full_index=1"; + url = "https://github.com/php/php-src/commit/4fe821311cafb18ca8bdf20b9d796c48a13ba552.patch"; hash = "sha256-YC3I0BQi3o3+VmRu/UqpqPpaSC+ekPqzbORTHftbPvY="; }) - ] ++ lib.optionals (lib.versions.majorMinor php.version == "8.3" && lib.versionOlder php.version "8.3.10") [ - (fetchpatch { - url = "https://github.com/php/php-src/commit/ecf0bb0fd12132d853969c5e9a212e5f627f2da2.diff?full_index=1"; - hash = "sha256-sodGODHb4l04P0srn3L8l3K+DjZzCsCNbamfkmIyF+k="; - excludes = [ "NEWS" ]; - }) ]; } { @@ -808,24 +771,15 @@ in { }) # Backport of PHP_LIBXML_IGNORE_DEPRECATIONS_START and PHP_LIBXML_IGNORE_DEPRECATIONS_END # Required for libxml2 2.13 compatibility patch. - ../development/interpreters/php/php81-fix-libxml2-2.13-compatibility.patch - # Fix build with libxml2 2.13+. Has to be applied after libxml2 2.12 patch. (fetchpatch { - url = "https://github.com/php/php-src/commit/9b4f6b09d58a4e54ee60443bf9a8b166852c03e0.patch"; - hash = "sha256-YC3I0BQi3o3+VmRu/UqpqPpaSC+ekPqzbORTHftbPvY="; + url = "https://github.com/php/php-src/commit/e2d97314ab342d434e778cd00a2f34e4bdb07664.patch"; + hash = "sha256-w0hyYUgbRGpvIBfWeDTSEUGpiJdyrtNjKy+Fn1vyAO0="; }) - ] ++ lib.optionals (lib.versions.majorMinor php.version == "8.2" && lib.versionOlder php.version "8.2.22") [ - # Fixes compatibility with libxml2 2.13. Part of 8.3.10RC1+, 8.2.22RC1+ + # Fix build with libxml2 2.13+. Has to be applied after libxml2 2.12 patch. (fetchpatch { - url = "https://github.com/php/php-src/commit/4fe821311cafb18ca8bdf20b9d796c48a13ba552.diff?full_index=1"; + url = "https://github.com/php/php-src/commit/4fe821311cafb18ca8bdf20b9d796c48a13ba552.patch"; hash = "sha256-YC3I0BQi3o3+VmRu/UqpqPpaSC+ekPqzbORTHftbPvY="; }) - ] ++ lib.optionals (lib.versions.majorMinor php.version == "8.3" && lib.versionOlder php.version "8.3.10") [ - (fetchpatch { - url = "https://github.com/php/php-src/commit/ecf0bb0fd12132d853969c5e9a212e5f627f2da2.diff?full_index=1"; - hash = "sha256-sodGODHb4l04P0srn3L8l3K+DjZzCsCNbamfkmIyF+k="; - excludes = [ "NEWS" ]; - }) ]; } { @@ -856,6 +810,13 @@ in { "--with-zlib" ]; } + ] ++ lib.optionals (lib.versionOlder php.version "8.3") [ + # Using version from PECL on new PHP versions. + { + name = "imap"; + buildInputs = [ uwimap openssl pam pcre2 libkrb5 ]; + configureFlags = [ "--with-imap=${uwimap}" "--with-imap-ssl" "--with-kerberos" ]; + } ]; # Convert the list of attrs: @@ -864,14 +825,12 @@ in { # [ { name = <name>; value = <extension drv>; } ... ] # # which we later use listToAttrs to make all attrs available by name. - # - # Also filter out extensions based on the enable property. namedExtensions = builtins.map (drv: { name = drv.name; - value = mkExtension (builtins.removeAttrs drv [ "enable" ]); + value = mkExtension drv; }) - (builtins.filter (i: i.enable or true) extensionData); + extensionData; # Produce the final attribute set of all extensions defined. in |