diff options
-rw-r--r-- | php-ocramius-proxy-manager-dev.spec | 168 | ||||
-rw-r--r-- | php-ocramius-proxy-manager.spec | 109 |
2 files changed, 221 insertions, 56 deletions
diff --git a/php-ocramius-proxy-manager-dev.spec b/php-ocramius-proxy-manager-dev.spec new file mode 100644 index 0000000..076ca67 --- /dev/null +++ b/php-ocramius-proxy-manager-dev.spec @@ -0,0 +1,168 @@ +# remirepo spec file for php-ocramius-proxy-manager from Fedora: +# +# RPM spec file for php-ocramius-proxy-manager +# +# Copyright (c) 2015 Shawn Iwinski <shawn.iwinski@gmail.com> +# +# License: MIT +# http://opensource.org/licenses/MIT +# +# Please preserve changelog entries +# + +%global github_owner Ocramius +%global github_name ProxyManager +%global github_version 2.0.3 +%global github_commit 51c7fdd99dba53808aaab21b34f7a55b302c160c +%global github_short %(c=%{github_commit}; echo ${c:0:7}) + +%global composer_vendor ocramius +%global composer_project proxy-manager + +# "php": "7.0.0 - 7.0.5 || ^7.0.7" +%global php_min_ver 7.0.7 +# "zendframework/zend-code": "~3.0.0 - 3.0.2 || ^3.0.4" +%global zf_min_ver 3.0.4 +%global zf_max_ver 4 + +# Build using "--without tests" to disable tests +%global with_tests %{?_without_tests:0}%{!?_without_tests:1} + +%{!?phpdir: %global phpdir %{_datadir}/php} + +Name: php-%{composer_vendor}-%{composer_project} +Version: %{github_version} +Release: 1%{?github_release}%{?dist} +Summary: OOP proxy wrappers utilities + +Group: Development/Libraries +License: MIT +URL: http://ocramius.github.io/ProxyManager/ +Source0: %{name}-%{github_version}-%{github_short}.tgz +# git snapshot to retrieve test suite +Source1: makesrc.sh + +# Hardcode library version +# drop dependency on ocramius/package-versions +Patch0: %{name}-rpm.patch + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root +BuildArch: noarch +# Autoload generation +BuildRequires: %{_bindir}/phpab +%if %{with_tests} +# Tests +## composer.json +BuildRequires: %{_bindir}/phpunit +BuildRequires: php-composer(zendframework/zend-code) >= %{zf_min_ver} +BuildRequires: php-composer(zendframework/zend-loader) +## phpcompatinfo (computed from version 2.0.0) +BuildRequires: php-pcre +BuildRequires: php-reflection +BuildRequires: php-spl +# Autoloader +BuildRequires: php-composer(phpunit/phpunit) >= 5.3.4 +%endif + +# composer.json +Requires: php(language) >= %{php_min_ver} +Requires: php-composer(zendframework/zend-code) >= %{zf_min_ver} +Requires: php-composer(zendframework/zend-code) < %{zf_max_ver} +# phpcompatinfo (computed from version 2.0.0) +Requires: php-pcre +Requires: php-reflection +Requires: php-spl +# Autoloader +Requires: php-composer(zendframework/zend-loader) +%if 0%{?fedora} >= 21 +Suggests: php-composer(zendframework/zend-xmlrpc) +Suggests: php-composer(zendframework/zend-json) +Suggests: php-composer(zendframework/zend-soap) +%endif + +# Composer +Provides: php-composer(%{composer_vendor}/%{composer_project}) = %{version} + +%description +This library aims at providing abstraction for generating various kinds +of proxy classes. + +Autoloader: %{phpdir}/ProxyManager/autoload.php + + +%prep +%setup -qn %{github_name}-%{github_commit} + +%patch0 -p0 +sed -e 's/@VERSION@/%{version}/' \ + -e 's/@COMMIT@/%{github_commit}/' \ + -i src/ProxyManager/Version.php +grep ' return' src/ProxyManager/Version.php + + +%build +: Generate autoloader +%{_bindir}/phpab --output src/ProxyManager/autoload.php src/ProxyManager +cat << 'EOF' | tee -a src/ProxyManager/autoload.php +// For dependencies +require_once '%{phpdir}/Zend/autoload.php'; +EOF + + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}%{phpdir} +cp -rp src/* %{buildroot}%{phpdir}/ + + +%check +%if %{with_tests} +: Create tests autoload +mkdir vendor +%{_bindir}/phpab --output vendor/autoload.php tests +cat << 'EOF' | tee -a vendor/autoload.php +require_once '%{buildroot}%{phpdir}/ProxyManager/autoload.php'; +EOF + +: Run tests +%{_bindir}/phpunit --verbose --exclude-group Performance +%else +: Tests skipped +%endif + + +%clean +rm -rf %{buildroot} + + +%files +%defattr(-,root,root,-) +%{!?_licensedir:%global license %%doc} +%license LICENSE +%doc *.md +%doc composer.json +%{phpdir}/ProxyManager + + +%changelog +* Fri Jul 1 2016 Remi Collet <remi@fedoraproject.org> - 2.0.3-1 +- update to 2.0.3 +- raise dependency on zendframework/zend-code 3.0.4 + +* Wed Jun 29 2016 Remi Collet <remi@fedoraproject.org> - 2.0.2-1 +- update to 2.0.2 +- raise dependency on php 7.0.7 +- raise dependency on zendframework/zend-code 3.0 + +* Mon Aug 10 2015 Remi Collet <remi@remirepo.net> - 1.0.2-1 +- update to 1.0.2 + +* Fri May 29 2015 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.0.0-2 +- Fix autoloader to load all optional pkgs +- Some spec cleanup + +* Mon May 18 2015 Remi Collet <RPMS@FamilleCollet.com> - 1.0.0-1 +- add needed backport stuff for remi repository + +* Sat May 16 2015 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.0.0-1 +- Initial package diff --git a/php-ocramius-proxy-manager.spec b/php-ocramius-proxy-manager.spec index 076ca67..f9ed347 100644 --- a/php-ocramius-proxy-manager.spec +++ b/php-ocramius-proxy-manager.spec @@ -12,21 +12,26 @@ %global github_owner Ocramius %global github_name ProxyManager -%global github_version 2.0.3 -%global github_commit 51c7fdd99dba53808aaab21b34f7a55b302c160c -%global github_short %(c=%{github_commit}; echo ${c:0:7}) +%global github_version 1.0.2 +%global github_commit 57e9272ec0e8deccf09421596e0e2252df440e11 %global composer_vendor ocramius %global composer_project proxy-manager -# "php": "7.0.0 - 7.0.5 || ^7.0.7" -%global php_min_ver 7.0.7 -# "zendframework/zend-code": "~3.0.0 - 3.0.2 || ^3.0.4" -%global zf_min_ver 3.0.4 -%global zf_max_ver 4 +# "php": ">=5.3.3" +%global php_min_ver 5.3.3 +# "zendframework/zend-code": ">2.2.5,<3.0" +%global zf_min_ver 2.2.5 +%global zf_max_ver 3.0 +# Skip tests for EPEL 6 b/c PHPUnit < 4 +# TODO: Get tests running on EPEL 6! +%if 0%{?el6} +%global with_tests 0 +%else # Build using "--without tests" to disable tests %global with_tests %{?_without_tests:0}%{!?_without_tests:1} +%endif %{!?phpdir: %global phpdir %{_datadir}/php} @@ -38,13 +43,7 @@ Summary: OOP proxy wrappers utilities Group: Development/Libraries License: MIT URL: http://ocramius.github.io/ProxyManager/ -Source0: %{name}-%{github_version}-%{github_short}.tgz -# git snapshot to retrieve test suite -Source1: makesrc.sh - -# Hardcode library version -# drop dependency on ocramius/package-versions -Patch0: %{name}-rpm.patch +Source0: https://github.com/%{github_owner}/%{github_name}/archive/%{github_commit}/%{name}-%{github_version}-%{github_commit}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildArch: noarch @@ -54,59 +53,61 @@ BuildRequires: %{_bindir}/phpab # Tests ## composer.json BuildRequires: %{_bindir}/phpunit +BuildRequires: php(language) >= %{php_min_ver} BuildRequires: php-composer(zendframework/zend-code) >= %{zf_min_ver} -BuildRequires: php-composer(zendframework/zend-loader) -## phpcompatinfo (computed from version 2.0.0) +BuildRequires: php-composer(zendframework/zend-code) < %{zf_max_ver} +## phpcompatinfo (computed from version 1.0.0) BuildRequires: php-pcre BuildRequires: php-reflection BuildRequires: php-spl -# Autoloader -BuildRequires: php-composer(phpunit/phpunit) >= 5.3.4 %endif # composer.json Requires: php(language) >= %{php_min_ver} Requires: php-composer(zendframework/zend-code) >= %{zf_min_ver} Requires: php-composer(zendframework/zend-code) < %{zf_max_ver} -# phpcompatinfo (computed from version 2.0.0) +# phpcompatinfo (computed from version 1.0.0) Requires: php-pcre Requires: php-reflection Requires: php-spl -# Autoloader -Requires: php-composer(zendframework/zend-loader) -%if 0%{?fedora} >= 21 -Suggests: php-composer(zendframework/zend-xmlrpc) -Suggests: php-composer(zendframework/zend-json) -Suggests: php-composer(zendframework/zend-soap) -%endif # Composer Provides: php-composer(%{composer_vendor}/%{composer_project}) = %{version} %description -This library aims at providing abstraction for generating various kinds -of proxy classes. - -Autoloader: %{phpdir}/ProxyManager/autoload.php +A library providing utilities to generate, instantiate and generally operate +with Object Proxies. + +Optional: +* php-ZendFramework2-Json + To have the JsonRpc adapter (Remote Object feature) +* php-ZendFramework2-Soap + To have the Soap adapter (Remote Object feature) +* php-ZendFramework2-Stdlib + To use the hydrator proxy +* php-ZendFramework2-XmlRpc + To have the XmlRpc adapter (Remote Object feature) +* php-ocramius-generated-hydrator + To have very fast object to array to object conversion for ghost objects %prep %setup -qn %{github_name}-%{github_commit} -%patch0 -p0 -sed -e 's/@VERSION@/%{version}/' \ - -e 's/@COMMIT@/%{github_commit}/' \ - -i src/ProxyManager/Version.php -grep ' return' src/ProxyManager/Version.php - %build : Generate autoloader -%{_bindir}/phpab --output src/ProxyManager/autoload.php src/ProxyManager -cat << 'EOF' | tee -a src/ProxyManager/autoload.php -// For dependencies -require_once '%{phpdir}/Zend/autoload.php'; -EOF +%{_bindir}/phpab --nolower --output src/ProxyManager/autoload.php src/ProxyManager + +(cat <<'AUTOLOAD' + +// TODO: Add Zend/ZendXml/Ocramius autoloaders from their packages when they are available +spl_autoload_register(function ($class) { + $src = str_replace('\\', '/', $class) . '.php'; + @include_once $src; +}); +AUTOLOAD +) | tee -a src/ProxyManager/autoload.php %install @@ -118,14 +119,19 @@ cp -rp src/* %{buildroot}%{phpdir}/ %check %if %{with_tests} : Create tests autoload +%{_bindir}/phpab --nolower --output tests/autoload.php tests %{phpdir}/PHPUnit + +: Create mock Composer "vendor/autoload.php" mkdir vendor -%{_bindir}/phpab --output vendor/autoload.php tests -cat << 'EOF' | tee -a vendor/autoload.php -require_once '%{buildroot}%{phpdir}/ProxyManager/autoload.php'; -EOF +(cat <<'AUTOLOAD' +<?php +require __DIR__ . '/../tests/autoload.php'; +require '%{buildroot}%{phpdir}/ProxyManager/autoload.php'; +AUTOLOAD +) | tee vendor/autoload.php : Run tests -%{_bindir}/phpunit --verbose --exclude-group Performance +%{_bindir}/phpunit -v --exclude-group Performance %else : Tests skipped %endif @@ -145,15 +151,6 @@ rm -rf %{buildroot} %changelog -* Fri Jul 1 2016 Remi Collet <remi@fedoraproject.org> - 2.0.3-1 -- update to 2.0.3 -- raise dependency on zendframework/zend-code 3.0.4 - -* Wed Jun 29 2016 Remi Collet <remi@fedoraproject.org> - 2.0.2-1 -- update to 2.0.2 -- raise dependency on php 7.0.7 -- raise dependency on zendframework/zend-code 3.0 - * Mon Aug 10 2015 Remi Collet <remi@remirepo.net> - 1.0.2-1 - update to 1.0.2 |