2015-11-15 01:14:34 +01:00
|
|
|
# -*- Mode: rpm-spec; indent-tabs-mode: nil -*- */
|
2017-11-18 18:18:16 +01:00
|
|
|
# SPDX-License-Identifier: LGPL-2.1+
|
2015-11-15 01:14:34 +01:00
|
|
|
#
|
|
|
|
# This file is part of systemd.
|
2018-06-12 19:00:24 +02:00
|
|
|
# Copyright © 2018 Neal Gompa
|
2015-11-15 01:14:34 +01:00
|
|
|
|
|
|
|
# The contents of this are an example to be copied into systemd.spec.
|
2016-04-01 15:19:11 +02:00
|
|
|
#
|
|
|
|
# Minimum rpm version supported: 4.13.0
|
2015-11-15 01:14:34 +01:00
|
|
|
|
2015-11-23 02:14:21 +01:00
|
|
|
%transfiletriggerin -P 900900 -p <lua> -- @systemunitdir@ /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.
|
2015-11-22 17:01:23 +01:00
|
|
|
|
2017-01-12 10:16:20 +01:00
|
|
|
if posix.access("/run/systemd/system") then
|
|
|
|
pid = posix.fork()
|
|
|
|
if pid == 0 then
|
|
|
|
assert(posix.exec("%{_bindir}/systemctl", "daemon-reload"))
|
|
|
|
elseif pid > 0 then
|
|
|
|
posix.wait(pid)
|
|
|
|
end
|
2015-11-23 02:14:21 +01:00
|
|
|
end
|
2015-11-15 01:14:34 +01:00
|
|
|
|
2015-11-23 02:14:21 +01:00
|
|
|
%transfiletriggerun -p <lua> -- @systemunitdir@ /etc/systemd/system
|
|
|
|
-- On removal, we need to run daemon-reload after any units have been
|
|
|
|
-- removed. %transfiletriggerpostun would be ideal, but it does not get
|
|
|
|
-- executed for some reason.
|
|
|
|
-- On upgrade, we need to run daemon-reload after any new unit files
|
|
|
|
-- have been installed, but before %postun scripts in packages get
|
|
|
|
-- executed. %transfiletriggerun gets the right list of files
|
|
|
|
-- but it is invoked too early (before changes happen).
|
|
|
|
-- %filetriggerpostun happens at the right time, but it fires for
|
|
|
|
-- every package.
|
|
|
|
-- To execute the reload at the right time, we create a state
|
|
|
|
-- file in %transfiletriggerun and execute the daemon-reload in
|
|
|
|
-- the first %filetriggerpostun.
|
2015-11-22 17:01:23 +01:00
|
|
|
|
2017-01-12 10:16:20 +01:00
|
|
|
if posix.access("/run/systemd/system") then
|
|
|
|
posix.mkdir("%{_localstatedir}/lib")
|
|
|
|
posix.mkdir("%{_localstatedir}/lib/rpm-state")
|
|
|
|
posix.mkdir("%{_localstatedir}/lib/rpm-state/systemd")
|
|
|
|
io.open("%{_localstatedir}/lib/rpm-state/systemd/needs-reload", "w")
|
|
|
|
end
|
2015-11-22 17:01:23 +01:00
|
|
|
|
2015-11-23 02:14:21 +01:00
|
|
|
%filetriggerpostun -P 1000100 -p <lua> -- @systemunitdir@ /etc/systemd/system
|
|
|
|
if posix.access("%{_localstatedir}/lib/rpm-state/systemd/needs-reload") then
|
|
|
|
posix.unlink("%{_localstatedir}/lib/rpm-state/systemd/needs-reload")
|
|
|
|
posix.rmdir("%{_localstatedir}/lib/rpm-state/systemd")
|
|
|
|
pid = posix.fork()
|
|
|
|
if pid == 0 then
|
|
|
|
assert(posix.exec("%{_bindir}/systemctl", "daemon-reload"))
|
|
|
|
elseif pid > 0 then
|
|
|
|
posix.wait(pid)
|
|
|
|
end
|
|
|
|
end
|
Add more file triggers to handle more aspects of systemd (#8090)
For quite a while now, there have been file triggers to handle
automatically setting up service units in upstream systemd. However,
most of the actions being done by these macros upon files can be set up
as RPM file triggers.
In fact, in Mageia, we had been doing this for most of these. In particular,
we have file triggers in place for sysusers, tmpfiles, hwdb, and the journal.
This change adds Lua versions of the original file triggers used in Mageia,
based on the existing Lua-based file triggers for service units.
In addition, we can also have useful file triggers for udev rules, sysctl
directives, and binfmt directives. These are based on the other existing
file triggers.
2018-02-06 10:11:36 +01:00
|
|
|
|
|
|
|
%transfiletriggerin -P 100700 -p <lua> -- @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.
|
|
|
|
if posix.access("/run/systemd/system") then
|
|
|
|
pid = posix.fork()
|
|
|
|
if pid == 0 then
|
|
|
|
assert(posix.exec("%{_bindir}/systemd-sysusers"))
|
|
|
|
elseif pid > 0 then
|
|
|
|
posix.wait(pid)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2018-03-06 08:02:44 +01:00
|
|
|
%transfiletriggerin -P 100500 -p <lua> -- @tmpfilesdir@
|
Add more file triggers to handle more aspects of systemd (#8090)
For quite a while now, there have been file triggers to handle
automatically setting up service units in upstream systemd. However,
most of the actions being done by these macros upon files can be set up
as RPM file triggers.
In fact, in Mageia, we had been doing this for most of these. In particular,
we have file triggers in place for sysusers, tmpfiles, hwdb, and the journal.
This change adds Lua versions of the original file triggers used in Mageia,
based on the existing Lua-based file triggers for service units.
In addition, we can also have useful file triggers for udev rules, sysctl
directives, and binfmt directives. These are based on the other existing
file triggers.
2018-02-06 10:11:36 +01:00
|
|
|
-- 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}/systemd-tmpfiles", "--create"))
|
|
|
|
elseif pid > 0 then
|
|
|
|
posix.wait(pid)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2018-03-06 08:02:44 +01:00
|
|
|
%transfiletriggerin -p <lua> -- @udevhwdbdir@
|
Add more file triggers to handle more aspects of systemd (#8090)
For quite a while now, there have been file triggers to handle
automatically setting up service units in upstream systemd. However,
most of the actions being done by these macros upon files can be set up
as RPM file triggers.
In fact, in Mageia, we had been doing this for most of these. In particular,
we have file triggers in place for sysusers, tmpfiles, hwdb, and the journal.
This change adds Lua versions of the original file triggers used in Mageia,
based on the existing Lua-based file triggers for service units.
In addition, we can also have useful file triggers for udev rules, sysctl
directives, and binfmt directives. These are based on the other existing
file triggers.
2018-02-06 10:11:36 +01:00
|
|
|
-- 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
|
|
|
|
|
2018-03-06 08:02:44 +01:00
|
|
|
%transfiletriggerin -p <lua> -- @catalogdir@
|
Add more file triggers to handle more aspects of systemd (#8090)
For quite a while now, there have been file triggers to handle
automatically setting up service units in upstream systemd. However,
most of the actions being done by these macros upon files can be set up
as RPM file triggers.
In fact, in Mageia, we had been doing this for most of these. In particular,
we have file triggers in place for sysusers, tmpfiles, hwdb, and the journal.
This change adds Lua versions of the original file triggers used in Mageia,
based on the existing Lua-based file triggers for service units.
In addition, we can also have useful file triggers for udev rules, sysctl
directives, and binfmt directives. These are based on the other existing
file triggers.
2018-02-06 10:11:36 +01:00
|
|
|
-- 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
|
|
|
|
|
2018-03-06 08:02:44 +01:00
|
|
|
%transfiletriggerin -p <lua> -- @udevrulesdir@
|
Add more file triggers to handle more aspects of systemd (#8090)
For quite a while now, there have been file triggers to handle
automatically setting up service units in upstream systemd. However,
most of the actions being done by these macros upon files can be set up
as RPM file triggers.
In fact, in Mageia, we had been doing this for most of these. In particular,
we have file triggers in place for sysusers, tmpfiles, hwdb, and the journal.
This change adds Lua versions of the original file triggers used in Mageia,
based on the existing Lua-based file triggers for service units.
In addition, we can also have useful file triggers for udev rules, sysctl
directives, and binfmt directives. These are based on the other existing
file triggers.
2018-02-06 10:11:36 +01:00
|
|
|
-- 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("%{_bindir}/udevadm", "control", "--reload"))
|
|
|
|
elseif pid > 0 then
|
|
|
|
posix.wait(pid)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2018-03-06 08:02:44 +01:00
|
|
|
%transfiletriggerin -p <lua> -- @sysctldir@
|
Add more file triggers to handle more aspects of systemd (#8090)
For quite a while now, there have been file triggers to handle
automatically setting up service units in upstream systemd. However,
most of the actions being done by these macros upon files can be set up
as RPM file triggers.
In fact, in Mageia, we had been doing this for most of these. In particular,
we have file triggers in place for sysusers, tmpfiles, hwdb, and the journal.
This change adds Lua versions of the original file triggers used in Mageia,
based on the existing Lua-based file triggers for service units.
In addition, we can also have useful file triggers for udev rules, sysctl
directives, and binfmt directives. These are based on the other existing
file triggers.
2018-02-06 10:11:36 +01:00
|
|
|
-- 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-sysctl"))
|
|
|
|
elseif pid > 0 then
|
|
|
|
posix.wait(pid)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2018-03-06 08:02:44 +01:00
|
|
|
%transfiletriggerin -p <lua> -- @binfmtdir@
|
Add more file triggers to handle more aspects of systemd (#8090)
For quite a while now, there have been file triggers to handle
automatically setting up service units in upstream systemd. However,
most of the actions being done by these macros upon files can be set up
as RPM file triggers.
In fact, in Mageia, we had been doing this for most of these. In particular,
we have file triggers in place for sysusers, tmpfiles, hwdb, and the journal.
This change adds Lua versions of the original file triggers used in Mageia,
based on the existing Lua-based file triggers for service units.
In addition, we can also have useful file triggers for udev rules, sysctl
directives, and binfmt directives. These are based on the other existing
file triggers.
2018-02-06 10:11:36 +01:00
|
|
|
-- 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
|