summaryrefslogtreecommitdiffstats
path: root/php-opencloud.spec
blob: fd817ec60a14537441945c4a61969d2dbe1045bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
#
# 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

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).


%package doc
Summary: Documentation for PHP SDK for OpenStack/Rackspace APIs
Group:   Development/Libraries


%description doc
Documentation for PHP SDK for OpenStack/Rackspace APIs.


%prep
%setup -qn %{github_name}-%{github_commit}

# 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
# Empty build section, nothing required


%install
rm -rf %{buildroot}
mkdir -pm 0755 %{buildroot}%{phpdir}
cp -rp lib/OpenCloud %{buildroot}%{phpdir}/


%clean
rm -rf %{buildroot}


%check
%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
%{!?_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

* Thu Jan 30 2014 Remi Collet <rpms@famillecollet.com> - 1.6.0-4
- backport 1.6.0 for remi repo

* Thu Jan 30 2014 Gregor Tätzner <brummbq@fedoraproject.org> - 1.6.0-4
- obsolete php-cloudfiles

* Sat Jan 25 2014 Gregor Tätzner <brummbq@fedoraproject.org> - 1.6.0-3
- use commit revision in source url

* Fri Jan 03 2014 Gregor Tätzner <brummbq@fedoraproject.org> - 1.6.0-2
- move lib to psr-0 compliant location
- drop autoloader

* Tue Dec 31 2013 Gregor Tätzner <brummbq@fedoraproject.org> - 1.6.0-1
- initial packaging