summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore7
-rw-r--r--07c762243598947e932502e92674df7fc6d01204.patch129
-rw-r--r--REFLECTION24
-rw-r--r--php-pecl-swoole.spec40
4 files changed, 189 insertions, 11 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1ab5c4f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+package-*.xml
+*.tgz
+*.tar.gz
+*.tar.xz
+*.tar.xz.asc
+*.src.rpm
+*/*rpm
diff --git a/07c762243598947e932502e92674df7fc6d01204.patch b/07c762243598947e932502e92674df7fc6d01204.patch
new file mode 100644
index 0000000..b5a23f5
--- /dev/null
+++ b/07c762243598947e932502e92674df7fc6d01204.patch
@@ -0,0 +1,129 @@
+From 07c762243598947e932502e92674df7fc6d01204 Mon Sep 17 00:00:00 2001
+From: matyhtf <mikan.tenny@gmail.com>
+Date: Tue, 18 Apr 2017 18:46:34 +0800
+Subject: [PATCH] fixed compile error with enable-ringbuffer
+
+---
+ src/network/ReactorThread.c | 91 +--------------------------------------------
+ 1 file changed, 2 insertions(+), 89 deletions(-)
+
+diff --git a/src/network/ReactorThread.c b/src/network/ReactorThread.c
+index 877fdc4..5994d27 100644
+--- a/src/network/ReactorThread.c
++++ b/src/network/ReactorThread.c
+@@ -1263,7 +1263,6 @@ int swReactorThread_dispatch(swConnection *conn, char *data, uint32_t length)
+ #ifdef SW_USE_RINGBUFFER
+ swServer *serv = SwooleG.serv;
+ swReactorThread *thread = swServer_get_thread(serv, SwooleTG.id);
+- int target_worker_id = swServer_worker_schedule(serv, conn->fd);
+
+ swPackage package;
+ package.length = length;
+@@ -1271,12 +1270,12 @@ int swReactorThread_dispatch(swConnection *conn, char *data, uint32_t length)
+
+ task.data.info.type = SW_EVENT_PACKAGE;
+ task.data.info.len = sizeof(package);
+- task.target_worker_id = target_worker_id;
+
+- //swoole_dump_bin(package.data, 's', buffer->length);
+ memcpy(package.data, data, package.length);
+ memcpy(task.data.data, &package, sizeof(package));
+
++ task.target_worker_id = swServer_worker_schedule(serv, conn->fd, &task.data);
++
+ //dispatch failed, free the memory.
+ if (factory->dispatch(factory, &task) < 0)
+ {
+@@ -1335,92 +1334,6 @@ int swReactorThread_dispatch(swConnection *conn, char *data, uint32_t length)
+ return SW_OK;
+ }
+
+-#if 0
+-int swReactorThread_dispatch_array_buffer(swReactorThread *thread, swConnection *conn)
+-{
+- swDispatchData task;
+- swFactory *factory = SwooleG.factory;
+-
+- task.data.info.fd = conn->fd;
+- task.data.info.from_id = conn->from_id;
+-
+- swBuffer *buffer = conn->in_buffer;
+- swBuffer_trunk *trunk = swBuffer_get_trunk(buffer);
+-
+-#ifdef SW_USE_RINGBUFFER
+- swServer *serv = SwooleG.serv;
+- uint16_t target_worker_id = swServer_worker_schedule(serv, conn->fd);
+- swPackage package;
+-
+- package.length = 0;
+- package.data = swReactorThread_alloc(thread, buffer->length);
+-
+- task.data.info.type = SW_EVENT_PACKAGE;
+-
+- while (trunk != NULL)
+- {
+- task.data.info.len = trunk->length;
+- memcpy(package.data + package.length, trunk->store.ptr, trunk->length);
+- package.length += trunk->length;
+-
+- swBuffer_pop_trunk(buffer, trunk);
+- trunk = swBuffer_get_trunk(buffer);
+- }
+- task.data.info.len = sizeof(package);
+- task.target_worker_id = target_worker_id;
+- memcpy(task.data.data, &package, sizeof(package));
+- //swWarn("[ReactorThread] copy_n=%d", package.length);
+- //dispatch failed, free the memory.
+- if (factory->dispatch(factory, &task) < 0)
+- {
+- thread->buffer_input->free(thread->buffer_input, package.data);
+- }
+- else
+- {
+- return SW_OK;
+- }
+-#else
+- int ret;
+- task.data.info.type = SW_EVENT_PACKAGE_START;
+- task.target_worker_id = -1;
+-
+- /**
+- * lock target
+- */
+- SwooleTG.factory_lock_target = 1;
+-
+- while (trunk != NULL)
+- {
+- task.data.info.fd = conn->fd;
+- task.data.info.len = trunk->length;
+- memcpy(task.data.data, trunk->store.ptr, task.data.info.len);
+- //package end
+- if (trunk->next == NULL)
+- {
+- task.data.info.type = SW_EVENT_PACKAGE_END;
+- }
+- ret = factory->dispatch(factory, &task);
+- //TODO: 处理数据失败,数据将丢失
+- if (ret < 0)
+- {
+- swWarn("factory->dispatch() failed.");
+- }
+- swBuffer_pop_trunk(buffer, trunk);
+- trunk = swBuffer_get_trunk(buffer);
+-
+- swTrace("send2worker[trunk_num=%d][type=%d]", buffer->trunk_num, task.data.info.type);
+- }
+- /**
+- * unlock
+- */
+- SwooleTG.factory_target_worker = -1;
+- SwooleTG.factory_lock_target = 0;
+-
+-#endif
+- return SW_OK;
+-}
+-#endif
+-
+ void swReactorThread_free(swServer *serv)
+ {
+ int i;
diff --git a/REFLECTION b/REFLECTION
index 828b3db..9e7016f 100644
--- a/REFLECTION
+++ b/REFLECTION
@@ -1,4 +1,4 @@
-Extension [ <persistent> extension #80 swoole version 1.9.8 ] {
+Extension [ <persistent> extension #80 swoole version 1.9.9 ] {
- INI {
Entry [ swoole.aio_thread_num <ALL> ]
@@ -16,6 +16,9 @@ Extension [ <persistent> extension #80 swoole version 1.9.8 ] {
Entry [ swoole.unixsock_buffer_size <ALL> ]
Current = '8388608'
}
+ Entry [ swoole.modules <SYSTEM> ]
+ Current = ''
+ }
}
- Constants [60] {
@@ -63,7 +66,7 @@ Extension [ <persistent> extension #80 swoole version 1.9.8 ] {
Constant [ integer SWOOLE_DTLSv1_CLIENT_METHOD ] { 17 }
Constant [ integer SWOOLE_EVENT_READ ] { 512 }
Constant [ integer SWOOLE_EVENT_WRITE ] { 1024 }
- Constant [ string SWOOLE_VERSION ] { 1.9.8 }
+ Constant [ string SWOOLE_VERSION ] { 1.9.9 }
Constant [ integer SWOOLE_AIO_BASE ] { 0 }
Constant [ integer SWOOLE_AIO_LINUX ] { 1 }
Constant [ integer SWOOLE_FILELOCK ] { 2 }
@@ -259,6 +262,10 @@ Extension [ <persistent> extension #80 swoole version 1.9.8 ] {
}
}
Function [ <internal:swoole> function swoole_load_module ] {
+
+ - Parameters [1] {
+ Parameter #0 [ <required> $module_file ]
+ }
}
}
@@ -1496,8 +1503,9 @@ Extension [ <persistent> extension #80 swoole version 1.9.8 ] {
Method [ <internal:swoole> public method get ] {
- - Parameters [1] {
+ - Parameters [2] {
Parameter #0 [ <required> $key ]
+ Parameter #1 [ <optional> $field ]
}
}
@@ -1516,8 +1524,9 @@ Extension [ <persistent> extension #80 swoole version 1.9.8 ] {
Method [ <internal:swoole> public method exist ] {
- - Parameters [1] {
+ - Parameters [2] {
Parameter #0 [ <required> $key ]
+ Parameter #1 [ <optional> $field ]
}
}
@@ -2710,7 +2719,12 @@ Extension [ <persistent> extension #80 swoole version 1.9.8 ] {
- Properties [0] {
}
- - Methods [0] {
+ - Methods [1] {
+ Method [ <internal:swoole> public method destroy ] {
+
+ - Parameters [0] {
+ }
+ }
}
}
diff --git a/php-pecl-swoole.spec b/php-pecl-swoole.spec
index 7dc9566..91d383e 100644
--- a/php-pecl-swoole.spec
+++ b/php-pecl-swoole.spec
@@ -27,23 +27,20 @@
%global with_mysqlnd 0
%endif
-
-%if 0%{?fedora} >= 22 || 0%{?rhel} >= 6
%global with_nghttpd2 1
-%else
-%global with_nghttpd2 0
-%endif
%global with_hiredis 1
Summary: PHP's asynchronous concurrent distributed networking framework
Name: %{?sub_prefix}php-pecl-%{pecl_name}
-Version: 1.9.8
+Version: 1.9.9
Release: 1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
License: BSD
Group: Development/Languages
URL: http://pecl.php.net/package/%{pecl_name}
Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz
+Patch0: 07c762243598947e932502e92674df7fc6d01204.patch
+
BuildRequires: %{?scl_prefix}php-devel >= 5.3.10
BuildRequires: %{?scl_prefix}php-pear
BuildRequires: %{?scl_prefix}php-sockets
@@ -129,6 +126,20 @@ Documentation: https://rawgit.com/tchiotludo/swoole-ide-helper/english/docs/
Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection (%{scl} by %{?scl_vendor}%{!?scl_vendor:rh})}.
+%package devel
+Summary: %{name} developer files (header)
+Group: Development/Libraries
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: %{?scl_prefix}php-devel%{?_isa}
+%if "%{?scl_prefix}" != "%{?sub_prefix}"
+Provides: %{?scl_prefix}php-pecl-%{pecl_name}-devel = %{version}-%{release}
+Provides: %{?scl_prefix}php-pecl-%{pecl_name}-devel%{?_isa} = %{version}-%{release}
+%endif
+
+%description devel
+These are the files needed to compile programs using %{name}.
+
+
%prep
%setup -q -c
mv %{pecl_name}-%{version} NTS
@@ -141,6 +152,8 @@ sed -e 's/role="test"/role="src"/' \
cd NTS
+%patch0 -p1 -b .upstream
+
# Sanity check, really often broken
extver=$(sed -n '/#define PHP_SWOOLE_VERSION/{s/.* "//;s/".*$//;p}' php_swoole.h)
if test "x${extver}" != "x%{version}%{?prever:-%{prever}}"; then
@@ -165,6 +178,7 @@ extension=%{pecl_name}.so
;swoole.use_namespace = Off
;swoole.fast_serialize = Off
;swoole.unixsock_buffer_size = 8388608
+;swoole.modules = ''
EOF
@@ -283,8 +297,22 @@ cd ../ZTS
%{php_ztsextdir}/%{pecl_name}.so
%endif
+%files devel
+%{php_incldir}/ext/%{pecl_name}
+
+%if %{with_zts}
+%{php_ztsincldir}/ext/%{pecl_name}
+%endif
+
+
%changelog
+* Fri Apr 21 2017 Remi Collet <remi@remirepo.net> - 1.9.9-1
+- Update to 1.9.9
+- add upstream patch for broken build, see
+ https://github.com/swoole/swoole-src/issues/1194
+- add devel sub-package with extension headers
+
* Thu Mar 16 2017 Remi Collet <remi@remirepo.net> - 1.9.8-1
- Update to 1.9.8
- drop patch merged upstream