diff --git a/03-Provides-systemd-support-to-qpidd.patch b/03-Provides-systemd-support-to-qpidd.patch new file mode 100644 index 0000000..8929a8e --- /dev/null +++ b/03-Provides-systemd-support-to-qpidd.patch @@ -0,0 +1,62 @@ +From 5fb17312500bcad280f4edc2828546170788209f Mon Sep 17 00:00:00 2001 +From: "Darryl L. Pierce" +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 e413851..ce4f636 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 @@ -68,6 +68,7 @@ BuildRequires: libaio-devel 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-Provides-systemd-support-to-qpidd.patch %description @@ -184,12 +185,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. @@ -200,7 +205,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 @@ -218,20 +223,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 @@ -580,6 +588,7 @@ Summary: Perl bindings for Apache Qpid Messaging %patch1 -p2 %patch2 -p2 +%patch3 -p2 %global perftests "qpid-perftest qpid-topic-listener qpid-topic-publisher qpid-latency-test qpid-client-test qpid-txtest" @@ -632,13 +641,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 @@ -689,6 +698,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} @@ -765,6 +779,11 @@ rm -rf %{buildroot} %changelog +* Fri Sep 21 2012 Darryl L. Pierce - 0.18-2 +- Added systemd support. +- Removed SysVInit support. +- Resolves: BZ#832724 + * Fri Sep 14 2012 Darryl L. Pierce - 0.18-1.1 - Fixed qpid-cpp-server to Provide qpid-cpp-server-daemon