]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
rpm: order sysctl/sysusers/tmpfiles execution before package scriptlets
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 5 Feb 2021 16:03:43 +0000 (17:03 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 15 Feb 2021 19:49:14 +0000 (20:49 +0100)
P>1000000 is *before* "normal" scriptlets, P<1000000 is *after*. I think it
makes sense to do stuff like execution of sysctl/sysusers/tmpfiles configuration
before package scriptlets. I think that was the intent, but a single digit got
dropped ;(

Also, let's reorder the scriptlets in the file to match execution order, to
make it easier to see what is going on.

Most of those may happen in any order, but there are some exceptions:
tmpfiles should be after sysusers,
udevadm --reload should be after hwdb.

src/rpm/triggers.systemd.in
src/rpm/triggers.systemd.sh.in

index 1e925cf974043ab10036111f169948bc58c9b758..37f62cb1b7693716fd6712fd63ead31d2296b473 100644 (file)
@@ -50,74 +50,74 @@ if posix.access("/run/systemd/system") then
     end
 end
 
-%transfiletriggerin -P 100500 -p <lua> -- @tmpfilesdir@
--- This script will process files installed in @tmpfilesdir@ to create
--- tmpfiles automatically. The priority is set such that it will run
--- after the sysusers file trigger, but before any other triggers.
+%transfiletriggerin -P 1000700 udev -p <lua> -- @udevhwdbdir@
+-- This script will automatically invoke hwdb update if files have been
+-- installed or updated in @udevhwdbdir@.
 if posix.access("/run/systemd/system") then
     pid = posix.fork()
     if pid == 0 then
-        assert(posix.exec("%{_bindir}/systemd-tmpfiles", "--create"))
+        assert(posix.exec("%{_bindir}/systemd-hwdb", "update"))
     elseif pid > 0 then
         posix.wait(pid)
     end
 end
 
-%transfiletriggerin udev -p <lua> -- @udevhwdbdir@
--- This script will automatically invoke hwdb update if files have been
--- installed or updated in @udevhwdbdir@.
+%transfiletriggerin -P 1000700 -p <lua> -- @catalogdir@
+-- This script will automatically invoke journal catalog update if files
+-- have been installed or updated in @catalogdir@.
 if posix.access("/run/systemd/system") then
     pid = posix.fork()
     if pid == 0 then
-        assert(posix.exec("%{_bindir}/systemd-hwdb", "update"))
+        assert(posix.exec("%{_bindir}/journalctl", "--update-catalog"))
     elseif pid > 0 then
         posix.wait(pid)
     end
 end
 
-%transfiletriggerin -p <lua> -- @catalogdir@
--- This script will automatically invoke journal catalog update if files
--- have been installed or updated in @catalogdir@.
+%transfiletriggerin -P 1000700 -p <lua> -- @binfmtdir@
+-- This script will automatically apply binfmt rules if files have been
+-- installed or updated in @binfmtdir@.
 if posix.access("/run/systemd/system") then
     pid = posix.fork()
     if pid == 0 then
-        assert(posix.exec("%{_bindir}/journalctl", "--update-catalog"))
+        assert(posix.exec("@rootlibexecdir@/systemd-binfmt"))
     elseif pid > 0 then
         posix.wait(pid)
     end
 end
 
-%transfiletriggerin udev -p <lua> -- @udevrulesdir@
--- This script will automatically update udev with new rules if files
--- have been installed or updated in @udevrulesdir@.
+%transfiletriggerin -P 1000600 -p <lua> -- @tmpfilesdir@
+-- This script will process files installed in @tmpfilesdir@ to create
+-- tmpfiles automatically. The priority is set such that it will run
+-- after the sysusers file trigger, but before any other triggers.
 if posix.access("/run/systemd/system") then
     pid = posix.fork()
     if pid == 0 then
-        assert(posix.exec("%{_bindir}/udevadm", "control", "--reload"))
+        assert(posix.exec("%{_bindir}/systemd-tmpfiles", "--create"))
     elseif pid > 0 then
         posix.wait(pid)
     end
 end
 
-%transfiletriggerin -p <lua> -- @sysctldir@
--- This script will automatically apply sysctl rules if files have been
--- installed or updated in @sysctldir@.
+%transfiletriggerin -P 1000600 udev -p <lua> -- @udevrulesdir@
+-- This script will automatically update udev with new rules if files
+-- have been installed or updated in @udevrulesdir@.
 if posix.access("/run/systemd/system") then
     pid = posix.fork()
     if pid == 0 then
-        assert(posix.exec("@rootlibexecdir@/systemd-sysctl"))
+        assert(posix.exec("%{_bindir}/udevadm", "control", "--reload"))
     elseif pid > 0 then
         posix.wait(pid)
     end
 end
 
-%transfiletriggerin -p <lua> -- @binfmtdir@
--- This script will automatically apply binfmt rules if files have been
--- installed or updated in @binfmtdir@.
+%transfiletriggerin -P 1000500 -p <lua> -- @sysctldir@
+-- This script will automatically apply sysctl rules if files have been
+-- installed or updated in @sysctldir@.
 if posix.access("/run/systemd/system") then
     pid = posix.fork()
     if pid == 0 then
-        assert(posix.exec("@rootlibexecdir@/systemd-binfmt"))
+        assert(posix.exec("@rootlibexecdir@/systemd-sysctl"))
     elseif pid > 0 then
         posix.wait(pid)
     end
index 641afd9ef7b7fbe0a7a30b86bee9b16d0ab1ba97..c1af5f43d3b10248558b05be882da626d476d24f 100644 (file)
@@ -28,7 +28,7 @@ if test -d "/run/systemd/system"; then
   %{_bindir}/systemctl daemon-reload || :
 fi
 
-%transfiletriggerin -P 100700 -- @sysusersdir@
+%transfiletriggerin -P 1000700 -- @sysusersdir@
 # This script will process files installed in @sysusersdir@ to create
 # specified users automatically. The priority is set such that it
 # will run before the tmpfiles file trigger.
@@ -36,47 +36,47 @@ if test -d "/run/systemd/system"; then
   %{_bindir}/systemd-sysusers || :
 fi
 
-%transfiletriggerin -P 100500 -- @tmpfilesdir@
-# This script will process files installed in @tmpfilesdir@ to create
-# tmpfiles automatically. The priority is set such that it will run
-# after the sysusers file trigger, but before any other triggers.
-if test -d "/run/systemd/system"; then
-  %{_bindir}/systemd-tmpfiles --create || :
-fi
-
-%transfiletriggerin udev -- @udevhwdbdir@
+%transfiletriggerin -P 1000700 udev -- @udevhwdbdir@
 # This script will automatically invoke hwdb update if files have been
 # installed or updated in @udevhwdbdir@.
 if test -d "/run/systemd/system"; then
   %{_bindir}/systemd-hwdb update || :
 fi
 
-%transfiletriggerin -- @catalogdir@
+%transfiletriggerin -P 1000700 -- @catalogdir@
 # This script will automatically invoke journal catalog update if files
 # have been installed or updated in @catalogdir@.
 if test -d "/run/systemd/system"; then
   %{_bindir}/journalctl --update-catalog || :
 fi
 
-%transfiletriggerin udev -- @udevrulesdir@
+%transfiletriggerin -P 1000700 -- @binfmtdir@
+# This script will automatically apply binfmt rules if files have been
+# installed or updated in @binfmtdir@.
+if test -d "/run/systemd/system"; then
+  # systemd-binfmt might fail if binfmt_misc kernel module is not loaded
+  # during install
+  @rootlibexecdir@/systemd-binfmt || :
+fi
+
+%transfiletriggerin -P 1000600 -- @tmpfilesdir@
+# This script will process files installed in @tmpfilesdir@ to create
+# tmpfiles automatically. The priority is set such that it will run
+# after the sysusers file trigger, but before any other triggers.
+if test -d "/run/systemd/system"; then
+  %{_bindir}/systemd-tmpfiles --create || :
+fi
+
+%transfiletriggerin -P 1000600 udev -- @udevrulesdir@
 # This script will automatically update udev with new rules if files
 # have been installed or updated in @udevrulesdir@.
 if test -e /run/udev/control; then
   %{_bindir}/udevadm control --reload || :
 fi
 
-%transfiletriggerin -- @sysctldir@
+%transfiletriggerin -P 1000500 -- @sysctldir@
 # This script will automatically apply sysctl rules if files have been
 # installed or updated in @sysctldir@.
 if test -d "/run/systemd/system"; then
   @rootlibexecdir@/systemd-sysctl || :
 fi
-
-%transfiletriggerin -- @binfmtdir@
-# This script will automatically apply binfmt rules if files have been
-# installed or updated in @binfmtdir@.
-if test -d "/run/systemd/system"; then
-  # systemd-binfmt might fail if binfmt_misc kernel module is not loaded
-  # during install
-  @rootlibexecdir@/systemd-binfmt || :
-fi