summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--2707.patch145
-rw-r--r--php-pecl-swoole4.spec10
2 files changed, 154 insertions, 1 deletions
diff --git a/2707.patch b/2707.patch
new file mode 100644
index 0000000..4614be2
--- /dev/null
+++ b/2707.patch
@@ -0,0 +1,145 @@
+From b7514a7615b01aa20e0be73f7e13655a68fd61ea Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Tue, 23 Jul 2019 14:37:46 +0200
+Subject: [PATCH] fix for stream changes in 7.4.0beta1
+
+---
+ swoole_runtime.cc | 17 +++++++++++++++++
+ thirdparty/php/streams/plain_wrapper.c | 21 +++++++++++++++++++++
+ 2 files changed, 38 insertions(+)
+
+diff --git a/swoole_runtime.cc b/swoole_runtime.cc
+index eb6664a61..dc0fb9ad3 100644
+--- a/swoole_runtime.cc
++++ b/swoole_runtime.cc
+@@ -38,8 +38,13 @@ static PHP_FUNCTION(swoole_user_func_handler);
+ }
+
+ static int socket_set_option(php_stream *stream, int option, int value, void *ptrparam);
++#if PHP_VERSION_ID < 70400
+ static size_t socket_read(php_stream *stream, char *buf, size_t count);
+ static size_t socket_write(php_stream *stream, const char *buf, size_t count);
++#else
++static ssize_t socket_read(php_stream *stream, char *buf, size_t count);
++static ssize_t socket_write(php_stream *stream, const char *buf, size_t count);
++#endif
+ static int socket_flush(php_stream *stream);
+ static int socket_close(php_stream *stream, int close_handle);
+ static int socket_stat(php_stream *stream, php_stream_statbuf *ssb);
+@@ -259,7 +264,11 @@ static inline char *parse_ip_address_ex(const char *str, size_t str_len, int *po
+ return host;
+ }
+
++#if PHP_VERSION_ID < 70400
+ static size_t socket_write(php_stream *stream, const char *buf, size_t count)
++#else
++static ssize_t socket_write(php_stream *stream, const char *buf, size_t count)
++#endif
+ {
+ php_swoole_netstream_data_t *abstract = (php_swoole_netstream_data_t *) stream->abstract;
+ if (UNEXPECTED(!abstract))
+@@ -277,15 +286,21 @@ static size_t socket_write(php_stream *stream, const char *buf, size_t count)
+ {
+ php_stream_notify_progress_increment(PHP_STREAM_CONTEXT(stream), didwrite, 0);
+ }
++#if PHP_VERSION_ID < 70400
+ if (didwrite < 0)
+ {
+ didwrite = 0;
+ }
++#endif
+
+ return didwrite;
+ }
+
++#if PHP_VERSION_ID < 70400
+ static size_t socket_read(php_stream *stream, char *buf, size_t count)
++#else
++static ssize_t socket_read(php_stream *stream, char *buf, size_t count)
++#endif
+ {
+ php_swoole_netstream_data_t *abstract = (php_swoole_netstream_data_t *) stream->abstract;
+ if (UNEXPECTED(!abstract))
+@@ -309,10 +324,12 @@ static size_t socket_read(php_stream *stream, char *buf, size_t count)
+ php_stream_notify_progress_increment(PHP_STREAM_CONTEXT(stream), nr_bytes, 0);
+ }
+
++#if PHP_VERSION_ID < 70400
+ if (nr_bytes < 0)
+ {
+ nr_bytes = 0;
+ }
++#endif
+
+ return nr_bytes;
+ }
+diff --git a/thirdparty/php/streams/plain_wrapper.c b/thirdparty/php/streams/plain_wrapper.c
+index f4ad4ed9b..6751b6212 100644
+--- a/thirdparty/php/streams/plain_wrapper.c
++++ b/thirdparty/php/streams/plain_wrapper.c
+@@ -59,8 +59,13 @@ extern int php_get_gid_by_name(const char *name, gid_t *gid);
+ # define PLAIN_WRAP_BUF_SIZE(st) (st)
+ #endif
+
++#if PHP_VERSION_ID < 70400
+ static size_t php_stdiop_write(php_stream *stream, const char *buf, size_t count);
+ static size_t php_stdiop_read(php_stream *stream, char *buf, size_t count);
++#else
++static ssize_t php_stdiop_write(php_stream *stream, const char *buf, size_t count);
++static ssize_t php_stdiop_read(php_stream *stream, char *buf, size_t count);
++#endif
+ static int sw_php_stdiop_close(php_stream *stream, int close_handle);
+ static int php_stdiop_stat(php_stream *stream, php_stream_statbuf *ssb);
+ static int php_stdiop_flush(php_stream *stream);
+@@ -216,7 +221,11 @@ static php_stream *_sw_php_stream_fopen_from_fd_int(int fd, const char *mode, co
+ return php_stream_alloc_rel(&sw_php_stream_stdio_ops, self, persistent_id, mode);
+ }
+
++#if PHP_VERSION_ID < 70400
+ static size_t php_stdiop_write(php_stream *stream, const char *buf, size_t count)
++#else
++static ssize_t php_stdiop_write(php_stream *stream, const char *buf, size_t count)
++#endif
+ {
+ php_stdio_stream_data *data = (php_stdio_stream_data*) stream->abstract;
+
+@@ -225,11 +234,15 @@ static size_t php_stdiop_write(php_stream *stream, const char *buf, size_t count
+ if (data->fd >= 0)
+ {
+ int bytes_written = write(data->fd, buf, count);
++#if PHP_VERSION_ID < 70400
+ if (bytes_written < 0)
+ {
+ return 0;
+ }
+ return (size_t) bytes_written;
++#else
++ return bytes_written;
++#endif
+ }
+ else
+ {
+@@ -237,7 +250,11 @@ static size_t php_stdiop_write(php_stream *stream, const char *buf, size_t count
+ }
+ }
+
++#if PHP_VERSION_ID < 70400
+ static size_t php_stdiop_read(php_stream *stream, char *buf, size_t count)
++#else
++static ssize_t php_stdiop_read(php_stream *stream, char *buf, size_t count)
++#endif
+ {
+ php_stdio_stream_data *data = (php_stdio_stream_data*) stream->abstract;
+ size_t ret;
+@@ -737,7 +754,11 @@ static int php_stdiop_set_option(php_stream *stream, int option, int value, void
+ /* }}} */
+
+ /* {{{ plain files opendir/readdir implementation */
++#if PHP_VERSION_ID < 70400
+ static size_t php_plain_files_dirstream_read(php_stream *stream, char *buf, size_t count)
++#else
++static ssize_t php_plain_files_dirstream_read(php_stream *stream, char *buf, size_t count)
++#endif
+ {
+ DIR *dir = (DIR*) stream->abstract;
+ struct dirent *result;
diff --git a/php-pecl-swoole4.spec b/php-pecl-swoole4.spec
index 0622d36..04af961 100644
--- a/php-pecl-swoole4.spec
+++ b/php-pecl-swoole4.spec
@@ -31,13 +31,15 @@
Summary: PHP's asynchronous concurrent distributed networking framework
Name: %{?sub_prefix}php-pecl-%{pecl_name}4
Version: 4.4.1
-Release: 1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
+Release: 2%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
# Extension is ASL 2.0
# Hiredis is BSD
License: ASL 2.0 and BSD
URL: http://pecl.php.net/package/%{pecl_name}
Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz
+Patch0: https://patch-diff.githubusercontent.com/raw/swoole/swoole-src/pull/2707.patch
+
%if 0%{?rhel} == 6
BuildRequires: devtoolset-6-toolchain
%else
@@ -160,6 +162,8 @@ sed \
cd NTS
+%patch0 -p1
+
# Sanity check, really often broken
extver=$(sed -n '/#define SWOOLE_VERSION /{s/.* "//;s/".*$//;p}' include/swoole.h)
if test "x${extver}" != "x%{version}%{?prever:-%{prever}}"; then
@@ -327,6 +331,10 @@ cd ../ZTS
%changelog
+* Tue Jul 23 2019 Remi Collet <remi@remirepo.net> - 4.4.1-2
+- rebuild for 7.4.0beta1
+- add patch from https://github.com/swoole/swoole-src/pull/2707
+
* Tue Jul 16 2019 Remi Collet <remi@remirepo.net> - 4.4.1-1
- update to 4.4.1