summaryrefslogtreecommitdiffstats
path: root/src/rpm/triggers.systemd.in
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/rpm/triggers.systemd.in122
1 files changed, 122 insertions, 0 deletions
diff --git a/src/rpm/triggers.systemd.in b/src/rpm/triggers.systemd.in
new file mode 100644
index 0000000..39a1f8d
--- /dev/null
+++ b/src/rpm/triggers.systemd.in
@@ -0,0 +1,122 @@
+# -*- Mode: rpm-spec; indent-tabs-mode: nil -*- */
+# SPDX-License-Identifier: LGPL-2.1-or-later
+#
+# This file is part of systemd.
+# Copyright © 2018 Neal Gompa
+
+# The contents of this are an example to be copied into systemd.spec.
+#
+# Minimum rpm version supported: 4.14.0
+
+%transfiletriggerin -P 900900 -p <lua> -- {{SYSTEM_DATA_UNIT_DIR}} /etc/systemd/system
+-- This script will run after any package is initially installed or
+-- upgraded. We care about the case where a package is initially
+-- installed, because other cases are covered by the *un scriptlets,
+-- so sometimes we will reload needlessly.
+pid = posix.fork()
+if pid == 0 then
+ assert(posix.exec("{{SYSTEMD_UPDATE_HELPER_PATH}}", "system-reload-restart"))
+elseif pid > 0 then
+ posix.wait(pid)
+end
+
+%transfiletriggerin -P 900899 -p <lua> -- {{USER_DATA_UNIT_DIR}} /etc/systemd/user
+pid = posix.fork()
+if pid == 0 then
+ assert(posix.exec("{{SYSTEMD_UPDATE_HELPER_PATH}}", "user-reload-restart"))
+elseif pid > 0 then
+ posix.wait(pid)
+end
+
+%transfiletriggerpostun -P 1000100 -p <lua> -- {{SYSTEM_DATA_UNIT_DIR}} /etc/systemd/system
+-- On removal, we need to run daemon-reload after any units have been
+-- removed.
+-- On upgrade, we need to run daemon-reload after any new unit files
+-- have been installed, but before %postun scripts in packages get
+-- executed.
+pid = posix.fork()
+if pid == 0 then
+ assert(posix.exec("{{SYSTEMD_UPDATE_HELPER_PATH}}", "system-reload"))
+elseif pid > 0 then
+ posix.wait(pid)
+end
+
+%transfiletriggerpostun -P 1000100 -p <lua> -- {{SYSTEM_DATA_UNIT_DIR}} /etc/systemd/system
+-- Execute daemon-reload in user managers.
+pid = posix.fork()
+if pid == 0 then
+ assert(posix.exec("{{SYSTEMD_UPDATE_HELPER_PATH}}", "user-reload"))
+elseif pid > 0 then
+ posix.wait(pid)
+end
+
+%transfiletriggerpostun -P 10000 -p <lua> -- {{SYSTEM_DATA_UNIT_DIR}} /etc/systemd/system
+-- We restart remaining system services that should be restarted here.
+pid = posix.fork()
+if pid == 0 then
+ assert(posix.exec("{{SYSTEMD_UPDATE_HELPER_PATH}}", "system-restart"))
+elseif pid > 0 then
+ posix.wait(pid)
+end
+
+%transfiletriggerpostun -P 9999 -p <lua> -- {{USER_DATA_UNIT_DIR}} /etc/systemd/user
+-- We restart remaining user services that should be restarted here.
+pid = posix.fork()
+if pid == 0 then
+ assert(posix.exec("{{SYSTEMD_UPDATE_HELPER_PATH}}", "user-restart"))
+elseif pid > 0 then
+ posix.wait(pid)
+end
+
+%transfiletriggerin -P 1000700 -p <lua> -- {{SYSUSERS_DIR}}
+-- This script will process files installed in {{SYSUSERS_DIR}} to create
+-- specified users automatically. The priority is set such that it
+-- will run before the tmpfiles file trigger.
+assert(rpm.execute("systemd-sysusers"))
+
+%transfiletriggerin -P 1000700 udev -p <lua> -- {{UDEV_HWDB_DIR}}
+-- This script will automatically invoke hwdb update if files have been
+-- installed or updated in {{UDEV_HWDB_DIR}}.
+assert(rpm.execute("systemd-hwdb", "update"))
+
+%transfiletriggerin -P 1000700 -p <lua> -- {{SYSTEMD_CATALOG_DIR}}
+-- This script will automatically invoke journal catalog update if files
+-- have been installed or updated in {{SYSTEMD_CATALOG_DIR}}.
+assert(rpm.execute("journalctl", "--update-catalog"))
+
+%transfiletriggerin -P 1000700 -p <lua> -- {{BINFMT_DIR}}
+-- This script will automatically apply binfmt rules if files have been
+-- installed or updated in {{BINFMT_DIR}}.
+if posix.access("/run/systemd/system") then
+ pid = posix.fork()
+ if pid == 0 then
+ assert(posix.exec("{{ROOTLIBEXECDIR}}/systemd-binfmt"))
+ elseif pid > 0 then
+ posix.wait(pid)
+ end
+end
+
+%transfiletriggerin -P 1000600 -p <lua> -- {{TMPFILES_DIR}}
+-- This script will process files installed in {{TMPFILES_DIR}} to create
+-- tmpfiles automatically. The priority is set such that it will run
+-- after the sysusers file trigger, but before any other triggers.
+assert(rpm.execute("systemd-tmpfiles", "--create"))
+
+%transfiletriggerin -P 1000600 udev -p <lua> -- {{UDEV_RULES_DIR}}
+-- This script will automatically update udev with new rules if files
+-- have been installed or updated in {{UDEV_RULES_DIR}}.
+if posix.access("/run/udev/control") then
+ assert(rpm.execute("udevadm", "control", "--reload"))
+end
+
+%transfiletriggerin -P 1000500 -p <lua> -- {{SYSCTL_DIR}}
+-- This script will automatically apply sysctl rules if files have been
+-- installed or updated in {{SYSCTL_DIR}}.
+if posix.access("/run/systemd/system") then
+ pid = posix.fork()
+ if pid == 0 then
+ assert(posix.exec("{{ROOTLIBEXECDIR}}/systemd-sysctl"))
+ elseif pid > 0 then
+ posix.wait(pid)
+ end
+end