seatd: fix packaging error with systemd DISTRO_FEATURES

The systemd unit file for this recipe is only installed in case
the target system's init system is systemd. It is achieved by
inspecting the VIRTUAL-RUNTIME_init_manager variable.

However the systemd class was inherited unconditionally. This caused
a failure in do_package task, in case systemd is present in the
DISTRO_FEATURES but the system's init manager is sysvinit: in this case
the systemd unit file is not installed, however systemd.bbclass is
still trying to register is as a startup service. At this point
it failed:

ERROR: seatd-0.9.1-r0 do_package: Didn't find service unit 'seatd.service', specified in SYSTEMD_SERVICE:seatd.

To avoid this, install the systemd unit file unconditionally, regardless
of the used init system.

(From OE-Core rev: c7f157ad1207567ef3614ee4f6e755bccf60a3f4)

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Gyorgy Sarvari 2025-06-10 11:49:37 +02:00 committed by Richard Purdie
parent d0d9f1e88d
commit 7a6b41794e

View File

@ -35,9 +35,8 @@ PACKAGECONFIG[systemd] = "-Dlibseat-logind=systemd,,systemd"
do_install:append() {
if [ "${VIRTUAL-RUNTIME_init_manager}" != "systemd" ]; then
install -Dm755 ${UNPACKDIR}/init ${D}/${sysconfdir}/init.d/seatd
else
install -Dm644 ${S}/contrib/systemd/seatd.service ${D}${systemd_unitdir}/system/seatd.service
fi
install -Dm644 ${S}/contrib/systemd/seatd.service ${D}${systemd_unitdir}/system/seatd.service
}
USERADD_PACKAGES = "${PN}"