summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--php-ocramius-proxy-manager.spec94
1 files changed, 52 insertions, 42 deletions
diff --git a/php-ocramius-proxy-manager.spec b/php-ocramius-proxy-manager.spec
index f9ed347..4e9bfdd 100644
--- a/php-ocramius-proxy-manager.spec
+++ b/php-ocramius-proxy-manager.spec
@@ -1,8 +1,8 @@
# remirepo spec file for php-ocramius-proxy-manager from Fedora:
#
-# RPM spec file for php-ocramius-proxy-manager
+# Fedora spec file for php-ocramius-proxy-manager
#
-# Copyright (c) 2015 Shawn Iwinski <shawn.iwinski@gmail.com>
+# Copyright (c) 2015-2016 Shawn Iwinski <shawn.iwinski@gmail.com>
#
# License: MIT
# http://opensource.org/licenses/MIT
@@ -24,20 +24,13 @@
%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
+%global with_tests 0%{!?_without_tests:1}
%{!?phpdir: %global phpdir %{_datadir}/php}
Name: php-%{composer_vendor}-%{composer_project}
Version: %{github_version}
-Release: 1%{?github_release}%{?dist}
+Release: 2%{?github_release}%{?dist}
Summary: OOP proxy wrappers utilities
Group: Development/Libraries
@@ -47,30 +40,43 @@ Source0: https://github.com/%{github_owner}/%{github_name}/archive/%{githu
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildArch: noarch
-# Autoload generation
+# Autoloader
BuildRequires: %{_bindir}/phpab
%if %{with_tests}
# Tests
## composer.json
BuildRequires: %{_bindir}/phpunit
-BuildRequires: php(language) >= %{php_min_ver}
+BuildRequires: php(language) >= %{php_min_ver}
BuildRequires: php-composer(zendframework/zend-code) >= %{zf_min_ver}
BuildRequires: php-composer(zendframework/zend-code) < %{zf_max_ver}
-## phpcompatinfo (computed from version 1.0.0)
+BuildRequires: php-composer(ocramius/generated-hydrator) >= 1.2.0
+## phpcompatinfo (computed from version 1.0.2)
BuildRequires: php-pcre
BuildRequires: php-reflection
BuildRequires: php-spl
%endif
# composer.json
-Requires: php(language) >= %{php_min_ver}
+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 1.0.0)
+# phpcompatinfo (computed from version 1.0.2)
Requires: php-pcre
Requires: php-reflection
Requires: php-spl
+# Weak dependencies
+%if 0%{?fedora} >= 21
+Suggests: php-composer(ocramius/generated-hydrator)
+Suggests: php-composer(zendframework/zend-json)
+Suggests: php-composer(zendframework/zend-soap)
+Suggests: php-composer(zendframework/zend-stdlib)
+Suggests: php-composer(zendframework/zend-xmlrpc)
+%endif
+# For autoloader
+Conflicts: php-ocramius-generated-hydrator < 1.2.0
+
+
# Composer
Provides: php-composer(%{composer_vendor}/%{composer_project}) = %{version}
@@ -78,17 +84,7 @@ Provides: php-composer(%{composer_vendor}/%{composer_project}) = %{version}
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
+Autoloader: %{phpdir}/ProxyManager/autoload.php
%prep
@@ -97,17 +93,22 @@ Optional:
%build
: Generate autoloader
-%{_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;
-});
+%{_bindir}/phpab --output src/ProxyManager/autoload.php src/ProxyManager
+
+cat <<'AUTOLOAD' | tee -a src/ProxyManager/autoload.php
+
+// Dependencies (autoloader => required)
+foreach (array(
+ // Required
+ '%{phpdir}/Zend/autoload.php' => true,
+ // Optional
+ '%{phpdir}/GeneratedHydrator/autoload.php' => false,
+) as $dependencyAutoloader => $required) {
+ if ($required || file_exists($dependencyAutoloader)) {
+ require_once $dependencyAutoloader;
+ }
+}
AUTOLOAD
-) | tee -a src/ProxyManager/autoload.php
%install
@@ -119,19 +120,22 @@ cp -rp src/* %{buildroot}%{phpdir}/
%check
%if %{with_tests}
: Create tests autoload
-%{_bindir}/phpab --nolower --output tests/autoload.php tests %{phpdir}/PHPUnit
+%{_bindir}/phpab --output tests/autoload.php tests %{phpdir}/PHPUnit
: Create mock Composer "vendor/autoload.php"
mkdir vendor
-(cat <<'AUTOLOAD'
+cat <<'AUTOLOAD' | tee vendor/autoload.php
<?php
-require __DIR__ . '/../tests/autoload.php';
+require __DIR__.'/../tests/autoload.php';
require '%{buildroot}%{phpdir}/ProxyManager/autoload.php';
AUTOLOAD
-) | tee vendor/autoload.php
+
+: Skip test known to fail
+sed 's/function testCodeGeneration/function SKIP_testCodeGeneration/' \
+ -i tests/ProxyManagerTest/Functional/FatalPreventionFunctionalTest.php
: Run tests
-%{_bindir}/phpunit -v --exclude-group Performance
+%{_bindir}/phpunit --verbose --exclude-group Performance
%else
: Tests skipped
%endif
@@ -151,6 +155,12 @@ rm -rf %{buildroot}
%changelog
+* Tue Oct 18 2016 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.0.2-2
+- Update to 1.0.2 (RHBZ #1251784)
+- Add weak dependencies
+- Use dependencies' autoloaders
+- Temporarily skip tests on Fedora 25+ (RHBZ #1350615)
+
* Mon Aug 10 2015 Remi Collet <remi@remirepo.net> - 1.0.2-1
- update to 1.0.2