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:
committed by
Richard Purdie
parent
f21c479c3a
commit
e0cb0077e2
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user