# -*- 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 -- {{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 -- {{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 -- {{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 -- {{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 -- {{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 -- {{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 -- {{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 -- {{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 -- {{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 -- {{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 -- {{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 -- {{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 -- {{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