summaryrefslogtreecommitdiffstats
path: root/php-opencloud.spec
diff options
context:
space:
mode:
Diffstat (limited to 'php-opencloud.spec')
-rw-r--r--php-opencloud.spec171
1 files changed, 131 insertions, 40 deletions
diff --git a/php-opencloud.spec b/php-opencloud.spec
index eb8261a..fd817ec 100644
--- a/php-opencloud.spec
+++ b/php-opencloud.spec
@@ -1,60 +1,122 @@
-%global vendor OpenCloud
-%global commit 7be280fde422651d0966c70b07f6477b37dd4270
-%global shortcommit %(c=%{commit}; echo ${c:0:7})
-
-Name: php-opencloud
-Version: 1.6.0
-Release: 5%{?dist}
-Summary: PHP SDK for OpenStack/Rackspace APIs
-Group: Development/Libraries
-
-License: ASL 2.0
-URL: http://php-opencloud.com/
-Source0: https://github.com/rackspace/php-opencloud/archive/%{commit}/%{name}-%{version}-%{shortcommit}.tar.gz
-
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-BuildRequires: php-phpunit-PHPUnit
-
-Requires: php-spl php-curl php-date php-fileinfo php-hash php-json
-Requires: php-pcre
+#
+# RPM spec file for php-egulias-email-validator
+#
+# Copyright (c) 2013-2014 Gregor Tätzner <brummbq@fedoraproject.org>
+# Shawn Iwinski <shawn.iwinski@gmail.com>
+#
+# License: MIT
+# http://opensource.org/licenses/MIT
+#
+# Please preserve changelog entries
+#
+
+%global github_owner rackspace
+%global github_name php-opencloud
+%global github_version 1.11.0
+%global github_commit ed22aa68966ee8a6c26779453cf90b5e5b96a922
+
+%global composer_vendor rackspace
+%global composer_project php-opencloud
+
+# "php" : ">=5.3.3"
+%global php_min_ver 5.3.3
+# "guzzle/http" : "~3.8"
+%global guzzle_min_ver 3.8
+%global guzzle_max_ver 4.0
+# "psr/log": "~1.0"
+%global psr_log_min_ver 1.0
+%global psr_log_max_ver 2.0
+
+# Build using "--without tests" to disable tests
+%global with_tests %{?_without_tests:0}%{!?_without_tests:1}
+
+%{!?phpdir: %global phpdir %{_datadir}/php}
+%{!?__phpunit: %global __phpunit %{_bindir}/phpunit}
+
+Name: php-opencloud
+Version: %{github_version}
+Release: 2%{?github_release}%{?dist}
+Summary: PHP SDK for OpenStack/Rackspace APIs
+Group: Development/Libraries
-BuildArch: noarch
+License: ASL 2.0
+URL: http://php-opencloud.com/
+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
+%if %{with_tests}
+BuildRequires: php-phpunit-PHPUnit
+# composer.json
+BuildRequires: php(language) >= %{php_min_ver}
+BuildRequires: php-composer(psr/log) >= %{psr_log_min_ver}
+BuildRequires: php-composer(psr/log) < %{psr_log_max_ver}
+BuildRequires: php-guzzle-Guzzle >= %{guzzle_min_ver}
+BuildRequires: php-guzzle-Guzzle < %{guzzle_max_ver}
+# phpcompatinfo (computed from version 1.11.0)
+BuildRequires: php-curl
+BuildRequires: php-date
+BuildRequires: php-hash
+BuildRequires: php-json
+BuildRequires: php-pcre
+BuildRequires: php-reflection
+BuildRequires: php-spl
+%endif
+
+# composer.json
+Requires: php(language) >= %{php_min_ver}
+Requires: php-composer(psr/log) >= %{psr_log_min_ver}
+Requires: php-composer(psr/log) < %{psr_log_max_ver}
+Requires: php-guzzle-Guzzle >= %{guzzle_min_ver}
+Requires: php-guzzle-Guzzle < %{guzzle_max_ver}
+# phpcompatinfo (computed from version 1.11.0)
+Requires: php-date
+Requires: php-hash
+Requires: php-json
+Requires: php-pcre
+Requires: php-spl
# Obsoletes: php-cloudfiles
%description
-The PHP SDK should work with most OpenStack-based cloud deployments, though it
-specifically targets the Rackspace public cloud. In general, whenever a
-Rackspace deployment is substantially different than a pure OpenStack one, a
-separate Rackspace subclass is provided so that you can still use the SDK with
-a pure OpenStack instance (for example, see the OpenStack class (for OpenStack)
-and the Rackspace subclass).
+The PHP SDK should work with most OpenStack-based cloud deployments, though
+it specifically targets the Rackspace public cloud. In general, whenever a
+Rackspace deployment is substantially different than a pure OpenStack one,
+a separate Rackspace subclass is provided so that you can still use the SDK
+with a pure OpenStack instance (for example, see the OpenStack class (for
+OpenStack) and the Rackspace subclass).
+
%package doc
-Summary: Documentation for OpenStack/Rackspace APIs PHP SDK
-Group: Development/Libraries
+Summary: Documentation for PHP SDK for OpenStack/Rackspace APIs
+Group: Development/Libraries
+
%description doc
-%{summary}
+Documentation for PHP SDK for OpenStack/Rackspace APIs.
%prep
-%setup -q -n %{name}-%{commit}
+%setup -qn %{github_name}-%{github_commit}
-# EOL encoding
-sed -i 's/\r$//' docs/api/css/jquery.treeview.css
+# Fix version
+# https://github.com/rackspace/php-opencloud/pull/445
+sed 's/1.10.0/%{github_version}/' -i lib/OpenCloud/Version.php
+
+# W: spurious-executable-perm
+# https://github.com/rackspace/php-opencloud/pull/446
+find docs -type f -name '*.md' -exec chmod a-x "{}" \;
%build
-# nothing to build
+# Empty build section, nothing required
%install
rm -rf %{buildroot}
-INSTALL_DIR=%{buildroot}%{_datadir}/php
-mkdir -p $INSTALL_DIR
-cp -a lib/%{vendor} $INSTALL_DIR
+mkdir -pm 0755 %{buildroot}%{phpdir}
+cp -rp lib/OpenCloud %{buildroot}%{phpdir}/
%clean
@@ -62,19 +124,48 @@ rm -rf %{buildroot}
%check
-phpunit -d date.timezone=UTC .
+%if %{with_tests}
+# Create autoloader
+mkdir vendor
+cat > vendor/autoload.php <<'AUTOLOAD'
+<?php
+
+spl_autoload_register(function ($class) {
+ $src = str_replace('\\', '/', $class).'.php';
+ @include_once $src;
+});
+AUTOLOAD
+
+# Create PHPUnit config with colors turned off and no coverage-clover logging
+sed -e 's/colors="true"/colors="false"/' phpunit.xml.dist \
+ -e '/coverage-clover/d' \
+ > phpunit.xml
+
+%{__phpunit} --include-path %{buildroot}%{phpdir}:./tests -d date.timezone="UTC"
+%else
+: Tests skipped
+%endif
%files
-%defattr(-,root,root,-)
-%doc LICENSE README.md TODO.md composer.json CONTRIBUTORS.md TODO.md
-%{_datadir}/php/%{vendor}
+%{!?_licensedir:%global license %%doc}
+%license LICENSE
+%doc *.md composer.json
+%{phpdir}/OpenCloud
+
%files doc
%doc samples docs
%changelog
+* Sun Nov 02 2014 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.11.0-2
+- No BuildRequires unless with tests
+
+* Sun Nov 02 2014 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.11.0-1
+- Updated to 1.11.0 (BZ #1159522)
+- Spec cleanup
+
* Thu Jul 31 2014 Remi Collet <rpms@famillecollet.com> - 1.6.0-5
- don't obsolete php-cloudfiles