]> git.ipfire.org Git - thirdparty/snapper.git/commitdiff
Improve snapperd dbus activation 551/head
authorLudwig Nussel <ludwig.nussel@suse.de>
Mon, 31 Aug 2020 15:22:40 +0000 (17:22 +0200)
committerLudwig Nussel <ludwig.nussel@suse.de>
Tue, 1 Sep 2020 07:38:15 +0000 (09:38 +0200)
Dbus needs to know the systemd unit to activate in order to avoid using
a setuid launch helper. Ie this makes snapperd work in paranoid
permissions mode.

data/Makefile.am
data/org.opensuse.Snapper.service
data/snapperd.service [new file with mode: 0644]
snapper.spec.in

index e2036ba0a710e4ae6a54f2311b7916c0087de736..81f8b4874487bcd4e42598e4b6b67bc8184ddfc8 100644 (file)
@@ -5,7 +5,7 @@
 EXTRA_DIST = sysconfig.snapper base.txt lvm.txt x11.txt snapper.logrotate      \
        default-config org.opensuse.Snapper.conf org.opensuse.Snapper.service   \
        zypp-plugin.conf timeline.service timeline.timer cleanup.service        \
-       cleanup.timer boot.service boot.timer
+       cleanup.timer boot.service boot.timer snapperd.service
 
 install-data-local:
        install -D -m 644 snapper.logrotate $(DESTDIR)/etc/logrotate.d/snapper
@@ -27,6 +27,7 @@ install-data-local:
        install -D -m 644 cleanup.timer $(DESTDIR)/usr/lib/systemd/system/snapper-cleanup.timer
        install -D -m 644 boot.service $(DESTDIR)/usr/lib/systemd/system/snapper-boot.service
        install -D -m 644 boot.timer $(DESTDIR)/usr/lib/systemd/system/snapper-boot.timer
+       install -D -m 644 snapperd.service $(DESTDIR)/usr/lib/systemd/system/snapperd.service
 
 if HAVE_ZYPP
        install -D -m 644 zypp-plugin.conf $(DESTDIR)/etc/snapper/zypp-plugin.conf
index 39d7333cc95683b9ac7db8b3cf63ef8a54345bf0..6a08a25875500171f18f78a453e292dcf152f5d5 100644 (file)
@@ -3,3 +3,4 @@
 Name=org.opensuse.Snapper
 Exec=/usr/sbin/snapperd
 User=root
+SystemdService=snapperd.service
diff --git a/data/snapperd.service b/data/snapperd.service
new file mode 100644 (file)
index 0000000..cad1620
--- /dev/null
@@ -0,0 +1,8 @@
+[Unit]
+Description=DBus interface for snapper
+Documentation=man:snapperd(8)
+
+[Service]
+Type=dbus
+BusName=org.opensuse.Snapper
+ExecStart=/usr/sbin/snapperd
index c4001453169d36db1e401a9545552014d2ef317f..9533cc2362f47d16c8666d5acb3791ad0b64f517 100644 (file)
@@ -145,7 +145,7 @@ make %{?_smp_mflags} check VERBOSE=1
 
 %pre
 %if 0%{?suse_version}
-%service_add_pre snapper-boot.service snapper-boot.timer snapper-cleanup.service snapper-cleanup.timer snapper-timeline.service snapper-timeline.timer
+%service_add_pre snapper-boot.service snapper-boot.timer snapper-cleanup.service snapper-cleanup.timer snapper-timeline.service snapper-timeline.timer snapperd.service
 %endif
 
 %post
@@ -160,17 +160,17 @@ if [ -f /etc/cron.daily/suse.de-snapper ]; then
  systemctl preset snapper-cleanup.timer || :
  systemctl is-enabled -q snapper-cleanup.timer && systemctl start snapper-cleanup.timer || :
 fi
-%service_add_post snapper-boot.service snapper-boot.timer snapper-cleanup.service snapper-cleanup.timer snapper-timeline.service snapper-timeline.timer
+%service_add_post snapper-boot.service snapper-boot.timer snapper-cleanup.service snapper-cleanup.timer snapper-timeline.service snapper-timeline.timer snapperd.service
 %endif
 
 %preun
 %if 0%{?suse_version}
-%service_del_preun snapper-boot.service snapper-boot.timer snapper-cleanup.service snapper-cleanup.timer snapper-timeline.service snapper-timeline.timer
+%service_del_preun snapper-boot.service snapper-boot.timer snapper-cleanup.service snapper-cleanup.timer snapper-timeline.service snapper-timeline.timer snapperd.service
 %endif
 
 %postun
 %if 0%{?suse_version}
-%service_del_postun snapper-boot.service snapper-boot.timer snapper-cleanup.service snapper-cleanup.timer snapper-timeline.service snapper-timeline.timer
+%service_del_postun snapper-boot.service snapper-boot.timer snapper-cleanup.service snapper-cleanup.timer snapper-timeline.service snapper-timeline.timer snapperd.service
 %endif
 
 %files -f snapper.lang
@@ -189,7 +189,7 @@ fi
 %doc %{_mandir}/*/mksubvolume.8*
 %endif
 %config(noreplace) %{_sysconfdir}/logrotate.d/snapper
-%{_unitdir}/snapper-*.*
+%{_unitdir}/snapper*.*
 %config /etc/dbus-1/system.d/org.opensuse.Snapper.conf
 %{_datadir}/dbus-1/system-services/org.opensuse.Snapper.service