From: Lennart Poettering Date: Sat, 9 Jan 2021 21:24:55 +0000 (+0100) Subject: units: add systemd-sysext.service unit for auto-activating extensions at boot X-Git-Tag: v248-rc1~298^2~10 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=205e5bcc1cf840ed014037a8cbad1df221cc3ac2;p=thirdparty%2Fsystemd.git units: add systemd-sysext.service unit for auto-activating extensions at boot We'll leave this as opt-in (i.e. a unit that must be enabled explicitly), since this is supposed to be a debug/developer feature primarily, and thus no be around in regular production systems. --- diff --git a/units/meson.build b/units/meson.build index 7b18f1bfea0..bdfb2e52ce2 100644 --- a/units/meson.build +++ b/units/meson.build @@ -211,6 +211,7 @@ in_units = [ ['systemd-oomd.service', 'ENABLE_OOMD'], ['systemd-portabled.service', 'ENABLE_PORTABLED', 'dbus-org.freedesktop.portable1.service'], + ['systemd-sysext.service', 'ENABLE_SYSEXT'], ['systemd-userdbd.service', 'ENABLE_USERDB'], ['systemd-homed.service', 'ENABLE_HOMED'], ['systemd-quotacheck.service', 'ENABLE_QUOTACHECK'], diff --git a/units/systemd-sysext.service.in b/units/systemd-sysext.service.in new file mode 100644 index 00000000000..17b08375542 --- /dev/null +++ b/units/systemd-sysext.service.in @@ -0,0 +1,31 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +# +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Merge System Extension Images into /usr/ and /opt/ +Documentation=man:systemd-sysext.service(8) +DefaultDependencies=no +Conflicts=shutdown.target +After=local-fs.target +Before=sysinit.target shutdown.target systemd-tmpfiles.service +ConditionCapability=CAP_SYS_ADMIN +ConditionDirectoryNotEmpty=|/etc/extensions +ConditionDirectoryNotEmpty=|/run/extensions +ConditionDirectoryNotEmpty=|/var/lib/extensions +ConditionDirectoryNotEmpty=|/usr/local/lib/extensions +ConditionDirectoryNotEmpty=|/usr/lib/extensions + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=@rootbindir@/systemd-sysext --merge +ExecStop=@rootbindir@/systemd-sysext --unmerge + +[Install] +WantedBy=sysinit.target