diff options
author | Maximilian Bosch <maximilian@mbosch.me> | 2020-06-25 21:21:28 +0200 |
---|---|---|
committer | Maximilian Bosch <maximilian@mbosch.me> | 2020-06-25 22:29:23 +0200 |
commit | af064a0e12ad8e5a8a2e8d8ad25fc0baf3f8ef54 (patch) | |
tree | 7f0ea6f9002786261e68bb464f554a108feec905 | |
parent | 6b096983f4823704e08930319616bb485f936c93 (diff) | |
download | nixpkgs-af064a0e12ad8e5a8a2e8d8ad25fc0baf3f8ef54.tar nixpkgs-af064a0e12ad8e5a8a2e8d8ad25fc0baf3f8ef54.tar.gz nixpkgs-af064a0e12ad8e5a8a2e8d8ad25fc0baf3f8ef54.tar.bz2 nixpkgs-af064a0e12ad8e5a8a2e8d8ad25fc0baf3f8ef54.tar.lz nixpkgs-af064a0e12ad8e5a8a2e8d8ad25fc0baf3f8ef54.tar.xz nixpkgs-af064a0e12ad8e5a8a2e8d8ad25fc0baf3f8ef54.tar.zst nixpkgs-af064a0e12ad8e5a8a2e8d8ad25fc0baf3f8ef54.zip |
php7{2,3}: fix darwin build
* Backported patches from `php-7.4` which fixes the env for all `gettext` and `zlib` tests. * Setting `--with-libxml-dir` is still needed for versions 7.2 and 7.3.
-rw-r--r-- | pkgs/development/interpreters/php/default.nix | 10 | ||||
-rw-r--r-- | pkgs/development/interpreters/php/zlib-darwin-tests.patch | 44 | ||||
-rw-r--r-- | pkgs/top-level/php-packages.nix | 10 |
3 files changed, 61 insertions, 3 deletions
diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix index 78a3e91179f..b930e54fa4c 100644 --- a/pkgs/development/interpreters/php/default.nix +++ b/pkgs/development/interpreters/php/default.nix @@ -8,7 +8,7 @@ let { callPackage, lib, stdenv, nixosTests, config, fetchurl, makeWrapper , symlinkJoin, writeText, autoconf, automake, bison, flex, libtool , pkgconfig, re2c, apacheHttpd, libargon2, libxml2, pcre, pcre2 - , systemd, valgrind + , systemd, valgrind, xcbuild , version , sha256 @@ -143,7 +143,8 @@ let enableParallelBuilding = true; - nativeBuildInputs = [ autoconf automake bison flex libtool pkgconfig re2c ]; + nativeBuildInputs = [ autoconf automake bison flex libtool pkgconfig re2c ] + ++ lib.optional stdenv.isDarwin xcbuild; buildInputs = # PCRE extension @@ -177,7 +178,10 @@ let ++ lib.optional (!cliSupport) "--disable-cli" ++ lib.optional fpmSupport "--enable-fpm" ++ lib.optional pearSupport [ "--with-pear=$(out)/lib/php/pear" "--enable-xml" "--with-libxml" ] - ++ lib.optional (pearSupport && (lib.versionOlder version "7.4")) "--enable-libxml" + ++ lib.optionals (pearSupport && (lib.versionOlder version "7.4")) [ + "--enable-libxml" + "--with-libxml-dir=${libxml2.dev}" + ] ++ lib.optional pharSupport "--enable-phar" ++ lib.optional phpdbgSupport "--enable-phpdbg" diff --git a/pkgs/development/interpreters/php/zlib-darwin-tests.patch b/pkgs/development/interpreters/php/zlib-darwin-tests.patch new file mode 100644 index 00000000000..ef61f0a8784 --- /dev/null +++ b/pkgs/development/interpreters/php/zlib-darwin-tests.patch @@ -0,0 +1,44 @@ +diff --git a/ext/zlib/tests/bug55544.phpt b/ext/zlib/tests/bug55544.phpt +index a0d22f4fcebf4846da6781f424f87821626de5ea..e650fe6909f555d04834f4c08f7fd0d354b783e2 100644 +--- a/ext/zlib/tests/bug55544.phpt ++++ b/ext/zlib/tests/bug55544.phpt +@@ -6,6 +6,9 @@ extension_loaded("zlib") or die("skip"); + if (substr(PHP_OS, 0, 3) == 'WIN') { + die("skip not for windows"); + } ++if (PHP_OS == "Darwin") { ++ die("skip not for darwin"); ++} + ?> + --INI-- + output_handler=ob_gzhandler +diff --git a/ext/zlib/tests/gzencode_variation1.phpt b/ext/zlib/tests/gzencode_variation1.phpt +index c966b2cbc5b7..2f953168fa22 100644 +--- a/ext/zlib/tests/gzencode_variation1.phpt ++++ b/ext/zlib/tests/gzencode_variation1.phpt +@@ -10,6 +10,10 @@ if( substr(PHP_OS, 0, 3) == "WIN" ) { + if (!extension_loaded("zlib")) { + print "skip - ZLIB extension not loaded"; + } ++ ++if (PHP_OS == "Darwin") { ++ print "skip - OS is encoded in headers, tested header is non Darwin"; ++} + ?> + --FILE-- + <?php +diff --git a/ext/zlib/tests/gzencode_variation2.phpt b/ext/zlib/tests/gzencode_variation2.phpt +index 94ac42a5f1cd..9160cf519751 100644 +--- a/ext/zlib/tests/gzencode_variation2.phpt ++++ b/ext/zlib/tests/gzencode_variation2.phpt +@@ -10,6 +10,10 @@ if( substr(PHP_OS, 0, 3) == "WIN" ) { + if (!extension_loaded("zlib")) { + print "skip - ZLIB extension not loaded"; + } ++ ++if (PHP_OS == "Darwin") { ++ print "skip - OS is encoded in headers, tested header is non Darwin"; ++} + ?> + --FILE-- + <?php diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix index 044e4f8045c..1e6430df983 100644 --- a/pkgs/top-level/php-packages.nix +++ b/pkgs/top-level/php-packages.nix @@ -947,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"; @@ -1163,6 +1169,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}" ]; } ]; |