From: Daan De Meyer Date: Wed, 22 Oct 2025 20:13:36 +0000 (+0200) Subject: rpm: Make sure we only match files in the directories in triggers X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1835ce2f045815f70849c29426c0c9c0f1a5af9c;p=thirdparty%2Fsystemd.git rpm: Make sure we only match files in the directories in triggers /usr/lib/systemd/system will match /usr/lib/systemd/systemd-networkd, which is definitely not the intention. --- diff --git a/src/rpm/triggers.systemd.in b/src/rpm/triggers.systemd.in index e257afb33b0..55671f95c5f 100644 --- a/src/rpm/triggers.systemd.in +++ b/src/rpm/triggers.systemd.in @@ -8,17 +8,17 @@ # # Minimum rpm version supported: 4.14.0 -%transfiletriggerin -P 900900 -p -- {{SYSTEM_DATA_UNIT_DIR}} /etc/systemd/system +%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. assert(rpm.execute("{{SYSTEMD_UPDATE_HELPER_PATH}}", "system-reload-restart")) -%transfiletriggerin -P 900899 -p -- {{USER_DATA_UNIT_DIR}} /etc/systemd/user +%transfiletriggerin -P 900899 -p -- {{USER_DATA_UNIT_DIR}}/ /etc/systemd/user/ assert(rpm.execute("{{SYSTEMD_UPDATE_HELPER_PATH}}", "user-reload-restart")) -%transfiletriggerpostun -P 1000100 -p -- {{SYSTEM_DATA_UNIT_DIR}} /etc/systemd/system +%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 @@ -26,53 +26,53 @@ assert(rpm.execute("{{SYSTEMD_UPDATE_HELPER_PATH}}", "user-reload-restart")) -- executed. assert(rpm.execute("{{SYSTEMD_UPDATE_HELPER_PATH}}", "system-reload")) -%transfiletriggerpostun -P 1000100 -p -- {{SYSTEM_DATA_UNIT_DIR}} /etc/systemd/system +%transfiletriggerpostun -P 1000100 -p -- {{SYSTEM_DATA_UNIT_DIR}}/ /etc/systemd/system/ -- Execute daemon-reload in user managers. assert(rpm.execute("{{SYSTEMD_UPDATE_HELPER_PATH}}", "user-reload")) -%transfiletriggerpostun -P 10000 -p -- {{SYSTEM_DATA_UNIT_DIR}} /etc/systemd/system +%transfiletriggerpostun -P 10000 -p -- {{SYSTEM_DATA_UNIT_DIR}}/ /etc/systemd/system/ -- We restart remaining system services that should be restarted here. assert(rpm.execute("{{SYSTEMD_UPDATE_HELPER_PATH}}", "system-restart")) -%transfiletriggerpostun -P 9999 -p -- {{USER_DATA_UNIT_DIR}} /etc/systemd/user +%transfiletriggerpostun -P 9999 -p -- {{USER_DATA_UNIT_DIR}}/ /etc/systemd/user/ -- We restart remaining user services that should be restarted here. assert(rpm.execute("{{SYSTEMD_UPDATE_HELPER_PATH}}", "user-restart")) -%transfiletriggerin -P 1000700 -p -- {{SYSUSERS_DIR}} +%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}} +%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}} +%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}} +%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 assert(rpm.execute("{{LIBEXECDIR}}/systemd-binfmt")) end -%transfiletriggerin -P 1000600 -p -- {{TMPFILES_DIR}} +%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}} +%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}}. assert(rpm.execute("{{SYSTEMD_UPDATE_HELPER_PATH}}", "mark-reload-system-units", "systemd-udevd.service")) -%transfiletriggerin -P 1000500 -p -- {{SYSCTL_DIR}} +%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 diff --git a/src/rpm/triggers.systemd.sh.in b/src/rpm/triggers.systemd.sh.in index 8c1f4e0b1f8..f507047785c 100644 --- a/src/rpm/triggers.systemd.sh.in +++ b/src/rpm/triggers.systemd.sh.in @@ -9,17 +9,17 @@ # # Minimum rpm version supported: 4.14.0 -%transfiletriggerin -P 900900 -- {{SYSTEM_DATA_UNIT_DIR}} /etc/systemd/system +%transfiletriggerin -P 900900 -- {{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. {{SYSTEMD_UPDATE_HELPER_PATH}} system-reload-restart || : -%transfiletriggerin -P 900899 -- {{USER_DATA_UNIT_DIR}} /etc/systemd/user +%transfiletriggerin -P 900899 -- {{USER_DATA_UNIT_DIR}}/ /etc/systemd/user/ {{SYSTEMD_UPDATE_HELPER_PATH}} user-reload-restart || : -%transfiletriggerpostun -P 1000100 -- {{SYSTEM_DATA_UNIT_DIR}} /etc/systemd/system +%transfiletriggerpostun -P 1000100 -- {{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 @@ -27,35 +27,35 @@ # executed. {{SYSTEMD_UPDATE_HELPER_PATH}} system-reload || : -%transfiletriggerpostun -P 1000099 -- {{USER_DATA_UNIT_DIR}} /etc/systemd/user +%transfiletriggerpostun -P 1000099 -- {{USER_DATA_UNIT_DIR}}/ /etc/systemd/user/ # Execute daemon-reload in user managers. {{SYSTEMD_UPDATE_HELPER_PATH}} user-reload || : -%transfiletriggerpostun -P 10000 -- {{SYSTEM_DATA_UNIT_DIR}} /etc/systemd/system +%transfiletriggerpostun -P 10000 -- {{SYSTEM_DATA_UNIT_DIR}}/ /etc/systemd/system/ # We restart remaining system services that should be restarted here. {{SYSTEMD_UPDATE_HELPER_PATH}} system-restart || : -%transfiletriggerpostun -P 9999 -- {{USER_DATA_UNIT_DIR}} /etc/systemd/user +%transfiletriggerpostun -P 9999 -- {{USER_DATA_UNIT_DIR}}/ /etc/systemd/user/ # We restart remaining user services that should be restarted here. {{SYSTEMD_UPDATE_HELPER_PATH}} user-restart || : -%transfiletriggerin -P 1000700 -- {{SYSUSERS_DIR}} +%transfiletriggerin -P 1000700 -- {{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. systemd-sysusers || : -%transfiletriggerin -P 1000700 udev -- {{UDEV_HWDB_DIR}} +%transfiletriggerin -P 1000700 udev -- {{UDEV_HWDB_DIR}}/ # This script will automatically invoke hwdb update if files have been # installed or updated in {{UDEV_HWDB_DIR}}. systemd-hwdb update || : -%transfiletriggerin -P 1000700 -- {{SYSTEMD_CATALOG_DIR}} +%transfiletriggerin -P 1000700 -- {{SYSTEMD_CATALOG_DIR}}/ # This script will automatically invoke journal catalog update if files # have been installed or updated in {{SYSTEMD_CATALOG_DIR}}. journalctl --update-catalog || : -%transfiletriggerin -P 1000700 -- {{BINFMT_DIR}} +%transfiletriggerin -P 1000700 -- {{BINFMT_DIR}}/ # This script will automatically apply binfmt rules if files have been # installed or updated in {{BINFMT_DIR}}. if test -d "/run/systemd/system"; then @@ -64,7 +64,7 @@ if test -d "/run/systemd/system"; then {{LIBEXECDIR}}/systemd-binfmt || : fi -%transfiletriggerin -P 1000600 -- {{TMPFILES_DIR}} +%transfiletriggerin -P 1000600 -- {{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. @@ -72,12 +72,12 @@ if test -d "/run/systemd/system"; then systemd-tmpfiles --create || : fi -%transfiletriggerin -P 1000600 udev -- {{UDEV_RULES_DIR}} +%transfiletriggerin -P 1000600 udev -- {{UDEV_RULES_DIR}}/ # This script will automatically update udev with new rules if files # have been installed or updated in {{UDEV_RULES_DIR}}. {{SYSTEMD_UPDATE_HELPER_PATH}} mark-reload-system-units systemd-udevd.service || : -%transfiletriggerin -P 1000500 -- {{SYSCTL_DIR}} +%transfiletriggerin -P 1000500 -- {{SYSCTL_DIR}}/ # This script will automatically apply sysctl rules if files have been # installed or updated in {{SYSCTL_DIR}}. if test -d "/run/systemd/system"; then