Revert "Tests for Cinder packages"
[openstack-build/cinder-build.git] / rpm / SPECS / openstack-cinder.spec
1 %global with_doc %{!?_without_doc:1}%{?_without_doc:0}
2
3 Name:             openstack-cinder
4 Version:          2014.2
5 Release:          2%{?dist}
6 Summary:          OpenStack Volume service
7
8 Group:            Applications/System
9 License:          ASL 2.0
10 URL:              http://www.openstack.org/software/openstack-storage/
11 Source0:          https://launchpad.net/cinder/icehouse/2014.1/+download/cinder-%{version}.tar.gz
12 Source1:          cinder-dist.conf
13 Source2:          cinder.logrotate
14 Source3:          cinder-tgt.conf
15
16 Source10:         openstack-cinder-api.init
17 Source11:         openstack-cinder-scheduler.init
18 Source12:         openstack-cinder-volume.init
19 Source13:         openstack-cinder-backup.init
20
21 Source20:         cinder-sudoers
22
23 #
24 # patches_base=2014.1.1
25 #
26 Patch0001: 0001-Remove-runtime-dep-on-python-pbr-python-d2to1.patch
27
28 BuildArch:        noarch
29 BuildRequires:    intltool
30 BuildRequires:    python-d2to1
31 BuildRequires:    python-oslo-sphinx
32 BuildRequires:    python-pbr
33 BuildRequires:    python-sphinx
34 BuildRequires:    python-setuptools
35 BuildRequires:    python-netaddr >= 0.7.12
36
37 Requires:         openstack-utils
38 Requires:         python-cinder = %{version}-%{release}
39
40 # as convenience
41 Requires:         python-cinderclient
42
43 Requires(post):   chkconfig
44 Requires(postun): initscripts
45 Requires(preun):  chkconfig
46 Requires(pre):    shadow-utils
47
48 Requires:         lvm2
49 Requires:         scsi-target-utils
50
51 %description
52 OpenStack Volume (codename Cinder) provides services to manage and
53 access block storage volumes for use by Virtual Machine instances.
54
55
56 %package -n       python-cinder
57 Summary:          OpenStack Volume Python libraries
58 Group:            Applications/System
59
60 Requires:         sudo
61
62 Requires:         MySQL-python
63
64 Requires:         qemu-img
65 Requires:         sysfsutils
66
67 Requires:         python-paramiko >= 1.13.0
68
69 Requires:         python-paste
70
71 Requires:         python-qpid
72 Requires:         python-kombu
73 Requires:         python-amqplib
74
75 Requires:         python-eventlet >= 0.15.1
76 Requires:         python-greenlet >= 0.3.2
77 Requires:         python-iso8601 >= 0.1.9
78 Requires:         python-lxml >= 2.3
79 Requires:         python-netaddr >= 0.7.12
80 Requires:         python-oslo-config >= 1:1.4.0
81 Requires:         python-oslo-db >= 1.0.0
82 Requires:         python-oslo-messaging >= 1.4.0
83 Requires:         python-oslo-rootwrap >= 1.3.0
84 Requires:         python-osprofiler >= 0.3.0
85 Requires:         python-anyjson >= 0.3.3
86 Requires:         python-argparse
87 #Requires:         python-cheetah
88 Requires:         python-stevedore >= 1.0.0
89 Requires:         python-suds >= 0.4
90
91 Requires:         python-sqlalchemy  >= 0.8.4, python-sqlalchemy <= 0.8.99, python-sqlalchemy >= 0.9.7, python-sqlalchemy <= 0.9.99
92 Requires:         python-migrate >= 0.9.1, python-migrate < 0.9.2, python-migrate > 0.9.2
93
94 Requires:         python-paste-deploy >= 1.5.0
95 Requires:         python-crypto >= 2.6
96 Requires:         python-barbicanclient >= 2.1.0
97 Requires:         python-glanceclient >= 1:0.14.0
98 Requires:         python-routes >= 1.12.3, python-routes < 2.0, python-routes > 2.0
99 Requires:         python-webob >= 1.2.3
100 Requires:         python-wsgiref >= 0.1.2
101 Requires:         python-oslo-i18n >= 1.0.0
102
103 Requires:         python-swiftclient >= 2.2.0
104 Requires:         python-requests >= 1.2.1, python-requests < 2.4.0, python-requests > 2.4.0
105 Requires:         python-keystoneclient
106 Requires:         python-keystonemiddleware >= 1.0.0
107 Requires:         python-kombu >= 2.4.8
108 Requires:         python-novaclient >= 1:2.18.0
109
110 Requires:         python-six >= 1.7.0
111
112 Requires:         python-babel >= 1.3
113 Requires:         python-lockfile
114
115 Requires:         python-rtslib-fb >= 2.1.fb39
116 Requires:         python-taskflow >= 0.4
117
118 Requires:         python-ceph
119 #Requires:         iscsi-initiator-utils
120
121 %description -n   python-cinder
122 OpenStack Volume (codename Cinder) provides services to manage and
123 access block storage volumes for use by Virtual Machine instances.
124
125 This package contains the cinder Python library.
126
127 %if 0%{?with_doc}
128 %package doc
129 Summary:          Documentation for OpenStack Volume
130 Group:            Documentation
131
132 Requires:         %{name} = %{version}-%{release}
133
134 BuildRequires:    graphviz
135
136 # Required to build module documents
137 BuildRequires:    python-eventlet
138 BuildRequires:    python-routes
139 BuildRequires:    python-sqlalchemy
140 BuildRequires:    python-webob
141 # while not strictly required, quiets the build down when building docs.
142 BuildRequires:    python-migrate, python-iso8601
143
144 %description      doc
145 OpenStack Volume (codename Cinder) provides services to manage and
146 access block storage volumes for use by Virtual Machine instances.
147
148 This package contains documentation files for cinder.
149 %endif
150
151 %prep
152 %setup -q -n cinder-%{version}
153
154 %patch0001 -p1
155
156 find . \( -name .gitignore -o -name .placeholder \) -delete
157
158 find cinder -name \*.py -exec sed -i '/\/usr\/bin\/env python/{d;q}' {} +
159
160 # TODO: Have the following handle multi line entries
161 sed -i '/setup_requires/d; /install_requires/d; /dependency_links/d' setup.py
162
163 # Remove the requirements file so that pbr hooks don't add it
164 # to distutils requires_dist config
165 rm -rf {test-,}requirements.txt tools/{pip,test}-requires
166
167 # We add REDHATCINDERVERSION/RELEASE with the pbr removal patch
168 sed -i s/REDHATCINDERVERSION/%{version}/ cinder/version.py
169 sed -i s/REDHATCINDERRELEASE/%{release}/ cinder/version.py
170
171 %build
172 %{__python} setup.py build
173
174 %install
175 %{__python} setup.py install -O1 --skip-build --root %{buildroot}
176
177 # docs generation requires everything to be installed first
178 export PYTHONPATH="$( pwd ):$PYTHONPATH"
179
180 pushd doc
181
182 %if 0%{?with_doc}
183 SPHINX_DEBUG=1 sphinx-build -b html source build/html
184 # Fix hidden-file-or-dir warnings
185 rm -fr build/html/.doctrees build/html/.buildinfo
186 %endif
187
188 # Create dir link to avoid a sphinx-build exception
189 mkdir -p build/man/.doctrees/
190 ln -s .  build/man/.doctrees/man
191 SPHINX_DEBUG=1 sphinx-build -b man -c source source/man build/man
192 mkdir -p %{buildroot}%{_mandir}/man1
193 install -p -D -m 644 build/man/*.1 %{buildroot}%{_mandir}/man1/
194
195 popd
196
197 # Setup directories
198 install -d -m 755 %{buildroot}%{_sharedstatedir}/cinder
199 install -d -m 755 %{buildroot}%{_sharedstatedir}/cinder/tmp
200 install -d -m 755 %{buildroot}%{_localstatedir}/log/cinder
201
202 # Install config files
203 install -d -m 755 %{buildroot}%{_sysconfdir}/cinder
204 install -p -D -m 640 %{SOURCE1} %{buildroot}%{_datadir}/cinder/cinder-dist.conf
205 install -p -D -m 640 etc/cinder/cinder.conf.sample %{buildroot}%{_sysconfdir}/cinder/cinder.conf
206 install -d -m 755 %{buildroot}%{_sysconfdir}/cinder/volumes
207 install -p -D -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/tgt/conf.d/cinder.conf
208 install -p -D -m 640 etc/cinder/rootwrap.conf %{buildroot}%{_sysconfdir}/cinder/rootwrap.conf
209 install -p -D -m 640 etc/cinder/api-paste.ini %{buildroot}%{_sysconfdir}/cinder/api-paste.ini
210 install -p -D -m 640 etc/cinder/policy.json %{buildroot}%{_sysconfdir}/cinder/policy.json
211
212 # Install initscripts for services
213 install -p -D -m 755 %{SOURCE10} %{buildroot}%{_initrddir}/openstack-cinder-api
214 install -p -D -m 755 %{SOURCE11} %{buildroot}%{_initrddir}/openstack-cinder-scheduler
215 install -p -D -m 755 %{SOURCE12} %{buildroot}%{_initrddir}/openstack-cinder-volume
216 install -p -D -m 755 %{SOURCE13} %{buildroot}%{_initrddir}/openstack-cinder-backup
217
218 # Install sudoers
219 install -p -D -m 440 %{SOURCE20} %{buildroot}%{_sysconfdir}/sudoers.d/cinder
220
221 # Install logrotate
222 install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/openstack-cinder
223
224 # Install pid directory
225 install -d -m 755 %{buildroot}%{_localstatedir}/run/cinder
226
227 # Install rootwrap files in /usr/share/cinder/rootwrap
228 mkdir -p %{buildroot}%{_datarootdir}/cinder/rootwrap/
229 install -p -D -m 644 etc/cinder/rootwrap.d/* %{buildroot}%{_datarootdir}/cinder/rootwrap/
230
231 # Remove unneeded in production stuff
232 rm -f %{buildroot}%{_bindir}/cinder-debug
233 rm -fr %{buildroot}%{python_sitelib}/cinder/tests/
234 rm -fr %{buildroot}%{python_sitelib}/run_tests.*
235 rm -f %{buildroot}/usr/share/doc/cinder/README*
236
237 %pre
238 getent group cinder >/dev/null || groupadd -r cinder --gid 165
239 if ! getent passwd cinder >/dev/null; then
240   useradd -u 165 -r -g cinder -G cinder,nobody -d %{_sharedstatedir}/cinder -s /sbin/nologin -c "OpenStack Cinder Daemons" cinder
241 fi
242 exit 0
243
244 %post
245 for svc in volume api scheduler backup; do
246     /sbin/chkconfig --add openstack-cinder-$svc
247 done
248
249 %preun
250 if [ $1 -eq 0 ] ; then
251     for svc in volume api scheduler backup; do
252         /sbin/service openstack-cinder-${svc} stop > /dev/null 2>&1
253         /sbin/chkconfig --del openstack-cinder-${svc}
254     done
255 fi
256
257 %postun
258 if [ $1 -ge 1 ] ; then
259     # Package upgrade, not uninstall
260     for svc in volume api scheduler backup; do
261         /sbin/service openstack-cinder-${svc} condrestart > /dev/null 2>&1 || :
262     done
263 fi
264
265 %files
266 %doc LICENSE
267
268 %dir %{_sysconfdir}/cinder
269 %config(noreplace) %attr(-, root, cinder) %{_sysconfdir}/cinder/cinder.conf
270 %config(noreplace) %attr(-, root, cinder) %{_sysconfdir}/cinder/api-paste.ini
271 %config(noreplace) %attr(-, root, cinder) %{_sysconfdir}/cinder/rootwrap.conf
272 %config(noreplace) %attr(-, root, cinder) %{_sysconfdir}/cinder/policy.json
273 %config(noreplace) %{_sysconfdir}/logrotate.d/openstack-cinder
274 %config(noreplace) %{_sysconfdir}/sudoers.d/cinder
275 %config(noreplace) %{_sysconfdir}/tgt/conf.d/cinder.conf
276 %attr(-, root, cinder) %{_datadir}/cinder/cinder-dist.conf
277
278 %dir %attr(0750, cinder, root) %{_localstatedir}/log/cinder
279 %dir %attr(0755, cinder, root) %{_localstatedir}/run/cinder
280 %dir %attr(0755, cinder, root) %{_sysconfdir}/cinder/volumes
281
282 %{_bindir}/cinder-*
283 %{_initrddir}/openstack-cinder-*
284 %{_datarootdir}/cinder
285 %{_mandir}/man1/cinder*.1.gz
286
287 %defattr(-, cinder, cinder, -)
288 %dir %{_sharedstatedir}/cinder
289 %dir %{_sharedstatedir}/cinder/tmp
290
291 %files -n python-cinder
292 %doc LICENSE
293 %{python_sitelib}/cinder
294 %{python_sitelib}/cinder-%{version}*.egg-info
295
296 %if 0%{?with_doc}
297 %files doc
298 %doc doc/build/html
299 %endif
300
301 %changelog
302 * Wed Jun 11 2014 Eric Harney <eharney@redhat.com> - 2014.1.1-2
303 - Add dependency on iscsi-initiator-utils
304
305 * Mon Jun 09 2014 Eric Harney <eharney@redhat.com> - 2014.1.1-1
306 - Update to Icehouse stable release 1
307
308 * Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2014.1-4
309 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
310
311 * Tue Apr 29 2014 Alan Pevec <apevec@redhat.com> - 2014.1-3
312 - drop crudini build dependency
313
314 * Mon Apr 21 2014 Eric Harney <eharney@redhat.com> - 2014.1-2
315 - Remove qpid settings from cinder-dist.conf
316
317 * Thu Apr 17 2014 Eric Harney <eharney@redhat.com> - 2014.1-1
318 - Update to 2014.1 (Icehouse)
319
320 * Tue Apr 15 2014 Eric Harney <eharney@redhat.com> - 2014.1-0.10.rc3
321 - Add python-oslo-messaging requirement
322 - Add GlusterFS delete patch
323 - Add systemd patches (not used yet)
324
325 * Tue Apr 15 2014 Eric Harney <eharney@redhat.com> - 2014.1-0.9.rc3
326 - Update to Icehouse RC3
327
328 * Mon Apr 07 2014 Eric Harney <eharney@redhat.com> - 2014.1-0.8.rc2
329 - Update to Icehouse RC2
330 - Icehouse requires newer version of python-six
331
332 * Thu Mar 27 2014 Eric Harney <eharney@redhat.com> - 2014.1-0.7.rc1
333 - Update to Icehouse RC1
334
335 * Tue Mar 25 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.6.b3
336 - Depend on python-rtslib and targetcli rather than scsi-target-utils
337
338 * Fri Mar 21 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.5.b3
339 - Use lioadm iSCSI helper rather than tgtadm
340
341 * Sun Mar 16 2014 Eric Harney <eharney@redhat.com> - 2014.1-0.4.b3
342 - Update to Icehouse milestone 3
343 - Add deps on python-oslo-rootwrap, python-taskflow
344
345 * Mon Jan 27 2014 Eric Harney <eharney@redhat.com> - 2014.1-0.3.b2
346 - Update to Icehouse milestone 2
347
348 * Mon Jan 06 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.2.b1
349 - Set python-six min version to ensure updated
350
351 * Thu Dec 19 2013 Eric Harney <eharney@redhat.com> - 2014.1-0.1.b1
352 - Update to Icehouse milestone 1
353
354 * Mon Oct 28 2013 Eric Harney <eharney@redhat.com> - 2013.2-2
355 - Fix GlusterFS volume driver clone operations
356
357 * Thu Oct 17 2013 Eric Harney <eharney@redhat.com> - 2013.2-1
358 - Update to 2013.2 (Havana)
359 - Restart/remove cinder-backup service during upgrade/uninstallation
360
361 * Wed Oct 16 2013 Eric Harney <eharney@redhat.com> - 2013.2-0.13.rc3
362 - Update to Havana RC3
363
364 * Fri Oct 11 2013 Eric Harney <eharney@redhat.com> - 2013.2-0.12.rc2
365 - Update to Havana RC2
366
367 * Tue Oct 08 2013 Eric Harney <eharney@redhat.com> - 2013.2-0.11.rc1
368 - Update to Havana RC1
369 - Fix python-novaclient req epoch
370
371 * Mon Sep 23 2013 Eric Harney <eharney@redhat.com> - 2013.2-0.10.b3
372 - Depend on python-novaclient 2.15
373
374 * Wed Sep 18 2013 Eric Harney <eharney@redhat.com> - 2013.2-0.9.b3
375 - Add cinder-dist.conf
376 - Tighten permissions on /var/log/cinder
377
378 * Mon Sep 9 2013 Eric Harney <eharney@redhat.com> - 2013.2-0.8.b3
379 - Update to Havana milestone 3
380 - Add dependency on python-novaclient
381
382 * Thu Aug 29 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.7.b2
383 - Add dependency on sysfsutils to support the fiber channel driver
384
385 * Mon Aug 26 2013 Eric Harney <eharney@redhat.com> - 2013.2-0.6.b2
386 - Add cinder-backup service init script
387
388 * Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2013.2-0.5.b2
389 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
390
391 * Mon Jul 22 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.4.b2
392 - Add dependency on python-suds to support the netapp driver
393 - Add dependency on python-keystoneclient for auth token middleware
394 - Add dependency on qemu-img for volume creation from Glance images
395
396 * Sun Jul 21 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.3.b2
397 - Update to Havana milestone 2
398
399 * Thu Jun 13 2013 Eric Harney <eharney@redhat.com> - 2013.2-0.2.b1
400 - Update to Havana milestone 1
401
402 * Mon May 13 2013 Eric Harney <eharney@redhat.com> - 2013.1.1-1
403 - Update to Grizzly stable release 1, 2013.1.1
404
405 * Mon Apr 08 2013 Eric Harney <eharney@redhat.com> - 2013.1-2
406 - Backport fix for GlusterFS driver get_volume_stats
407
408 * Thu Apr 04 2013 Eric Harney <eharney@redhat.com> - 2013.1-1
409 - Update to Grizzly final release
410
411 * Tue Apr  2 2013 Pádraig Brady <pbrady@redhat.com> - 2013.1-0.6.rc3
412 - Adjust to support sqlalchemy-0.8.0
413
414 * Wed Mar 27 2013 Eric Harney <eharney@redhat.com> - 2013.1-0.5.rc3
415 - Update to Grizzly RC3 release
416
417 * Mon Mar 25 2013 Eric Harney <eharney@redhat.com> - 2013.1-0.5.rc2
418 - Update to Grizzly RC2 release
419
420 * Mon Mar 18 2013 Eric Harney <eharney@redhat.com> - 2013.1-0.5.rc1
421 - Update to Grizzly RC1 release
422
423 * Tue Mar 05 2013 Pádraig Brady <P@draigBrady.com> - 2013.1-0.4.g3
424 - Add dependency on python-stevedore
425
426 * Mon Feb 25 2013 Eric Harney <eharney@redhat.com> - 2013.1-0.3.g3
427 - Fix build issues with G-3 update
428
429 * Mon Feb 25 2013 Eric Harney <eharney@redhat.com> - 2013.1-0.2.g3
430 - Update to Grizzly milestone 3
431
432 * Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2013.1-0.2.g2
433 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
434
435 * Thu Jan 10 2013 Eric Harney <eharney@redhat.com> - 2013.1-0.1.g2
436 - Update to Grizzly milestone 2
437
438 * Thu Nov 29 2012 Eric Harney <eharney@redhat.com> - 2013.1-0.1.g1
439 - Update to Grizzly milestone 1
440
441 * Wed Nov 14 2012 Eric Harney <eharney@redhat.com> - 2012.2-2
442 - Remove unused dependency on python-daemon
443
444 * Thu Sep 27 2012 Pádraig Brady <P@draigBrady.com> - 2012.2-1
445 - Update to Folsom final
446
447 * Fri Sep 21 2012 Pádraig Brady <P@draigBrady.com> - 2012.2-0.5.rc1
448 - Update to Folsom RC1
449
450 * Fri Sep 21 2012 Pádraig Brady <P@draigBrady.com> - 2012.2-0.4.f3
451 - Fix to ensure that tgt configuration is honored
452
453 * Mon Sep 17 2012 Pádraig Brady <P@draigBrady.com> - 2012.2-0.3.f3
454 - Move user config out of /etc/cinder/api-paste.ini
455 - Require python-cinderclient
456
457 * Mon Sep  3 2012 Pádraig Brady <P@draigBrady.com> - 2012.2-0.2.f3
458 - Initial release