# -*- 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 -- /usr/lib/systemd/system /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("/usr/lib/systemd/systemd-update-helper", "system-reload-restart")) elseif pid > 0 then posix.wait(pid) end %transfiletriggerin -P 900899 -p -- /usr/lib/systemd/user /etc/systemd/user pid = posix.fork() if pid == 0 then assert(posix.exec("/usr/lib/systemd/systemd-update-helper", "user-reload-restart")) elseif pid > 0 then posix.wait(pid) end %transfiletriggerpostun -P 1000100 -p -- /usr/lib/systemd/system /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("/usr/lib/systemd/systemd-update-helper", "system-reload")) elseif pid > 0 then posix.wait(pid) end %transfiletriggerpostun -P 1000100 -p -- /usr/lib/systemd/system /etc/systemd/system -- Execute daemon-reload in user managers. pid = posix.fork() if pid == 0 then assert(posix.exec("/usr/lib/systemd/systemd-update-helper", "user-reload")) elseif pid > 0 then posix.wait(pid) end %transfiletriggerpostun -P 10000 -p -- /usr/lib/systemd/system /etc/systemd/system -- We restart remaining system services that should be restarted here. pid = posix.fork() if pid == 0 then assert(posix.exec("/usr/lib/systemd/systemd-update-helper", "system-restart")) elseif pid > 0 then posix.wait(pid) end %transfiletriggerpostun -P 9999 -p -- /usr/lib/systemd/user /etc/systemd/user -- We restart remaining user services that should be restarted here. pid = posix.fork() if pid == 0 then assert(posix.exec("/usr/lib/systemd/systemd-update-helper", "user-restart")) elseif pid > 0 then posix.wait(pid) end %transfiletriggerin -P 1000700 -p -- /usr/lib/sysusers.d -- This script will process files installed in /usr/lib/sysusers.d to create -- specified users automatically. The priority is set such that it -- will run before the tmpfiles file trigger. -- Note: /run is never mounted during transactional updates. if posix.access("/run/systemd/system") then assert(rpm.execute("systemd-sysusers")) end %if %{without bootstrap} %transfiletriggerin -P 1000700 -n udev -p -- /usr/lib/udev/hwdb.d -- This script will automatically invoke hwdb update if files have been -- installed or updated in /usr/lib/udev/hwdb.d. assert(rpm.execute("systemd-hwdb", "update")) %endif %transfiletriggerin -P 1000700 -p -- /usr/lib/systemd/catalog -- This script will automatically invoke journal catalog update if files -- have been installed or updated in /usr/lib/systemd/catalog. assert(rpm.execute("journalctl", "--update-catalog")) %transfiletriggerin -P 1000700 -p -- /usr/lib/binfmt.d -- This script will automatically apply binfmt rules if files have been -- installed or updated in /usr/lib/binfmt.d. if posix.access("/run/systemd/system") then pid = posix.fork() if pid == 0 then assert(posix.exec("/usr/lib/systemd/systemd-binfmt")) elseif pid > 0 then posix.wait(pid) end end %transfiletriggerin -P 1000600 -p -- /usr/lib/tmpfiles.d -- This script will process files installed in /usr/lib/tmpfiles.d to create -- tmpfiles automatically. The priority is set such that it will run -- after the sysusers file trigger, but before any other triggers. -- Note: /run is never mounted during transactional updates. if posix.access("/run/systemd/system") then assert(rpm.execute("systemd-tmpfiles", "--create")) endf %if %{without bootstrap} %transfiletriggerin -P 1000600 -n udev -p -- /usr/lib/udev/rules.d -- This script will automatically update udev with new rules if files -- have been installed or updated in /usr/lib/udev/rules.d. if posix.access("/run/udev/control") then assert(rpm.execute("udevadm", "control", "--reload")) end %endif %transfiletriggerin -P 1000500 -p -- /usr/lib/sysctl.d -- This script will automatically apply sysctl rules if files have been -- installed or updated in /usr/lib/sysctl.d. if posix.access("/run/systemd/system") then pid = posix.fork() if pid == 0 then assert(posix.exec("/usr/lib/systemd/systemd-sysctl")) elseif pid > 0 then posix.wait(pid) end end