[packages/rabbitmq-server] Version: 3.5.0, systemd support, fixes
jajcus
jajcus at pld-linux.org
Wed Mar 25 15:58:43 CET 2015
commit a827eddd0ea50471da74eb1cf0e61bb61f69f078
Author: Jacek Konieczny <j.konieczny at eggsoft.pl>
Date: Wed Mar 25 15:50:52 2015 +0100
Version: 3.5.0, systemd support, fixes
– upgraded
– 'status' action of the init script fixed
- systemd unit added (erlang-sd_notify dependency for proper startup
notification)
- duplicate file removed
- adapterized
rabbitmq-server.init | 18 +++++++++++++++++-
rabbitmq-server.service | 12 ++++++++++++
rabbitmq-server.spec | 39 ++++++++++++++++++++++++++-------------
3 files changed, 55 insertions(+), 14 deletions(-)
---
diff --git a/rabbitmq-server.spec b/rabbitmq-server.spec
index be49c67..ae8fba2 100644
--- a/rabbitmq-server.spec
+++ b/rabbitmq-server.spec
@@ -2,25 +2,29 @@
%define gid 257
Summary: Implementation of an AMQP broker
Name: rabbitmq-server
-Version: 2.7.1
+Version: 3.5.0
Release: 1
License: MPL v1.1
Group: Applications/Communications
-Source0: http://www.rabbitmq.com/releases/%{name}/v%{version}/%{name}-%{version}.tar.gz
-# Source0-md5: 44eb09d2dff8ce641a1fe7f255a4c546
+Source0: http://www.rabbitmq.com/releases/rabbitmq-server/v%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: e599837e6d6984781a6b93b90d3b7edc
Source1: rabbitmq.conf
Source2: %{name}.init
Source3: %{name}.sysconfig
+Source4: %{name}.service
URL: http://www.rabbitmq.com/
BuildRequires: docbook-dtd45-xml
BuildRequires: erlang
+BuildRequires: erlang-sd_notify
BuildRequires: python
BuildRequires: python-modules
-BuildRequires: rpmbuild(macros) >= 1.268
+BuildRequires: rpmbuild(macros) >= 1.644
BuildRequires: xmlto
Requires(post,preun): /sbin/chkconfig
Requires: erlang
+Requires: erlang-sd_notify
Requires: rc-scripts
+Requires: systemd-units >= 38
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
@@ -36,18 +40,19 @@ operating systems and developer platforms.
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/var/{lib,log}/rabbitmq,/etc/{sysconfig,rc.d/init.d,rabbitmq}}
+install -d $RPM_BUILD_ROOT{/var/{lib,log}/rabbitmq,/etc/{sysconfig,rc.d/init.d,rabbitmq},%{systemdunitdir}}
%{__make} install \
TARGET_DIR=$RPM_BUILD_ROOT%{_libdir}/%{name} \
SBIN_DIR=$RPM_BUILD_ROOT%{_sbindir} \
MAN_DIR=$RPM_BUILD_ROOT%{_mandir}
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/{INSTALL,LICENSE*}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/{INSTALL,LICENSE*}
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/rabbitmq/rabbitmq-env.conf
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
-install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/rabbitmq/rabbitmq-env.conf
+cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
+cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
+cp -p %{SOURCE4} $RPM_BUILD_ROOT%{systemdunitdir}
%clean
rm -rf $RPM_BUILD_ROOT
@@ -59,21 +64,29 @@ rm -rf $RPM_BUILD_ROOT
%post
/sbin/chkconfig --add %{name}
%service %{name} restart
+%systemd_post %{name}.service
%preun
if [ "$1" = "0" ]; then
%service %{name} stop
/sbin/chkconfig --del %{name}
fi
+%systemd_preun %{name}.service
+
+%postun
+%systemd_reload
+
+%triggerpostun -- %{name} < 3.5.0
+%systemd_trigger %{name}.service
%files
%defattr(644,root,root,755)
%doc README
-%dir /etc/rabbitmq
-%config(noreplace) %verify(not md5 mtime size) /etc/rabbitmq/rabbitmq-env.conf
+%dir %{_sysconfdir}/rabbitmq
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rabbitmq/rabbitmq-env.conf
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rabbitmq-server
-%attr(754,root,root) %{_sysconfdir}/rc.d/init.d/%{name}
-%{_sysconfdir}/sysconfig/%{name}
+%attr(754,root,root) /etc/rc.d/init.d/%{name}
+%{systemdunitdir}/rabbitmq-server.service
%attr(755,root,root) %{_sbindir}/*
%dir %{_libdir}/%{name}
%{_libdir}/%{name}/ebin
diff --git a/rabbitmq-server.init b/rabbitmq-server.init
index 1cfdef3..b8f9ebc 100644
--- a/rabbitmq-server.init
+++ b/rabbitmq-server.init
@@ -48,6 +48,22 @@ stop() {
fi
}
+rmq_status() {
+
+ if output="$(/usr/sbin/rabbitmqctl status 2>/dev/null)" ; then
+ pid=$(echo "$output" | awk '/{pid,/ { match($0, "{pid,[0-9]+}"); print substr($0,RSTART+5,RLENGTH-6) }')
+ uptime=$(echo "$output" | awk '/{uptime,/ { match($0, "{uptime,[0-9]+}"); print substr($0,RSTART+8,RLENGTH-9) }')
+ nls "%s (pid %s) is running%s" "rabbitmq-server" "$pid" "$cpuset_msg"
+ return 0
+ fi
+ if [ -f /var/lock/subsys/rabbitmq-server ]; then
+ nls "daemon %s dead but subsys (%s) locked" "rabbitmq-server" "rabbitmq-server"
+ return 2
+ fi
+ nls "%s is stopped" "rabbitmq-server"
+ return 3
+}
+
RETVAL=0
# See how we were called.
case "$1" in
@@ -62,7 +78,7 @@ case "$1" in
start
;;
status)
- status rabbitmq-server
+ rmq_status
;;
*)
msg_usage "$0 {start|stop|status}"
diff --git a/rabbitmq-server.service b/rabbitmq-server.service
new file mode 100644
index 0000000..a730867
--- /dev/null
+++ b/rabbitmq-server.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=RabbitMQ server
+
+[Service]
+Environment=NODE_COUNT=1
+EnvironmentFile=/etc/sysconfig/rabbitmq-server
+Type=notify
+ExecStart=/usr/sbin/rabbitmq-server start_all $NODE_COUNT
+User=rabbitmq
+
+[Install]
+WantedBy=multi-user.target
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/rabbitmq-server.git/commitdiff/a827eddd0ea50471da74eb1cf0e61bb61f69f078
More information about the pld-cvs-commit
mailing list