summaryrefslogtreecommitdiffstats
path: root/php-react-http.spec
diff options
context:
space:
mode:
Diffstat (limited to 'php-react-http.spec')
-rw-r--r--php-react-http.spec251
1 files changed, 180 insertions, 71 deletions
diff --git a/php-react-http.spec b/php-react-http.spec
index b9023da..9fb5e37 100644
--- a/php-react-http.spec
+++ b/php-react-http.spec
@@ -2,7 +2,7 @@
#
# Fedora spec file for php-react-http
#
-# Copyright (c) 2017-2019 Shawn Iwinski <shawn@iwin.ski>
+# Copyright (c) 2017-2022 Shawn Iwinski <shawn@iwin.ski>
#
# License: MIT
# http://opensource.org/licenses/MIT
@@ -12,38 +12,60 @@
%global github_owner reactphp
%global github_name http
-%global github_version 0.8.5
-%global github_commit 5f2ce4da6d30779ab1e6b95a0afac3e0e5595f64
+%global github_version 1.8.0
+%global github_commit aa7512ee17258c88466de30f9cb44ec5f9df3ff3
%global composer_vendor react
%global composer_project http
# "php": ">=5.3.0"
%global php_min_ver 5.3.0
-# "clue/block-react": "^1.1"
-%global clue_block_react_min_ver 1.1
-%global clue_block_react_max_ver 2.0
+# "clue/http-proxy-react": "^1.8", ignored as only used in examples
+# "clue/reactphp-ssh-proxy": "^1.4", ignored as only used in examples
+# "clue/socks-react": "^1.4", ignored as only used in examples
# "evenement/evenement": "^3.0 || ^2.0 || ^1.0"
%global evenement_min_ver 1.0
%global evenement_max_ver 4.0
-# "react/promise": "^2.3 || ^1.2.1"
+# "react/promise": "^3 || ^2.3 || ^1.2.1"
%global react_promise_min_ver 1.2.1
-%global react_promise_max_ver 3.0
-# "react/promise-stream": "^1.1"
-%global react_promise_stream_min_ver 1.1
+%global react_promise_max_ver 4
+# "react/promise-stream": "^1.4"
+%global react_promise_stream_min_ver 1.4
%global react_promise_stream_max_ver 2.0
-# "react/socket": "^1.0 || ^0.8.3"
-%global react_socket_min_ver 0.8.3
+# "react/socket": "^1.12"
+%global react_socket_min_ver 1.12
%global react_socket_max_ver 2.0
-# "react/stream": "^1.0 || ^0.7.1"
-%global react_stream_min_ver 0.7.1
+# "react/stream": "^1.2"
+%global react_stream_min_ver 1.2
%global react_stream_max_ver 2.0
# "ringcentral/psr7": "^1.2"
%global ringcentral_psr7_min_ver 1.2
%global ringcentral_psr7_max_ver 2.0
+# "react/event-loop": "^1.2",
+%global react_event_loop_min_ver 1.2
+%global react_event_loop_max_ver 2.0
+# "react/async": "^4 || ^3 || ^2",
+%global react_async_min_ver 2.0
+%global react_async_max_ver 5
+# "react/promise-timer": "^1.9",
+%global react_promise_timer_min_ver 1.9
+%global react_promise_timer_max_ver 2
+# "psr/http-message": "^1.0"
+%global psr_http_message_min_ver 1.0
+%global psr_http_message_max_ver 2.0
+# "psr/http-message": "^1.0"
+%global fig_http_message_util_min_ver 1.1
+%global fig_http_message_util_max_ver 2
# Build using "--without tests" to disable tests
-%global with_tests 0%{!?_without_tests:1}
+%bcond_without tests
+
+# Range dependencies supported?
+%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
+%global with_range_dependencies 1
+%else
+%global with_range_dependencies 0
+%endif
%{!?phpdir: %global phpdir %{_datadir}/php}
@@ -54,73 +76,109 @@ Summary: Library for building an evented http server
License: MIT
URL: https://reactphp.org/http/
-Source0: https://github.com/%{github_owner}/%{github_name}/archive/%{github_commit}/%{name}-%{github_version}-%{github_commit}.tar.gz
+
+# GitHub export does not include tests
+# Run php-react-http-get-source.sh to create full source
+Source0: %{name}-%{github_version}-%{github_commit}.tar.gz
+Source1: %{name}-get-source.sh
BuildArch: noarch
# Tests
-%if %{with_tests}
+%if %{with tests}
## composer.json
BuildRequires: php(language) >= %{php_min_ver}
-BuildRequires: phpunit6
-%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
-BuildRequires: (php-composer(clue/block-react) >= %{clue_block_react_min_ver} with php-composer(clue/block-react) < %{clue_block_react_max_ver})
+%if 0%{?fedora} >= 32 || 0%{?rhel} >= 9
+# "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35"
+%global phpunit %{_bindir}/phpunit9
+BuildRequires: phpunit9 >= 9.3
+%else
+%global phpunit %{_bindir}/phpunit
+BuildRequires: php-phpunit-PHPUnit >= 4.8.35
+%endif
+%if %{with_range_dependencies}
BuildRequires: (php-composer(evenement/evenement) >= %{evenement_min_ver} with php-composer(evenement/evenement) < %{evenement_max_ver})
+BuildRequires: (php-composer(react/event-loop) >= %{react_event_loop_min_ver} with php-composer(react/event-loop) < %{react_event_loop_max_ver})
BuildRequires: (php-composer(react/promise-stream) >= %{react_promise_stream_min_ver} with php-composer(react/promise-stream) < %{react_promise_stream_max_ver})
BuildRequires: (php-composer(react/promise) >= %{react_promise_min_ver} with php-composer(react/promise) < %{react_promise_max_ver})
BuildRequires: (php-composer(react/socket) >= %{react_socket_min_ver} with php-composer(react/socket) < %{react_socket_max_ver})
BuildRequires: (php-composer(react/stream) >= %{react_stream_min_ver} with php-composer(react/stream) < %{react_stream_max_ver})
BuildRequires: (php-composer(ringcentral/psr7) >= %{ringcentral_psr7_min_ver} with php-composer(ringcentral/psr7) < %{ringcentral_psr7_max_ver})
+BuildRequires: (php-composer(psr/http-message) >= %{psr_http_message_min_ver} with php-composer(psr/http-message) < %{psr_http_message_max_ver})
+BuildRequires: (php-composer(fig/http-message-util) >= %{fig_http_message_util_min_ver} with php-composer(fig/http-message-util) < %{fig_http_message_util_max_ver})
+BuildRequires: (php-composer(react/async) >= %{react_async_min_ver} with php-composer(react/async) < %{react_async_max_ver})
+BuildRequires: (php-composer(react/promise-timer) >= %{react_promise_timer_min_ver} with php-composer(react/promise-timer) < %{react_promise_timer_max_ver})
%else
-BuildRequires: php-composer(clue/block-react) < %{clue_block_react_max_ver}
-BuildRequires: php-composer(clue/block-react) >= %{clue_block_react_min_ver}
-BuildRequires: php-composer(evenement/evenement) < %{evenement_max_ver}
-BuildRequires: php-composer(evenement/evenement) >= %{evenement_min_ver}
-BuildRequires: php-composer(react/promise-stream) < %{react_promise_stream_max_ver}
-BuildRequires: php-composer(react/promise-stream) >= %{react_promise_stream_min_ver}
-BuildRequires: php-composer(react/promise) < %{react_promise_max_ver}
-BuildRequires: php-composer(react/promise) >= %{react_promise_min_ver}
-BuildRequires: php-composer(react/socket) < %{react_socket_max_ver}
-BuildRequires: php-composer(react/socket) >= %{react_socket_min_ver}
-BuildRequires: php-composer(react/stream) < %{react_stream_max_ver}
-BuildRequires: php-composer(react/stream) >= %{react_stream_min_ver}
-BuildRequires: php-composer(ringcentral/psr7) < %{ringcentral_psr7_max_ver}
-BuildRequires: php-composer(ringcentral/psr7) >= %{ringcentral_psr7_min_ver}
+BuildRequires: php-evenement < %{evenement_max_ver}
+BuildRequires: php-evenement >= %{evenement_min_ver}
+BuildRequires: php-react-event-loop < %{react_event_loop_max_ver}
+BuildRequires: php-react-event-loop >= %{react_event_loop_min_ver}
+BuildRequires: php-react-promise-stream < %{react_promise_stream_max_ver}
+BuildRequires: php-react-promise-stream >= %{react_promise_stream_min_ver}
+BuildRequires: php-react-promise < %{react_promise_max_ver}
+BuildRequires: php-react-promise >= %{react_promise_min_ver}
+BuildRequires: php-react-socket < %{react_socket_max_ver}
+BuildRequires: php-react-socket >= %{react_socket_min_ver}
+BuildRequires: php-react-stream < %{react_stream_max_ver}
+BuildRequires: php-react-stream >= %{react_stream_min_ver}
+BuildRequires: php-composer(react/async) < %{react_async_max_ver}
+BuildRequires: php-composer(react/async) >= %{react_async_min_ver}
+BuildRequires: php-composer(react/promise-timer) < %{react_promise_timer_max_ver}
+BuildRequires: php-composer(react/promise-timer) >= %{react_promise_timer_min_ver}
+BuildRequires: php-ringcentral-psr7 < %{ringcentral_psr7_max_ver}
+BuildRequires: php-ringcentral-psr7 >= %{ringcentral_psr7_min_ver}
+BuildRequires: php-psr-http-message < %{psr_http_message_max_ver}
+BuildRequires: php-psr-http-message >= %{psr_http_message_min_ver}
+BuildRequires: php-composer(fig/http-message-util) < %{fig_http_message_util_max_ver}
+BuildRequires: php-composer(fig/http-message-util) >= %{fig_http_message_util_min_ver}
%endif
-## phpcompatinfo (computed from version 0.8.5)
+## phpcompatinfo (computed from version 1.1.0)
+BuildRequires: php-reflection
+BuildRequires: php-simplexml
BuildRequires: php-date
BuildRequires: php-json
BuildRequires: php-pcre
+BuildRequires: php-sockets
BuildRequires: php-spl
-## Autoloader
-BuildRequires: php-composer(fedora/autoloader)
%endif
+## Autoloader
+BuildRequires: php-fedora-autoloader-devel
# composer.json
Requires: php(language) >= %{php_min_ver}
-%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
+%if %{with_range_dependencies}
Requires: (php-composer(evenement/evenement) >= %{evenement_min_ver} with php-composer(evenement/evenement) < %{evenement_max_ver})
+Requires: (php-composer(react/event-loop) >= %{react_event_loop_min_ver} with php-composer(react/event-loop) < %{react_event_loop_max_ver})
Requires: (php-composer(react/promise-stream) >= %{react_promise_stream_min_ver} with php-composer(react/promise-stream) < %{react_promise_stream_max_ver})
Requires: (php-composer(react/promise) >= %{react_promise_min_ver} with php-composer(react/promise) < %{react_promise_max_ver})
Requires: (php-composer(react/socket) >= %{react_socket_min_ver} with php-composer(react/socket) < %{react_socket_max_ver})
Requires: (php-composer(react/stream) >= %{react_stream_min_ver} with php-composer(react/stream) < %{react_stream_max_ver})
Requires: (php-composer(ringcentral/psr7) >= %{ringcentral_psr7_min_ver} with php-composer(ringcentral/psr7) < %{ringcentral_psr7_max_ver})
+Requires: (php-composer(psr/http-message) >= %{psr_http_message_min_ver} with php-composer(psr/http-message) < %{psr_http_message_max_ver})
+Requires: (php-composer(fig/http-message-util) >= %{fig_http_message_util_min_ver} with php-composer(fig/http-message-util) < %{fig_http_message_util_max_ver})
%else
-Requires: php-composer(evenement/evenement) < %{evenement_max_ver}
-Requires: php-composer(evenement/evenement) >= %{evenement_min_ver}
-Requires: php-composer(react/promise-stream) < %{react_promise_stream_max_ver}
-Requires: php-composer(react/promise-stream) >= %{react_promise_stream_min_ver}
-Requires: php-composer(react/promise) < %{react_promise_max_ver}
-Requires: php-composer(react/promise) >= %{react_promise_min_ver}
-Requires: php-composer(react/socket) < %{react_socket_max_ver}
-Requires: php-composer(react/socket) >= %{react_socket_min_ver}
-Requires: php-composer(react/stream) < %{react_stream_max_ver}
-Requires: php-composer(react/stream) >= %{react_stream_min_ver}
-Requires: php-composer(ringcentral/psr7) < %{ringcentral_psr7_max_ver}
-Requires: php-composer(ringcentral/psr7) >= %{ringcentral_psr7_min_ver}
+Requires: php-evenement < %{evenement_max_ver}
+Requires: php-evenement >= %{evenement_min_ver}
+Requires: php-react-event-loop < %{react_event_loop_max_ver}
+Requires: php-react-event-loop >= %{react_event_loop_min_ver}
+Requires: php-react-promise-stream < %{react_promise_stream_max_ver}
+Requires: php-react-promise-stream >= %{react_promise_stream_min_ver}
+Requires: php-react-promise < %{react_promise_max_ver}
+Requires: php-react-promise >= %{react_promise_min_ver}
+Requires: php-react-socket < %{react_socket_max_ver}
+Requires: php-react-socket >= %{react_socket_min_ver}
+Requires: php-react-stream < %{react_stream_max_ver}
+Requires: php-react-stream >= %{react_stream_min_ver}
+Requires: php-ringcentral-psr7 < %{ringcentral_psr7_max_ver}
+Requires: php-ringcentral-psr7 >= %{ringcentral_psr7_min_ver}
+Requires: php-psr-http-message < %{psr_http_message_max_ver}
+Requires: php-psr-http-message >= %{psr_http_message_min_ver}
+Requires: php-composer(fig/http-message-util) < %{fig_http_message_util_max_ver}
+Requires: php-composer(fig/http-message-util) >= %{fig_http_message_util_min_ver}
%endif
-# phpcompatinfo (computed from version 0.8.5)
+# phpcompatinfo (computed from version 1.1.0)
Requires: php-date
Requires: php-pcre
+Requires: php-sockets
Requires: php-spl
# Autoloader
Requires: php-composer(fedora/autoloader)
@@ -150,24 +208,23 @@ Autoloader: %{phpdir}/React/Http/autoload.php
%build
: Create autoloader
-cat <<'AUTOLOAD' | tee src/autoload.php
-<?php
-/**
- * Autoloader for %{name} and its' dependencies
- * (created by %{name}-%{version}-%{release}).
- */
-require_once '%{phpdir}/Fedora/Autoloader/autoload.php';
+phpab --template fedora \
+ --output src/autoload.php \
+ src
-\Fedora\Autoloader\Autoload::addPsr4('React\\Http\\', __DIR__);
+cat <<'AUTOLOAD' | tee -a src/autoload.php
-\Fedora\Autoloader\Dependencies::required(array(
+\Fedora\Autoloader\Dependencies::required([
'%{phpdir}/Evenement/autoload.php',
+ '%{phpdir}/React/EventLoop/autoload.php',
'%{phpdir}/React/Promise/autoload.php',
'%{phpdir}/React/Promise/Stream/autoload.php',
'%{phpdir}/React/Socket/autoload.php',
'%{phpdir}/React/Stream/autoload.php',
'%{phpdir}/RingCentral/Psr7/autoload.php',
-));
+ '%{phpdir}/Psr/Http/Message/autoload.php',
+ '%{phpdir}/Fig/Http/Message/autoload.php',
+]);
AUTOLOAD
@@ -177,25 +234,33 @@ cp -rp src %{buildroot}%{phpdir}/React/Http
%check
-%if %{with_tests}
+%if %{with tests}
: Create tests bootstrap
-cat <<'BOOTSTRAP' | tee bootstrap.php
+mkdir vendor
+cat <<'BOOTSTRAP' | tee vendor/autoload.php
<?php
require '%{buildroot}%{phpdir}/React/Http/autoload.php';
-\Fedora\Autoloader\Autoload::addPsr4('React\\Tests\\Http\\', __DIR__.'/tests');
+\Fedora\Autoloader\Autoload::addPsr4('React\\Tests\\Http\\', dirname(__DIR__).'/tests');
-\Fedora\Autoloader\Dependencies::required(array(
- '%{phpdir}/Clue/React/Block/autoload.php',
-));
+\Fedora\Autoloader\Dependencies::required([
+ '%{phpdir}/React/Async/autoload.php',
+ '%{phpdir}/React/Promise/Timer/autoload.php',
+]);
BOOTSTRAP
+: Skip test requiring network access and/or fail in restrictive buildroot env -- i.e. Bodhi
+FILTER="testSuccessfulResponseEmitsEnd|testPostDataReturnsData|testPostJsonReturnsData\
+|testCanAccessHttps|testVerifyPeerDisabledForBadSslResolves|testCancelPendingConnectionEmitsClose"
+
: Upstream tests
RETURN_CODE=0
-PHPUNIT=$(which phpunit6)
-for PHP_EXEC in "" php71 php72 php73 php74; do
- if [ -z "$PHP_EXEC" ] || which $PHP_EXEC; then
- $PHP_EXEC $PHPUNIT --verbose --bootstrap bootstrap.php \
+for CMDARG in "php %{phpunit}" php74 php80 php81 php82; do
+ if which $CMDARG; then
+ set $CMDARG
+ $1 ${2:-%{_bindir}/phpunit9} \
+ --filter "^((?!($FILTER)).)*\$" \
+ --verbose \
|| RETURN_CODE=1
fi
done
@@ -214,6 +279,50 @@ exit $RETURN_CODE
%changelog
+* Fri Sep 30 2022 Remi Collet <remi@remirepo.net> - 1.8.0-1
+- update to 1.8.0
+- raise dependency on react/stream 1.4
+- raise dependency on react/socket 1.12
+
+* Fri Sep 23 2022 Remi Collet <remi@remirepo.net> - 1.7.0-1
+- update to 1.7.0
+- drop build dependency on clue/block-react
+- add build dependency on react/async and react/promise-timer
+- switch to classmap autoloader
+
+* Thu Feb 3 2022 Remi Collet <remi@remirepo.net> - 1.6.0-1
+- update to 1.6.0
+- raise dependency on clue/block-react 1.5
+- add dependency on fig/http-message-util
+
+* Thu Aug 5 2021 Remi Collet <remi@remirepo.net> - 1.5.0-1
+- update to 1.5.0
+- raise dependency on react/socket 1.9
+
+* Mon Jul 12 2021 Remi Collet <remi@remirepo.net> - 1.4.0-1
+- update to 1.4.0
+- raise dependency on react/event-loop 1.2
+- raise dependency on react/socket 1.8
+- raise dependency on react/stream 1.2
+
+* Tue Apr 13 2021 Remi Collet <remi@remirepo.net> - 1.3.0-1
+- update to 1.3.0
+
+* Mon Dec 7 2020 Remi Collet <remi@remirepo.net> - 1.2.0-1
+- update to 1.2.0
+
+* Wed Nov 4 2020 Remi Collet <remi@remirepo.net> - 1.1.0-1
+- update to 1.1.0
+- add dependency on react/event-loop
+- add dependency on psr/http-message
+- raise dependency on react/socket 1.6
+- raise dependency on react/stream 1.1
+- switch to phpunit9
+
+* Sat Jun 06 2020 Shawn Iwinski <shawn@iwin.ski> - 0.8.6-1
+- Update to 0.8.6 (RHBZ #1790302)
+- Use PHPUnit 7
+
* Sat Dec 14 2019 Shawn Iwinski <shawn@iwin.ski> - 0.8.5-1
- Update to 0.8.5 (RHBZ #1767189)
- Use PHPUnit 6