diff options
-rw-r--r-- | php-5.4.11-conv.patch | 29 | ||||
-rw-r--r-- | php-5.4.11-select.patch | 68 | ||||
-rw-r--r-- | php-5.4.11-sockets.patch | 53 | ||||
-rw-r--r-- | php54.spec | 17 |
4 files changed, 166 insertions, 1 deletions
diff --git a/php-5.4.11-conv.patch b/php-5.4.11-conv.patch new file mode 100644 index 0000000..a105d76 --- /dev/null +++ b/php-5.4.11-conv.patch @@ -0,0 +1,29 @@ +From e67a2b9e471a7bc0b774b9056bb38745b7187969 Mon Sep 17 00:00:00 2001 +From: Remi Collet <remi@php.net> +Date: Mon, 11 Feb 2013 09:10:51 +0100 +Subject: [PATCH] Fixed bug #64142 (dval to lval different behavior on ppc64) + +See discussion on internals +http://marc.info/?t=136042277700003&r=1&w=2 +--- + NEWS | 3 +++ + Zend/zend_operators.h | 3 ++- + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/Zend/zend_operators.h b/Zend/zend_operators.h +index 02a96dd..047b92e 100644 +--- a/Zend/zend_operators.h ++++ b/Zend/zend_operators.h +@@ -79,7 +79,8 @@ static zend_always_inline long zend_dval_to_lval(double d) + #else + static zend_always_inline long zend_dval_to_lval(double d) + { +- if (d > LONG_MAX) { ++ /* >= as (double)LONG_MAX is outside signed range */ ++ if (d >= LONG_MAX) { + return (long)(unsigned long) d; + } + return (long) d; +-- +1.7.11.5 + diff --git a/php-5.4.11-select.patch b/php-5.4.11-select.patch new file mode 100644 index 0000000..3c2a9a3 --- /dev/null +++ b/php-5.4.11-select.patch @@ -0,0 +1,68 @@ +From 0cea9e6843384c6c0ebb52047c42b0431a4f5660 Mon Sep 17 00:00:00 2001 +From: Remi Collet <remi@php.net> +Date: Fri, 1 Feb 2013 19:23:25 +0100 +Subject: [PATCH] Fixed bug #64128 buit-in web server is broken on ppc64. + +fdset management using bit operator is broken on non-x86 arch +and cause built-in server the enter an infinite loop of "select" +and never handle any request. +--- + NEWS | 3 +++ + sapi/cli/php_cli_server.c | 30 +++++++++++++----------------- + 2 files changed, 16 insertions(+), 17 deletions(-) + +diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c +index 28aba19..6a4e7c5 100644 +--- a/sapi/cli/php_cli_server.c ++++ b/sapi/cli/php_cli_server.c +@@ -710,10 +710,9 @@ static void php_cli_server_poller_remove(php_cli_server_poller *poller, int mode + if (fd == poller->max_fd) { + while (fd > 0) { + fd--; +- if (((unsigned int *)&poller->rfds)[fd / (8 * sizeof(unsigned int))] || ((unsigned int *)&poller->wfds)[fd / (8 * sizeof(unsigned int))]) { ++ if (PHP_SAFE_FD_ISSET(fd, &poller->rfds) || PHP_SAFE_FD_ISSET(fd, &poller->wfds)) { + break; + } +- fd -= fd % (8 * sizeof(unsigned int)); + } + poller->max_fd = fd; + } +@@ -772,23 +771,20 @@ static int php_cli_server_poller_iter_on_active(php_cli_server_poller *poller, v + } + + #else +- php_socket_t fd = 0; ++ php_socket_t fd; + const php_socket_t max_fd = poller->max_fd; +- const unsigned int *pr = (unsigned int *)&poller->active.rfds, +- *pw = (unsigned int *)&poller->active.wfds, +- *e = pr + (max_fd + (8 * sizeof(unsigned int)) - 1) / (8 * sizeof(unsigned int)); +- unsigned int mask; +- while (pr < e && fd <= max_fd) { +- for (mask = 1; mask; mask <<= 1, fd++) { +- int events = (*pr & mask ? POLLIN: 0) | (*pw & mask ? POLLOUT: 0); +- if (events) { +- if (SUCCESS != callback(opaque, fd, events)) { +- retval = FAILURE; +- } +- } ++ ++ for (fd=0 ; fd<=max_fd ; fd++) { ++ if (PHP_SAFE_FD_ISSET(fd, &poller->active.rfds)) { ++ if (SUCCESS != callback(opaque, fd, POLLIN)) { ++ retval = FAILURE; ++ } ++ } ++ if (PHP_SAFE_FD_ISSET(fd, &poller->active.wfds)) { ++ if (SUCCESS != callback(opaque, fd, POLLOUT)) { ++ retval = FAILURE; ++ } + } +- pr++; +- pw++; + } + #endif + return retval; +-- +1.7.11.5 + diff --git a/php-5.4.11-sockets.patch b/php-5.4.11-sockets.patch new file mode 100644 index 0000000..1fc375b --- /dev/null +++ b/php-5.4.11-sockets.patch @@ -0,0 +1,53 @@ +From f7362232f47a9fcaf0162087dbbbdb0b4562b59d Mon Sep 17 00:00:00 2001 +From: Remi Collet <remi@php.net> +Date: Thu, 31 Jan 2013 14:22:56 +0100 +Subject: [PATCH] Fix failed test: sys_errlist[116] have changed on recent + glibc (Fedora 18) old: Stale NFS file handle new: Stale + file handle + +--- + ext/sockets/tests/socket_strerror.phpt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ext/sockets/tests/socket_strerror.phpt b/ext/sockets/tests/socket_strerror.phpt +index 7985fad..fb9925e 100644 +--- a/ext/sockets/tests/socket_strerror.phpt ++++ b/ext/sockets/tests/socket_strerror.phpt +@@ -138,7 +138,7 @@ string(12) "Host is down" + string(16) "No route to host" + string(29) "Operation already in progress" + string(25) "Operation now in progress" +-string(21) "Stale NFS file handle" ++string(%d) "Stale%sfile handle" + string(24) "Structure needs cleaning" + string(27) "Not a XENIX named type file" + string(29) "No XENIX semaphores available" +-- +1.7.11.5 + +From 9d75bf35e96bfc5c8d629ecef6807a90b4c98be7 Mon Sep 17 00:00:00 2001 +From: Remi Collet <remi@php.net> +Date: Thu, 31 Jan 2013 14:38:39 +0100 +Subject: [PATCH] Mark this test as requiring internet connecion. + +--- + ext/sockets/tests/socket_bind.phpt | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/ext/sockets/tests/socket_bind.phpt b/ext/sockets/tests/socket_bind.phpt +index 15181e6..7ea2df8 100644 +--- a/ext/sockets/tests/socket_bind.phpt ++++ b/ext/sockets/tests/socket_bind.phpt +@@ -8,6 +8,9 @@ fa@php.net + if (!extension_loaded('sockets')) { + die('skip - sockets extension not available.'); + } ++ if (getenv("SKIP_ONLINE_TESTS")) { ++ die("skip test requiring internet connection"); ++ } + ?> + --FILE-- + <?php +-- +1.7.11.5 + @@ -69,7 +69,7 @@ Version: 5.4.11 %if 0%{?snapdate:1}%{?rcver:1} Release: 0.5.%{?snapdate}%{?rcver}%{?dist} %else -Release: 1%{?dist} +Release: 2%{?dist} %endif # All files licensed under PHP version 3.01, except # Zend is licensed under Zend @@ -103,6 +103,10 @@ Patch8: php-5.4.7-libdb.patch # Fixes for extension modules # https://bugs.php.net/63171 no odbc call during timeout Patch21: php-5.4.7-odbctimer.patch +# https://bugs.php.net/64128 buit-in web server is broken on ppc64 +Patch22: php-5.4.11-select.patch +# https://bugs.php.net/64142 dval to lval issue on ppc64 +Patch23: php-5.4.11-conv.patch # Functional changes Patch40: php-5.4.0-dlopen.patch @@ -120,6 +124,7 @@ Patch46: php-5.4.9-fixheader.patch Patch47: php-5.4.9-phpinfo.patch # Fixes for tests +Patch50: php-5.4.11-sockets.patch # RC Patch Patch91: php-5.3.7-oci8conf.patch @@ -757,6 +762,8 @@ httpd -V | grep -q 'threaded:.*yes' && exit 1 rm -f ext/json/utf8_to_utf16.* %patch21 -p1 -b .odbctimer +%patch22 -p1 -b .select +%patch23 -p1 -b .conv %patch40 -p1 -b .dlopen %patch41 -p1 -b .easter @@ -772,6 +779,7 @@ rm -f ext/json/utf8_to_utf16.* %endif %patch46 -p1 -b .fixheader %patch47 -p1 -b .phpinfo +%patch50 -p1 -b .sockets %patch91 -p1 -b .remi-oci8 @@ -1610,6 +1618,13 @@ fi %changelog +* Wed Feb 13 2013 Remi Collet <rcollet@redhat.com> 5.4.11-2 +- upstream patch (5.4.13) to fix dval to lval conversion + https://bugs.php.net/64142 +- upstream patch (5.4.13) for 2 failed tests +- fix buit-in web server on ppc64 (fdset usage) + https://bugs.php.net/64128 + * Wed Jan 16 2013 Remi Collet <rcollet@redhat.com> 5.4.11-1 - update to 5.4.11 - fix php.conf to allow MultiViews managed by php scripts |