1
0
mirror of https://git.yoctoproject.org/poky synced 2026-06-02 13:29:49 +00:00

weston: Use systemd notify,

Using systemd notify fixes the problem with dependency chain in case
if other services depend on running weston.
This change required more robust handling of weston modules arguments
due to custom argument parser impmentation in weston (only last
--modules argument is accepted) and fixes the bug in modules handling
in the weston-start script (only last argument is actually parsed by
weston). Master branch implements systemd-notify thus backport but
doesn't utilize modules anymore so this change is mostly dunfell
specific.

Upstream-status: Backport

(From OE-Core rev: 4efdcc10906945765aa28324ce1badc59cda2976)

Signed-off-by: Pavel Zhukov <pavel.zhukov@huawei.com>
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Pavel Zhukov
2021-10-06 13:19:13 +02:00
committed by Richard Purdie
parent f21c479c3a
commit e0cb0077e2
5 changed files with 34 additions and 2 deletions
@@ -23,6 +23,15 @@ add_openvt_argument() {
openvt_args="$openvt_args $1"
}
## Add module to --modules argument
add_weston_module() {
if [ -z "${weston_modules}" ]; then
weston_modules="--modules "
fi;
weston_modules="${weston_modules}${1},"
}
if [ -n "$WAYLAND_DISPLAY" ]; then
echo "ERROR: A Wayland compositor is already running, nested Weston instance is not supported yet."
exit 1
@@ -65,6 +74,9 @@ if [ -d "$modules_dir" ]; then
# process module
. $m
done
if [ -n "${weston_modules}" ]; then
add_weston_argument "${weston_modules} "
fi;
fi
if test -z "$XDG_RUNTIME_DIR"; then
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: Huawei Inc.
#
# SPDX-License-Identifier: Apache-2.0
[Unit]
Description=Weston Wayland Compositor
RequiresMountsFor=/run
@@ -5,6 +9,8 @@ Conflicts=plymouth-quit.service
After=systemd-user-sessions.service plymouth-quit-wait.service
[Service]
Type=notify
NotifyAccess=all
User=%i
PAMName=login
EnvironmentFile=-/etc/default/weston
@@ -0,0 +1,9 @@
#!/bin/sh
# SPDX-FileCopyrightText: Huawei Inc.
# SPDX-License-Identifier: Apache-2.0
if [[ -x "/usr/lib/weston/systemd-notify.so" ]]; then
add_weston_module "systemd-notify.so"
fi
@@ -2,6 +2,5 @@
if type Xwayland >/dev/null 2>/dev/null; then
mkdir -p /tmp/.X11-unix
add_weston_argument "--modules=xwayland.so"
add_weston_module "xwayland.so"
fi
@@ -5,9 +5,11 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70 \
file://libweston/compositor.c;endline=27;md5=6c53bbbd99273f4f7c4affa855c33c0a"
SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
file://weston.png \
file://weston.desktop \
file://systemd-notify.weston-start \
file://xwayland.weston-start \
file://0001-weston-launch-Provide-a-default-version-that-doesn-t.patch \
"
@@ -101,6 +103,10 @@ do_install_append() {
install -Dm 644 ${WORKDIR}/xwayland.weston-start ${D}${datadir}/weston-start/xwayland
fi
if [ "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'yes', 'no', d)}" = "yes" ]; then
install -Dm 644 ${WORKDIR}/systemd-notify.weston-start ${D}${datadir}/weston-start/systemd-notify
fi
if [ "${@bb.utils.contains('PACKAGECONFIG', 'launch', 'yes', 'no', d)}" = "yes" ]; then
chmod u+s ${D}${bindir}/weston-launch
fi