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