cdee4bdefcf61b38b438ae338941293b3ef2906f
[openstack-build/ceilometer-build.git] / rpm / SPECS / openstack-ceilometer.spec
1 %global _without_doc 1
2 %global with_doc %{!?_without_doc:1}%{?_without_doc:0}
3 %global pypi_name ceilometer
4
5 Name:             openstack-ceilometer
6 Version:          2014.1.1
7 Release:          2%{?dist}
8 Summary:          OpenStack measurement collection service
9
10 Group:            Applications/System
11 License:          ASL 2.0
12 URL:              https://wiki.openstack.org/wiki/Ceilometer
13 Source0:          http://tarballs.openstack.org/%{pypi_name}/%{pypi_name}-%{version}.tar.gz
14 Source1:          %{pypi_name}-dist.conf
15 Source2:          %{pypi_name}.logrotate
16
17 Source10:         %{name}-api.init
18 Source100:        %{name}-api.upstart
19 Source11:         %{name}-collector.init
20 Source110:        %{name}-collector.upstart
21 Source12:         %{name}-compute.init
22 Source120:        %{name}-compute.upstart
23 Source13:         %{name}-central.init
24 Source130:        %{name}-central.upstart
25 Source14:         %{name}-alarm-notifier.init
26 Source140:        %{name}-alarm-notifier.upstart
27 Source15:         %{name}-alarm-evaluator.init
28 Source150:        %{name}-alarm-evaluator.upstart
29 Source16:         %{name}-notification.init
30 Source160:        %{name}-notification.upstart
31
32 #
33 # patches_base=2014.1.1
34 #
35 Patch0001: 0001-Ensure-routing-key-is-specified-in-the-address-for-a.patch
36
37 # This is EL6 specific and not upstream
38 Patch100:         openstack-ceilometer-newdeps.patch
39
40 BuildArch:        noarch
41 BuildRequires:    intltool
42 BuildRequires:    python-sphinx10
43 BuildRequires:    python-setuptools
44 BuildRequires:    python-pbr
45 BuildRequires:    python-d2to1
46 BuildRequires:    python2-devel
47
48 BuildRequires:    openstack-utils
49
50 # These are required to build due to the requirements check added
51 BuildRequires:    python-sqlalchemy0.7
52 BuildRequires:    python-webob1.2
53
54
55 %description
56 OpenStack ceilometer provides services to measure and
57 collect metrics from OpenStack components.
58
59
60 %package -n       python-ceilometer
61 Summary:          OpenStack ceilometer python libraries
62 Group:            Applications/System
63
64 Requires:         python-qpid
65 Requires:         python-kombu
66
67 Requires:         python-babel
68 Requires:         python-eventlet
69 Requires:         python-greenlet
70 Requires:         python-iso8601
71 Requires:         python-lxml
72 Requires:         python-anyjson
73 Requires:         python-jsonpath-rw
74 Requires:         python-stevedore >= 0.14
75 Requires:         python-msgpack
76 Requires:         python-six >= 1.6
77 Requires:         PyYAML
78
79 Requires:         python-argparse
80 Requires:         python-jsonschema
81 Requires:         python-netaddr
82 Requires:         python-requests
83
84 Requires:         python-sqlalchemy0.7
85 Requires:         python-alembic
86 Requires:         python-migrate
87
88 Requires:         python-webob >= 1.2.3
89
90 Requires:         python-oslo-config >= 1:1.2.0
91
92 Requires:         pysnmp
93 Requires:         pytz
94 Requires:         python-croniter
95
96 # These were only added as global dependencies
97 # at the end of the Icehouse cycle with the change
98 # to cli.py referenced from in http://pad.lv/1317210
99 Requires:         python-pymongo
100 Requires:         python-flask
101 Requires:         python-pecan >= 0.4.5
102 Requires:         python-wsme >= 0.6
103 Requires:         python-novaclient
104 Requires:         python-keystoneclient
105 Requires:         python-glanceclient
106 Requires:         python-swiftclient
107 Requires:         python-ceilometerclient
108 Requires:         libvirt-python
109
110 %description -n   python-ceilometer
111 OpenStack ceilometer provides services to measure and
112 collect metrics from OpenStack components.
113
114 This package contains the ceilometer python library.
115
116
117 %package common
118 Summary:          Components common to all OpenStack ceilometer services
119 Group:            Applications/System
120
121 Requires:         python-ceilometer = %{version}-%{release}
122 Requires:         openstack-utils
123
124 Requires(post):   chkconfig
125 Requires(postun): initscripts
126 Requires(preun):  chkconfig
127 Requires(pre):    shadow-utils
128
129
130
131 %description common
132 OpenStack ceilometer provides services to measure and
133 collect metrics from OpenStack components.
134
135 This package contains components common to all OpenStack
136 ceilometer services.
137
138
139 %package compute
140 Summary:          OpenStack ceilometer compute agent
141 Group:            Applications/System
142
143 Requires:         %{name}-common = %{version}-%{release}
144
145 Requires:         python-novaclient
146 Requires:         python-keystoneclient
147 Requires:         libvirt-python
148
149 %description compute
150 OpenStack ceilometer provides services to measure and
151 collect metrics from OpenStack components.
152
153 This package contains the ceilometer agent for
154 running on OpenStack compute nodes.
155
156
157 %package central
158 Summary:          OpenStack ceilometer central agent
159 Group:            Applications/System
160
161 Requires:         %{name}-common = %{version}-%{release}
162
163 Requires:         python-novaclient
164 Requires:         python-keystoneclient
165 Requires:         python-glanceclient
166 Requires:         python-swiftclient
167
168 %description central
169 OpenStack ceilometer provides services to measure and
170 collect metrics from OpenStack components.
171
172 This package contains the central ceilometer agent.
173
174
175 %package collector
176 Summary:          OpenStack ceilometer collector
177 Group:            Applications/System
178
179 Requires:         %{name}-common = %{version}-%{release}
180
181 # For compat with older provisioning tools.
182 # Remove when all reference the notification package explicitly
183 Requires:         %{name}-notification
184
185 Requires:         python-pymongo
186
187 %description collector
188 OpenStack ceilometer provides services to measure and
189 collect metrics from OpenStack components.
190
191 This package contains the ceilometer collector service
192 which collects metrics from the various agents.
193
194
195 %package notification
196 Summary:          OpenStack ceilometer notification agent
197 Group:            Applications/System
198
199 Requires:         %{name}-common = %{version}-%{release}
200
201 %description notification
202 OpenStack ceilometer provides services to measure and
203 collect metrics from OpenStack components.
204
205 This package contains the ceilometer notification agent
206 which pushes metrics to the collector service from the
207 various OpenStack services.
208
209
210 %package api
211 Summary:          OpenStack ceilometer API service
212 Group:            Applications/System
213
214 Requires:         %{name}-common = %{version}-%{release}
215
216 Requires:         python-pymongo
217 Requires:         python-flask
218 Requires:         python-pecan >= 0.4.5
219 Requires:         python-wsme >= 0.6
220
221 %description api
222 OpenStack ceilometer provides services to measure and
223 collect metrics from OpenStack components.
224
225 This package contains the ceilometer API service.
226
227
228 %package alarm
229 Summary:          OpenStack ceilometer alarm services
230 Group:            Applications/System
231
232 Requires:         %{name}-common = %{version}-%{release}
233 Requires:         python-ceilometerclient
234
235 %description alarm
236 OpenStack ceilometer provides services to measure and
237 collect metrics from OpenStack components.
238
239 This package contains the ceilometer alarm notification
240 and evaluation services.
241
242
243 %if 0%{?with_doc}
244 %package doc
245 Summary:          Documentation for OpenStack ceilometer
246 Group:            Documentation
247
248 # Required to build module documents
249 BuildRequires:    python-eventlet
250 BuildRequires:    python-sqlalchemy0.7
251 BuildRequires:    python-webob
252 # while not strictly required, quiets the build down when building docs.
253 BuildRequires:    python-migrate, python-iso8601
254
255 %description      doc
256 OpenStack ceilometer provides services to measure and
257 collect metrics from OpenStack components.
258
259 This package contains documentation files for ceilometer.
260 %endif
261
262 %prep
263 %setup -q -n ceilometer-%{version}
264
265 %patch0001 -p1
266
267 # Apply EL6 patch
268 %patch100 -p1
269
270 find . \( -name .gitignore -o -name .placeholder \) -delete
271
272 find ceilometer -name \*.py -exec sed -i '/\/usr\/bin\/env python/{d;q}' {} +
273
274 # TODO: Have the following handle multi line entries
275 sed -i '/setup_requires/d; /install_requires/d; /dependency_links/d' setup.py
276
277 # Remove the requirements file so that pbr hooks don't add it
278 # to distutils requires_dist config
279 rm -rf {test-,}requirements.txt tools/{pip,test}-requires
280
281 # Programmatically update defaults in sample config
282 # which is installed at /etc/ceilometer/ceilometer.conf
283 # TODO: Make this more robust
284 # Note it only edits the first occurance, so assumes a section ordering in sample
285 # and also doesn't support multi-valued variables.
286 while read name eq value; do
287   test "$name" && test "$value" || continue
288   sed -i "0,/^# *$name=/{s!^# *$name=.*!#$name=$value!}" etc/ceilometer/ceilometer.conf.sample
289 done < %{SOURCE1}
290
291 %build
292 %{__python} setup.py build
293
294 %install
295 %{__python} setup.py install -O1 --skip-build --root %{buildroot}
296
297 # docs generation requires everything to be installed first
298 export PYTHONPATH="$( pwd ):$PYTHONPATH"
299
300 pushd doc
301
302 %if 0%{?with_doc}
303 SPHINX_DEBUG=1 sphinx-1.0-build -b html source build/html
304 # Fix hidden-file-or-dir warnings
305 rm -fr build/html/.doctrees build/html/.buildinfo
306 %endif
307
308 popd
309
310 # Setup directories
311 install -d -m 755 %{buildroot}%{_sharedstatedir}/ceilometer
312 install -d -m 755 %{buildroot}%{_sharedstatedir}/ceilometer/tmp
313 install -d -m 755 %{buildroot}%{_localstatedir}/log/ceilometer
314
315 # Install config files
316 install -d -m 755 %{buildroot}%{_sysconfdir}/ceilometer
317 install -p -D -m 640 %{SOURCE1} %{buildroot}%{_datadir}/ceilometer/ceilometer-dist.conf
318 install -p -D -m 640 etc/ceilometer/ceilometer.conf.sample %{buildroot}%{_sysconfdir}/ceilometer/ceilometer.conf
319 install -p -D -m 640 etc/ceilometer/policy.json %{buildroot}%{_sysconfdir}/ceilometer/policy.json
320 install -p -D -m 640 etc/ceilometer/sources.json %{buildroot}%{_sysconfdir}/ceilometer/sources.json
321 install -p -D -m 640 etc/ceilometer/pipeline.yaml %{buildroot}%{_sysconfdir}/ceilometer/pipeline.yaml
322
323 # Install initscripts for services
324 install -p -D -m 755 %{SOURCE10} %{buildroot}%{_initrddir}/%{name}-api
325 install -p -D -m 755 %{SOURCE11} %{buildroot}%{_initrddir}/%{name}-collector
326 install -p -D -m 755 %{SOURCE12} %{buildroot}%{_initrddir}/%{name}-compute
327 install -p -D -m 755 %{SOURCE13} %{buildroot}%{_initrddir}/%{name}-central
328 install -p -D -m 755 %{SOURCE14} %{buildroot}%{_initrddir}/%{name}-alarm-notifier
329 install -p -D -m 755 %{SOURCE15} %{buildroot}%{_initrddir}/%{name}-alarm-evaluator
330 install -p -D -m 755 %{SOURCE16} %{buildroot}%{_initrddir}/%{name}-notification
331
332 # Install upstart jobs examples
333 install -d -m 755 %{buildroot}%{_datadir}/ceilometer
334 install -p -m 644 %{SOURCE100} %{buildroot}%{_datadir}/ceilometer/
335 install -p -m 644 %{SOURCE110} %{buildroot}%{_datadir}/ceilometer/
336 install -p -m 644 %{SOURCE120} %{buildroot}%{_datadir}/ceilometer/
337 install -p -m 644 %{SOURCE130} %{buildroot}%{_datadir}/ceilometer/
338 install -p -m 644 %{SOURCE140} %{buildroot}%{_datadir}/ceilometer/
339 install -p -m 644 %{SOURCE150} %{buildroot}%{_datadir}/ceilometer/
340 install -p -m 644 %{SOURCE160} %{buildroot}%{_datadir}/ceilometer/
341
342 # Install logrotate
343 install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
344
345 # Install pid directory
346 install -d -m 755 %{buildroot}%{_localstatedir}/run/ceilometer
347
348 # Remove unneeded in production stuff
349 rm -f %{buildroot}%{_bindir}/ceilometer-debug
350 rm -fr %{buildroot}%{python_sitelib}/tests/
351 rm -fr %{buildroot}%{python_sitelib}/run_tests.*
352 rm -f %{buildroot}/usr/share/doc/ceilometer/README*
353 rm -f %{buildroot}/%{python_sitelib}/ceilometer/api/v1/static/LICENSE.*
354
355
356 %pre common
357 getent group ceilometer >/dev/null || groupadd -r ceilometer --gid 166
358 if ! getent passwd ceilometer >/dev/null; then
359   # Id reservation request: https://bugzilla.redhat.com/923891
360   useradd -u 166 -r -g ceilometer -G ceilometer,nobody -d %{_sharedstatedir}/ceilometer -s /sbin/nologin -c "OpenStack ceilometer Daemons" ceilometer
361 fi
362 exit 0
363
364 %post compute
365 if [ $1 -eq 1 ] ; then
366     # Initial installation
367     /sbin/chkconfig --add %{name}-compute
368 fi
369
370 %post collector
371 if [ $1 -eq 1 ] ; then
372     # Initial installation
373     /sbin/chkconfig --add %{name}-collector
374 fi
375
376 %post notification
377 if [ $1 -eq 1 ] ; then
378     # Initial installation
379     /sbin/chkconfig --add %{name}-notification
380 fi
381
382 %post api
383 if [ $1 -eq 1 ] ; then
384     # Initial installation
385     /sbin/chkconfig --add %{name}-api
386 fi
387
388 %post central
389 if [ $1 -eq 1 ] ; then
390     # Initial installation
391     /sbin/chkconfig --add %{name}-central
392 fi
393
394 %post alarm
395 if [ $1 -eq 1 ] ; then
396     # Initial installation
397     for svc in alarm-notifier alarm-evaluator; do
398         /sbin/chkconfig --add %{name}-${svc}
399     done
400 fi
401
402 %preun compute
403 if [ $1 -eq 0 ] ; then
404     for svc in compute; do
405         /sbin/service %{name}-${svc} stop > /dev/null 2>&1
406         /sbin/chkconfig --del %{name}-${svc}
407     done
408 fi
409
410 %preun collector
411 if [ $1 -eq 0 ] ; then
412     for svc in collector; do
413         /sbin/service %{name}-${svc} stop > /dev/null 2>&1
414         /sbin/chkconfig --del %{name}-${svc}
415     done
416 fi
417
418 %preun notification
419 if [ $1 -eq 0 ] ; then
420     for svc in notification; do
421         /sbin/service %{name}-${svc} stop > /dev/null 2>&1
422         /sbin/chkconfig --del %{name}-${svc}
423     done
424 fi
425
426 %preun api
427 if [ $1 -eq 0 ] ; then
428     for svc in api; do
429         /sbin/service %{name}-${svc} stop > /dev/null 2>&1
430         /sbin/chkconfig --del %{name}-${svc}
431     done
432 fi
433
434 %preun central
435 if [ $1 -eq 0 ] ; then
436     for svc in central; do
437         /sbin/service %{name}-${svc} stop > /dev/null 2>&1
438         /sbin/chkconfig --del %{name}-${svc}
439     done
440 fi
441
442 %preun alarm
443 if [ $1 -eq 0 ] ; then
444     for svc in alarm-notifier alarm-evaluator; do
445         /sbin/service %{name}-${svc} stop > /dev/null 2>&1
446         /sbin/chkconfig --del %{name}-${svc}
447     done
448 fi
449
450 %postun compute
451 if [ $1 -ge 1 ] ; then
452     # Package upgrade, not uninstall
453     for svc in compute; do
454         /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
455     done
456 fi
457
458 %postun collector
459 if [ $1 -ge 1 ] ; then
460     # Package upgrade, not uninstall
461     for svc in collector; do
462         /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
463     done
464 fi
465
466 %postun notification
467 if [ $1 -ge 1 ] ; then
468     # Package upgrade, not uninstall
469     for svc in notification; do
470         /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
471     done
472 fi
473
474 %postun api
475 if [ $1 -ge 1 ] ; then
476     # Package upgrade, not uninstall
477     for svc in api; do
478         /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
479     done
480 fi
481
482 %postun central
483 if [ $1 -ge 1 ] ; then
484     # Package upgrade, not uninstall
485     for svc in central; do
486         /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
487     done
488 fi
489
490 %postun alarm
491 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
492 if [ $1 -ge 1 ] ; then
493     # Package upgrade, not uninstall
494     for svc in alarm-notifier alarm-evaluator; do
495         /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
496     done
497 fi
498
499
500 %files common
501 %doc LICENSE
502 %dir %{_sysconfdir}/ceilometer
503 %attr(-, root, ceilometer) %{_datadir}/ceilometer/ceilometer-dist.conf
504 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/ceilometer.conf
505 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/policy.json
506 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/sources.json
507 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/pipeline.yaml
508 %config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
509
510 %dir %attr(0755, ceilometer, root) %{_localstatedir}/log/ceilometer
511 %dir %attr(0755, ceilometer, root) %{_localstatedir}/run/ceilometer
512
513 %{_bindir}/ceilometer-dbsync
514 %{_bindir}/ceilometer-expirer
515 %{_bindir}/ceilometer-send-sample
516
517
518 %defattr(-, ceilometer, ceilometer, -)
519 %dir %{_sharedstatedir}/ceilometer
520 %dir %{_sharedstatedir}/ceilometer/tmp
521
522
523 %files -n python-ceilometer
524 %{python_sitelib}/ceilometer
525 %{python_sitelib}/ceilometer-%{version}*.egg-info
526
527
528 %if 0%{?with_doc}
529 %files doc
530 %doc doc/build/html
531 %endif
532
533
534 %files compute
535 %{_bindir}/ceilometer-agent-compute
536 %{_initrddir}/%{name}-compute
537 %{_datarootdir}/ceilometer/%{name}-compute.upstart
538
539
540 %files collector
541 %{_bindir}/ceilometer-collector*
542 %{_initrddir}/%{name}-collector
543 %{_datarootdir}/ceilometer/%{name}-collector.upstart
544
545
546 %files notification
547 %{_bindir}/ceilometer-agent-notification
548 %{_initrddir}/%{name}-notification
549 %{_datarootdir}/ceilometer/%{name}-notification.upstart
550
551
552 %files api
553 %doc ceilometer/api/v1/static/LICENSE.*
554 %{_bindir}/ceilometer-api
555 %{_initrddir}/%{name}-api
556 %{_datarootdir}/ceilometer/%{name}-api.upstart
557
558
559 %files central
560 %{_bindir}/ceilometer-agent-central
561 %{_initrddir}/%{name}-central
562 %{_datarootdir}/ceilometer/%{name}-central.upstart
563
564
565 %files alarm
566 %{_bindir}/ceilometer-alarm-notifier
567 %{_bindir}/ceilometer-alarm-evaluator
568 %{_initrddir}/%{name}-alarm-notifier
569 %{_datarootdir}/ceilometer/%{name}-alarm-notifier.upstart
570 %{_initrddir}/%{name}-alarm-evaluator
571 %{_datarootdir}/ceilometer/%{name}-alarm-evaluator.upstart
572
573
574 %changelog
575 * Wed Jun 11 2014 Steve Linabery <slinaber@redhat.com> - 2014.1.1-2
576 - Update to upstream 2014.1.1
577 - fix message routing with newer QPID (rhbz#1103800)
578
579 * Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2014.1-3
580 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
581
582 * Wed May 07 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-2
583 - Avoid dependency issues with distributed installs (#1095414)
584
585 * Thu Apr 17 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-1
586 - Update to Icehouse release
587
588 * Fri Apr 11 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.7.rc2
589 - Update to upstream 2014.1.rc2
590 - Remove qpid as default rpc backend
591 - Split out openstack-ceilometer-notification subpackage from collector
592
593 * Mon Mar 31 2014 Pádraig Brady <P@draigBrady.com> 2014.1-0.6.rc1
594 - Update to upstream 2014.1.rc1
595
596 * Fri Mar 14 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.5.b3
597 - Update to Icehouse milestone 3
598
599 * Tue Feb 04 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.4.b2
600 - Fix missing dependency on python-babel
601
602 * Mon Jan 27 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.3.b2
603 - Update to Icehouse milestone 2
604
605 * Mon Jan 06 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.2.b1
606 - Set python-six min version to ensure updated
607
608 * Mon Dec 23 2013 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.1.b1
609 - Update to Icehouse milestone 1
610
611 * Tue Dec 17 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2.1-1
612 - Update to Havana stable release 2013.2.1
613
614 * Thu Oct 17 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-1
615 - Update to Havana release
616
617 * Tue Oct 15 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.12.rc2
618 - Update to Havana rc2
619 - openstack-ceilometer-alarm now depends on python-ceilometerclient
620
621 * Thu Oct 03 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.12.rc1
622 - Update to Havana rc1
623 - Separate out the new alarm services to the 'alarm' subpackage
624
625 * Fri Sep 13 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.10.b3
626 - Depend on python-oslo-config >= 1:1.2.0 so it upgraded automatically
627
628 * Mon Sep 10 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.8.b3
629 - Depend on python-pymongo rather than pymongo to avoid a puppet bug
630
631 * Mon Sep 9 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.7.b3
632 - Depend on python-alembic
633
634 * Mon Sep 9 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.6.b3
635 - Distribute dist defaults in ceilometer-dist.conf separate to user ceilometer.conf
636
637 * Mon Sep 9 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.5.b3
638 - Update to Havana milestone 3
639
640 * Tue Aug 27 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.4.b1
641 - Avoid python runtime dependency management
642
643 * Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2013.2-0.3.b1
644 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
645
646 * Thu Jun  6 2013 Pádraig Brady <P@draigBrady.com> - 2013.2-0.2.b1
647 - Fix uninstall for openstack-ceilometer-central
648
649 * Fri May 31 2013 Pádraig Brady <P@draigBrady.com> - 2013.2-0.1.b1
650 - Havana milestone 1
651
652 * Mon Apr  8 2013 Pádraig Brady <P@draigBrady.com> - 2013.1-2
653 - Grizzly release
654
655 * Tue Mar 26 2013 Pádraig Brady <P@draigBrady.com> - 2013.1-0.5.g3
656 - Initial package