rpm: order sysctl/sysusers/tmpfiles execution before package scriptlets

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.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2021-02-05 17:03:43 +01:00
parent b492db99d6
commit cd621954ed
2 changed files with 65 additions and 65 deletions

View file

@ -50,7 +50,43 @@ if posix.access("/run/systemd/system") then
end
end
%transfiletriggerin -P 100500 -p <lua> -- @tmpfilesdir@
%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-hwdb", "update"))
elseif pid > 0 then
posix.wait(pid)
end
end
%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}/journalctl", "--update-catalog"))
elseif pid > 0 then
posix.wait(pid)
end
end
%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("@rootlibexecdir@/systemd-binfmt"))
elseif pid > 0 then
posix.wait(pid)
end
end
%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.
@ -63,31 +99,7 @@ if posix.access("/run/systemd/system") then
end
end
%transfiletriggerin 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-hwdb", "update"))
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@.
if posix.access("/run/systemd/system") then
pid = posix.fork()
if pid == 0 then
assert(posix.exec("%{_bindir}/journalctl", "--update-catalog"))
elseif pid > 0 then
posix.wait(pid)
end
end
%transfiletriggerin udev -p <lua> -- @udevrulesdir@
%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
@ -99,7 +111,7 @@ if posix.access("/run/systemd/system") then
end
end
%transfiletriggerin -p <lua> -- @sysctldir@
%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
@ -110,15 +122,3 @@ if posix.access("/run/systemd/system") 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@.
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

View 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,43 +36,21 @@ 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@
# 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@
# 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@
%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
@ -80,3 +58,25 @@ if test -d "/run/systemd/system"; then
# 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 -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