]> git.ipfire.org Git - ipfire-3.x.git/commitdiff
dbus: Refactor package.
authorStefan Schantl <stefan.schantl@ipfire.org>
Sat, 7 Jan 2023 21:05:05 +0000 (22:05 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 8 Jan 2023 16:40:20 +0000 (16:40 +0000)
* Do not ship dbus-daemon and related files anymore.
* Create a package for common files.
* Ship dbus related tools in an own package.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
dbus/dbus.nm

index e25427bee4c6c5276c02dc0e23e27abf49bb44d3..d6daa5270f9b5b5a60f36bb04e0da6838cf7b4fb 100644 (file)
@@ -4,9 +4,14 @@
 ###############################################################################
 
 name       = dbus
-version    = 1.15.2
+ver_major  = 1
+ver_minor  = 15
+ver_plevel = 2
 release    = 1
 
+version    = %{ver_major}.%{ver_minor}.%{ver_plevel}
+dbus_ver   = %{ver_major}.%{ver_minor}.%{ver_plevel}
+
 maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
 groups     = System/Daemons
 url        = https://www.freedesktop.org/software/dbus/
@@ -40,43 +45,89 @@ build
        test
                make check
        end
+
+       install_cmds
+               # Remove unneeded documentation.
+               rm -rvf %{BUILDROOT}/%{datadir}/doc
+               rm -rvf %{BUILDROOT}/%{datadir}/xml
+
+               # Drop cmake related stuff
+               rm -rvf %{BUILDROOT}/%{libdir}/cmake
+
+               # Remove daemon related binaries and manpages.
+               for bin in daemon launch run-session test-tool cleanup-sockets; do
+                       rm -rvf %{BUILDROOT}/%{bindir}/dbus-$bin
+                       rm -rvf %{BUILDROOT}/%{mandir}/man1/dbus-$bin*
+               done
+
+               # Remove daemon-lauch-helper
+               rm -rvf %{BUILDROOT}/usr/lib/dbus-daemon-launch-helper
+
+               # Remove daemon related systemd files.
+               rm -rvf %{BUILDROOT}/%{unitdir}/dbus.service
+               rm -rvf %{BUILDROOT}/%{unitdir}/multi-user.target.wants
+               rm -rvf %{BUILDROOT}/usr/lib/tmpfiles.d
+
+               # Remove daemon related folders in /var
+               rm -rvf %{BUILDROOT}/%{localstatedir}
+       end
 end
 
 packages
-       package %{name}
-               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
+       package %{name}-common
+               summary = D-BUS message bus configuration.
+               version = %{dbus_ver}
+               arch = noarch
+
+               description
+                       The dbus-common package provides the configuration and setup files for D-Bus
+                       implementations to provide a System and User Message Bus.
                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.service > /dev/null 2>&1 || :
+               files
+                       /usr/lib/sysusers.d/
+                       /usr/lib/sysusers.d/*
+                       %{sysconfdir}/dbus-1
+                       %{sysconfdir}/dbus-1/session.d
+                       %{sysconfdir}/dbus-1/system.d
+                       %{sysconfdir}/dbus-1/session.conf
+                       %{sysconfdir}/dbus-1/system.conf
+                       %{datadir}/dbus-1
+                       %{datadir}/dbus-1/session.d
+                       %{datadir}/dbus-1/system.d
+                       %{datadir}/dbus-1/session.conf
+                       %{datadir}/dbus-1/system.conf
+                       %{datadir}/dbus-1/services
+                       %{datadir}/dbus-1/system-services
+                       %{datadir}/dbus-1/interfaces
+                       %{unitdir}/dbus.socket
+                       %{unitdir}/sockets.target.wants/dbus.socket
                end
+       end
+
+       package %{name}-tools
+               summary = D-BUS Tools and Utilities.
+               version = %{dbus_ver}
 
-               # Disable the service that is to be removed and stop it if it is still running.
-               script preun
-                       systemctl --no-reload disable dbus.service >/dev/null 2>&1 || :
-                       systemctl stop dbus.service >/dev/null 2>&1 || :
+               description
+                       Tools and utilities to interact with a running D-Bus Message Bus, provided by
+                       the reference implementation.
                end
 
-               # Just tell systemd that unitfiles have been removed.
-               script postun
-                       systemctl daemon-reload >/dev/null 2>&1 || :
+               requires
+                       dbus-libs = %{thisver}
+                       dbus-common = %{dbus_ver}
                end
 
-               # Try to restart the service if it is running.
-               script postup
-                       systemctl daemon-reload >/dev/null 2>&1 || :
-                       systemctl try-restart dbus.service >/dev/null 2>&1 || :
+               files
+                       %{bindir}/dbus-send
+                       %{bindir}/dbus-monitor
+                       %{bindir}/dbus-update-activation-environment
+                       %{bindir}/dbus-uuidgen
+                       %{mandir}/man1/dbus-monitor.1*
+                       %{mandir}/man1/dbus-send.1*
+                       %{mandir}/man1/dbus-update-activation-environment.1*
+                       %{mandir}/man1/dbus-uuidgen.1*
                end
        end