[PATCH] weston: Add rdp PACKAGECONFIG

Marek Vasut
2021-08-30T13:01:04Z

Weston has RDP backend support. This can be used e.g. for screen mirroring.
Add PACKAGECONFIG so it can be enabled by the user. By default, this is not
enabled, to retain the old behavior of the recipe.

Below is an example testcase of using the RDP backend for screen mirroring,
i.e. two devices display the same content across ethernet link, input on
either is passed across the link.

- Add the following to weston.ini:
[core]
modules=screen-share.so
screen-share=true
[screen-share]
command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize --rdp-tls-cert=/path/to/board.crt --rdp-tls-key=/path/to/board.key --no-config

- Generate keys on the board (the board.key and board.crt above):
$ winpr-makecert -rdp -path /path/to/

- Restart weston on the board. To start screen sharing, press
Ctrl-Alt-S
on the keyboard (see weston compositor/screen-share.c).

- Connect to the weston using freerdp, e.g.:
$ xfreerdp /v:192.168.1.300

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joshua Watt <JPEWhacker@gmail.com>
Cc: Khem Raj <raj.khem@gmail.com>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
---
NOTE: I didn't find any example of setting up the screen mirroring,
so I hope this example will be useful to someone.
---
meta/recipes-graphics/wayland/weston_9.0.0.bb | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-graphics/wayland/weston_9.0.0.bb b/meta/recipes-graphics/wayland/weston_9.0.0.bb
index fbf181b4a6..295cddc57d 100644
--- a/meta/recipes-graphics/wayland/weston_9.0.0.bb
+++ b/meta/recipes-graphics/wayland/weston_9.0.0.bb
@@ -32,7 +32,7 @@ LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'lto', '-Wl,-z,undefs', '',

WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}"

-EXTRA_OEMESON += "-Dbackend-default=auto -Dbackend-rdp=false -Dpipewire=false"
+EXTRA_OEMESON += "-Dbackend-default=auto -Dpipewire=false"

PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms fbdev wayland egl clients', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \
@@ -58,6 +58,8 @@ PACKAGECONFIG[x11] = "-Dbackend-x11=true,-Dbackend-x11=false,virtual/libx11 libx
PACKAGECONFIG[headless] = "-Dbackend-headless=true,-Dbackend-headless=false"
# Weston on framebuffer
PACKAGECONFIG[fbdev] = "-Dbackend-fbdev=true,-Dbackend-fbdev=false,udev mtdev"
+# Weston on RDP
+PACKAGECONFIG[rdp] = "-Dbackend-rdp=true,-Dbackend-rdp=false,freerdp"
# weston-launch
PACKAGECONFIG[launch] = "-Dweston-launch=true,-Dweston-launch=false,drm"
# VA-API desktop recorder
--
2.33.0