Skip to content
Snippets Groups Projects
Commit ad08c662 authored by Pavel Zhukov's avatar Pavel Zhukov
Browse files

weston: wrapper for weston modules argument

Due to custom option parser implementation weston accepts only one
argument of given type. As the result if multiple modules add --module
only last will be used. This fix introduces wrapper around modules in
terms of weston-init to prepare proper modules argument for weston and
moves systemd-notify module into weston-init module instead of command
line argument

Based on Poky revision #bdd30be1a3815f70062d8febca91eaf042a77c3d
Downstream changes: Adding add_weston_module function into weston-start
script and modify xwayland plugin to use new interface.

Submitted upstream:
https://lists.openembedded.org/g/openembedded-core/topic/patch_weston_wrapper_for/85453995
Ref: https://git.ostc-eu.org/OSTC/OHOS/meta-ohos/-/issues/110



Signed-off-by: default avatarPavel Zhukov <pavel.zhukov@huawei.com>
parent ef503802
No related branches found
No related tags found
No related merge requests found
#!/bin/sh
# Copyright (C) 2016 O.S. Systems Software LTDA.
# Copyright (C) 2016 Freescale Semiconductor
export PATH="/sbin:/usr/sbin:/bin:/usr/bin"
usage() {
cat <<EOF
$0 [<openvt arguments>] [-- <weston options>]
EOF
}
## Module support
modules_dir=@DATADIR@/weston-start
# Add weston extra argument
add_weston_argument() {
weston_args="$weston_args $1"
}
# Add openvt extra argument
add_openvt_argument() {
openvt_args="$openvt_args $1"
}
## Add module to --modules argument
add_weston_module() {
if [[ "x${weston_modules}" == "x" ]]; then
weston_modules="--modules "
fi;
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
fi
if [ -n "$WESTON_USER" ]; then
if [ -z "$WESTON_TTY" ]; then
echo "ERROR: If you have WESTON_USER variable set, you also need WESTON_TTY."
exit 1
fi
weston_args_user="-u $WESTON_USER -t $WESTON_TTY"
fi
if [ -n "$DISPLAY" ]; then
launcher="weston"
else
launcher="weston-launch $weston_args_user --"
fi
openvt_args="-s"
while [ -n "$1" ]; do
if [ "$1" = "--" ]; then
shift
break
fi
openvt_args="$openvt_args $1"
shift
done
weston_args=$*
# Load and run modules
if [ -d "$modules_dir" ]; then
for m in "$modules_dir"/*; do
# Skip backup files
if [ "`echo $m | sed -e 's/\~$//'`" != "$m" ]; then
continue
fi
# process module
. $m
done
if [[ x"{$weston_modules}" != "x" ]]; then
add_weston_argument "${weston_modules}"
fi;
fi
if test -z "$XDG_RUNTIME_DIR"; then
export XDG_RUNTIME_DIR=/run/user/`id -u ${WESTON_USER}`
if ! test -d "$XDG_RUNTIME_DIR"; then
mkdir --parents $XDG_RUNTIME_DIR
chmod 0700 $XDG_RUNTIME_DIR
fi
if [ -n "$WESTON_USER" ]
then
chown $WESTON_USER:$WESTON_USER $XDG_RUNTIME_DIR
fi
fi
exec openvt $openvt_args -- $launcher $weston_args --log=@LOCALSTATEDIR@/log/weston.log
...@@ -18,4 +18,4 @@ StandardError=journal ...@@ -18,4 +18,4 @@ StandardError=journal
PermissionsStartOnly=true PermissionsStartOnly=true
IgnoreSIGPIPE=no IgnoreSIGPIPE=no
ExecStart=/usr/bin/weston-start -v -e -- $OPTARGS --modules=systemd-notify.so ExecStart=/usr/bin/weston-start -v -e -- $OPTARGS
#!/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
#!/bin/sh
if type Xwayland >/dev/null 2>/dev/null; then
mkdir -p /tmp/.X11-unix
add_weston_module "xwayland.so"
fi
# SPDX-FileCopyrightText: Huawei Inc.
# SPDX-License-Identifier: Apache-2.0
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://systemd-notify.weston-start"
do_install_append() {
install -Dm 644 ${WORKDIR}/systemd-notify.weston-start ${D}${datadir}/weston-start/systemd-notify
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment