[packages/mosquitto] install systemd unit

atler atler at pld-linux.org
Sun Aug 27 21:13:00 CEST 2023


commit 9a8c1f1965b67d9786bc87abe5d757c299e45917
Author: Jan Palus <atler at pld-linux.org>
Date:   Sun Aug 27 20:03:52 2023 +0200

    install systemd unit
    
    based on service/systemd/mosquitto.service.notify

 mosquitto.service | 17 +++++++++++++++++
 mosquitto.spec    | 26 +++++++++++++++++++++++---
 2 files changed, 40 insertions(+), 3 deletions(-)
---
diff --git a/mosquitto.spec b/mosquitto.spec
index 878ef97..8bea376 100644
--- a/mosquitto.spec
+++ b/mosquitto.spec
@@ -1,5 +1,9 @@
 # TODO
 # - initscript
+#
+# Conditional build:
+%bcond_without	systemd		# systemd support
+
 Summary:	An Open Source MQTT v3.1 Broker
 Name:		mosquitto
 Version:	2.0.17
@@ -8,6 +12,7 @@ License:	BSD
 Group:		Applications
 Source0:	https://mosquitto.org/files/source/%{name}-%{version}.tar.gz
 # Source0-md5:	ecdd48b9bdc5fbb24b9bf1fb199253f7
+Source1:	mosquitto.service
 URL:		http://mosquitto.org/
 BuildRequires:	cmake >= 3.1
 BuildRequires:	cjson-devel
@@ -16,8 +21,8 @@ BuildRequires:	libwrap-devel
 BuildRequires:	libxslt-progs
 BuildRequires:	openssl-devel
 BuildRequires:	pkgconfig
-BuildRequires:	rpmbuild(macros) >= 1.605
-BuildRequires:	systemd-devel
+BuildRequires:	rpmbuild(macros) >= 1.742
+%{?with_systemd:BuildRequires:	systemd-devel}
 BuildRequires:	uthash-devel
 Requires(postun):	/usr/sbin/groupdel
 Requires(postun):	/usr/sbin/userdel
@@ -96,7 +101,7 @@ cd build
 %cmake \
 	-DUSE_LIBWRAP:BOOL=ON \
 	-DWITH_BUNDLED_DEPS:BOOL=OFF \
-	-DWITH_SYSTEMD:BOOL=ON \
+	%{cmake_on_off systemd SYSTEMD} \
 	..
 %{__make}
 cd ..
@@ -111,6 +116,8 @@ for file in aclfile pskfile pwfile ; do
 	:> $RPM_BUILD_ROOT/etc/%{name}/$file
 done
 
+%{?with_systemd:install -D %{SOURCE1} $RPM_BUILD_ROOT%{systemdunitdir}/mosquitto.service}
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
@@ -123,12 +130,24 @@ if [ "$1" = "0" ]; then
 	%groupremove mosquitto
 fi
 
+%post
+%{?with_systemd:%systemd_post mosquitto.service}
+
+%preun
+%{?with_systemd:%systemd_preun mosquitto.service}
+
+%postun
+%{?with_systemd:%systemd_reload}
+
 %post	-n libmosquitto -p /sbin/ldconfig
 %postun	-n libmosquitto -p /sbin/ldconfig
 
 %post	-n libmosquittopp -p /sbin/ldconfig
 %postun	-n libmosquittopp -p /sbin/ldconfig
 
+%triggerpostun -- mosquitto < 2.0.17
+%systemd_trigger mosquitto.service
+
 %files
 %defattr(644,root,root,755)
 %doc LICENSE.txt CONTRIBUTING.md ChangeLog.txt README.md examples aclfile.example mosquitto.conf pskfile.example pwfile.example
@@ -141,6 +160,7 @@ fi
 %attr(755,root,root) %{_bindir}/mosquitto_passwd
 %attr(755,root,root) %{_sbindir}/mosquitto
 %attr(755,root,root) %{_libdir}/mosquitto_dynamic_security.so
+%{?with_systemd:%{systemdunitdir}/mosquitto.service}
 %{_mandir}/man1/mosquitto_ctrl.1*
 %{_mandir}/man1/mosquitto_ctrl_dynsec.1*
 %{_mandir}/man1/mosquitto_passwd.1*
diff --git a/mosquitto.service b/mosquitto.service
new file mode 100644
index 0000000..f04a065
--- /dev/null
+++ b/mosquitto.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=Mosquitto MQTT Broker
+Documentation=man:mosquitto.conf(5) man:mosquitto(8)
+After=network.target
+Wants=network.target
+
+[Service]
+Type=notify
+NotifyAccess=main
+User=mosquitto
+Group=mosquitto
+ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
+ExecReload=/bin/kill -HUP $MAINPID
+Restart=on-failure
+
+[Install]
+WantedBy=multi-user.target
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/mosquitto.git/commitdiff/e925a6b822e5c4378dfddd85e8fdb98c8a942981



More information about the pld-cvs-commit mailing list