[qpid-cpp/f18] Added systemd support.
Darryl L. Pierce
mcpierce at fedoraproject.org
Wed Sep 26 12:59:59 UTC 2012
commit 7f66a5f73b78ff62ce8a6fa4529c730472a973fb
Author: Darryl L. Pierce <dpierce at redhat.com>
Date: Tue Sep 25 14:33:04 2012 -0400
Added systemd support.
- Removed SysVInit support.
- Resolves: BZ#832724
05-Provides-systemd-support-to-qpidd.patch | 62 ++++++++++++++++++++++++++++
qpid-cpp.spec | 45 ++++++++++++++------
2 files changed, 94 insertions(+), 13 deletions(-)
---
diff --git a/05-Provides-systemd-support-to-qpidd.patch b/05-Provides-systemd-support-to-qpidd.patch
new file mode 100644
index 0000000..8929a8e
--- /dev/null
+++ b/05-Provides-systemd-support-to-qpidd.patch
@@ -0,0 +1,62 @@
+From 5fb17312500bcad280f4edc2828546170788209f Mon Sep 17 00:00:00 2001
+From: "Darryl L. Pierce" <dpierce at redhat.com>
+Date: Fri, 21 Sep 2012 14:47:58 -0400
+Subject: [PATCH] Provides systemd support to qpidd.
+
+Systemd is a replacement for SysVInit scripts for starting up daemons on
+Linux systems.
+---
+ qpid/cpp/etc/Makefile.am | 8 +++++---
+ qpid/cpp/etc/qpidd.service.in | 13 +++++++++++++
+ 2 files changed, 18 insertions(+), 3 deletions(-)
+ create mode 100644 qpid/cpp/etc/qpidd.service.in
+
+diff --git a/qpid/cpp/etc/Makefile.am b/qpid/cpp/etc/Makefile.am
+index aa41c65..7af495f 100644
+--- a/qpid/cpp/etc/Makefile.am
++++ b/qpid/cpp/etc/Makefile.am
+@@ -20,7 +20,7 @@ SASL_CONF = sasl2/qpidd.conf
+
+ EXTRA_DIST = \
+ $(SASL_CONF) \
+- qpidd.in qpidd-primary.in qpidd.conf qpidc.conf CMakeLists.txt \
++ qpidd.service.in qpidd.in qpidd-primary.in qpidd.conf qpidc.conf CMakeLists.txt \
+ cluster.conf-example.xml.in
+
+ confdir = $(sysconfdir)/qpid
+@@ -47,9 +47,11 @@ qpidd-primary: qpidd-primary.in
+ sed $(SUBST) $< > $@
+ cluster.conf-example.xml: cluster.conf-example.xml.in
+ sed $(SUBST) $< > $@
++qpidd.service: qpidd.service.in
++ sed $(SUBST) $< > $@
+
+-CLEANFILES = qpidd qpidd-primary cluster.conf-example.xml
++CLEANFILES = qpidd qpidd-primary cluster.conf-example.xml qpidd.service
+
+ initddir = $(sysconfdir)/init.d
+-nobase_initd_SCRIPTS = qpidd qpidd-primary
++nobase_initd_SCRIPTS = qpidd qpidd-primary qpidd.service
+
+diff --git a/qpid/cpp/etc/qpidd.service.in b/qpid/cpp/etc/qpidd.service.in
+new file mode 100644
+index 0000000..ec89e12
+--- /dev/null
++++ b/qpid/cpp/etc/qpidd.service.in
+@@ -0,0 +1,13 @@
++[Unit]
++Description=An AMQP message broker daemon.
++Documentation=man:qpidd(1) http://qpid.apache.org/
++After=network.target
++
++[Service]
++User=qpidd
++Group=qpidd
++Type=simple
++ExecStart=/usr/sbin/qpidd --config /etc/qpidd.conf
++
++[Install]
++WantedBy=multi-user.target
+--
+1.7.11.4
+
diff --git a/qpid-cpp.spec b/qpid-cpp.spec
index ac77eef..85daf3e 100644
--- a/qpid-cpp.spec
+++ b/qpid-cpp.spec
@@ -30,7 +30,7 @@
Name: qpid-cpp
Version: 0.18
-Release: 1.1%{?dist}
+Release: 2%{?dist}
Summary: Libraries for Qpid C++ client applications
License: ASL 2.0
URL: http://qpid.apache.org
@@ -71,6 +71,7 @@ Patch1: 01-Adds-a-Cmake-target-to-generate-a-source-tarball-for.patch
Patch2: 02-Relocated-all-swig-.i-files-to-the-include-directory.patch
Patch3: 03-Fixed-db4-on-Fedora.patch
Patch4: 04-Fix-boost-filesystem-for-1.50.patch
+Patch5: 05-Provides-systemd-support-to-qpidd.patch
%description
@@ -187,12 +188,16 @@ format for easy browsing.
%package -n qpid-cpp-server
Summary: An AMQP message broker daemon
Obsoletes: qpid-cpp-server-devel <= %{version}-%{release}
-Obsoletes: qpid-cpp-server-daemon <= %{version}-%{release}
+Obsoletes: qpid-cpp-server-daemon < %{version}-%{release}
Provides: qpid-cpp-server-daemon = %{version}-%{release}
Requires: qpid-cpp-client = %{version}-%{release}
Requires: cyrus-sasl
+Requires(post): systemd-units
+Requires(preun): systemd-units
+Requires(postun): systemd-units
+
%description -n qpid-cpp-server
A message broker daemon that receives stores and routes messages using
the open AMQP messaging protocol.
@@ -203,7 +208,7 @@ the open AMQP messaging protocol.
%{_libdir}/qpid/daemon/replicating_listener.so
%{_libdir}/qpid/daemon/replication_exchange.so
%{_sbindir}/qpidd
-%{_initrddir}/qpidd
+%{_unitdir}/qpidd.service
%config(noreplace) %{_sysconfdir}/qpidd.conf
%config(noreplace) %{_sysconfdir}/sasl2/qpidd.conf
%dir %{_libdir}/qpid/daemon
@@ -221,20 +226,23 @@ getent passwd qpidd >/dev/null || \
exit 0
%post -n qpid-cpp-server
-# This adds the proper /etc/rc*.d links for the script
-/sbin/chkconfig --add qpidd
-/sbin/ldconfig
+if [$1 -eq 1] ; then
+ # Initial installation
+ /sbin/systemctl --no-reload enable qpidd.service >/dev/null 2>&1 || :
+fi
%preun -n qpid-cpp-server
-# Check that this is actual deinstallation, not just removing for upgrade.
-if [ $1 = 0 ]; then
- /sbin/service qpidd stop >/dev/null 2>&1 || :
- /sbin/chkconfig --del qpidd
+if [ $1 -eq 0 ] ; then
+ # Package removal, not upgrade
+ /bin/systemctl --no-reload disable qpidd.service > /dev/null 2>&1 || :
+ /bin/systemctl stop qpidd.service > /dev/null 2>&1 || :
fi
%postun -n qpid-cpp-server
-if [ $1 -ge 1 ]; then
- /sbin/service qpidd condrestart >/dev/null 2>&1 || :
+if [ $1 -ge 1 ] ; then
+ # Package upgrade, not uninstall
+ /bin/systemctl stop qpidd.service > /dev/null 2>&1 || :
+ /bin/systemctl start qpidd.service > /dev/null 2>&1 || :
fi
/sbin/ldconfig
@@ -584,6 +592,7 @@ Summary: Perl bindings for Apache Qpid Messaging
%patch1 -p2
%patch2 -p2
%patch4 -p2
+%patch5 -p2
# qpid-store
pushd ../store-%{version}.%{store_svnrev}
@@ -641,13 +650,13 @@ popd
%install
rm -rf %{buildroot}
mkdir -p -m0755 %{buildroot}/%{_bindir}
+mkdir -p -m0755 %{buildroot}/%{_unitdir}
(cd python; %{__python} setup.py install --skip-build --install-purelib %{python_sitearch} --root %{buildroot})
(cd extras/qmf; %{__python} setup.py install --skip-build --install-purelib %{python_sitearch} --root %{buildroot})
pushd %{_builddir}/qpid-%{version}/cpp
make install DESTDIR=%{buildroot}
-install -Dp -m0755 etc/qpidd %{buildroot}%{_initrddir}/qpidd
install -d -m0755 %{buildroot}%{_localstatedir}/lib/qpidd
install -d -m0755 %{buildroot}%{_libdir}/qpidd
install -d -m0755 %{buildroot}/var/run/qpidd
@@ -698,6 +707,11 @@ rm -rf %{buildroot}%{_datadir}/qpidc/examples/request-response
rm -rf %{buildroot}%{_datadir}/qpidc/examples/tradedemo
rm -rf %{buildroot}%{_datadir}/qpidc/examples/xml-exchange
+# install systemd files
+install -pm 644 %{_builddir}/qpid-%{version}/cpp/etc/qpidd.service %{buildroot}/%{_unitdir}
+rm -f %{buildroot}/%{_initrddir}/qpidd
+rm -f %{buildroot}/%{_sysconfdir}/init.d/qpidd.service
+
install -d %{buildroot}%{python_sitearch}
install -pm 644 %{_builddir}/qpid-%{version}/cpp/bindings/qpid/python/cqpid.py %{buildroot}%{python_sitearch}
install -pm 644 %{_builddir}/qpid-%{version}/cpp/bindings/qpid/python/.libs/_cqpid.so %{buildroot}%{python_sitearch}
@@ -774,6 +788,11 @@ rm -rf %{buildroot}
%changelog
+* Fri Sep 21 2012 Darryl L. Pierce <dpierce at redhat.com> - 0.18-2
+- Added systemd support.
+- Removed SysVInit support.
+- Related: BZ#832724
+
* Fri Sep 14 2012 Darryl L. Pierce <dpierce at redhat.com> - 0.18-1.1
- Fixed qpid-cpp-server to Provide qpid-cpp-server-daemon
More information about the scm-commits
mailing list