]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commit
systemd-systemctl: fix handling of instance unit files
authorArtur Kowalski <arturkow2000@gmail.com>
Fri, 31 Jan 2025 20:15:59 +0000 (21:15 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 3 Feb 2025 16:54:15 +0000 (16:54 +0000)
commit7eaad7c2a118b3d9db8b694730535afcd3ca985e
treee6f76f73a3c273d1b1ddf36ce19bcc445e58c2cb
parente608747d6fba47d2bfc8637adb39ff3593559fca
systemd-systemctl: fix handling of instance unit files

This fixes handling of units with instance name in theirs filenames such
as `gnome-shell@wayland.service` or `gnome-shell@x11.service`. Such
files cause template file to be ignored (for the specific instance).

Thanks to Markus Volk <f_l_k@t-online.de> for noticing the breakage when
building images with gnome-shell:

| Error: Systemctl preset_all issue in org.gnome.Shell@wayland.service
| WARNING: /home/flk/poky/build/tmp/work/intel_corei7_64-poky-linux/gnome-image/1.0/temp/run.systemd_preset_all.2011511:158 exit 1 from 'systemctl --root="/home/flk/poky/build/tmp/work/intel_corei7_64-poky-linux/gnome-image/1.0/rootfs" --global --preset-mode=enable-only preset-all'

The problem manifested after cdc3b3028f6d71788b5fdd99436f69fbf18f613e
because we enabled preset-all for user units -
org.gnome.Shell@wayland.service is a user service, so prior to that
change the file wasn't processed at all.

The error was triggered because there is no org.gnome.Shell@.service
file. With this patch applied systemctl script looks for instance unit
file and falls back to template unit in case of lack thereof, keeping
the same behavior upstream systemctl does.

Signed-off-by: Artur Kowalski <arturkow2000@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-core/systemd/systemd-systemctl/systemctl