Reduce the number of runtime required erlang packages
[packages/centos6/rabbitmq-server.git] / rabbitmq-server.spec
1 %define debug_package %{nil}
2 %define erlang_minver R13B-03
3
4 Name: rabbitmq-server
5 Version: 3.2.3
6 Release: 1%{?dist}
7 License: MPLv1.1 and MIT and ASL 2.0 and BSD
8 Group: Development/Libraries
9 Source: http://www.rabbitmq.com/releases/rabbitmq-server/v%{version}/%{name}-%{version}.tar.gz
10 Source1: rabbitmq-server.init
11 Source2: rabbitmq-script-wrapper
12 Source3: rabbitmq-server.logrotate
13 Source4: rabbitmq-server.ocf
14 Source5: README
15 Source6: rabbitmq-server.default
16 URL: http://www.rabbitmq.com/
17 BuildArch: noarch
18 BuildRequires: erlang >= %{erlang_minver}, python-simplejson, xmlto, libxslt, zip
19 Requires: erlang-mnesia >= %{erlang_minver}
20 Requires: erlang-erts >= %{erlang_minver}
21 Requires: erlang-xmerl >= %{erlang_minver}
22 Requires: erlang-stdlib >= %{erlang_minver}
23 Requires: erlang-public_key >= %{erlang_minver}
24 Requires: erlang-ssl >= %{erlang_minver}
25 Requires: erlang-kernel >= %{erlang_minver}
26 Requires: erlang-sasl >= %{erlang_minver}
27 Requires: erlang-os_mon >= %{erlang_minver}
28 Requires: erlang-tools >= %{erlang_minver}
29 Requires: logrotate
30 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%{_arch}-root
31 Summary: The RabbitMQ server
32 Requires(post): chkconfig initscripts
33 Requires(pre): chkconfig initscripts
34
35 %description
36 RabbitMQ is an implementation of AMQP, the emerging standard for high
37 performance enterprise messaging. The RabbitMQ server is a robust and
38 scalable implementation of an AMQP broker.
39
40 # We want to install into /usr/lib, even on 64-bit platforms
41 %define _rabbit_libdir %{_exec_prefix}/lib/rabbitmq
42 %define _rabbit_erllibdir %{_rabbit_libdir}/lib/rabbitmq_server-%{version}
43 %define _rabbit_wrapper %{_builddir}/`basename %{S:2}`
44 %define _rabbit_server_ocf %{_builddir}/`basename %{S:4}`
45 %define _plugins_state_dir %{_localstatedir}/lib/rabbitmq/plugins
46
47
48 %define _maindir %{buildroot}%{_rabbit_erllibdir}
49
50
51 %prep
52 %setup -q
53
54 %build
55 cp %{S:2} %{_rabbit_wrapper}
56 cp %{S:4} %{_rabbit_server_ocf}
57 cp %{S:5} %{_builddir}/rabbitmq-server-%{version}/README
58 make %{?_smp_mflags}
59
60 %install
61 rm -rf %{buildroot}
62
63 # Note that we pass /tmp to DOC_INSTALL_DIR here because we're using %doc
64 # to actually install rabbitmq.config.example, so this is just a fake/temp path
65 make install TARGET_DIR=%{_maindir} \
66              SBIN_DIR=%{buildroot}%{_rabbit_libdir}/bin \
67              MAN_DIR=%{buildroot}%{_mandir} \
68              DOC_INSTALL_DIR=/tmp
69
70 mkdir -p %{buildroot}%{_localstatedir}/lib/rabbitmq/mnesia
71 mkdir -p %{buildroot}%{_localstatedir}/log/rabbitmq
72 mkdir -p %{buildroot}%{_sysconfdir}/default
73
74 #Copy all necessary lib files etc.
75 install -p -D -m 0755 %{S:1} %{buildroot}%{_initrddir}/rabbitmq-server
76 install -p -D -m 0755 %{_rabbit_wrapper} %{buildroot}%{_sbindir}/rabbitmqctl
77 install -p -D -m 0755 %{_rabbit_wrapper} %{buildroot}%{_sbindir}/rabbitmq-server
78 install -p -D -m 0755 %{_rabbit_wrapper} %{buildroot}%{_sbindir}/rabbitmq-plugins
79 install -p -D -m 0755 %{_rabbit_server_ocf} %{buildroot}%{_exec_prefix}/lib/ocf/resource.d/rabbitmq/rabbitmq-server
80
81 install -p -D -m 0644 %{S:3} %{buildroot}%{_sysconfdir}/logrotate.d/rabbitmq-server
82 install -p -D -m 0644 %{S:6} %{buildroot}%{_sysconfdir}/default/rabbitmq-server
83
84 mkdir -p %{buildroot}%{_sysconfdir}/rabbitmq
85
86 rm %{_maindir}/LICENSE %{_maindir}/LICENSE-MPL-RabbitMQ %{_maindir}/INSTALL
87
88 #Build the list of files
89 rm -f %{_builddir}/%{name}.files
90 echo '%defattr(-,root,root, -)' >%{_builddir}/%{name}.files
91 (cd %{buildroot}; \
92     find . -type f ! -regex '\.%{_sysconfdir}.*' \
93         ! -regex '\.\(%{_rabbit_erllibdir}\|%{_rabbit_libdir}\).*' \
94         | sed -e 's/^\.//' >> %{_builddir}/%{name}.files)
95
96 %pre
97
98 if [ $1 -gt 1 ]; then
99   # Upgrade - stop previous instance of rabbitmq-server init.d script
100   /sbin/service rabbitmq-server stop
101 fi
102
103 # create rabbitmq group
104 if ! getent group rabbitmq >/dev/null; then
105         groupadd -r rabbitmq
106 fi
107
108 # create rabbitmq user
109 if ! getent passwd rabbitmq >/dev/null; then
110         useradd -r -g rabbitmq -d %{_localstatedir}/lib/rabbitmq rabbitmq \
111             -c "RabbitMQ messaging server"
112 fi
113
114 %post
115 /sbin/chkconfig --add %{name}
116 if [ -f %{_sysconfdir}/rabbitmq/rabbitmq.conf ] && [ ! -f %{_sysconfdir}/rabbitmq/rabbitmq-env.conf ]; then
117     mv %{_sysconfdir}/rabbitmq/rabbitmq.conf %{_sysconfdir}/rabbitmq/rabbitmq-env.conf
118 fi
119
120 %preun
121 if [ $1 = 0 ]; then
122   #Complete uninstall
123   /sbin/service rabbitmq-server stop
124   /sbin/chkconfig --del rabbitmq-server
125   
126   # We do not remove /var/log and /var/lib directories
127   # Leave rabbitmq user and group
128 fi
129
130 # Clean out plugin activation state, both on uninstall and upgrade
131 rm -rf %{_plugins_state_dir}
132 for ext in rel script boot ; do
133     rm -f %{_rabbit_erllibdir}/ebin/rabbit.$ext
134 done
135
136 %files -f ../%{name}.files
137 %defattr(-,root,root,-)
138 %attr(0755, rabbitmq, rabbitmq) %dir %{_localstatedir}/lib/rabbitmq
139 %attr(0755, rabbitmq, rabbitmq) %dir %{_localstatedir}/log/rabbitmq
140 %dir %{_sysconfdir}/rabbitmq
141 %{_rabbit_erllibdir}
142 %{_rabbit_libdir}/bin
143 %{_initrddir}/rabbitmq-server
144 %config(noreplace) %{_sysconfdir}/logrotate.d/rabbitmq-server
145 %config(noreplace) %{_sysconfdir}/default/rabbitmq-server
146 %doc LICENSE*
147 %doc README
148 %doc docs/rabbitmq.config.example
149
150 %clean
151 rm -rf %{buildroot}
152
153 %changelog
154 * Thu Jan 23 2014 emile@rabbitmq.com 3.2.3-1
155 - New Upstream Release
156
157 * Tue Dec 10 2013 emile@rabbitmq.com 3.2.2-1
158 - New Upstream Release
159
160 * Wed Oct 23 2013 emile@rabbitmq.com 3.2.0-1
161 - New Upstream Release
162
163 * Thu Aug 15 2013 simon@rabbitmq.com 3.1.5-1
164 - New Upstream Release
165
166 * Tue Jun 25 2013 tim@rabbitmq.com 3.1.3-1
167 - New Upstream Release
168
169 * Mon Jun 24 2013 tim@rabbitmq.com 3.1.2-1
170 - New Upstream Release
171
172 * Mon May 20 2013 tim@rabbitmq.com 3.1.1-1
173 - Test release
174
175 * Wed May 1 2013 simon@rabbitmq.com 3.1.0-1
176 - New Upstream Release
177
178 * Mon Dec 24 2012 Matthew Mosesohn <mmosesohn@mirantis.com> 2.8.7-2
179 - Added zip for buildreq
180
181 * Tue Dec 11 2012 simon@rabbitmq.com 3.0.1-1
182 - New Upstream Release
183
184 * Fri Nov 16 2012 simon@rabbitmq.com 3.0.0-1
185 - New Upstream Release
186
187 * Fri Dec 16 2011 steve@rabbitmq.com 2.7.1-1
188 - New Upstream Release
189
190 * Tue Nov 8 2011 steve@rabbitmq.com 2.7.0-1
191 - New Upstream Release
192
193 * Fri Sep 9 2011 tim@rabbitmq.com 2.6.1-1
194 - New Upstream Release
195
196 * Fri Aug 26 2011 tim@rabbitmq.com 2.6.0-1
197 - New Upstream Release
198
199 * Mon Jun 27 2011 simon@rabbitmq.com 2.5.1-1
200 - New Upstream Release
201
202 * Thu Jun 9 2011 jerryk@vmware.com 2.5.0-1
203 - New Upstream Release
204
205 * Thu Apr 7 2011 Alexandru Scvortov <alexandru@rabbitmq.com> 2.4.1-1
206 - New Upstream Release
207
208 * Tue Mar 22 2011 Alexandru Scvortov <alexandru@rabbitmq.com> 2.4.0-1
209 - New Upstream Release
210
211 * Thu Feb 3 2011 simon@rabbitmq.com 2.3.1-1
212 - New Upstream Release
213
214 * Tue Feb 1 2011 simon@rabbitmq.com 2.3.0-1
215 - New Upstream Release
216
217 * Mon Nov 29 2010 rob@rabbitmq.com 2.2.0-1
218 - New Upstream Release
219
220 * Tue Oct 19 2010 vlad@rabbitmq.com 2.1.1-1
221 - New Upstream Release
222
223 * Tue Sep 14 2010 marek@rabbitmq.com 2.1.0-1
224 - New Upstream Release
225
226 * Mon Aug 23 2010 mikeb@rabbitmq.com 2.0.0-1
227 - New Upstream Release
228
229 * Wed Jul 14 2010 Emile Joubert <emile@rabbitmq.com> 1.8.1-1
230 - New Upstream Release
231
232 * Tue Jun 15 2010 Matthew Sackman <matthew@rabbitmq.com> 1.8.0-1
233 - New Upstream Release
234
235 * Mon Feb 15 2010 Matthew Sackman <matthew@lshift.net> 1.7.2-1
236 - New Upstream Release
237
238 * Fri Jan 22 2010 Matthew Sackman <matthew@lshift.net> 1.7.1-1
239 - New Upstream Release
240
241 * Mon Oct 5 2009 David Wragg <dpw@lshift.net> 1.7.0-1
242 - New upstream release
243
244 * Wed Jun 17 2009 Matthias Radestock <matthias@lshift.net> 1.6.0-1
245 - New upstream release
246
247 * Tue May 19 2009 Matthias Radestock <matthias@lshift.net> 1.5.5-1
248 - Maintenance release for the 1.5.x series
249
250 * Mon Apr 6 2009 Matthias Radestock <matthias@lshift.net> 1.5.4-1
251 - Maintenance release for the 1.5.x series
252
253 * Tue Feb 24 2009 Tony Garnock-Jones <tonyg@lshift.net> 1.5.3-1
254 - Maintenance release for the 1.5.x series
255
256 * Mon Feb 23 2009 Tony Garnock-Jones <tonyg@lshift.net> 1.5.2-1
257 - Maintenance release for the 1.5.x series
258
259 * Mon Jan 19 2009 Ben Hood <0x6e6562@gmail.com> 1.5.1-1
260 - Maintenance release for the 1.5.x series
261
262 * Wed Dec 17 2008 Matthias Radestock <matthias@lshift.net> 1.5.0-1
263 - New upstream release
264
265 * Thu Jul 24 2008 Tony Garnock-Jones <tonyg@lshift.net> 1.4.0-1
266 - New upstream release
267
268 * Mon Mar 3 2008 Adrien Pierard <adrian@lshift.net> 1.3.0-1
269 - New upstream release
270
271 * Wed Sep 26 2007 Simon MacMullen <simon@lshift.net> 1.2.0-1
272 - New upstream release
273
274 * Wed Aug 29 2007 Simon MacMullen <simon@lshift.net> 1.1.1-1
275 - New upstream release
276
277 * Mon Jul 30 2007 Simon MacMullen <simon@lshift.net> 1.1.0-1.alpha
278 - New upstream release
279
280 * Tue Jun 12 2007 Hubert Plociniczak <hubert@lshift.net> 1.0.0-1.20070607
281 - Building from source tarball, added starting script, stopping
282
283 * Mon May 21 2007 Hubert Plociniczak <hubert@lshift.net> 1.0.0-1.alpha
284 - Initial build of server library of RabbitMQ package