From 2e854e491ef00a37b37e51d4846ca0c01b67f8c8 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Mon, 15 Jun 2015 19:34:18 +0200 Subject: php-guzzlehttp-ringphp: 1.1.0 (backport from Fedora) --- php-guzzlehttp-ringphp.spec | 195 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 152 insertions(+), 43 deletions(-) diff --git a/php-guzzlehttp-ringphp.spec b/php-guzzlehttp-ringphp.spec index f6756f6..260bdcc 100644 --- a/php-guzzlehttp-ringphp.spec +++ b/php-guzzlehttp-ringphp.spec @@ -1,7 +1,8 @@ +# remirepo spec for php-guzzlehttp-ringphp, from Fedora: # # RPM spec file for php-guzzlehttp-ringphp # -# Copyright (c) 2014 Shawn Iwinski +# Copyright (c) 2014-2015 Shawn Iwinski # # License: MIT # http://opensource.org/licenses/MIT @@ -11,8 +12,8 @@ %global github_owner guzzle %global github_name RingPHP -%global github_version 1.0.5 -%global github_commit a903f51b692427318bc813217c0e6505287e79a4 +%global github_version 1.1.0 +%global github_commit dbbb91d7f6c191e5e405e900e3102ac7f261bc0b %global composer_vendor guzzlehttp %global composer_project ringphp @@ -20,10 +21,12 @@ # "php": ">=5.4.0" %global php_min_ver 5.4.0 # "guzzlehttp/streams": "~3.0" -%global streams_min_ver 3.0 +# Note: Min version not "3.0" because autoloader required +%global streams_min_ver 3.0.0-3 %global streams_max_ver 4.0 # "react/promise": "~2.0" -%global promise_min_ver 2.0 +# Note: Min version not "2.0" because autoloader required +%global promise_min_ver 2.2.0-4 %global promise_max_ver 3.0 %if 0%{?rhel} == 5 @@ -34,49 +37,58 @@ %global with_tests %{?_without_tests:0}%{!?_without_tests:1} %endif -%{!?phpdir: %global phpdir %{_datadir}/php} -%{!?__phpunit: %global __phpunit %{_bindir}/phpunit} +%{!?phpdir: %global phpdir %{_datadir}/php} +%{!?testsdir: %global testsdir %{_datadir}/tests} Name: php-%{composer_vendor}-%{composer_project} Version: %{github_version} -Release: 1%{?github_release}%{?dist} +Release: 3%{?github_release}%{?dist} Summary: Simple handler system used to power clients and servers in PHP Group: Development/Libraries License: MIT URL: http://ringphp.readthedocs.org -Source0: https://github.com/%{github_owner}/%{github_name}/archive/%{github_commit}.tar.gz +Source0: https://github.com/%{github_owner}/%{github_name}/archive/%{github_commit}/%{name}-%{github_version}-%{github_commit}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch +# Tests %if %{with_tests} BuildRequires: nodejs -BuildRequires: php-phpunit-PHPUnit -# composer.json +BuildRequires: %{_bindir}/phpunit +## composer.json BuildRequires: php(language) >= %{php_min_ver} -BuildRequires: php-composer(guzzlehttp/streams) >= %{streams_min_ver} -BuildRequires: php-composer(guzzlehttp/streams) < %{streams_max_ver} -BuildRequires: php-composer(react/promise) >= %{promise_min_ver} -BuildRequires: php-composer(react/promise) < %{promise_max_ver} +#BuildRequires: php-composer(guzzlehttp/streams) >= %%{streams_min_ver} +BuildRequires: php-guzzlehttp-streams >= %{streams_min_ver} +#BuildRequires: php-composer(react/promise) >= %%{promise_min_ver} +BuildRequires: php-react-promise >= %{promise_min_ver} BuildRequires: php-curl -# phpcompatinfo (computed from version 1.0.5) +## phpcompatinfo (computed from version 1.1.0) BuildRequires: php-json BuildRequires: php-pcre BuildRequires: php-reflection BuildRequires: php-spl BuildRequires: php-zlib +## Autoloader +BuildRequires: php-composer(symfony/class-loader) %endif # composer.json Requires: php(language) >= %{php_min_ver} -Requires: php-composer(guzzlehttp/streams) >= %{streams_min_ver} -Requires: php-composer(guzzlehttp/streams) < %{streams_max_ver} -Requires: php-composer(react/promise) >= %{promise_min_ver} -Requires: php-composer(react/promise) < %{promise_max_ver} +#Requires: php-composer(guzzlehttp/streams) >= %%{streams_min_ver} +#Requires: php-composer(guzzlehttp/streams) < %%{streams_max_ver} +Requires: php-guzzlehttp-streams >= %{streams_min_ver} +Requires: php-guzzlehttp-streams < %{streams_max_ver} +#Requires: php-composer(react/promise) >= %%{promise_min_ver} +#Requires: php-composer(react/promise) < %%{promise_max_ver} +Requires: php-react-promise >= %{promise_min_ver} +Requires: php-react-promise < %{promise_max_ver} # composer.json: optional Requires: php-curl -# phpcompatinfo (computed from version 1.0.5) +# phpcompatinfo (computed from version 1.1.0) Requires: php-spl +# Autoloader +Requires: php-composer(symfony/class-loader) # Composer Provides: php-composer(%{composer_vendor}/%{composer_project}) = %{version} @@ -94,9 +106,96 @@ clients and servers for both blocking and non-blocking requests. [2] https://github.com/ring-clojure/ring +# ------------------------------------------------------------------------------ + + +%package tests + +Summary: Tests for %{name} + +Requires: %{name} = %{version}-%{release} +Requires: nodejs +Requires: php-composer(phpunit/phpunit) +# phpcompatinfo (computed from version 1.1.0) +Requires: php-json +Requires: php-pcre +Requires: php-reflection +Requires: php-zlib + +%description tests +%{summary}. + + +# ------------------------------------------------------------------------------ + + %prep %setup -qn %{github_name}-%{github_commit} +: Create library autoloader +(cat <<'AUTOLOAD' +register(); +} + +require_once 'GuzzleHttp/Stream/autoload.php'; +require_once 'React/Promise/autoload.php'; + +$fedoraClassLoader->addPrefix('GuzzleHttp\\Ring', dirname(dirname(__DIR__))); + +return $fedoraClassLoader; +AUTOLOAD +) | tee src/autoload.php + +: Create tests autoloader +(cat <<'AUTOLOAD' +addPrefix('GuzzleHttp\\Tests\\Ring', __DIR__); +$fedoraClassLoader->setUseIncludePath(true); + +return $fedoraClassLoader; +AUTOLOAD +) | tee tests/autoload.php + +: Create custom tests PHPUnit config +rm -f phpunit.xml.dist +(cat <<'PHPUNIT' + + + + + . + + + +PHPUNIT +) | tee phpunit.xml.dist + +: Modify tests bootstrap +sed -e "s#.*require.*autoload.*#require __DIR__ . '/autoload.php';#" \ + -e "s#Client/Server.php#GuzzleHttp/Tests/Ring/Client/Server.php#" \ + -i tests/bootstrap.php + %build # Empty build section, nothing required @@ -104,32 +203,24 @@ clients and servers for both blocking and non-blocking requests. %install rm -rf %{buildroot} -mkdir -pm 0755 %{buildroot}%{phpdir}/GuzzleHttp/Ring + +: Library +mkdir -p %{buildroot}%{phpdir}/GuzzleHttp/Ring cp -rp src/* %{buildroot}%{phpdir}/GuzzleHttp/Ring/ +: Tests -- classes must be PSR-0 +mkdir -p %{buildroot}%{testsdir}/%{name}/GuzzleHttp/Tests/Ring +cp -rp tests/* %{buildroot}%{testsdir}/%{name}/GuzzleHttp/Tests/Ring/ +mv %{buildroot}%{testsdir}/%{name}/GuzzleHttp/Tests/Ring/{autoload,bootstrap}.php \ + %{buildroot}%{testsdir}/%{name}/ +cp -p phpunit.xml.dist %{buildroot}%{testsdir}/%{name}/ + %check %if %{with_tests} -# Create autoloader -mkdir vendor -cat > vendor/autoload.php <<'AUTOLOAD' - - 1.1.0-3 +- Fix tests' autoload + +* Fri Jun 12 2015 Shawn Iwinski - 1.1.0-2 +- Use new $fedoraClassLoader concept in autoloader +- Remove secondary "tests" directory from tests sub-package + +* Mon Jun 01 2015 Shawn Iwinski - 1.1.0-1 +- Updated to 1.1.0 +- Updated source URL +- Added autoloader +- Sub-packaged tests + * Fri Feb 13 2015 Remi Collet - 1.0.5-1 - backport for remi repository -- cgit