summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--failed.txt2
-rw-r--r--php-bug77653.patch159
-rw-r--r--php-upstream.patch1443
-rw-r--r--php.spec17
4 files changed, 9 insertions, 1612 deletions
diff --git a/failed.txt b/failed.txt
index b6b3400..de4a615 100644
--- a/failed.txt
+++ b/failed.txt
@@ -1,4 +1,4 @@
-===== 7.3.4 (2019-04-04)
+===== 7.3.5RC1 (2019-04-18)
$ grep -ar 'Tests failed' /var/lib/mock/scl73*/build.log
diff --git a/php-bug77653.patch b/php-bug77653.patch
deleted file mode 100644
index 98fc4d1..0000000
--- a/php-bug77653.patch
+++ /dev/null
@@ -1,159 +0,0 @@
-From 06dd1d78a7ec1678b53ef657033c2021f4dc902f Mon Sep 17 00:00:00 2001
-From: Jakub Zelenka <bukka@php.net>
-Date: Sun, 31 Mar 2019 16:56:17 +0100
-Subject: [PATCH 1/2] Fix logging in shutdown function
-
----
- sapi/fpm/fpm/fpm_stdio.c | 20 +++++++--
- sapi/fpm/tests/log-bm-in-shutdown-fn.phpt | 49 +++++++++++++++++++++++
- 2 files changed, 65 insertions(+), 4 deletions(-)
- create mode 100644 sapi/fpm/tests/log-bm-in-shutdown-fn.phpt
-
-diff --git a/sapi/fpm/fpm/fpm_stdio.c b/sapi/fpm/fpm/fpm_stdio.c
-index 03d15cbf0d7c..75c4d8e9c262 100644
---- a/sapi/fpm/fpm/fpm_stdio.c
-+++ b/sapi/fpm/fpm/fpm_stdio.c
-@@ -106,9 +106,11 @@ int fpm_stdio_init_child(struct fpm_worker_pool_s *wp) /* {{{ */
- }
- /* }}} */
-
-+#define FPM_STDIO_CMD_FLUSH "\0fscf"
-+
- int fpm_stdio_flush_child() /* {{{ */
- {
-- return write(STDERR_FILENO, "\0", 1);
-+ return write(STDERR_FILENO, FPM_STDIO_CMD_FLUSH, sizeof(FPM_STDIO_CMD_FLUSH));
- }
- /* }}} */
-
-@@ -162,10 +164,20 @@ static void fpm_stdio_child_said(struct fpm_event_s *ev, short which, void *arg)
- }
- } else {
- in_buf += res;
-- /* if buffer ends with \0, then the stream will be finished */
-- if (!buf[in_buf - 1]) {
-+ /* check if buffer should be flushed */
-+ if (!buf[in_buf - 1] && in_buf >= sizeof(FPM_STDIO_CMD_FLUSH) &&
-+ !memcmp(buf + in_buf - sizeof(FPM_STDIO_CMD_FLUSH),
-+ FPM_STDIO_CMD_FLUSH, sizeof(FPM_STDIO_CMD_FLUSH))) {
-+ /* if buffer ends with flush cmd, then the stream will be finished */
-+ finish_log_stream = 1;
-+ in_buf -= sizeof(FPM_STDIO_CMD_FLUSH);
-+ } else if (!buf[0] && in_buf > sizeof(FPM_STDIO_CMD_FLUSH) &&
-+ !memcmp(buf, FPM_STDIO_CMD_FLUSH, sizeof(FPM_STDIO_CMD_FLUSH))) {
-+ /* if buffer starts with flush cmd, then the stream will be finished */
- finish_log_stream = 1;
-- in_buf--;
-+ in_buf -= sizeof(FPM_STDIO_CMD_FLUSH);
-+ /* move data behind the flush cmd */
-+ memmove(buf, buf + sizeof(FPM_STDIO_CMD_FLUSH), in_buf);
- }
- }
- }
-diff --git a/sapi/fpm/tests/log-bm-in-shutdown-fn.phpt b/sapi/fpm/tests/log-bm-in-shutdown-fn.phpt
-new file mode 100644
-index 000000000000..f968bf9f08bc
---- /dev/null
-+++ b/sapi/fpm/tests/log-bm-in-shutdown-fn.phpt
-@@ -0,0 +1,49 @@
-+--TEST--
-+FPM: Log message in shutdown function
-+--SKIPIF--
-+<?php include "skipif.inc"; ?>
-+--FILE--
-+<?php
-+
-+require_once "tester.inc";
-+
-+$cfg = <<<EOT
-+[global]
-+error_log = {{FILE:LOG}}
-+log_limit = 1024
-+log_buffering = yes
-+[unconfined]
-+listen = {{ADDR}}
-+pm = dynamic
-+pm.max_children = 5
-+pm.start_servers = 1
-+pm.min_spare_servers = 1
-+pm.max_spare_servers = 3
-+catch_workers_output = yes
-+EOT;
-+
-+$code = <<<EOT
-+<?php
-+register_shutdown_function(function() {
-+ error_log(str_repeat('e', 80));
-+});
-+EOT;
-+
-+$tester = new FPM\Tester($cfg, $code);
-+$tester->start();
-+$tester->expectLogStartNotices();
-+$tester->request()->expectEmptyBody();
-+$tester->terminate();
-+$tester->expectFastCGIErrorMessage('e', 1050, 80);
-+$tester->expectLogMessage('NOTICE: PHP message: ' . str_repeat('e', 80), 1050);
-+$tester->close();
-+
-+?>
-+Done
-+--EXPECT--
-+Done
-+--CLEAN--
-+<?php
-+require_once "tester.inc";
-+FPM\Tester::clean();
-+?>
-
-From 72c010309bb0a7bb032677ca599424ceb2ad4883 Mon Sep 17 00:00:00 2001
-From: Jakub Zelenka <bukka@php.net>
-Date: Sun, 31 Mar 2019 17:55:29 +0100
-Subject: [PATCH 2/2] Move stdio flush behind request shutdown
-
----
- sapi/fpm/fpm/fpm_main.c | 3 +++
- sapi/fpm/fpm/fpm_request.c | 2 --
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/sapi/fpm/fpm/fpm_main.c b/sapi/fpm/fpm/fpm_main.c
-index 483fabe9d850..bfd82a1c2e11 100644
---- a/sapi/fpm/fpm/fpm_main.c
-+++ b/sapi/fpm/fpm/fpm_main.c
-@@ -90,6 +90,7 @@ int __riscosify_control = __RISCOSIFY_STRICT_UNIX_SPECS;
- #include "fpm.h"
- #include "fpm_request.h"
- #include "fpm_status.h"
-+#include "fpm_stdio.h"
- #include "fpm_conf.h"
- #include "fpm_php.h"
- #include "fpm_log.h"
-@@ -1977,6 +1978,8 @@ consult the installation file that came with this distribution, or visit \n\
-
- php_request_shutdown((void *) 0);
-
-+ fpm_stdio_flush_child();
-+
- requests++;
- if (UNEXPECTED(max_requests && (requests == max_requests))) {
- fcgi_request_set_keep(request, 0);
-diff --git a/sapi/fpm/fpm/fpm_request.c b/sapi/fpm/fpm/fpm_request.c
-index 65f9c4ae441c..2aa503891ed9 100644
---- a/sapi/fpm/fpm/fpm_request.c
-+++ b/sapi/fpm/fpm/fpm_request.c
-@@ -16,7 +16,6 @@
- #include "fpm_children.h"
- #include "fpm_scoreboard.h"
- #include "fpm_status.h"
--#include "fpm_stdio.h"
- #include "fpm_request.h"
- #include "fpm_log.h"
-
-@@ -200,7 +199,6 @@ void fpm_request_end(void) /* {{{ */
- #endif
- proc->memory = memory;
- fpm_scoreboard_proc_release(proc);
-- fpm_stdio_flush_child();
- }
- /* }}} */
-
diff --git a/php-upstream.patch b/php-upstream.patch
deleted file mode 100644
index 6d95d13..0000000
--- a/php-upstream.patch
+++ /dev/null
@@ -1,1443 +0,0 @@
-From a467a89f167e9e03b4acc4bd9b1430e0d52133fa Mon Sep 17 00:00:00 2001
-From: Remi Collet <remi@php.net>
-Date: Wed, 20 Mar 2019 14:07:26 +0100
-Subject: [PATCH] Fix tests after fix for #76717
-
----
- .../general_functions/var_export-locale.phpt | 3 +
- .../var_export-locale_32.phpt | 1148 +++++++++++++++++
- .../general_functions/var_export_basic1.phpt | 6 +
- .../var_export_basic1_32.phpt | 147 +++
- 4 files changed, 1304 insertions(+)
- create mode 100644 ext/standard/tests/general_functions/var_export-locale_32.phpt
- create mode 100644 ext/standard/tests/general_functions/var_export_basic1_32.phpt
-
-diff --git a/ext/standard/tests/general_functions/var_export-locale.phpt b/ext/standard/tests/general_functions/var_export-locale.phpt
-index 7503e789b093..37625f4201ad 100644
---- a/ext/standard/tests/general_functions/var_export-locale.phpt
-+++ b/ext/standard/tests/general_functions/var_export-locale.phpt
-@@ -7,6 +7,9 @@ serialize_precision=17
- if (!setlocale(LC_ALL, "german", "de","de_DE","de_DE.ISO8859-1","de_DE.ISO_8859-1","de_DE.UTF-8")) {
- die("skip locale needed for this test is not supported on this platform");
- }
-+if (PHP_INT_SIZE < 8) {
-+ die("skip 64-bit only");
-+}
- ?>
- --FILE--
- <?php
-diff --git a/ext/standard/tests/general_functions/var_export-locale_32.phpt b/ext/standard/tests/general_functions/var_export-locale_32.phpt
-new file mode 100644
-index 000000000000..39efdec7dfcb
---- /dev/null
-+++ b/ext/standard/tests/general_functions/var_export-locale_32.phpt
-@@ -0,0 +1,1148 @@
-+--TEST--
-+Test var_export() function with locale
-+--INI--
-+serialize_precision=17
-+--SKIPIF--
-+<?php
-+if (!setlocale(LC_ALL, "german", "de","de_DE","de_DE.ISO8859-1","de_DE.ISO_8859-1","de_DE.UTF-8")) {
-+ die("skip locale needed for this test is not supported on this platform");
-+}
-+if (PHP_INT_SIZE > 4) {
-+ die("skip 32-bit only");
-+}
-+?>
-+--FILE--
-+<?php
-+setlocale(LC_ALL, "german", "de","de_DE","de_DE.ISO8859-1","de_DE.ISO_8859-1","de_DE.UTF-8");
-+/* Prototype: mixed var_export( mixed expression [, bool return]);
-+ * Description: Returns the variable representation when the return parameter is used and evaluates to TRUE. Otherwise, this function will return NULL.
-+
-+*/
-+
-+echo "*** Testing var_export() with integer values ***\n";
-+// different integer vlaues
-+$valid_ints = array(
-+ '0',
-+ '1',
-+ '-1',
-+ '-2147483648', // max negative integer value
-+ '-2147483647',
-+ 2147483647, // max positive integer value
-+ 2147483640,
-+ 0x123B, // integer as hexadecimal
-+ '0x12ab',
-+ '0Xfff',
-+ '0XFA',
-+ -0x7fffffff - 1, // max negative integer as hexadecimal
-+ '0x7fffffff', // max positive integer as hexadecimal
-+ 0x7FFFFFFF, // max positive integer as hexadecimal
-+ '0123', // integer as octal
-+ 01, // should be quivalent to octal 1
-+ -017777777777 - 1, // max negative integer as octal
-+ 017777777777, // max positive integer as octal
-+ );
-+$counter = 1;
-+/* Loop to check for above integer values with var_export() */
-+echo "\n*** Output for integer values ***\n";
-+foreach($valid_ints as $int_value) {
-+echo "\nIteration ".$counter."\n";
-+var_export( $int_value );
-+echo "\n";
-+var_export( $int_value, FALSE);
-+echo "\n";
-+var_dump( var_export( $int_value, TRUE) );
-+echo "\n";
-+$counter++;
-+}
-+
-+echo "*** Testing var_export() with valid boolean values ***\n";
-+// different valid boolean vlaues
-+$valid_bool = array(
-+ 1,
-+ TRUE,
-+ true,
-+ 0,
-+ FALSE,
-+ false
-+ );
-+$counter = 1;
-+/* Loop to check for above boolean values with var_export() */
-+echo "\n*** Output for boolean values ***\n";
-+foreach($valid_bool as $bool_value) {
-+echo "\nIteration ".$counter."\n";
-+var_export( $bool_value );
-+echo "\n";
-+var_export( $bool_value, FALSE);
-+echo "\n";
-+var_dump( var_export( $bool_value, TRUE) );
-+echo "\n";
-+$counter++;
-+}
-+
-+echo "*** Testing var_export() with valid float values ***\n";
-+// different valid float vlaues
-+$valid_floats = array(
-+ (float)-2147483649, // float value
-+ (float)2147483648, // float value
-+ (float)-0x80000001, // float value, beyond max negative int
-+ (float)0x800000001, // float value, beyond max positive int
-+ (float)020000000001, // float value, beyond max positive int
-+ (float)-020000000001, // float value, beyond max negative int
-+ 0.0,
-+ -0.1,
-+ 10.0000000000000000005,
-+ 10.5e+5,
-+ 1e5,
-+ 1e-5,
-+ 1e+5,
-+ 1E5,
-+ 1E+5,
-+ 1E-5,
-+ .5e+7,
-+ .6e-19,
-+ .05E+44,
-+ .0034E-30
-+);
-+$counter = 1;
-+/* Loop to check for above float values with var_export() */
-+echo "\n*** Output for float values ***\n";
-+foreach($valid_floats as $float_value) {
-+echo "\nIteration ".$counter."\n";
-+var_export( $float_value );
-+echo "\n";
-+var_export( $float_value, FALSE);
-+echo "\n";
-+var_dump( var_export( $float_value, TRUE) );
-+echo "\n";
-+$counter++;
-+}
-+
-+echo "*** Testing var_export() with valid strings ***\n";
-+// different valid string
-+$valid_strings = array(
-+ "",
-+ " ",
-+ '',
-+ ' ',
-+ "string",
-+ 'string',
-+ "NULL",
-+ 'null',
-+ "FALSE",
-+ 'false',
-+ "\x0b",
-+ "\0",
-+ '\0',
-+ '\060',
-+ "\070"
-+ );
-+$counter = 1;
-+/* Loop to check for above strings with var_export() */
-+echo "\n*** Output for strings ***\n";
-+foreach($valid_strings as $str) {
-+echo "\nIteration ".$counter."\n";
-+var_export( $str );
-+echo "\n";
-+var_export( $str, FALSE);
-+echo "\n";
-+var_dump( var_export( $str, TRUE) );
-+echo "\n";
-+$counter++;
-+}
-+
-+echo "*** Testing var_export() with valid arrays ***\n";
-+// different valid arrays
-+$valid_arrays = array(
-+ array(),
-+ array(NULL),
-+ array(null),
-+ array(true),
-+ array(""),
-+ array(''),
-+ array(array(), array()),
-+ array(array(1, 2), array('a', 'b')),
-+ array(1 => 'One'),
-+ array("test" => "is_array"),
-+ array(0),
-+ array(-1),
-+ array(10.5, 5.6),
-+ array("string", "test"),
-+ array('string', 'test')
-+ );
-+$counter = 1;
-+/* Loop to check for above arrays with var_export() */
-+echo "\n*** Output for arrays ***\n";
-+foreach($valid_arrays as $arr) {
-+echo "\nIteration ".$counter."\n";
-+var_export( $arr );
-+echo "\n";
-+var_export( $arr, FALSE);
-+echo "\n";
-+var_dump( var_export( $arr, TRUE) );
-+echo "\n";
-+$counter++;
-+}
-+
-+echo "*** Testing var_export() with valid objects ***\n";
-+
-+// class with no members
-+class foo
-+{
-+// no members
-+}
-+
-+// abstract class
-+abstract class abstractClass
-+{
-+ abstract protected function getClassName();
-+ public function printClassName () {
-+ echo $this->getClassName() . "\n";
-+ }
-+}
-+// implement abstract class
-+class concreteClass extends abstractClass
-+{
-+ protected function getClassName() {
-+ return "concreteClass";
-+ }
-+}
-+
-+// interface class
-+interface iValue
-+{
-+ public function setVal ($name, $val);
-+ public function dumpVal ();
-+}
-+// implement the interface
-+class Value implements iValue
-+{
-+ private $vars = array ();
-+
-+ public function setVal ( $name, $val ) {
-+ $this->vars[$name] = $val;
-+ }
-+
-+ public function dumpVal () {
-+ var_export ( $vars );
-+ }
-+}
-+
-+// a gereral class
-+class myClass
-+{
-+ var $foo_object;
-+ public $public_var;
-+ public $public_var1;
-+ private $private_var;
-+ protected $protected_var;
-+
-+ function __construct ( ) {
-+ $this->foo_object = new foo();
-+ $this->public_var = 10;
-+ $this->public_var1 = new foo();
-+ $this->private_var = new foo();
-+ $this->proected_var = new foo();
-+ }
-+}
-+
-+// create a object of each class defined above
-+$myClass_object = new myClass();
-+$foo_object = new foo();
-+$Value_object = new Value();
-+$concreteClass_object = new concreteClass();
-+
-+$valid_objects = array(
-+ new stdclass,
-+ new foo,
-+ new concreteClass,
-+ new Value,
-+ new myClass,
-+ $myClass_object,
-+ $myClass_object->foo_object,
-+ $myClass_object->public_var1,
-+ $foo_object,
-+ $Value_object,
-+ $concreteClass_object
-+ );
-+ $counter = 1;
-+/* Loop to check for above objects with var_export() */
-+echo "\n*** Output for objects ***\n";
-+foreach($valid_objects as $obj) {
-+echo "\nIteration ".$counter."\n";
-+var_export( $obj );
-+echo "\n";
-+var_export( $obj, FALSE);
-+echo "\n";
-+var_dump( var_export( $obj, TRUE) );
-+echo "\n";
-+$counter++;
-+}
-+
-+echo "*** Testing var_export() with valid null values ***\n";
-+// different valid null vlaues
-+$unset_var = array();
-+unset ($unset_var); // now a null
-+$null_var = NULL;
-+
-+$valid_nulls = array(
-+ NULL,
-+ null,
-+ $null_var,
-+ );
-+ $counter = 1;
-+/* Loop to check for above null values with var_export() */
-+echo "\n*** Output for null values ***\n";
-+foreach($valid_nulls as $null_value) {
-+echo "\nIteration ".$counter."\n";
-+var_export( $null_value );
-+echo "\n";
-+var_export( $null_value, FALSE);
-+echo "\n";
-+var_dump( var_export( $null_value, true) );
-+echo "\n";
-+$counter++;
-+}
-+
-+echo "\n*** Testing error conditions ***\n";
-+//Zero argument
-+var_export( var_export() );
-+
-+//arguments more than expected
-+var_export( var_export(TRUE, FALSE, TRUE) );
-+
-+echo "\n\nDone";
-+
-+
-+?>
-+--EXPECTF--
-+*** Testing var_export() with integer values ***
-+
-+*** Output for integer values ***
-+
-+Iteration 1
-+'0'
-+'0'
-+string(3) "'0'"
-+
-+
-+Iteration 2
-+'1'
-+'1'
-+string(3) "'1'"
-+
-+
-+Iteration 3
-+'-1'
-+'-1'
-+string(4) "'-1'"
-+
-+
-+Iteration 4
-+'-2147483648'
-+'-2147483648'
-+string(13) "'-2147483648'"
-+
-+
-+Iteration 5
-+'-2147483647'
-+'-2147483647'
-+string(13) "'-2147483647'"
-+
-+
-+Iteration 6
-+2147483647
-+2147483647
-+string(10) "2147483647"
-+
-+
-+Iteration 7
-+2147483640
-+2147483640
-+string(10) "2147483640"
-+
-+
-+Iteration 8
-+4667
-+4667
-+string(4) "4667"
-+
-+
-+Iteration 9
-+'0x12ab'
-+'0x12ab'
-+string(8) "'0x12ab'"
-+
-+
-+Iteration 10
-+'0Xfff'
-+'0Xfff'
-+string(7) "'0Xfff'"
-+
-+
-+Iteration 11
-+'0XFA'
-+'0XFA'
-+string(6) "'0XFA'"
-+
-+
-+Iteration 12
-+-2147483647-1
-+-2147483647-1
-+string(13) "-2147483647-1"
-+
-+
-+Iteration 13
-+'0x7fffffff'
-+'0x7fffffff'
-+string(12) "'0x7fffffff'"
-+
-+
-+Iteration 14
-+2147483647
-+2147483647
-+string(10) "2147483647"
-+
-+
-+Iteration 15
-+'0123'
-+'0123'
-+string(6) "'0123'"
-+
-+
-+Iteration 16
-+1
-+1
-+string(1) "1"
-+
-+
-+Iteration 17
-+-2147483647-1
-+-2147483647-1
-+string(13) "-2147483647-1"
-+
-+
-+Iteration 18
-+2147483647
-+2147483647
-+string(10) "2147483647"
-+
-+*** Testing var_export() with valid boolean values ***
-+
-+*** Output for boolean values ***
-+
-+Iteration 1
-+1
-+1
-+string(1) "1"
-+
-+
-+Iteration 2
-+true
-+true
-+string(4) "true"
-+
-+
-+Iteration 3
-+true
-+true
-+string(4) "true"
-+
-+
-+Iteration 4
-+0
-+0
-+string(1) "0"
-+
-+
-+Iteration 5
-+false
-+false
-+string(5) "false"
-+
-+
-+Iteration 6
-+false
-+false
-+string(5) "false"
-+
-+*** Testing var_export() with valid float values ***
-+
-+*** Output for float values ***
-+
-+Iteration 1
-+-2147483649.0
-+-2147483649.0
-+string(13) "-2147483649.0"
-+
-+
-+Iteration 2
-+2147483648.0
-+2147483648.0
-+string(12) "2147483648.0"
-+
-+
-+Iteration 3
-+-2147483649.0
-+-2147483649.0
-+string(13) "-2147483649.0"
-+
-+
-+Iteration 4
-+34359738369.0
-+34359738369.0
-+string(13) "34359738369.0"
-+
-+
-+Iteration 5
-+2147483649.0
-+2147483649.0
-+string(12) "2147483649.0"
-+
-+
-+Iteration 6
-+-2147483649.0
-+-2147483649.0
-+string(13) "-2147483649.0"
-+
-+
-+Iteration 7
-+0.0
-+0.0
-+string(3) "0.0"
-+
-+
-+Iteration 8
-+-0.10000000000000001
-+-0.10000000000000001
-+string(20) "-0.10000000000000001"
-+
-+
-+Iteration 9
-+10.0
-+10.0
-+string(4) "10.0"
-+
-+
-+Iteration 10
-+1050000.0
-+1050000.0
-+string(9) "1050000.0"
-+
-+
-+Iteration 11
-+100000.0
-+100000.0
-+string(8) "100000.0"
-+
-+
-+Iteration 12
-+1.0000000000000001E-5
-+1.0000000000000001E-5
-+string(21) "1.0000000000000001E-5"
-+
-+
-+Iteration 13
-+100000.0
-+100000.0
-+string(8) "100000.0"
-+
-+
-+Iteration 14
-+100000.0
-+100000.0
-+string(8) "100000.0"
-+
-+
-+Iteration 15
-+100000.0
-+100000.0
-+string(8) "100000.0"
-+
-+
-+Iteration 16
-+1.0000000000000001E-5
-+1.0000000000000001E-5
-+string(21) "1.0000000000000001E-5"
-+
-+
-+Iteration 17
-+5000000.0
-+5000000.0
-+string(9) "5000000.0"
-+
-+
-+Iteration 18
-+6.0000000000000006E-20
-+6.0000000000000006E-20
-+string(22) "6.0000000000000006E-20"
-+
-+
-+Iteration 19
-+5.0000000000000001E+42
-+5.0000000000000001E+42
-+string(22) "5.0000000000000001E+42"
-+
-+
-+Iteration 20
-+3.4000000000000001E-33
-+3.4000000000000001E-33
-+string(22) "3.4000000000000001E-33"
-+
-+*** Testing var_export() with valid strings ***
-+
-+*** Output for strings ***
-+
-+Iteration 1
-+''
-+''
-+string(2) "''"
-+
-+
-+Iteration 2
-+' '
-+' '
-+string(3) "' '"
-+
-+
-+Iteration 3
-+''
-+''
-+string(2) "''"
-+
-+
-+Iteration 4
-+' '
-+' '
-+string(3) "' '"
-+
-+
-+Iteration 5
-+'string'
-+'string'
-+string(8) "'string'"
-+
-+
-+Iteration 6
-+'string'
-+'string'
-+string(8) "'string'"
-+
-+
-+Iteration 7
-+'NULL'
-+'NULL'
-+string(6) "'NULL'"
-+
-+
-+Iteration 8
-+'null'
-+'null'
-+string(6) "'null'"
-+
-+
-+Iteration 9
-+'FALSE'
-+'FALSE'
-+string(7) "'FALSE'"
-+
-+
-+Iteration 10
-+'false'
-+'false'
-+string(7) "'false'"
-+
-+
-+Iteration 11
-+' '
-+' '
-+string(3) "' '"
-+
-+
-+Iteration 12
-+'' . "\0" . ''
-+'' . "\0" . ''
-+string(14) "'' . "\0" . ''"
-+
-+
-+Iteration 13
-+'\\0'
-+'\\0'
-+string(5) "'\\0'"
-+
-+
-+Iteration 14
-+'\\060'
-+'\\060'
-+string(7) "'\\060'"
-+
-+
-+Iteration 15
-+'8'
-+'8'
-+string(3) "'8'"
-+
-+*** Testing var_export() with valid arrays ***
-+
-+*** Output for arrays ***
-+
-+Iteration 1
-+array (
-+)
-+array (
-+)
-+string(9) "array (
-+)"
-+
-+
-+Iteration 2
-+array (
-+ 0 => NULL,
-+)
-+array (
-+ 0 => NULL,
-+)
-+string(22) "array (
-+ 0 => NULL,
-+)"
-+
-+
-+Iteration 3
-+array (
-+ 0 => NULL,
-+)
-+array (
-+ 0 => NULL,
-+)
-+string(22) "array (
-+ 0 => NULL,
-+)"
-+
-+
-+Iteration 4
-+array (
-+ 0 => true,
-+)
-+array (
-+ 0 => true,
-+)
-+string(22) "array (
-+ 0 => true,
-+)"
-+
-+
-+Iteration 5
-+array (
-+ 0 => '',
-+)
-+array (
-+ 0 => '',
-+)
-+string(20) "array (
-+ 0 => '',
-+)"
-+
-+
-+Iteration 6
-+array (
-+ 0 => '',
-+)
-+array (
-+ 0 => '',
-+)
-+string(20) "array (
-+ 0 => '',
-+)"
-+
-+
-+Iteration 7
-+array (
-+ 0 =>
-+ array (
-+ ),
-+ 1 =>
-+ array (
-+ ),
-+)
-+array (
-+ 0 =>
-+ array (
-+ ),
-+ 1 =>
-+ array (
-+ ),
-+)
-+string(55) "array (
-+ 0 =>
-+ array (
-+ ),
-+ 1 =>
-+ array (
-+ ),
-+)"
-+
-+
-+Iteration 8
-+array (
-+ 0 =>
-+ array (
-+ 0 => 1,
-+ 1 => 2,
-+ ),
-+ 1 =>
-+ array (
-+ 0 => 'a',
-+ 1 => 'b',
-+ ),
-+)
-+array (
-+ 0 =>
-+ array (
-+ 0 => 1,
-+ 1 => 2,
-+ ),
-+ 1 =>
-+ array (
-+ 0 => 'a',
-+ 1 => 'b',
-+ ),
-+)
-+string(107) "array (
-+ 0 =>
-+ array (
-+ 0 => 1,
-+ 1 => 2,
-+ ),
-+ 1 =>
-+ array (
-+ 0 => 'a',
-+ 1 => 'b',
-+ ),
-+)"
-+
-+
-+Iteration 9
-+array (
-+ 1 => 'One',
-+)
-+array (
-+ 1 => 'One',
-+)
-+string(23) "array (
-+ 1 => 'One',
-+)"
-+
-+
-+Iteration 10
-+array (
-+ 'test' => 'is_array',
-+)
-+array (
-+ 'test' => 'is_array',
-+)
-+string(33) "array (
-+ 'test' => 'is_array',
-+)"
-+
-+
-+Iteration 11
-+array (
-+ 0 => 0,
-+)
-+array (
-+ 0 => 0,
-+)
-+string(19) "array (
-+ 0 => 0,
-+)"
-+
-+
-+Iteration 12
-+array (
-+ 0 => -1,
-+)
-+array (
-+ 0 => -1,
-+)
-+string(20) "array (
-+ 0 => -1,
-+)"
-+
-+
-+Iteration 13
-+array (
-+ 0 => 10.5,
-+ 1 => 5.5999999999999996,
-+)
-+array (
-+ 0 => 10.5,
-+ 1 => 5.5999999999999996,
-+)
-+string(49) "array (
-+ 0 => 10.5,
-+ 1 => 5.5999999999999996,
-+)"
-+
-+
-+Iteration 14
-+array (
-+ 0 => 'string',
-+ 1 => 'test',
-+)
-+array (
-+ 0 => 'string',
-+ 1 => 'test',
-+)
-+string(41) "array (
-+ 0 => 'string',
-+ 1 => 'test',
-+)"
-+
-+
-+Iteration 15
-+array (
-+ 0 => 'string',
-+ 1 => 'test',
-+)
-+array (
-+ 0 => 'string',
-+ 1 => 'test',
-+)
-+string(41) "array (
-+ 0 => 'string',
-+ 1 => 'test',
-+)"
-+
-+*** Testing var_export() with valid objects ***
-+
-+*** Output for objects ***
-+
-+Iteration 1
-+stdClass::__set_state(array(
-+))
-+stdClass::__set_state(array(
-+))
-+string(31) "stdClass::__set_state(array(
-+))"
-+
-+
-+Iteration 2
-+foo::__set_state(array(
-+))
-+foo::__set_state(array(
-+))
-+string(26) "foo::__set_state(array(
-+))"
-+
-+
-+Iteration 3
-+concreteClass::__set_state(array(
-+))
-+concreteClass::__set_state(array(
-+))
-+string(36) "concreteClass::__set_state(array(
-+))"
-+
-+
-+Iteration 4
-+Value::__set_state(array(
-+ 'vars' =>
-+ array (
-+ ),
-+))
-+Value::__set_state(array(
-+ 'vars' =>
-+ array (
-+ ),
-+))
-+string(57) "Value::__set_state(array(
-+ 'vars' =>
-+ array (
-+ ),
-+))"
-+
-+
-+Iteration 5
-+myClass::__set_state(array(
-+ 'foo_object' =>
-+ foo::__set_state(array(
-+ )),
-+ 'public_var' => 10,
-+ 'public_var1' =>
-+ foo::__set_state(array(
-+ )),
-+ 'private_var' =>
-+ foo::__set_state(array(
-+ )),
-+ 'protected_var' => NULL,
-+ 'proected_var' =>
-+ foo::__set_state(array(
-+ )),
-+))
-+myClass::__set_state(array(
-+ 'foo_object' =>
-+ foo::__set_state(array(
-+ )),
-+ 'public_var' => 10,
-+ 'public_var1' =>
-+ foo::__set_state(array(
-+ )),
-+ 'private_var' =>
-+ foo::__set_state(array(
-+ )),
-+ 'protected_var' => NULL,
-+ 'proected_var' =>
-+ foo::__set_state(array(
-+ )),
-+))
-+string(293) "myClass::__set_state(array(
-+ 'foo_object' =>
-+ foo::__set_state(array(
-+ )),
-+ 'public_var' => 10,
-+ 'public_var1' =>
-+ foo::__set_state(array(
-+ )),
-+ 'private_var' =>
-+ foo::__set_state(array(
-+ )),
-+ 'protected_var' => NULL,
-+ 'proected_var' =>
-+ foo::__set_state(array(
-+ )),
-+))"
-+
-+
-+Iteration 6
-+myClass::__set_state(array(
-+ 'foo_object' =>
-+ foo::__set_state(array(
-+ )),
-+ 'public_var' => 10,
-+ 'public_var1' =>
-+ foo::__set_state(array(
-+ )),
-+ 'private_var' =>
-+ foo::__set_state(array(
-+ )),
-+ 'protected_var' => NULL,
-+ 'proected_var' =>
-+ foo::__set_state(array(
-+ )),
-+))
-+myClass::__set_state(array(
-+ 'foo_object' =>
-+ foo::__set_state(array(
-+ )),
-+ 'public_var' => 10,
-+ 'public_var1' =>
-+ foo::__set_state(array(
-+ )),
-+ 'private_var' =>
-+ foo::__set_state(array(
-+ )),
-+ 'protected_var' => NULL,
-+ 'proected_var' =>
-+ foo::__set_state(array(
-+ )),
-+))
-+string(293) "myClass::__set_state(array(
-+ 'foo_object' =>
-+ foo::__set_state(array(
-+ )),
-+ 'public_var' => 10,
-+ 'public_var1' =>
-+ foo::__set_state(array(
-+ )),
-+ 'private_var' =>
-+ foo::__set_state(array(
-+ )),
-+ 'protected_var' => NULL,
-+ 'proected_var' =>
-+ foo::__set_state(array(
-+ )),
-+))"
-+
-+
-+Iteration 7
-+foo::__set_state(array(
-+))
-+foo::__set_state(array(
-+))
-+string(26) "foo::__set_state(array(
-+))"
-+
-+
-+Iteration 8
-+foo::__set_state(array(
-+))
-+foo::__set_state(array(
-+))
-+string(26) "foo::__set_state(array(
-+))"
-+
-+
-+Iteration 9
-+foo::__set_state(array(
-+))
-+foo::__set_state(array(
-+))
-+string(26) "foo::__set_state(array(
-+))"
-+
-+
-+Iteration 10
-+Value::__set_state(array(
-+ 'vars' =>
-+ array (
-+ ),
-+))
-+Value::__set_state(array(
-+ 'vars' =>
-+ array (
-+ ),
-+))
-+string(57) "Value::__set_state(array(
-+ 'vars' =>
-+ array (
-+ ),
-+))"
-+
-+
-+Iteration 11
-+concreteClass::__set_state(array(
-+))
-+concreteClass::__set_state(array(
-+))
-+string(36) "concreteClass::__set_state(array(
-+))"
-+
-+*** Testing var_export() with valid null values ***
-+
-+*** Output for null values ***
-+
-+Iteration 1
-+NULL
-+NULL
-+string(4) "NULL"
-+
-+
-+Iteration 2
-+NULL
-+NULL
-+string(4) "NULL"
-+
-+
-+Iteration 3
-+NULL
-+NULL
-+string(4) "NULL"
-+
-+
-+*** Testing error conditions ***
-+
-+Warning: var_export() expects at least 1 parameter, 0 given in %s on line %d
-+NULL
-+Warning: var_export() expects at most 2 parameters, 3 given in %s on line %d
-+NULL
-+
-+Done
-diff --git a/ext/standard/tests/general_functions/var_export_basic1.phpt b/ext/standard/tests/general_functions/var_export_basic1.phpt
-index 2dfd28785bc8..a7d3142ddc29 100644
---- a/ext/standard/tests/general_functions/var_export_basic1.phpt
-+++ b/ext/standard/tests/general_functions/var_export_basic1.phpt
-@@ -1,5 +1,11 @@
- --TEST--
- Test var_export() function with integer values
-+--SKIPIF--
-+<?php
-+if (PHP_INT_SIZE < 8) {
-+ die("skip 64-bit only");
-+}
-+?>
- --FILE--
- <?php
- /* Prototype : mixed var_export(mixed var [, bool return])
-diff --git a/ext/standard/tests/general_functions/var_export_basic1_32.phpt b/ext/standard/tests/general_functions/var_export_basic1_32.phpt
-new file mode 100644
-index 000000000000..95596800d690
---- /dev/null
-+++ b/ext/standard/tests/general_functions/var_export_basic1_32.phpt
-@@ -0,0 +1,147 @@
-+--TEST--
-+Test var_export() function with integer values
-+--SKIPIF--
-+<?php
-+if (PHP_INT_SIZE > 4) {
-+ die("skip 32-bit only");
-+}
-+?>
-+--FILE--
-+<?php
-+/* Prototype : mixed var_export(mixed var [, bool return])
-+ * Description: Outputs or returns a string representation of a variable
-+ * Source code: ext/standard/var.c
-+ * Alias to functions:
-+ */
-+
-+echo "*** Testing var_export() with integer values ***\n";
-+// different integer vlaues
-+$valid_ints = array(
-+ '0' => '0',
-+ '1' => '1',
-+ '-1' => '-1',
-+ '-2147483648' => '-2147483648', // max negative integer value
-+ '-2147483647' => '-2147483647',
-+ '2147483647' => 2147483647, // max positive integer value
-+ '2147483640' => 2147483640,
-+ '0x123B' => 0x123B, // integer as hexadecimal
-+ "'0x12ab'" => '0x12ab',
-+ "'0Xfff'" => '0Xfff',
-+ "'0XFA'" => '0XFA',
-+ "-0x80000000" => -0x7FFFFFFF - 1, // max negative integer as hexadecimal
-+ "'0x7fffffff'" => '0x7fffffff', // max positive integer as hexadecimal
-+ "0x7FFFFFFF" => 0x7FFFFFFF, // max positive integer as hexadecimal
-+ "'0123'" => '0123', // integer as octal
-+ "01912" => 01, // should be quivalent to octal 1
-+ "-020000000000" => -017777777777 - 1, // max negative integer as octal
-+ "017777777777" => 017777777777, // max positive integer as octal
-+);
-+
-+/* Loop to check for above integer values with var_export() */
-+echo "\n*** Output for integer values ***\n";
-+foreach($valid_ints as $key => $int_value) {
-+ echo "\n-- Iteration: $key --\n";
-+ var_export( $int_value );
-+ echo "\n";
-+ var_export( $int_value, FALSE);
-+ echo "\n";
-+ var_dump( var_export( $int_value, TRUE) );
-+}
-+
-+?>
-+===DONE===
-+--EXPECT--
-+*** Testing var_export() with integer values ***
-+
-+*** Output for integer values ***
-+
-+-- Iteration: 0 --
-+'0'
-+'0'
-+string(3) "'0'"
-+
-+-- Iteration: 1 --
-+'1'
-+'1'
-+string(3) "'1'"
-+
-+-- Iteration: -1 --
-+'-1'
-+'-1'
-+string(4) "'-1'"
-+
-+-- Iteration: -2147483648 --
-+'-2147483648'
-+'-2147483648'
-+string(13) "'-2147483648'"
-+
-+-- Iteration: -2147483647 --
-+'-2147483647'
-+'-2147483647'
-+string(13) "'-2147483647'"
-+
-+-- Iteration: 2147483647 --
-+2147483647
-+2147483647
-+string(10) "2147483647"
-+
-+-- Iteration: 2147483640 --
-+2147483640
-+2147483640
-+string(10) "2147483640"
-+
-+-- Iteration: 0x123B --
-+4667
-+4667
-+string(4) "4667"
-+
-+-- Iteration: '0x12ab' --
-+'0x12ab'
-+'0x12ab'
-+string(8) "'0x12ab'"
-+
-+-- Iteration: '0Xfff' --
-+'0Xfff'
-+'0Xfff'
-+string(7) "'0Xfff'"
-+
-+-- Iteration: '0XFA' --
-+'0XFA'
-+'0XFA'
-+string(6) "'0XFA'"
-+
-+-- Iteration: -0x80000000 --
-+-2147483647-1
-+-2147483647-1
-+string(13) "-2147483647-1"
-+
-+-- Iteration: '0x7fffffff' --
-+'0x7fffffff'
-+'0x7fffffff'
-+string(12) "'0x7fffffff'"
-+
-+-- Iteration: 0x7FFFFFFF --
-+2147483647
-+2147483647
-+string(10) "2147483647"
-+
-+-- Iteration: '0123' --
-+'0123'
-+'0123'
-+string(6) "'0123'"
-+
-+-- Iteration: 01912 --
-+1
-+1
-+string(1) "1"
-+
-+-- Iteration: -020000000000 --
-+-2147483647-1
-+-2147483647-1
-+string(13) "-2147483647-1"
-+
-+-- Iteration: 017777777777 --
-+2147483647
-+2147483647
-+string(10) "2147483647"
-+===DONE===
-From c421d9afeca772968e185092950b70fdcd98f1e6 Mon Sep 17 00:00:00 2001
-From: Remi Collet <remi@php.net>
-Date: Tue, 19 Mar 2019 16:15:14 +0100
-Subject: [PATCH] fix test for upcoming pcre2 10.33
-
-"group name ..." => "subpattern name ..."
----
- ext/pcre/tests/bug37911.phpt | 2 +-
- ext/pcre/tests/match_flags3.phpt | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/ext/pcre/tests/bug37911.phpt b/ext/pcre/tests/bug37911.phpt
-index 2b7481a464de..4f3cb3574d08 100644
---- a/ext/pcre/tests/bug37911.phpt
-+++ b/ext/pcre/tests/bug37911.phpt
-@@ -37,5 +37,5 @@ array(3) {
- string(4) "blub"
- }
-
--Warning: preg_replace_callback(): Compilation failed: group name must start with a non-digit at offset %d in %sbug37911.php on line %d
-+Warning: preg_replace_callback(): Compilation failed: %s name must start with a non-digit at offset %d in %sbug37911.php on line %d
- NULL
-diff --git a/ext/pcre/tests/match_flags3.phpt b/ext/pcre/tests/match_flags3.phpt
-index 695f0c1e81b5..6511c715e11e 100644
---- a/ext/pcre/tests/match_flags3.phpt
-+++ b/ext/pcre/tests/match_flags3.phpt
-@@ -41,5 +41,5 @@ array(1) {
- }
- }
-
--Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset %d in %smatch_flags3.php on line %d
-+Warning: preg_match(): Compilation failed: %s name must start with a non-digit at offset %d in %smatch_flags3.php on line %d
- bool(false)
-From 2e9dccef78d169be9a4a37c813e0b5d624bd5ac7 Mon Sep 17 00:00:00 2001
-From: Remi Collet <remi@php.net>
-Date: Fri, 22 Mar 2019 15:00:31 +0100
-Subject: [PATCH] ensure pcre.jit=1 for these tests
-
----
- ext/pcre/tests/preg_match_error3.phpt | 3 +++
- ext/standard/tests/general_functions/ini_get_all.phpt | 6 ++++++
- 2 files changed, 9 insertions(+)
-
-diff --git a/ext/pcre/tests/preg_match_error3.phpt b/ext/pcre/tests/preg_match_error3.phpt
-index 2e91e24466ba..8b9d59fc58bd 100644
---- a/ext/pcre/tests/preg_match_error3.phpt
-+++ b/ext/pcre/tests/preg_match_error3.phpt
-@@ -5,6 +5,9 @@ Test preg_match() function : error conditions - jit stacklimit exhausted
- if (ini_get("pcre.jit") === FALSE) {
- die("skip no jit built");
- }
-+?>
-+--INI--
-+pcre.jit=1
- --FILE--
- <?php
- var_dump(preg_match('/^(foo)+$/', str_repeat('foo', 1024*8192)));
-diff --git a/ext/standard/tests/general_functions/ini_get_all.phpt b/ext/standard/tests/general_functions/ini_get_all.phpt
-index b97a945ee588..72ce86deaad4 100644
---- a/ext/standard/tests/general_functions/ini_get_all.phpt
-+++ b/ext/standard/tests/general_functions/ini_get_all.phpt
-@@ -1,6 +1,7 @@
- --TEST--
- ini_get_all() tests
- --INI--
-+pcre.jit=1
- pcre.backtrack_limit=1000000
- pcre.recursion_limit=100000
- --SKIPIF--
-
-From e68fd40e22e695e17d94da24a1c0ca0087a61898 Mon Sep 17 00:00:00 2001
-From: Remi Collet <remi@php.net>
-Date: Fri, 22 Mar 2019 15:31:36 +0100
-Subject: [PATCH] ensure pcre.jit=1 for this test
-
----
- ext/pcre/tests/grep2.phpt | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/ext/pcre/tests/grep2.phpt b/ext/pcre/tests/grep2.phpt
-index a739cb60ac3b..4c6f9b155f26 100644
---- a/ext/pcre/tests/grep2.phpt
-+++ b/ext/pcre/tests/grep2.phpt
-@@ -2,6 +2,8 @@
- preg_grep() 2nd test
- --SKIPIF--
- <?php if (!PCRE_JIT_SUPPORT) die("skip no pcre jit support"); ?>
-+--INI--
-+pcre.jit=1
- --FILE--
- <?php
-
diff --git a/php.spec b/php.spec
index dcd4cdc..7f9e739 100644
--- a/php.spec
+++ b/php.spec
@@ -125,14 +125,14 @@
%global db_devel libdb-devel
%endif
-%global upver 7.3.4
-#global rcver RC1
-#global lower RC1
+%global upver 7.3.5
+%global rcver RC1
+%global lower RC1
Summary: PHP scripting language for creating dynamic web sites
-Name: %{?scl_prefix}php
+Name: %{?scl_prefix}php
Version: %{upver}%{?rcver:~%{lower}}
-Release: 3%{?dist}
+Release: 1%{?dist}
# All files licensed under PHP version 3.01, except
# Zend is licensed under Zend
# TSRM is licensed under BSD
@@ -187,8 +187,6 @@ Patch48: php-7.3.3-pdooci.patch
Patch91: php-7.2.0-oci8conf.patch
# Upstream fixes (100+)
-Patch100: php-upstream.patch
-Patch101: php-bug77653.patch
# Security fixes (200+)
@@ -942,8 +940,6 @@ low-level PHP extension for the libsodium cryptographic library.
%patch91 -p1 -b .remi-oci8
# upstream patches
-%patch100 -p1 -b .up
-%patch101 -p1 -b .bug77653
# security patches
@@ -1886,6 +1882,9 @@ fi
%changelog
+* Tue Apr 16 2019 Remi Collet <remi@remirepo.net> - 7.3.5~RC1-1
+- update to 7.3.5RC1
+
* Fri Apr 5 2019 Remi Collet <remi@remirepo.net> - 7.3.4-3
- build with system oniguruma5