[1/2] dbus-broker: New package

Message ID 20230107210505.131637-1-stefan.schantl@ipfire.org
State Accepted
Commit f0cda7b7b75724afe3a3d518cee28ec572f65ed6
Headers
Series [1/2] dbus-broker: New package |

Commit Message

Stefan Schantl Jan. 7, 2023, 9:05 p.m. UTC
  This will replace the legacy dbus-daemon.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
---
 dbus-broker/dbus-broker.nm | 100 +++++++++++++++++++++++++++++++++++++
 1 file changed, 100 insertions(+)
 create mode 100644 dbus-broker/dbus-broker.nm
  

Patch

diff --git a/dbus-broker/dbus-broker.nm b/dbus-broker/dbus-broker.nm
new file mode 100644
index 000000000..a65a1e0d6
--- /dev/null
+++ b/dbus-broker/dbus-broker.nm
@@ -0,0 +1,100 @@ 
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = dbus-broker
+version    = 32
+release    = 1
+
+maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
+groups     = System/Daemons
+url        = https://github.com/bus1/dbus-broker
+license    = Apache 2.0
+summary    = Linux D-Bus Message Broker
+
+description
+	D-BUS is a system for sending messages between applications. It is
+	used both for the system-wide message bus service, and as a
+	per-user-login-session messaging facility.
+end
+
+source_dl  = https://github.com/bus1/%{name}/releases/download/v%{version}/
+sources    = %{thisapp}.tar.xz
+
+build
+	requires
+		meson
+		python3-docutils
+		expat-devel
+		libcap-ng-devel
+		systemd-devel
+	end
+
+	build
+		%{meson} \
+			-Ddocs=true \
+			-Dlinux-4-17=true
+
+		%{meson_build}
+	end
+
+	install
+		%{meson_install}
+	end
+end
+
+packages
+	package %{name}
+		obsoletes
+			dbus <= 1.15.2-2
+		end
+
+		provides
+			dbus 
+		end
+
+		requires
+			dbus-common
+		end
+
+		prerequires += shadow-utils
+
+		script prein
+			getent group dbus >/dev/null || groupadd -r dbus
+			getent passwd dbus >/dev/null || \
+				useradd -r -g dbus -d / -s /sbin/nologin \
+					-c "User for dbus service" dbus
+			exit  0
+		end
+
+		# Just search for new unit files that were just installed.
+		script postin
+			systemctl daemon-reload >/dev/null 2>&1 || :
+
+			# The dbus service should be started on default.
+			systemctl enable dbus-broker.service > /dev/null 2>&1 || :
+		end
+
+		# Disable the service that is to be removed and stop it if it is still running.
+		script preun
+			systemctl --no-reload disable dbus-broker.service >/dev/null 2>&1 || :
+			systemctl stop dbus-broker.service >/dev/null 2>&1 || :
+		end
+
+		# Just tell systemd that unitfiles have been removed.
+		script postun
+			systemctl daemon-reload >/dev/null 2>&1 || :
+		end
+
+		# Try to restart the service if it is running.
+		script postup
+			systemctl daemon-reload >/dev/null 2>&1 || :
+			systemctl try-restart dbus-broker.service >/dev/null 2>&1 || :
+		end
+	end
+
+	package %{name}-debuginfo
+		template DEBUGINFO
+	end
+end